{
  "version": 3,
  "sources": ["/cdn/shop/t/217/assets/custom-product-bundle-item.js?h=dfcdd"],
  "sourcesContent": ["\"use strict\";(self.webpackChunk_softlimit_framework=self.webpackChunk_softlimit_framework||[]).push([[\"custom-product-bundle-item\"],{\"../../../src/_features/pv-dynamic-bundle/scripts/product-bundle-item.js\":\n/*!*******************************************************************************!*\\\n  !*** ../../../src/_features/pv-dynamic-bundle/scripts/product-bundle-item.js ***!\n  \\*******************************************************************************/(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval(\"{__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var Features_scripts_element_depends_on__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! Features/scripts/element-depends-on */ \\\"./src/_features/scripts/element-depends-on.js\\\");\\n\\nclass ProductBundleItem extends HTMLElement {\\n  constructor() {\\n    super()\\n    this.bundle = this.closest('custom-product-bundle')\\n    this.image = this.querySelector('[data-item-image]')\\n    this.form = this.querySelector('form')\\n    this.form?.addEventListener('variant:change', this.update.bind(this))\\n    this.input = this.form.querySelector('[data-bundle-item]')\\n\\n    this.productInfo = this.closest('.product-info')\\n    this.addBtn = this.productInfo.querySelector('[data-bundle-add-to-cart]')\\n    this.addBtnText = this.addBtn?.querySelector('[data-bundle-atc-text]')\\n\\n    // if we have variants to group inside this element, do so\\n    if (this.hasAttribute('bundle-variants-parent')) this.groupVariantInputs()\\n\\n    this.bundleParentRef()\\n  }\\n\\n  update(e) {\\n    const variant = e.detail\\n    this.bundleParentRef()\\n    if (!variant || !variant?.featured_media) return\\n    this.image?.updateSrc({ src: variant?.featured_media.preview_image.src })\\n  }\\n\\n  bundleParentRef() {\\n    const bundleRef = this.bundle.querySelector('[data-bundle-reference]')\\n    const bundleTitles = this.bundle.querySelector('[data-bundle-titles]')\\n    const selectedItems = Array.from(this.bundle.querySelectorAll('[data-bundle-item]:checked', '[data-bundle-item]:selected'))\\n    bundleRef.value = selectedItems.map(item => item.value)\\n    bundleTitles.value = selectedItems.map(item => item.getAttribute('data-variant-title')).join(', ')\\n  }\\n\\n  updateAddButton(variant) {\\n    if (variant) {\\n      this.removeAttribute('unavailable')\\n      if (this.bundle.querySelector('product-bundle-item[unavailable]')) return\\n      this.addBtn?.removeAttribute('disabled')\\n      if (this.addBtnText) this.addBtnText.innerHTML = window.variantStrings.addToCart\\n      return\\n    }\\n    this.setAttribute('unavailable', '')\\n    this.addBtn?.setAttribute('disabled', '')\\n    if (this.addBtnText) this.addBtnText.innerHTML = window.variantStrings.unavailable\\n  }\\n\\n  groupVariantInputs() {\\n    const variantInputs = this.closest('custom-product-bundle-group')?.querySelectorAll(`.bundle-variant[data-product=\\\"${this.getAttribute('data-product')}\\\"]`)\\n    const variantSelectorsContainer = this.querySelector('[data-bundle-variants]')\\n    // append variant inputs to this element\\n    if (!variantSelectorsContainer) return\\n    variantInputs?.forEach(input => {\\n      variantSelectorsContainer.appendChild(input)\\n      input.classList.remove('hidden')\\n    })\\n  }\\n}\\n\\n(0,Features_scripts_element_depends_on__WEBPACK_IMPORTED_MODULE_0__.elementDependsOn)(['responsive-image'])\\n  .then(() => {\\n    // depends on responsive-image defining updateSrc method on this.image\\n    customElements.define('custom-product-bundle-item', ProductBundleItem)\\n  })\\n\\n\\n//# sourceURL=webpack://@softlimit/framework/../../../src/_features/pv-dynamic-bundle/scripts/product-bundle-item.js?\\n}\")},\"./src/_features/scripts/element-depends-on.js\":\n/*!*****************************************************!*\\\n  !*** ./src/_features/scripts/element-depends-on.js ***!\n  \\*****************************************************/(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval(\"{__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */   elementDependsOn: () => (/* binding */ elementDependsOn)\\n/* harmony export */ });\\n/*\\n  returns promise when all elements in array exist and defined\\n  array: dependsOn\\n*/\\nconst elementDependsOn = async (dependsOn) => {\\n  for (const element of dependsOn) {\\n    if (document.querySelector(element)) {\\n      await customElements.whenDefined(element)\\n    }\\n  }\\n  return true\\n}\\n\\n\\n//# sourceURL=webpack://@softlimit/framework/./src/_features/scripts/element-depends-on.js?\\n}\")}}]);"],
  "mappings": "cAAc,KAAK,iCAAiC,KAAK,kCAAkC,CAAC,GAAG,KAAK,CAAC,CAAC,4BAA4B,EAAE,CAAC,0EAGlD,SAAC,wBAAwB,oBAAoB,oBAAsB,CAAC,KAAK,ilGAAilG,CAAC,EAAE,gDAGvrG,SAAC,wBAAwB,oBAAoB,oBAAsB,CAAC,KAAK,8mBAA8mB,CAAC,CAAC,CAAC,CAAC",
  "names": []
}
