{"version":3,"sources":["components/product/detail/actions/@common/product-detail-actions.js"],"names":["ProductDetailActionsBase","Component","constructor","el","variantInput","$find","buttonBuy","buttonInquiry","buttonCannotBuy","amountInput","form","cartUrl","$el","dataset","urlCart","inquiryUrl","urlInquiry","addEventListeners","setVariant","variant","value","id","resetButtons","classList","add","updateForm","salable","remove","setAttribute","inquirable","onVariantChange","addToCart","formData","FormData","append","fetch","getAttribute","method","body","then","response","json","data","onCartAdded","catch","error","console","EventBus","getInstance","dispatchEvent","showInquiry","url","URLSearchParams","toString","onFormSubmit","e","preventDefault","action","addEventListener","detail"],"mappings":"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","sourcesContent":["class ProductDetailActionsBase extends Component {\r\n\tconstructor(el) {\r\n\t\tsuper(el);\r\n\t\tthis.variantInput = this.$find('[data-variant-input]');\r\n\t\tthis.buttonBuy = this.$find('[data-button-buy]');\r\n\t\tthis.buttonInquiry = this.$find('[data-button-inquiry]');\r\n\t\tthis.buttonCannotBuy = this.$find('[data-button-cannot-buy]');\r\n\t\tthis.amountInput = this.$find('[data-input-up-down-base]');\r\n\t\tthis.form = this.$find('form');\r\n\r\n\t\tthis.cartUrl = this.$el.dataset.urlCart;\r\n\t\tthis.inquiryUrl = this.$el.dataset.urlInquiry;\r\n\r\n\t\tthis.addEventListeners();\r\n\t}\r\n\r\n\tsetVariant(variant) {\r\n\t\tthis.variantInput.value = variant.id;\r\n\t}\r\n\r\n\tresetButtons() {\r\n\t\tthis.buttonBuy.classList.add('u-hidden');\r\n\t\tthis.buttonInquiry.classList.add('u-hidden');\r\n\t\tthis.buttonCannotBuy.classList.add('u-hidden');\r\n\t\tthis.amountInput && this.amountInput.classList.add('u-hidden');\r\n\t}\r\n\r\n\tupdateForm(variant) {\r\n\t\tthis.resetButtons();\r\n\r\n\t\tif (variant.salable) {\r\n\t\t\tthis.buttonBuy.classList.remove('u-hidden');\r\n\t\t\tthis.amountInput && this.amountInput.classList.remove('u-hidden');\r\n\t\t\tthis.form.setAttribute('action', this.cartUrl);\r\n\t\t\tthis.form.setAttribute('method', 'get');\r\n\t\t} else if (variant.inquirable) {\r\n\t\t\tthis.buttonInquiry.classList.remove('u-hidden');\r\n\t\t\tthis.form.setAttribute('action', this.inquiryUrl);\r\n\t\t\tthis.form.setAttribute('method', 'post');\r\n\t\t} else {\r\n\t\t\tthis.buttonCannotBuy.classList.remove('u-hidden');\r\n\t\t\tthis.form.setAttribute('action', '');\r\n\t\t\tthis.form.setAttribute('method', '');\r\n\t\t}\r\n\t}\r\n\r\n\tonVariantChange(variant) {\r\n\t\tthis.setVariant(variant);\r\n\t\tthis.updateForm(variant);\r\n\t}\r\n\r\n\taddToCart() {\r\n\t\tconst formData = new FormData(this.form);\r\n\t\tformData.append('ajax', '1');\r\n\r\n\t\tfetch(this.form.getAttribute('action'), {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tbody: formData,\r\n\t\t})\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => this.onCartAdded(data))\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t});\r\n\t}\r\n\r\n\tonCartAdded(data) {\r\n\t\tEventBus.getInstance().dispatchEvent('cartUpdated', data);\r\n\t}\r\n\r\n\tshowInquiry() {\r\n\t\tEventBus.getInstance().dispatchEvent('showInquiry', {\r\n\t\t\turl: this.inquiryUrl + '?' + new URLSearchParams(new FormData(this.form)).toString() + '&ajax=1'\r\n\t\t});\r\n\t}\r\n\r\n\tonFormSubmit(e) {\r\n\t\te.preventDefault();\r\n\t\tconst action = this.form.getAttribute('action');\r\n\r\n\t\tEventBus.getInstance().dispatchEvent('showGlobalSpinner');\r\n\r\n\t\tif(action === this.cartUrl) {\r\n\t\t\tthis.addToCart();\r\n\t\t} else if (action === this.inquiryUrl) {\r\n\t\t\tthis.showInquiry();\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tEventBus.getInstance().addEventListener('productVariantChanged', e => this.onVariantChange(e.detail));\r\n\t\tthis.form.addEventListener('submit', e => this.onFormSubmit(e));\r\n\t}\r\n}\r\n"],"file":"product-detail-actions.min.js"}