{"version":3,"file":"Upgrade.bundle.js","mappings":"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","sources":["webpack://advfnweb/webpack/runtime/chunk loaded","webpack://advfnweb/./advfn3/content/_common/subscription/src/js/PricePreviewBox.js","webpack://advfnweb/./advfn3/content/_common/subscription/src/js/PricePreviewManager.js","webpack://advfnweb/./advfn3/content/_common/subscription/src/js/ProductBox.js","webpack://advfnweb/./advfn3/content/_common/subscription/src/js/SelectionStorage.js","webpack://advfnweb/./advfn3/content/_common/subscription/src/js/main.js","webpack://advfnweb/./advfn3/content/_common/subscription/src/scss/main.scss?3dec","webpack://advfnweb/webpack/bootstrap","webpack://advfnweb/webpack/runtime/define property getters","webpack://advfnweb/webpack/runtime/global","webpack://advfnweb/webpack/runtime/hasOwnProperty shorthand","webpack://advfnweb/webpack/runtime/make namespace object","webpack://advfnweb/webpack/runtime/node module decorator","webpack://advfnweb/webpack/runtime/runtimeId","webpack://advfnweb/webpack/runtime/jsonp chunk loading","webpack://advfnweb/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","export default class PricePreviewBox\n{\n /**\n * @param {HTMLElement} element\n */\n constructor(element)\n {\n this._element = element;\n\n this._monthlySubmitButton = this._element.querySelector('.monthly-button');\n this._yearlySubmitButton = this._element.querySelector('.yearly-button');\n\n this._monthlyTotalBox = this._element.querySelector('[data-app=monthly-total-box]');\n this._monthlyTotalVatBox = this._element.querySelector('[data-app=monthly-total-vat-box]');\n this._productsSelectedContainer = this._element.querySelector('[data-app=products-selected]');\n this._productsSelectedList = this._element.querySelector('[data-app=products-selected-list]');\n this._productsSelectedCount = this._element.querySelector('[data-app=products-selected-count]');\n this._monthlyBox = this._element.querySelector('[data-app=monthly-box]');\n this._yearlyBox = this._element.querySelector('[data-app=yearly-box]');\n\n this._totalPrice = this._getZeroCurrencyFormattingBySite();\n this._monthlyPrice = this._getZeroCurrencyFormattingBySite();\n this._yearlyPrice = this._getZeroCurrencyFormattingBySite();\n this._yearlySavings = this._getZeroCurrencyFormattingBySite();\n this._yearlyVAT = this._getZeroCurrencyFormattingBySite();\n this._monthlyVAT = this._getZeroCurrencyFormattingBySite();\n this._VATName = '';\n\n this._yearlyProducts = [];\n this._monthlyProducts = [];\n this._needsUpdate = true;\n\n this._intersecting = false;\n\n this._drawInterval = setInterval(() =>\n {\n if (this._needsUpdate)\n {\n this._draw();\n }\n }, 100);\n\n const observer = new IntersectionObserver((entries) =>\n {\n entries.forEach((entry) =>\n {\n const viewportWidth = window.innerWidth;\n if (entry.isIntersecting)\n {\n this._intersecting = true;\n this._element.classList.remove('pinned');\n this._productsSelectedList.style.display = 'block';\n }\n else\n {\n if (viewportWidth < 500)\n {\n this._productsSelectedList.style.display = 'none';\n }\n else\n {\n this._productsSelectedList.style.display = 'block';\n }\n this._intersecting = false;\n this._element.classList.add('pinned');\n }\n });\n });\n observer.observe(this._element.parentElement);\n\n this._attachedSubmissionClickEvents();\n }\n\n _getZeroCurrencyFormattingBySite()\n {\n if (window.analyticsParams.currency === 'USD')\n {\n return '$0.00';\n }\n if (window.analyticsParams.currency === 'EUR')\n {\n return '€0.00';\n }\n if (window.analyticsParams.currency === 'GBP')\n {\n return '£0.00';\n }\n if (window.analyticsParams.currency === 'YEN')\n {\n return '¥0.00';\n }\n return '0.00';\n }\n\n _draw()\n {\n if (this._needsUpdate)\n {\n this._needsUpdate = false;\n this._monthlyTotalBox.innerHTML = this._monthlyPrice;\n this._removeVATProducts();\n\n if (this._VATName !== '')\n {\n this._monthlyTotalVatBox.innerHTML = ` (+${this._monthlyVAT} ${this._VATName})`;\n }\n this._productsSelectedContainer.querySelector('.items-selected').innerHTML = this._monthlyProducts.length;\n this._productsSelectedContainer.querySelector('.items-selected-list').innerHTML = '';\n\n this._monthlyProducts.forEach((product, index) =>\n {\n const [productArray] = product;\n const productElement = document.createElement('span');\n let productName = productArray;\n\n if (index !== 0)\n {\n if (index !== this._monthlyProducts.length - 1)\n {\n productName += ', ';\n }\n }\n else if (index === 0 && this._monthlyProducts.length > 1)\n {\n productName += ', ';\n }\n productElement.innerHTML = productName;\n this._productsSelectedContainer.querySelector('.items-selected-list').appendChild(productElement);\n });\n\n let monthlyText = this._monthlyPrice;\n if (this._VATName !== '')\n {\n monthlyText += ` (+${this._monthlyVAT} ${this._VATName})`;\n }\n this._monthlyBox.innerHTML = monthlyText;\n\n let yearlyText = this._yearlyPrice;\n if (this._VATName !== '')\n {\n yearlyText += ` (+${this._yearlyVAT} ${this._VATName})`;\n }\n\n this._yearlyBox.innerHTML = yearlyText;\n\n this._element.querySelector('[data-app=yearly-savings]').innerHTML = this._yearlySavings;\n this._element.querySelector('[data-app=yearly-savings-mob]').innerHTML = this._yearlySavings;\n }\n }\n\n _removeVATProducts()\n {\n const vatArray = ['VAT', 'MwSt', 'TVA', 'IVA'];\n this._monthlyProducts = this._monthlyProducts.filter((product) =>\n {\n if (vatArray.includes(product[0]))\n {\n this._setVATName(product[0]);\n }\n return !vatArray.includes(product[0]);\n });\n }\n\n _setVATName(name)\n {\n this._VATName = name;\n }\n\n isIntersecting()\n {\n return this._intersecting;\n }\n\n setTotalPrice(price, type, tax = null)\n {\n if (type === 'monthly')\n {\n if (price === '0.00')\n {\n this._monthlyPrice = this._getZeroCurrencyFormattingBySite();\n this._monthlyVAT = this._getZeroCurrencyFormattingBySite();\n }\n else\n {\n this._monthlyPrice = price;\n this._monthlyVAT = tax;\n }\n }\n else if (type === 'yearly')\n {\n if (price === '0.00')\n {\n this._yearlyPrice = this._getZeroCurrencyFormattingBySite();\n this._yearlyVAT = this._getZeroCurrencyFormattingBySite();\n }\n else\n {\n this._yearlyPrice = price;\n this._yearlyVAT = tax;\n }\n }\n this._needsUpdate = true;\n }\n\n setProducts(products, type)\n {\n if (type === 'monthly')\n {\n this._monthlyProducts = [];\n for (let i = 0; i < products.length; i++)\n {\n this.addProduct(products[i], type);\n }\n }\n else if (type === 'yearly')\n {\n this._yearlyProducts = [];\n for (let i = 0; i < products.length; i++)\n {\n this.addProduct(products[i], type);\n }\n }\n this._needsUpdate = true;\n }\n\n setSavings(savings)\n {\n if (savings === '0.00')\n {\n this._yearlySavings = this._getZeroCurrencyFormattingBySite();\n }\n else\n {\n this._yearlySavings = savings;\n }\n this._needsUpdate = true;\n }\n\n addProduct(product, type)\n {\n if (type === 'monthly')\n {\n this._monthlyProducts.push(product);\n }\n else if (type === 'yearly')\n {\n this._yearlyProducts.push(product);\n }\n this._needsUpdate = true;\n }\n\n _buildSelectedProductsSubmissionUrl()\n {\n let url = '';\n\n window.PRODMATRIX_MANAGER._productsSelected.forEach((product) =>\n {\n url += `products%5B%5D=addon_${product}&`;\n });\n\n return url;\n }\n\n _buildAnalayticsCartFinalisedObject(submissionType)\n {\n const analyticsObject = {\n event: 'cart_finalised',\n view: window.analyticsParams.view,\n products: [],\n };\n if (submissionType === 'monthly')\n {\n analyticsObject.products = this._monthlyProducts.map((product) =>\n {\n return {\n item_id: product[3],\n item_name: product[0],\n item_brand: 'ADVFN',\n price: product[2],\n currency: window.analyticsParams.currency,\n quantity: 1,\n };\n });\n }\n else if (submissionType === 'yearly')\n {\n analyticsObject.products = this._yearlyProducts.map((product) =>\n {\n return {\n item_id: product[3],\n item_name: product[0],\n item_brand: 'ADVFN',\n price: product[2],\n currency: window.analyticsParams.currency,\n quantity: 1,\n };\n });\n }\n window.DATA_LAYER_INJECTOR.pushObject(analyticsObject);\n }\n\n _TriggerAnalyticsCheckoutTracking(buttonType)\n {\n const analyticsObject = {\n event: 'checkout_cta_button_click',\n location: `prodmatrix_purchase_btn_${buttonType}`,\n view: window.analyticsParams.view,\n };\n window.DATA_LAYER_INJECTOR.pushObject(analyticsObject);\n }\n\n _attachedSubmissionClickEvents()\n {\n this._monthlySubmitButton.addEventListener('click', (e) =>\n {\n e.preventDefault();\n\n this._buildAnalayticsCartFinalisedObject('monthly');\n if (window.PRODMATRIX_MANAGER._productsSelected.length > 0)\n {\n this._TriggerAnalyticsCheckoutTracking('monthly');\n\n setTimeout(() =>\n {\n window.location.href = `${window.location.pathname}?${this._buildSelectedProductsSubmissionUrl()}btn=monthly`;\n }, 300);\n }\n });\n\n this._yearlySubmitButton.addEventListener('click', (e) =>\n {\n e.preventDefault();\n\n this._buildAnalayticsCartFinalisedObject('yearly');\n if (window.PRODMATRIX_MANAGER._productsSelected.length > 0)\n {\n setTimeout(() =>\n {\n this._TriggerAnalyticsCheckoutTracking('yearly');\n window.location.href = `${window.location.pathname}?${this._buildSelectedProductsSubmissionUrl()}btn=annual`;\n }, 300);\n }\n });\n }\n}\n","const axios = require('axios');\n\n/**\n * @typedef {import('./PricePreviewBox').default} PricePreviewBox\n * @typedef {import('./ProductBox').default} ProductBox\n */\n\nexport default class PricePreviewManager\n{\n /**\n * @param {PricePreviewBox} previewBox\n */\n constructor(previewBox, selectionStorage)\n {\n /** @type {PricePreviewBox} */\n this._previewBox = previewBox;\n\n /** @type {ProductAddButton[]} */\n this._productBoxes = [];\n\n /** @type {SelectionStorage} */\n this._selectionStorage = selectionStorage;\n\n this._checkBoxes = [];\n this._productsSelected = [];\n\n this._needsUpdate = true;\n this._updateInterval = setInterval(() =>\n {\n if (this._needsUpdate)\n {\n this._handleUpdateInterval();\n }\n }, 100);\n }\n\n handleCheckBoxChange()\n {\n this._needsUpdate = true;\n }\n\n /**\n * @param {ProductBox} productBox\n */\n addProductBox(productBox)\n {\n this._productBoxes.push(productBox);\n productBox.addListener(this);\n }\n\n /**\n * @param {ProductBox} productBox\n */\n handleProductBoxStateChange()\n {\n this._needsUpdate = true;\n }\n\n _handleUpdateInterval()\n {\n if (this._needsUpdate)\n {\n this._needsUpdate = false;\n this._refreshProductsSelected();\n\n this._calculatePriceAJAX(\n (result) =>\n {\n this._updatePriceBoxes(result.monthly, result.yearly, result.savings);\n },\n (errorMessage, errorCode) =>\n {\n if (errorCode === 505)\n {\n return this._handleNoProducts();\n }\n\n console.warn(errorMessage, errorCode);\n return undefined;\n },\n );\n }\n }\n\n _calculatePriceAJAX(success, fail)\n {\n let endpoint = '/common/api/billing/Calculate';\n const products = this._productsSelected.map((product) => `products%5B%5D=${product}`).join('&');\n endpoint += `?${products}`;\n axios.get(endpoint)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n return success(data.result);\n }\n }\n return fail(data.result.errorMessage, data.result.errorCode);\n })\n .catch((error) => console.warn(error));\n }\n\n _handleNoProducts()\n {\n this._previewBox.setProducts([], 'monthly');\n this._previewBox.setProducts([], 'yearly');\n this._previewBox.setTotalPrice('0.00', 'monthly');\n this._previewBox.setTotalPrice('0.00', 'yearly');\n this._previewBox.setSavings('0.00');\n }\n\n _updatePriceBoxes(monthly, yearly, savings)\n {\n if (typeof monthly.period !== 'undefined')\n {\n this._previewBox.setTotalPrice(monthly.period.price_display, 'monthly', monthly.period.tax_display);\n this._previewBox.setProducts(this._flattenProducts(monthly.period.products), 'monthly');\n }\n\n if (typeof yearly.period !== 'undefined')\n {\n this._previewBox.setTotalPrice(yearly.period.price_display, 'yearly', yearly.period.tax_display);\n this._previewBox.setProducts(this._flattenProducts(yearly.period.products), 'yearly');\n }\n\n this._previewBox.setSavings(savings.period.savings_display);\n }\n\n _refreshProductsSelected()\n {\n this._productsSelected = [];\n this._selectionStorage.clearSelections();\n for (let i = 0; i < this._productBoxes.length; i++)\n {\n if (this._productBoxes[i].isChecked())\n {\n const productID = this._productBoxes[i]._productID;\n this._selectionStorage.addSelection(productID);\n if (this._productsSelected.indexOf(productID) === -1)\n {\n this._productsSelected.push(productID);\n }\n }\n }\n }\n\n _flattenProducts(products)\n {\n const flatten = [];\n for (let i = 0; i < products.length; i++)\n {\n flatten.push([products[i].id, products[i].price_display, products[i].price, products[i].prod_id]);\n }\n return flatten;\n }\n}\n","class ProductBox\n{\n /**\n * @param {HTMLElement} element\n */\n constructor(element, selectionStorage)\n {\n this._element = element;\n\n this._selectionStorage = selectionStorage;\n\n /** @type {string} */\n this._productID = this._element.dataset.prodid;\n\n /** @type {string} */\n this._packID = this._element.dataset.pack;\n\n /** @type {string} */\n this._flatPrice = this._element.dataset.price;\n\n /** @type {string} */\n this._productInternalDescription = this._element.dataset.productInternalDescription;\n\n /** @type {string} */\n this._primaryProduct = this._element.dataset.primaryProduct;\n\n /** @type {HTMLElement} */\n this._checkBox = this._element.querySelector('.product_checkbox');\n\n /** @type {HTMLElement} */\n this._price = this._element.querySelector('.price');\n\n /** @type {HTMLElement} */\n this._includedPrice = this._element.querySelector('.included-price');\n\n /** @type {HTMLElement} */\n this._addedButtonText = this._element.querySelector('.text-added');\n\n /** @type {HTMLElement} */\n this._addButtonText = this._element.querySelector('.text-add');\n\n /** @type {HTMLElement} */\n this._includedButtonText = this._element.querySelector('.text-included');\n\n /** @type {HTMLElement} */\n this._button = this._element.querySelector('.add-now');\n\n /** @type {HTMLElement} */\n this._selectBox = this._element.querySelector('.select-box');\n\n /** @type {HTMLElement} */\n this._learnMoreButton = this._element.querySelector('[data-learnmore=anchor]');\n\n /** @type {string} */\n this._state = ProductBox.STATE_UNCHECKED;\n\n if (this._checkBox === null)\n {\n this._state = ProductBox.STATE_SUBSCRIBED;\n }\n else\n {\n this.updateState();\n }\n\n this._listeners = [];\n\n this._attachEvents();\n }\n\n /**\n * @returns {string}\n */\n getProductID()\n {\n return this._productID;\n }\n\n /**\n * @returns {string}\n */\n getPackID()\n {\n return this._packID;\n }\n\n /**\n * @returns {string}\n */\n getProductInternalDescription()\n {\n return this._productInternalDescription;\n }\n\n isCheckBoxChecked()\n {\n if (this._checkBox === null) return false;\n\n return this._checkBox.checked;\n }\n\n /**\n * @returns {string}\n */\n getState()\n {\n return this._state;\n }\n\n /**\n * @param {string} newState\n */\n setState(newState)\n {\n this._state = newState;\n if (this._state === ProductBox.STATE_INCLUDED)\n {\n this._updateStateToIncluded();\n }\n else if (this._state === ProductBox.STATE_SUBSCRIBED)\n {\n this._updateStateToSubscribed();\n }\n else if (this._state === ProductBox.STATE_CHECKED)\n {\n this._updateStateToChecked();\n }\n else\n {\n this._updateStateToUnchecked();\n }\n }\n\n /**\n * @returns {boolean}\n */\n isChecked()\n {\n return this._state === ProductBox.STATE_CHECKED;\n }\n\n /**\n * @returns {boolean}\n */\n isIncluded()\n {\n return this._state === ProductBox.STATE_INCLUDED;\n }\n\n /**\n * @returns {boolean}\n */\n isSubscribed()\n {\n return this._state === ProductBox.STATE_SUBSCRIBED;\n }\n\n /**\n * @returns {boolean}\n */\n isSelectBox()\n {\n return this._selectBox;\n }\n\n /**\n * @returns {boolean}\n */\n isPrimaryProduct()\n {\n return this._primaryProduct === '1';\n }\n\n addListener(listener)\n {\n this._listeners.push(listener);\n }\n\n updateState()\n {\n if (this.isCheckBoxChecked())\n {\n this.setState(ProductBox.STATE_CHECKED);\n }\n else if (this.isIncluded())\n {\n this.setState(ProductBox.STATE_INCLUDED);\n }\n else if (window.precheckedProducts.includes(this._productID))\n {\n this.setState(ProductBox.STATE_CHECKED);\n }\n else if (this._selectionStorage.includes(this._productID))\n {\n this.setState(ProductBox.STATE_CHECKED);\n }\n else\n {\n this.setState(ProductBox.STATE_UNCHECKED);\n this._selectionStorage.removeSelection(this._productID);\n }\n }\n\n _updateStateToIncluded()\n {\n if (!this.isSelectBox() && !this.isPrimaryProduct())\n {\n this._button.classList.add('selected');\n this._addButtonText.style.display = 'none';\n this._addedButtonText.style.display = 'none';\n this._includedButtonText.style.display = 'block';\n }\n }\n\n _updateStateToSubscribed()\n {\n // Done via backend\n }\n\n _updateStateToChecked()\n {\n if (!this.isSelectBox() && this.isPrimaryProduct())\n {\n this._button.classList.add('selected');\n this._addButtonText.style.display = 'none';\n this._addedButtonText.style.display = 'block';\n this._checkBox.checked = true;\n this._checkIfProductPartOfPackage();\n this._updatedIncludedProductBoxesToUnchecked();\n this._updatedIncludedProductBoxesToIncluded();\n }\n else if (!this.isSelectBox())\n {\n this._button.classList.add('selected');\n this._addButtonText.style.display = 'none';\n this._addedButtonText.style.display = 'block';\n this._checkBox.checked = true;\n\n this._checkIfProductPartOfPackage();\n }\n else\n {\n this._button.classList.add('selected');\n this._checkBox.checked = true;\n this._checkIfProductPartOfPackage();\n this._updatedIncludedProductBoxesToUnchecked();\n this._updatedIncludedProductBoxesToIncluded();\n }\n }\n\n _uncheckOtherSamePrimaryProductBoxes(productID)\n {\n window.PRODMATRIX_MANAGER._productBoxes.forEach((productBox) =>\n {\n if (productBox.isPrimaryProduct())\n {\n if (productBox.getProductID() === productID)\n {\n productBox.setState(ProductBox.STATE_UNCHECKED);\n }\n }\n });\n }\n\n _updateStateToUnchecked()\n {\n if (!this.isSelectBox() && this.isPrimaryProduct())\n {\n this._button.classList.remove('selected');\n this._addButtonText.style.display = 'block';\n this._addedButtonText.style.display = 'none';\n this._includedButtonText.style.display = 'none';\n this._checkBox.checked = false;\n\n this._updatedIncludedProductBoxesToUnchecked();\n }\n else if (!this.isSelectBox())\n {\n this._button.classList.remove('selected');\n this._addButtonText.style.display = 'block';\n this._addedButtonText.style.display = 'none';\n this._includedButtonText.style.display = 'none';\n this._checkBox.checked = false;\n }\n else\n {\n this._button.classList.remove('selected');\n this._checkBox.checked = false;\n\n this._updatedIncludedProductBoxesToUnchecked();\n }\n }\n\n _checkIfProductPartOfPackage()\n {\n if (this._packID !== null)\n {\n window.PRODMATRIX_MANAGER._productBoxes.forEach((productBox) =>\n {\n if (productBox.isChecked())\n {\n if (productBox.getPackID() === this._packID && productBox.getProductID() !== this._productID)\n {\n productBox.setState(ProductBox.STATE_UNCHECKED);\n }\n }\n });\n }\n }\n\n _updatedToIncludedPrice()\n {\n if (this._price !== null && this._includedPrice !== null)\n {\n this._price.style.display = 'none';\n this._includedPrice.style.display = 'block';\n }\n }\n\n _updateToPrice()\n {\n if (this._price !== null && this._includedPrice !== null)\n {\n this._price.style.display = 'block';\n this._includedPrice.style.display = 'none';\n }\n }\n\n _updatedIncludedProductBoxesToIncluded()\n {\n const includedProducts = JSON.parse(this._checkBox.getAttribute('data-included-tools').replace(/'/g, '\"'));\n\n if (includedProducts.length > 0)\n {\n window.PRODMATRIX_MANAGER._productBoxes.forEach((productBox) =>\n {\n if (includedProducts.includes(productBox.getProductID()))\n {\n productBox.setState(ProductBox.STATE_INCLUDED);\n productBox._updatedToIncludedPrice();\n }\n });\n }\n }\n\n _updatedIncludedProductBoxesToUnchecked()\n {\n window.PRODMATRIX_MANAGER._productBoxes.forEach((productBox) =>\n {\n if (productBox.isIncluded())\n {\n productBox.setState(ProductBox.STATE_UNCHECKED);\n productBox._updateToPrice();\n }\n });\n }\n\n _attachEvents()\n {\n if (this._checkBox === null) return;\n\n this._button.addEventListener('click', () =>\n {\n if (this.isIncluded())\n {\n return;\n }\n if (!this.isCheckBoxChecked())\n {\n this.setState(ProductBox.STATE_CHECKED);\n }\n else\n {\n if (this.isPrimaryProduct())\n {\n this._uncheckOtherSamePrimaryProductBoxes(this._productID);\n }\n this.setState(ProductBox.STATE_UNCHECKED);\n this._selectionStorage.removeSelection(this._productID);\n }\n\n this._fireOnStateChange();\n });\n }\n\n _fireOnStateChange()\n {\n this._listeners.forEach((listener) =>\n {\n listener.handleProductBoxStateChange(this);\n });\n }\n}\n\nProductBox.STATE_UNCHECKED = 'unchecked';\nProductBox.STATE_CHECKED = 'checked';\nProductBox.STATE_INCLUDED = 'included';\nProductBox.STATE_SUBSCRIBED = 'subscribed';\n\nexport default ProductBox;\n","class SelectionStorage\n{\n constructor()\n {\n /** @type {Array} */\n this.selections = [];\n\n this._loadSelectionsFromStorage();\n }\n\n addSelection(selection)\n {\n if (this.selections.includes(selection)) return;\n this.selections.push(selection);\n this._saveSelectionsToStorage();\n }\n\n removeSelection(selection)\n {\n this.selections = this.selections.filter((s) => s !== selection);\n this._saveSelectionsToStorage();\n }\n\n clearSelections()\n {\n this.selections = [];\n this._saveSelectionsToStorage(true);\n }\n\n includes(productID)\n {\n return this.selections.includes(productID);\n }\n\n removeSelectionById(productID)\n {\n this.selections = this.selections.filter((s) => s !== productID);\n this._saveSelectionsToStorage();\n }\n\n _saveSelectionsToStorage(override = false)\n {\n if (this.selections.length === 0 && !override)\n {\n return;\n }\n localStorage.setItem('selections', JSON.stringify(this.selections));\n }\n\n _loadSelectionsFromStorage()\n {\n const selections = localStorage.getItem('selections');\n if (selections)\n {\n this.selections = JSON.parse(selections);\n }\n return this.selections;\n }\n}\nexport default SelectionStorage;\n","import PricePreviewBox from './PricePreviewBox';\nimport PricePreviewManager from './PricePreviewManager';\nimport ProductBox from './ProductBox';\nimport SelectionStorage from './SelectionStorage';\n\nconst { Glide } = window;\n\nwindow.PRODMATRIX_MANAGER = null;\n\ndocument.addEventListener('DOMContentLoaded', () =>\n{\n const subscriptioModeElement = document.querySelector('.subscription-mode');\n if (subscriptioModeElement)\n {\n const subscriptionModePackageElement = subscriptioModeElement.querySelector('.package-option');\n const subscriptionModePlanElement = subscriptioModeElement.querySelector('.upgrade-option');\n subscriptionModePlanElement.addEventListener('mouseover', () =>\n {\n subscriptionModePlanElement.classList.add('selected');\n subscriptionModePackageElement.classList.remove('selected');\n });\n\n subscriptionModePackageElement.addEventListener('mouseover', () =>\n {\n subscriptionModePackageElement.classList.add('selected');\n subscriptionModePlanElement.classList.remove('selected');\n });\n\n subscriptionModePackageElement.addEventListener('mouseout', () =>\n {\n subscriptionModePackageElement.classList.remove('selected');\n subscriptionModePlanElement.classList.add('selected');\n });\n }\n\n const selectionStorage = new SelectionStorage();\n const primaryProductsElements = document.querySelectorAll('[data-primary-product=\"1\"]');\n const primartyProducts = [];\n primaryProductsElements.forEach((primaryProduct) =>\n {\n primartyProducts.push(primaryProduct.getAttribute('data-prodid'));\n });\n\n const urlParams = new URLSearchParams(window.location.search);\n const productAdd = urlParams.get('product_add');\n if (primartyProducts.includes(productAdd))\n {\n primartyProducts.forEach((product) =>\n {\n selectionStorage.removeSelectionById(product);\n });\n }\n window.precheckedProducts.push(productAdd);\n\n window.PRODMATRIX_MANAGER = new PricePreviewManager(new PricePreviewBox(\n document.querySelector('[data-app=price-preview]'),\n ), selectionStorage);\n const productBoxes = document.querySelectorAll('[data-app=product-box]');\n\n productBoxes.forEach((productBox) =>\n {\n window.PRODMATRIX_MANAGER.addProductBox(\n new ProductBox(productBox, selectionStorage),\n );\n });\n\n window.PRODMATRIX_MANAGER._productBoxes.forEach((productBox) =>\n {\n if (productBox.isCheckBoxChecked() && productBox.isPrimaryProduct())\n {\n productBox.updateState();\n }\n });\n\n if (window.zE !== undefined)\n {\n if (window.innerWidth < 1690)\n {\n window.zE('webWidget', 'hide');\n }\n\n window.addEventListener('resize', () =>\n {\n if (window.innerWidth < 1690)\n {\n window.zE('webWidget', 'hide');\n }\n else\n {\n window.zE('webWidget', 'show');\n }\n });\n }\n\n if (document.querySelector('.glide') !== null)\n {\n const glide = new Glide('.glide', {\n type: 'carousel',\n focusAt: 'center',\n perView: 4,\n startAt: 2,\n peek: {\n before: 0,\n after: 100,\n },\n gap: 5,\n bound: true,\n breakpoints: {\n 1214: {\n perView: 3,\n },\n 794: {\n perView: 2,\n },\n 520: {\n perView: 1,\n },\n },\n });\n const glideArrows = document.querySelectorAll('.glide__arrow');\n glideArrows.forEach((glideArrow) =>\n {\n glideArrow.addEventListener('click', () =>\n {\n glide.go(glideArrow.dataset.glideDir);\n });\n });\n glide.mount();\n if (window.innerWidth > 520)\n {\n glide.update({\n peek: {\n before: 0,\n after: 0,\n },\n });\n }\n }\n\n document.getElementsByClassName('view-all-tools')[0].addEventListener('click', (element) =>\n {\n element.target.classList.toggle('showing');\n const toolsElements = document.getElementsByClassName('tool-container');\n for (let i = 0; i < toolsElements.length; i++)\n {\n toolsElements[i].classList.toggle('show-all');\n }\n });\n\n document.getElementsByClassName('view-all-exchanges')[0].addEventListener('click', (element) =>\n {\n element.target.classList.toggle('showing');\n const exchangesContainer = document.getElementsByClassName('exchanges-wrapper');\n const exchangesElements = exchangesContainer[0].getElementsByClassName('item');\n for (let i = 0; i < exchangesElements.length; i++)\n {\n exchangesElements[i].classList.toggle('show-all');\n }\n });\n});\n","// style-loader: Adds some css to the DOM by adding a