{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/product-sample-modal-toggle/product-sample-modal-toggle.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/product-sample-modal-toggle/index.js"],"names":["SAMPLE_MODAL_CONTENT_HOOK","PRODUCT_SAMPLE_SIDEBAR_TOGGLE_BUTTON_HOOK","PRODUCT_SAMPLE_START_PACK","PRODUCT_SAMPLE_FORM","PRODUCT_SAMPLE_ACTION","PRODUCT_SAMPLE_IMG","PRODUCT_SAMPLE_COLLECTION","HIDDEN_CLASS","ProductSampleModalToggle","constructor","element","productSampleEndpoint","dataset","productSampleUrl","productSampleModalId","modalId","productSamplesModal","document","getElementById","productSamplesModalContent","querySelector","swatchDetailModals","querySelectorAll","_bindEvents","addEventListener","e","openProductSampleModal","preventDefault","API","get","then","response","updateSampleModalContent","data","catch","error","console","log","toggleSidebar","sampleStartPack","classList","add","sampleForm","remove","sampleAction","sampleImg","sampleCollection","innerHTML","initModules","Events","$trigger","id","sidebarInit","productSampleSidebarToggleButton","moduleInit","async","forEach","modal"],"mappings":"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","file":"js/ProductSampleModalToggle.js","sourcesContent":["import API from \"@utilities/api\";\nimport moduleInit from \"@utilities/module-init\";\nimport Events from \"@utilities/events\";\n\nconst SAMPLE_MODAL_CONTENT_HOOK = '[js-hook-modal-template-wrapper]';\nconst PRODUCT_SAMPLE_SIDEBAR_TOGGLE_BUTTON_HOOK = '[js-hook-product-sample-sidebar-toggle-button]';\nconst PRODUCT_SAMPLE_START_PACK = '[js-hook-sample-products-start-pack]';\nconst PRODUCT_SAMPLE_FORM = '[js-hook-product-sample-form]';\nconst PRODUCT_SAMPLE_ACTION = '[js-hook-sample-action]';\nconst PRODUCT_SAMPLE_IMG = '[js-hook-sample-product-img]';\nconst PRODUCT_SAMPLE_COLLECTION = '[js-hook-sample-collection]';\nconst HIDDEN_CLASS = 'u-hidden';\n\n/**\n * Used to open samples modal and replace html with ajax response\n *\n * @class ProductSampleModalToggle\n */\nclass ProductSampleModalToggle {\n  constructor(element) {\n    this.element = element;\n    this.productSampleEndpoint = this.element.dataset.productSampleUrl;\n    this.productSampleModalId = this.element.dataset.modalId;\n    this.productSamplesModal = document.getElementById(this.productSampleModalId);\n    this.productSamplesModalContent = this.productSamplesModal.querySelector(SAMPLE_MODAL_CONTENT_HOOK);\n    this.swatchDetailModals = [...document.querySelectorAll('.modal--swatch-detail')];\n\n    this._bindEvents();\n  }\n\n  _bindEvents() {\n    this.element.addEventListener('click', (e) => this.openProductSampleModal(e))\n  }\n\n  openProductSampleModal (e) {\n    e.preventDefault();\n\n    API.get(this.productSampleEndpoint)\n      .then((response) => this.updateSampleModalContent(response.data))\n      .catch((error) => {\n        console.log('Product sample modal data fetch error.', error); // eslint-disable-line no-console\n      });\n  }\n\n  toggleSidebar (e) {\n    e.preventDefault();\n\n    this.sampleStartPack.classList.add(HIDDEN_CLASS);\n    this.sampleForm.classList.remove(HIDDEN_CLASS);\n    this.sampleAction.classList.remove(HIDDEN_CLASS);\n    this.sampleImg.classList.remove('sample-products__product-images--image-min');\n    this.sampleCollection.classList.remove('sample-products__modal-collection--min')\n  }\n\n  updateSampleModalContent (data) {\n    this.productSamplesModalContent.innerHTML = data;\n\n    this.initModules();\n\n    Events.$trigger('lazyimage::update');\n\n    Events.$trigger(`modal[${this.productSampleModalId}]::open`);\n    Events.$trigger('modal::bind-buttons', { data: { id: this.productSampleModalId } });\n  }\n\n  sidebarInit () {\n    this.productSampleSidebarToggleButton = document.querySelector(PRODUCT_SAMPLE_SIDEBAR_TOGGLE_BUTTON_HOOK);\n    this.sampleStartPack = document.querySelector(PRODUCT_SAMPLE_START_PACK);\n    this.sampleForm = document.querySelector(PRODUCT_SAMPLE_FORM);\n    this.sampleAction = document.querySelector(PRODUCT_SAMPLE_ACTION);\n    this.sampleImg = document.querySelector(PRODUCT_SAMPLE_IMG);\n    this.sampleCollection = document.querySelector(PRODUCT_SAMPLE_COLLECTION);\n\n    this.productSampleSidebarToggleButton.addEventListener('click', (e) => this.toggleSidebar(e));\n  }\n\n  initModules() {\n    moduleInit.async('[js-hook-product-sample-form]', () =>\n      import(/* webpackChunkName: \"js/ProductSampleForm\" */ '@components/product-sample-form'),\n    );\n\n    this.sidebarInit();\n\n    this.swatchDetailModals.forEach(modal => {\n      const modalId = modal.id;\n\n      Events.$trigger('modal::bind-buttons', { data: { id: modalId } });\n    })\n  }\n\n}\n\nexport default ProductSampleModalToggle;\n","import ProductSampleModalToggle from './product-sample-modal-toggle';\n\nexport default ProductSampleModalToggle;\n"],"sourceRoot":""}