{"version":3,"file":"scripts/chunks/_app_app_scripts_core_views_O97-basket-overlay_ts.1e40fb6b45b5cc748195.mjs","mappings":"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","sources":["webpack://rockworld/./app/scripts/core/views/modal-form.ts","webpack://rockworld/./app/scripts/core/views/O97-basket-overlay.ts","webpack://rockworld/./app/scripts/core/compiled-templates/rockworld/modal-basket-template.js"],"sourcesContent":["/**\r\n * Dynamic Map\r\n *\r\n * @author Johannes Greve \r\n */\r\n\r\nimport Handlebars from 'handlebars';\r\nimport O53Form from './O53-form';\r\n\r\nimport '../compiled-templates/rockworld/modal-contact-form-template';\r\n\r\nconst modalContactFormTemplate = 'modal-contact-form';\r\n\r\nconst View = O53Form.extend({\r\n el: false,\r\n className: 'modal__body',\r\n\r\n isModal: true,\r\n\r\n getTemplate() {\r\n return Handlebars.templates[modalContactFormTemplate];\r\n },\r\n\r\n initialize() {\r\n const currentTarget = this.model.get('target');\r\n\r\n if (currentTarget) {\r\n this.model.set('form-id', currentTarget.dataset.formId);\r\n this.model.set('data-form-post-url', currentTarget.dataset.formPostUrl);\r\n this.model.set('data-form-name', currentTarget.dataset.formName);\r\n this.model.set('data-form-purpose', currentTarget.dataset.formPurpose);\r\n this.model.set('data-display-mode', currentTarget.dataset.displayMode);\r\n this.model.set('data-extra-class', currentTarget.dataset.extraClass);\r\n this.model.set('data-form-class', currentTarget.dataset.formClass);\r\n this.model.set('data-target', currentTarget.dataset.target);\r\n this.model.set('data-dont-followup-url', currentTarget.dataset.dontFollowupUrl);\r\n this.model.set('data-show-submit-message', currentTarget.dataset.showSubmitMessage);\r\n\r\n this.model.set('submit-message-header', currentTarget.dataset.submitMessageHeader);\r\n this.model.set('submit-message-content', currentTarget.dataset.submitMessageContent);\r\n this.model.set('submit-message-resubmit-button', currentTarget.dataset.submitMessageResubmitButton);\r\n }\r\n },\r\n\r\n onBeforeRender() {\r\n setTimeout(() => {\r\n App.personalization.initMarketo(true, this.onMarketoReady);\r\n this.el.classList.add('modal--show');\r\n }, 0);\r\n },\r\n\r\n prepopulateExtraFormFields() {\r\n const form = this.el.querySelector('form');\r\n form.setAttribute('data-target', this.model.get('data-target'));\r\n\r\n const formPurposeEPI = this.model.get('data-form-purpose');\r\n this.prepopulateFormField(form, 'formPurposeEPI', formPurposeEPI, true);\r\n\r\n if (this.options.type !== 'gated' || !this.model.get('gated-downloads')) {\r\n return;\r\n }\r\n\r\n const downloads = this.model.get('gated-downloads');\r\n let downloadData = 'Downloaded files:';\r\n let downloadDataNameFiles = 'Downloaded files:';\r\n let downloadedEPIFile = '';\r\n downloads.forEach((item) => {\r\n if (!item.data || !item.id || item.data.isNotDownloadedAfterFormSent) {\r\n return;\r\n }\r\n\r\n downloadData += ` \\n${item.data.title} (${window.location.origin}/api/MultipleDownloads/zip?files=${item.id}), format: ${item.format}`;\r\n downloadDataNameFiles += ` \\n${item.data.title}`;\r\n if (downloadedEPIFile !== '') {\r\n downloadedEPIFile += '|';\r\n }\r\n if (item.data.fileMarketoFilename != null) {\r\n downloadedEPIFile += `${item.data.fileMarketoFilename}`;\r\n }\r\n });\r\n\r\n this.prepopulateFormField(form, 'downloadedFiles', downloadData, false);\r\n this.prepopulateFormField(form, 'downloadedNameFiles', downloadDataNameFiles, false);\r\n this.prepopulateFormField(form, 'downloadedEPIFile', downloadedEPIFile, true);\r\n },\r\n});\r\n\r\nexport default View;\r\n","/**\r\n * O97 Basket Overlay\r\n *\r\n * @author Daniel Kvistgaard \r\n */\r\n\r\nimport Handlebars from 'handlebars';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { EventEnum, subscribe } from '@utils/custom-events';\r\nimport { PubSubKeys, PubSub } from '@utils/pubSub';\r\nimport ModalFormView from './modal-form';\r\n\r\nimport Select from '../../framework/select';\r\nimport Quantity from '../../framework/quantity';\r\n\r\nimport ModalView from './modal-view';\r\nimport '../compiled-templates/rockworld/modal-basket-template';\r\nimport '../compiled-templates/rockworld/modal-order-sample-template';\r\n\r\nconst modalBasketTemplate = 'modal-basket';\r\nconst modalOrderSampleTemplate = 'modal-order-sample';\r\nconst marketoFormUrl = '/custom-routes/personalization/submitform';\r\nconst replaceHtmlTagsRegex = /<[^>]*>?/gm;\r\n\r\nconst View = ModalView.extend({\r\n getTemplate() {\r\n let templateFile;\r\n\r\n switch (this.options.type) {\r\n case 'basket-file': {\r\n templateFile = modalBasketTemplate;\r\n break;\r\n }\r\n case 'order-sample': {\r\n templateFile = modalOrderSampleTemplate;\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n return Handlebars.templates[templateFile];\r\n },\r\n\r\n events: {\r\n 'click .js-download-file': 'downloadFile',\r\n 'click .js-basket': 'addToBasket',\r\n },\r\n\r\n apiUrl: 'api/specification/GetTileVariant',\r\n\r\n onRender() {\r\n const useColour = this.model.attributes.noExcludeColour;\r\n const requestData = {};\r\n requestData.tileId = this.model.attributes.tileId;\r\n _.each(this.model.attributes.specs, (value, key) => {\r\n requestData[key] = value;\r\n });\r\n\r\n const baseApiUrl = window.apiUrl || '/';\r\n const edgeOptions = this.model.get('edgeOptions');\r\n this.apiUrl = baseApiUrl + this.apiUrl;\r\n\r\n const selects = this.el.querySelectorAll('.js-select');\r\n if (selects) {\r\n [].forEach.call(selects, (select) => {\r\n select.addEventListener('change', this.onChangeSelect.bind(this));\r\n if (select.name === 'fileType') {\r\n this.colorId = select.options && select.options[0] ? select.options[0].value : '';\r\n this.colorName = select.options && select.options[0] ? select.options[0].innerHTML : '';\r\n }\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n this.selects = new Select({\r\n el: this.el.querySelectorAll('.js-select'),\r\n });\r\n\r\n this.count = 1;\r\n this.quantity = new Quantity(this.el.querySelector('.js-quantity'));\r\n this.quantity.on('change', this.quantityChange.bind(this));\r\n\r\n this.el.classList.add('modal--show');\r\n if (edgeOptions && edgeOptions.length && useColour) {\r\n const colorSelect = this.el.querySelector('.js-file-type').customSelect;\r\n const option = document.createElement('option');\r\n const colorPlaceholder = this.el.querySelector('.js-file-type').dataset.placeholder;\r\n option.text = colorPlaceholder;\r\n colorSelect.append(option);\r\n colorSelect.disabled = true;\r\n }\r\n\r\n // we have provided some selected EdgeValue, so select it\r\n if (this.model.attributes.selectedEdgeValue) {\r\n this._selectValueInDropdown('#select-edge', this.model.attributes.selectedEdgeValue, () =>\r\n this.changeEdge(this.model.attributes.selectedEdgeValue)\r\n );\r\n }\r\n const useEdges = this.model.attributes.noExcludeEdges;\r\n if (!useEdges && !this.model.attributes.colorOptions) {\r\n this.getColors();\r\n }\r\n }, 0);\r\n\r\n if (this.options.parent) {\r\n this.options.parent.on('mobileDownload:gatedContent', this.mobileDownload.bind(this));\r\n }\r\n\r\n if (edgeOptions && edgeOptions.length) {\r\n const addToCartButton = this.el.querySelector('.O97-basket-overlay__add-to-basket__btn-area .js-basket');\r\n addToCartButton.classList.add('is-disabled');\r\n }\r\n },\r\n\r\n _selectValueInDropdown(selectSelector, valueToSelect, callbackOnSuccess) {\r\n // get 'select' element options and try to select existing value\r\n if (!valueToSelect) {\r\n return;\r\n }\r\n const select = this.el.querySelector(selectSelector);\r\n const clearValue = valueToSelect.replace(replaceHtmlTagsRegex, '');\r\n\r\n // get option with value\r\n const edgeOptionElement = [...select.options].find(\r\n (el) => el && el.textContent && el.textContent.replace(replaceHtmlTagsRegex, '') === clearValue\r\n );\r\n\r\n if (!edgeOptionElement) {\r\n return;\r\n }\r\n\r\n // set value to custom-select component\r\n select.customSelect.value = edgeOptionElement.value;\r\n if (callbackOnSuccess) {\r\n callbackOnSuccess();\r\n }\r\n },\r\n\r\n quantityChange(quantity) {\r\n this.count = quantity;\r\n },\r\n\r\n onChangeSelect(e) {\r\n if (e.target.name === 'edge') {\r\n this.changeEdge(e.target.options[e.target.selectedIndex].text);\r\n } else if (e.target.name === 'fileType') {\r\n const addToCartButton = this.el.querySelector('.O97-basket-overlay__add-to-basket__btn-area .js-basket');\r\n const useEdges = this.model.attributes.noExcludeEdges;\r\n\r\n if (!useEdges && !this.model.attributes.edgeId && addToCartButton) {\r\n if (e.target.selectedIndex > 0) {\r\n addToCartButton.classList.remove('is-disabled');\r\n } else {\r\n addToCartButton.classList.add('is-disabled');\r\n }\r\n }\r\n this.colorId = e.target.value;\r\n this.colorName = e.target.options[e.target.selectedIndex] ? e.target.options[e.target.selectedIndex].text : '';\r\n }\r\n },\r\n\r\n downloadFile(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n const select = this.el.querySelector('.js-file-type');\r\n const fileType = [].find.call(this.model.get('fileTypes'), (item) => item.value === select.value);\r\n const isSingleSignupDownload = this.model.get('isSingleSignupDownload');\r\n\r\n sessionStorage.setItem('single-download-id', fileType.fileId);\r\n sessionStorage.setItem('single-download-file-type', JSON.stringify(fileType));\r\n sessionStorage.setItem('single-download-item', JSON.stringify(this.model.toJSON()));\r\n\r\n const visitorFilledForm = App.visitor.isFormFilled;\r\n const showForm =\r\n !visitorFilledForm ||\r\n !(\r\n visitorFilledForm &&\r\n (document.querySelector('body').dataset.enableSingleSignupDocumentsDownload === 'true' ||\r\n isSingleSignupDownload)\r\n );\r\n\r\n if (fileType.isGated === true && showForm) {\r\n this.openGateModal('mobile-download', fileType.marketoFormName, fileType.marketoFormId, marketoFormUrl, fileType);\r\n } else {\r\n if (fileType && fileType.fileId !== undefined) {\r\n App.tracking.trackDownloadFileClick(\r\n 'events',\r\n 'download',\r\n 'click',\r\n `${this.model.get('title')}.${fileType.value}`,\r\n fileType.value,\r\n fileType.category ?? 'missing',\r\n 'gated'\r\n );\r\n\r\n window.open(`/api/MultipleDownloads/zip?files=${fileType.fileId}`);\r\n }\r\n\r\n this.options.instance.modal.layout.close();\r\n }\r\n },\r\n\r\n mobileDownload() {\r\n const downloadId = sessionStorage.getItem('single-download-id');\r\n const fileType = JSON.parse(sessionStorage.getItem('single-download-file-type'));\r\n const downloadItem = JSON.parse(sessionStorage.getItem('single-download-item'));\r\n const isFileGated = downloadItem.isGated ? 'gated' : 'not gated';\r\n\r\n if (downloadId) {\r\n window.open(`/api/MultipleDownloads/zip?files=${downloadId}`);\r\n }\r\n\r\n if (downloadItem.title) {\r\n const trackingLabel =\r\n fileType == null && fileType.value ? downloadItem.title : `${downloadItem.title}.${fileType.value}`;\r\n\r\n App.tracking.trackDownloadFileClick(\r\n 'events',\r\n 'download',\r\n 'click',\r\n trackingLabel,\r\n fileType.value,\r\n downloadItem.category ?? 'missing',\r\n isFileGated\r\n );\r\n }\r\n\r\n sessionStorage.removeItem('single-download-id');\r\n sessionStorage.removeItem('single-download-file-type');\r\n sessionStorage.removeItem('single-download-item');\r\n },\r\n\r\n openGateModal(gateType, dataFormName, dataFormId, dataFormUrl, fileTypeObject) {\r\n App.modal.create({\r\n view: ModalFormView,\r\n type: 'gated',\r\n parent: this.options.parent,\r\n model: new Backbone.Model({\r\n 'data-form-name': dataFormName,\r\n 'data-form-post-url': dataFormUrl,\r\n 'form-id': dataFormId,\r\n 'gate-type': gateType,\r\n 'gated-downloads': [\r\n {\r\n id: fileTypeObject.fileId,\r\n format: fileTypeObject.value,\r\n data: this.model.toJSON(),\r\n },\r\n ],\r\n }),\r\n });\r\n },\r\n\r\n addToBasket(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n switch (this.options.type) {\r\n case 'basket-file': {\r\n this.addPrintToBasket();\r\n break;\r\n }\r\n case 'order-sample': {\r\n this.addOrderSampleToBasket();\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n changeEdge(selectedEdgeName) {\r\n const useColour = this.model.attributes.noExcludeColour;\r\n const edge = this.el.querySelector('.js-edge');\r\n const addToCartButton = this.el.querySelector('.O97-basket-overlay__add-to-basket__btn-area .js-basket');\r\n\r\n this.edgeId = edge.value;\r\n this.edgeName = selectedEdgeName;\r\n\r\n if (!useColour) {\r\n if (edge.value) {\r\n addToCartButton.classList.remove('is-disabled');\r\n return;\r\n }\r\n addToCartButton.classList.add('is-disabled');\r\n return;\r\n }\r\n\r\n const colorSelectEl = this.el.querySelector('.js-file-type');\r\n const colorSelect = colorSelectEl.customSelect;\r\n\r\n // empty the dropdown before adding items\r\n colorSelect.empty();\r\n\r\n // fetch colour API endpoint\r\n if (!edge.value) {\r\n const option = document.createElement('option');\r\n option.text = colorSelectEl.dataset.placeholder;\r\n colorSelect.append(option);\r\n colorSelect.disabled = true;\r\n addToCartButton.classList.add('is-disabled');\r\n return;\r\n }\r\n\r\n this.getColors(edge);\r\n },\r\n\r\n changeColor() {\r\n const useExcludeEdges = this.model.attributes.noExcludeEdges;\r\n const color = this.el.querySelector('.js-file-type');\r\n const addToCartButton = this.el.querySelector('.O97-basket-overlay__add-to-basket__btn-area .js-basket');\r\n\r\n if (!useExcludeEdges) {\r\n if (color.value) {\r\n addToCartButton.classList.remove('is-disabled');\r\n return;\r\n }\r\n addToCartButton.classList.add('is-disabled');\r\n }\r\n },\r\n\r\n addPrintToBasket() {\r\n const fileTypes = this.model.get('fileTypes');\r\n const printFile = (fileTypes?.length && fileTypes.find((fileType) => fileType.value === 'print')) || false;\r\n const printId = printFile ? printFile.fileId : false;\r\n\r\n if (printId === false) {\r\n return;\r\n }\r\n\r\n const basketData = {\r\n id: printId,\r\n count: this.count,\r\n data: this.model.toJSON(),\r\n };\r\n\r\n PubSub.trigger(PubSubKeys.basketAddItem, 'print', basketData);\r\n\r\n this.options.instance.modal.layout.close();\r\n },\r\n\r\n addOrderSampleToBasket() {\r\n const quantity = this.el.querySelector('.js-quantity__number').innerHTML;\r\n const edgeOptions = this.model.get('edgeOptions');\r\n const useExcludeEdges = this.model.get('noExcludeEdges');\r\n let thicknessValue = '';\r\n let sizeValue = '';\r\n let specs = 'Specs: ';\r\n\r\n _.each(this.model.attributes.specs, (value, key) => {\r\n specs += `${key}: ${value}, `;\r\n });\r\n\r\n if (edgeOptions && edgeOptions.length && useExcludeEdges) {\r\n specs += `edge: ${this.edgeName}, `;\r\n }\r\n if (this.colorName) {\r\n specs += `color: ${this.colorName}`;\r\n }\r\n // if there is no color then 'specs=edge:X,' and we have to remove the comma\r\n specs = specs.slice(-2) === ', ' ? specs.substring(0, specs.length - 2) : specs;\r\n\r\n if (this.model.attributes.sizeId) {\r\n sizeValue = `-${this.model.attributes.sizeId}`;\r\n }\r\n\r\n if (this.model.attributes.specs && this.model.attributes.specs.thickness) {\r\n thicknessValue = `-${this.model.attributes.specs.thickness}`;\r\n }\r\n\r\n const promise = this.getTileVariantId(this.colorId);\r\n promise.then((response) => {\r\n if (response) {\r\n const basketData = {\r\n id: `${response.dataId}${this.edgeName}${sizeValue}${thicknessValue}`,\r\n count: parseInt(quantity, 10),\r\n format: 'sample',\r\n data: {\r\n image: this.model.attributes.productImage,\r\n title: this.model.attributes.tileName,\r\n sampleColorName: this.colorName,\r\n text: specs,\r\n },\r\n };\r\n\r\n PubSub.trigger(PubSubKeys.basketAddItem, 'sample', basketData);\r\n this.options.instance.modal.layout.close();\r\n }\r\n });\r\n },\r\n\r\n getTileVariantId(colorId) {\r\n let params = `productId=${this.model.attributes.tileId}`;\r\n if (this.edgeId) {\r\n params = `${params}&edgeId=${this.edgeId}`;\r\n }\r\n const colorIdValue = colorId || this.colorId;\r\n\r\n if (colorIdValue && colorIdValue !== undefined) {\r\n params = `${params}&colorId=${colorIdValue}`;\r\n }\r\n\r\n const fetchOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n };\r\n\r\n const url = `${this.apiUrl}?${params}`;\r\n\r\n return fetch(url, fetchOptions)\r\n .then((response) => {\r\n if (!response.ok) {\r\n throw new Error(`${response.status} - ${response.statusText} (url: ${response.url})`);\r\n }\r\n return response.json();\r\n })\r\n .catch((ex) => {\r\n console.warn('somethings wrong', ex);\r\n });\r\n },\r\n\r\n getColors(edge) {\r\n const colorSelectEl = this.el.querySelector('.js-file-type');\r\n const colorSelect = colorSelectEl.customSelect;\r\n const addToCartButton = this.el.querySelector('.O97-basket-overlay__add-to-basket__btn-area .js-basket');\r\n\r\n const fetchOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n };\r\n const productId = this.model.attributes.tileId;\r\n const colorPath = '/api/specification/GetColors';\r\n let params = `productId=${productId}`;\r\n\r\n if (edge) {\r\n params = `${params}&edgeId=${edge.value}`;\r\n }\r\n\r\n const url = `${colorPath}?${params}`;\r\n\r\n fetch(url, fetchOptions)\r\n .then((response) => {\r\n if (!response.ok) {\r\n throw new Error(`${response.status} - ${response.statusText} (url: ${response.url})`);\r\n }\r\n return response.json();\r\n })\r\n .then((res) => {\r\n // loop over colours and add options to select dropdown\r\n [].forEach.call(res.colors, (color) => {\r\n const option = document.createElement('option');\r\n option.text = color.label;\r\n option.value = color.guid;\r\n colorSelect.append(option);\r\n });\r\n if (edge) {\r\n addToCartButton.classList.remove('is-disabled');\r\n }\r\n colorSelect.disabled = false;\r\n\r\n // create a change event\r\n const event = document.createEvent('HTMLEvents');\r\n event.initEvent('change', true, false);\r\n colorSelectEl.dispatchEvent(event);\r\n\r\n // if color was provided on creating then select it\r\n if (this.model.attributes.selectedColorValue) {\r\n this._selectValueInDropdown('#select-color', this.model.attributes.selectedColorValue, () =>\r\n this.changeColor()\r\n );\r\n }\r\n })\r\n .catch((ex) => {\r\n console.warn('somethings wrong', ex);\r\n });\r\n },\r\n});\r\n\r\nsubscribe(EventEnum.openOpenSampleModal, (event) => {\r\n App.modal.create({\r\n view: View,\r\n type: 'order-sample',\r\n model: event.detail.model,\r\n });\r\n});\r\n\r\nsubscribe(EventEnum.openBasketOverlayModal, (event) => {\r\n App.modal.create({\r\n view: View,\r\n type: 'basket-file',\r\n model: event.detail.model,\r\n });\r\n});\r\n\r\nexport default View;\r\n","var Handlebars = require(\"handlebars\"); var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates['modal-basket'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n    + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":34},\"end\":{\"line\":7,\"column\":43}}}) : helper)))\n    + \"\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n
\\r\\n

\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"selectLabel\") || (depth0 != null ? lookupProperty(depth0,\"selectLabel\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"selectLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":33},\"end\":{\"line\":20,\"column\":50}}}) : helper))) != null ? stack1 : \"\")\n + \"

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"iconSmallArrowDown\") || (depth0 != null ? lookupProperty(depth0,\"iconSmallArrowDown\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconSmallArrowDown\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":34,\"column\":12},\"end\":{\"line\":34,\"column\":36}}}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"downloadBtnText\") || (depth0 != null ? lookupProperty(depth0,\"downloadBtnText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"downloadBtnText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":43,\"column\":7},\"end\":{\"line\":43,\"column\":28}}}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n
\\r\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(lookupProperty(helpers,\"eq\")||(depth0 && lookupProperty(depth0,\"eq\"))||container.hooks.helperMissing).call(alias1,(depth0 != null ? lookupProperty(depth0,\"value\") : depth0),\"print\",{\"name\":\"eq\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":26},\"end\":{\"line\":26,\"column\":44}}}),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":16},\"end\":{\"line\":28,\"column\":27}}})) != null ? stack1 : \"\");\n},\"7\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\r\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\r\\n
\\r\\n
Quantity:
\\r\\n
\\r\\n \\r\\n
1
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\";\n},\"useData\":true});\n"],"names":["View","O53Form","extend","el","className","isModal","getTemplate","Handlebars","initialize","currentTarget","this","model","get","set","dataset","formId","formPostUrl","formName","formPurpose","displayMode","extraClass","formClass","target","dontFollowupUrl","showSubmitMessage","submitMessageHeader","submitMessageContent","submitMessageResubmitButton","onBeforeRender","setTimeout","App","personalization","initMarketo","onMarketoReady","classList","add","prepopulateExtraFormFields","form","querySelector","setAttribute","formPurposeEPI","prepopulateFormField","options","type","downloads","downloadData","downloadDataNameFiles","downloadedEPIFile","forEach","item","data","id","isNotDownloadedAfterFormSent","title","window","location","origin","format","fileMarketoFilename","replaceHtmlTagsRegex","ModalView","templateFile","events","apiUrl","onRender","useColour","attributes","noExcludeColour","requestData","tileId","_","specs","value","key","baseApiUrl","edgeOptions","selects","querySelectorAll","call","select","addEventListener","onChangeSelect","bind","name","colorId","colorName","innerHTML","Select","count","quantity","Quantity","on","quantityChange","length","colorSelect","customSelect","option","document","createElement","colorPlaceholder","placeholder","text","append","disabled","selectedEdgeValue","_selectValueInDropdown","changeEdge","noExcludeEdges","colorOptions","getColors","parent","mobileDownload","selectSelector","valueToSelect","callbackOnSuccess","clearValue","replace","edgeOptionElement","find","textContent","e","selectedIndex","addToCartButton","edgeId","remove","downloadFile","preventDefault","fileType","isSingleSignupDownload","sessionStorage","setItem","fileId","JSON","stringify","toJSON","visitorFilledForm","visitor","isFormFilled","showForm","enableSingleSignupDocumentsDownload","isGated","openGateModal","marketoFormName","marketoFormId","undefined","tracking","trackDownloadFileClick","category","open","instance","modal","layout","close","downloadId","getItem","parse","downloadItem","isFileGated","trackingLabel","removeItem","gateType","dataFormName","dataFormId","dataFormUrl","fileTypeObject","create","view","ModalFormView","Backbone","addToBasket","addPrintToBasket","addOrderSampleToBasket","selectedEdgeName","edge","edgeName","colorSelectEl","empty","changeColor","useExcludeEdges","color","fileTypes","printFile","printId","basketData","PubSub","trigger","PubSubKeys","basketAddItem","thicknessValue","sizeValue","slice","substring","sizeId","thickness","getTileVariantId","then","response","dataId","parseInt","image","productImage","tileName","sampleColorName","params","colorIdValue","url","fetch","method","headers","Accept","ok","Error","status","statusText","json","catch","ex","console","warn","res","colors","label","guid","event","createEvent","initEvent","dispatchEvent","selectedColorValue","subscribe","EventEnum","openOpenSampleModal","detail","openBasketOverlayModal","require","template","templates","container","depth0","helpers","partials","helper","alias1","nullContext","alias2","hooks","helperMissing","alias3","alias4","escapeExpression","lookupProperty","propertyName","Object","prototype","hasOwnProperty","stack1","program","noop"],"sourceRoot":""}