{"version":3,"sources":["views/cart/main/_std/cart-main.js"],"names":["CartMain","Component","constructor","el","form","$el","closest","debounceInterval","undefined","addEventListeners","reRenderCart","data","htmlData","DOMParser","parseFromString","componentSource","querySelector","innerHTML","initComponents","updateCart","params","formData","FormData","action","Object","keys","length","window","location","pathname","EventBus","getInstance","dispatchEvent","append","fetch","method","body","then","res","json","onCartUpdated","finally","views","remarketingCodes","Util","appendToBody","addEventListener","e","clearTimeout","setTimeout","detail"],"mappings":"aAAA,KAAMA,CAAAA,QAAN,QAAuBC,CAAAA,SAAU,CAChCC,WAAW,CAACC,EAAD,CAAK,CACf,MAAMA,EAAN,EACA,KAAKC,IAAL,CAAY,KAAKC,GAAL,CAASC,OAAT,CAAiB,MAAjB,CAAZ,CACA,KAAKC,gBAAL,CAAwBC,SAAxB,CACA,KAAKC,iBAAL,EACA,CAEDC,YAAY,CAACC,IAAD,CAAO,CAClB,KAAMC,CAAAA,QAAQ,CAAG,GAAIC,CAAAA,SAAJ,GAAgBC,eAAhB,CAAgCH,IAAhC,CAAsC,WAAtC,CAAjB,CACA,KAAMI,CAAAA,eAAe,CAAGH,QAAQ,CAACI,aAAT,CAAuB,kBAAvB,CAAxB,CACA,KAAKX,GAAL,CAASY,SAAT,CAAqBF,eAAe,CAACE,SAArC,CAEAhB,SAAS,CAACiB,cAAV,EACA,CAEDC,UAAU,CAACC,MAAD,CAAS,CAClB,GAAIC,CAAAA,QAAQ,CAAG,GAAIC,CAAAA,QAAJ,CAAa,KAAKlB,IAAlB,CAAf,CACA,GAAImB,CAAAA,MAAM,CAAGC,MAAM,CAACC,IAAP,CAAYL,MAAZ,EAAoBM,MAApB,CAA6BN,MAA7B,CAAsCO,MAAM,CAACC,QAAP,CAAgBC,QAAnE,CACAC,QAAQ,CAACC,WAAT,GAAuBC,aAAvB,CAAqC,mBAArC,EACAX,QAAQ,CAACY,MAAT,CAAgB,WAAhB,CAA6B,GAA7B,EAEAC,KAAK,CAACX,MAAD,CAAS,CACbY,MAAM,CAAE,MADK,CAEbC,IAAI,CAAEf,QAFO,CAAT,CAAL,CAICgB,IAJD,CAIMC,GAAG,EAAIA,GAAG,CAACC,IAAJ,EAJb,EAKCF,IALD,CAKM1B,IAAI,EAAI,KAAK6B,aAAL,CAAmB7B,IAAnB,CALd,EAMC8B,OAND,CAMS,IAAMX,QAAQ,CAACC,WAAT,GAAuBC,aAAvB,CAAqC,mBAArC,CANf,CAOA,CAEDQ,aAAa,CAAC7B,IAAD,CAAO,CACnB,KAAKD,YAAL,CAAkBC,IAAI,CAAC+B,KAAL,CAAW,MAAX,CAAlB,EACA,GAAG/B,IAAI,CAACgC,gBAAR,CAA0B,CACzBC,IAAI,CAACC,YAAL,CAAkBlC,IAAI,CAACgC,gBAAvB,CACA,CACD,CAEDlC,iBAAiB,EAAG,CACnBqB,QAAQ,CAACC,WAAT,GAAuBe,gBAAvB,CAAwC,qBAAxC,CAA+DC,CAAC,EAAI,CACnE,KAAKxC,gBAAL,EAAyByC,YAAY,CAAC,KAAKzC,gBAAN,CAArC,CACA,KAAKA,gBAAL,CAAwB0C,UAAU,CAAC,IAAM,KAAK9B,UAAL,CAAgB4B,CAAC,CAACG,MAAlB,CAAP,CAAkC,GAAlC,CAClC,CAHD,CAIA,CA3C+B","sourcesContent":["class CartMain extends Component {\n\tconstructor(el) {\n\t\tsuper(el);\n\t\tthis.form = this.$el.closest('form');\n\t\tthis.debounceInterval = undefined;\n\t\tthis.addEventListeners();\n\t}\n\n\treRenderCart(data) {\n\t\tconst htmlData = new DOMParser().parseFromString(data, 'text/html');\n\t\tconst componentSource = htmlData.querySelector('[data-step-cart]');\n\t\tthis.$el.innerHTML = componentSource.innerHTML;\n\n\t\tComponent.initComponents();\n\t}\n\n\tupdateCart(params) {\n\t\tlet formData = new FormData(this.form);\n\t\tlet action = Object.keys(params).length ? params : window.location.pathname;\n\t\tEventBus.getInstance().dispatchEvent('showGlobalSpinner');\n\t\tformData.append('ajax-cart', '1');\n\n\t\tfetch(action, {\n\t\t\tmethod: 'POST',\n\t\t\tbody: formData\n\t\t})\n\t\t.then(res => res.json())\n\t\t.then(data => this.onCartUpdated(data))\n\t\t.finally(() => EventBus.getInstance().dispatchEvent('hideGlobalSpinner'));\n\t}\n\n\tonCartUpdated(data) {\n\t\tthis.reRenderCart(data.views['Cart']);\n\t\tif(data.remarketingCodes) {\n\t\t\tUtil.appendToBody(data.remarketingCodes);\n\t\t}\n\t}\n\n\taddEventListeners() {\n\t\tEventBus.getInstance().addEventListener('orderUpdateStepCart', e => {\n\t\t\tthis.debounceInterval && clearTimeout(this.debounceInterval);\n\t\t\tthis.debounceInterval = setTimeout(() => this.updateCart(e.detail), 300);\n\t\t});\n\t}\n}\n"],"file":"cart-main.min.js"}