1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9053,76967],{156:t=>{var e=function(t){var e;return!!t&&"object"==typeof t&&"[object RegExp]"!==(e=Object.prototype.toString.call(t))&&"[object Date]"!==e&&t.$$typeof!==i},i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function s(t,e){return!1!==e.clone&&e.isMergeableObject(t)?a(Array.isArray(t)?[]:{},t,e):t}function r(t,e,i){return t.concat(e).map(function(t){return s(t,i)})}function o(t){return Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[])}function n(t,e){try{return e in t}catch(t){return!1}}function a(t,i,l){(l=l||{}).arrayMerge=l.arrayMerge||r,l.isMergeableObject=l.isMergeableObject||e,l.cloneUnlessOtherwiseSpecified=s;var u,d,c=Array.isArray(i);return c!==Array.isArray(t)?s(i,l):c?l.arrayMerge(t,i,l):(d={},(u=l).isMergeableObject(t)&&o(t).forEach(function(e){d[e]=s(t[e],u)}),o(i).forEach(function(e){(!n(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(n(t,e)&&u.isMergeableObject(i[e])?d[e]=(function(t,e){if(!e.customMerge)return a;var i=e.customMerge(t);return"function"==typeof i?i:a})(e,u)(t[e],i[e],u):d[e]=s(i[e],u))}),d)}a.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,i){return a(t,i,e)},{})},t.exports=a},549:(t,e,i)=>{i.d(e,{A:()=>n,l:()=>o});var s=i(737),r=i(795);let o=t=>{if("function"==typeof Event)return new Event(t);let e=document.createEvent("Event");return e.initEvent(t,!0,!0),e};class n extends s.A{static #t=this.options={selectors:{customProductsForm:"form .swag-customized-products",buyForm:"#productDetailPageBuyProductForm",buyWidget:"#productDetailPageBuyProductForm.buy-widget",buyButton:"#productDetailPageBuyProductForm .btn-buy",subscription:{buyForm:"#productDetailPageSubscriptionBuyProductForm",buyWidget:"#productDetailPageSubscriptionBuyProductForm .buy-widget",buyButton:"#productDetailPageSubscriptionBuyProductForm .btn-buy",oneTimeRadio:"#subscription-interval-option-one-time-buy"}}};static #e=this._isSubscription=!1;_init(){this._context={customProductsForm:r.A.querySelector(document,this.options.selectors.customProductsForm),buyForm:r.A.querySelector(document,this.options.selectors.buyForm),buyWidget:r.A.querySelector(document,this.options.selectors.buyWidget),buyButton:r.A.querySelector(document,this.options.selectors.buyButton),subscription:{buyForm:r.A.querySelector(document,this.options.selectors.subscription.buyForm,!1),buyWidget:r.A.querySelector(document,this.options.selectors.subscription.buyWidget,!1),buyButton:r.A.querySelector(document,this.options.selectors.subscription.buyButton,!1),oneTimeRadio:r.A.querySelector(document,this.options.selectors.subscription.oneTimeRadio,!1)}},this._wrapAddEventListener(this._context.buyForm,this._context.subscription.buyForm),this._wrapAddEventListener(this._context.buyButton,this._context.subscription.buyButton),super._init()}get buyForm(){return n._isSubscription?this._context.subscription.buyForm:this._context.buyForm}get buyButton(){return n._isSubscription?this._context.subscription.buyButton:this._context.buyButton}get buyWidget(){return n._isSubscription?this._context.subscription.buyWidget:this._context.buyWidget}get customProductsForm(){return this._context.customProductsForm}_wrapAddEventListener(t,e){let i=this._contextSwitchingEventListener.bind(this,t,e);t&&(t.addEventListener=i),e&&(e.addEventListener=i)}_contextSwitchingEventListener(t,e,i,s){for(var r=arguments.length,o=Array(r>4?r-4:0),a=4;a<r;a++)o[a-4]=arguments[a];EventTarget.prototype.addEventListener.apply(t,[i,function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];n._isSubscription||s(...e)},...o]),e&&EventTarget.prototype.addEventListener.apply(e,[i,function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];n._isSubscription&&s(...e)},...o])}}},967:(t,e,i)=>{i.r(e),i.d(e,{SWAG_CUSTOMIZED_PRODUCTS_FILE_UPLOAD:()=>n,default:()=>a});var s=i(549),r=i(68),o=i(795);let n={EVENT:{UPLOAD_FINISHED:"SwagCustomizedProductsFileUploadFinished",UPLOAD_FAILED:"SwagCustomizedProductsFileUploadFailed",UPLOAD_REMOVED:"SwagCustomizedProductsFileUploadRemoved"}};class a extends s.A{static #t=this.options={...super.options,endpoint:"",optionId:"",maxCount:1,selectors:{...super.options.selectors,dropzonePrefix:"#customized-products-dropzone-",inputPrefix:"#customized-products-dropzone-input-",browseButtonPrefix:"#customized-products-browse-",dropzoneIdPrefix:"#customized-products-dropzone-",upload:".customized-products-upload",dropzone:".customized-products-upload__dropzone",uploadedFilesList:".customized-products-upload-files",fileTemplate:".customized-products-upload-files-element",filename:".customized-products-upload-files-element__container-filename",iconElement:".customized-products-upload-files-element__container-icon",closeButton:".customized-products-upload-files-element__container-close-button",priceDisplayContainer:'[data-swag-customized-product-price-display="true"]',customizedProductContainer:".swag-customized-products",iconSuccess:".customized-products-upload-icon-success",iconError:".customized-products-upload-icon-error",errorText:".customized-products-error-subtitle"},classes:{dragover:"dragover",success:"is--success",error:"is--error"}};init(){this.fileUpload=this.el,!1!==this._prepareUploadedFilesList()&&(this.stepByStepElement=o.A.querySelector(this.buyForm,'*[data-swag-customized-product-step-by-step="true"]',!1),this.dropzone=o.A.querySelector(this.fileUpload,this.options.selectors.dropzonePrefix+this.options.optionId),this.input=o.A.querySelector(this.dropzone,this.options.selectors.inputPrefix+this.options.optionId),this.browseButton=o.A.querySelector(this.dropzone,this.options.selectors.browseButtonPrefix+this.options.optionId),this.iconSuccess=o.A.querySelector(this.fileUpload,this.options.selectors.iconSuccess).innerHTML,this.iconError=o.A.querySelector(this.fileUpload,this.options.selectors.iconError).innerHTML,this.httpClient=new r.A,this.registry=new Map,this._registerEventListeners())}_prepareUploadedFilesList(){this.uploadedFilesList=o.A.querySelector(this.fileUpload,this.options.selectors.uploadedFilesList);
1let t=o.A.querySelector(this.uploadedFilesList,this.options.selectors.fileTemplate);return this.fileTemplate=t.cloneNode(!0),this.uploadedFilesList.hasChildNodes()&&this.uploadedFilesList.removeChild(t),null!==this.fileTemplate}_registerEventListeners(){this.input.addEventListener("change",this._onFileInputChanged.bind(this)),this.browseButton.addEventListener("keypress",this._onBrowse.bind(this)),this.browseButton.addEventListener("click",this._onBrowse.bind(this)),this.dropzone.addEventListener("drop",this._onDropOnDropzone.bind(this)),document.addEventListener("dragenter",this._onDragEnter.bind(this),!1),document.addEventListener("dragleave",this._onDragLeave.bind(this),!1),document.addEventListener("dragover",this._onDragOver,!1),document.addEventListener("drop",this._onDropOnDocument.bind(this),!1)}_onDragEnter(t){t.preventDefault();let e=t.target,i=this.options.selectors.dropzoneIdPrefix+this.options.optionId;return!!e.closest(i)&&(this.dropzone.classList.add(this.options.classes.dragover),this.browseButton.setAttribute("disabled","disabled"),!0)}_onDragLeave(t){let e=t.target,i=this.options.selectors.dropzoneIdPrefix+this.options.optionId;return!e.closest(i)&&(this.dropzone.classList.remove("dragover"),this.browseButton.removeAttribute("disabled"),!0)}_onDragOver(t){t.preventDefault()}_onDropOnDocument(t){t.preventDefault(),this.dropzone.classList.remove(this.options.classes.dragover),this.browseButton.removeAttribute("disabled")}_onBrowse(t){t.preventDefault(),(t.pointerType||"Enter"===t.key)&&this.input.click()}_onDropOnDropzone(t){this._onFilesAdded(t.dataTransfer.files)}_onFileInputChanged(t){this._onFilesAdded(t.target.files)}_onFilesAdded(t){Array.from(t).forEach(this._handleFileUpload.bind(this)),this.input.value=""}_handleFileUpload(t){if(this.registry.has(t.name))return!1;if(this.registry.set(t.name,{file:t,element:this._appendNewFileElement(t.name),valid:!1,uploaded:!1}),this.registry.size>this.options.maxCount)return this._onUploadError(t.name,"422"),!1;let e=new FileReader;return e.addEventListener("error",this._onUploadError.bind(this)),e.addEventListener("load",this._sendUploadRequest.bind(this,t)),e.readAsArrayBuffer(t),!0}_appendNewFileElement(t){let e=document.createElement("div");return e.setAttribute("class",this.fileTemplate.getAttribute("class")),e.innerHTML=this.fileTemplate.innerHTML,o.A.querySelector(e,this.options.selectors.filename).innerHTML=t,this.uploadedFilesList.appendChild(e),e}_sendUploadRequest(t){let e=new FormData;e.append("file",t),e.append("optionId",this.options.optionId),this.httpClient.post(this.options.endpoint,e,this._uploadRequestCallback.bind(this,t.name),"multipart/form-data",!0)}_uploadRequestCallback(t,e,i){let s={};try{s=JSON.parse(e)}catch(e){return this._onUploadError(t,i.status.toString()),!1}return void 0!==s.errors?this._onUploadError(t,i.status.toString()):this._onUploadSuccess(t,s),this.updateBuyButton(),!0}_onUploadSuccess(t,e){let i=this.registry.get(t);if(!i)return;let s=o.A.querySelector(i.element,this.options.selectors.iconElement);this.resetUploadElement(t),i.valid=!0,i.uploaded=!0,i.element.classList.add(this.options.classes.success),s.innerHTML=this.iconSuccess;let r=this._createMediaIdInput(t,e.mediaId),a=this._createFileNameInput(t);this.input.appendChild(r),this.input.appendChild(a),Array.from(this.registry.values()).map(t=>t.file).forEach(this._handleFileUpload.bind(this)),this.updatePriceDisplay(),o.A.querySelector(i.element,this.options.selectors.closeButton).addEventListener("click",this._onRemoveValidElement.bind(this,i,r,a)),this.$emitter.publish(n.EVENT.UPLOAD_FINISHED)}resetUploadElement(t){if(!this.registry.has(t))return!1;let e=this.registry.get(t);return e.valid=!1,o.A.querySelector(e.element,this.options.selectors.errorText).innerHTML="",e.element.classList.remove(this.options.classes.success),e.element.classList.remove(this.options.classes.error),!0}_onUploadError(t,e){let i=this.registry.get(t);if(!i)return;i.valid=!1,i.uploaded=!1;let s=o.A.querySelector(i.element,this.options.selectors.iconElement);i.element.classList.add(this.options.classes.error),s.innerHTML=this.iconError,o.A.querySelector(i.element,this.options.selectors.errorText).innerHTML=this.getSnippetByErrorC
1ode(e),o.A.querySelector(i.element,this.options.selectors.closeButton).addEventListener("click",this._onRemoveInvalidElement.bind(this,i)),this.$emitter.publish(n.EVENT.UPLOAD_FAILED)}_onRemoveValidElement(t,e,i,s){this._removeElement(t,s),e.remove(),i.remove(),this.updatePriceDisplay(),this.updateBuyButton(),this.triggerExclusionValidation(),this.$emitter.publish(n.EVENT.UPLOAD_REMOVED)}_onRemoveInvalidElement(t,e){this._removeElement(t,e),this.triggerExclusionValidation()}updateBuyButton(){let t=o.A.querySelector(this.buyForm,this.options.selectors.customizedProductContainer,!1);t&&window.PluginManager.getPluginInstanceFromElement(t,"SwagCustomizedProductsFormValidator").onFormChange()}_removeElement(t,e){if(e.preventDefault(),this.uploadedFilesList.contains(t.element)&&this.uploadedFilesList.removeChild(t.element),this.registry.delete(t.file.name),Array.from(this.registry.values()).filter(t=>{let{uploaded:e}=t;return e}).length<this.options.maxCount){let t=Array.from(this.registry.values()).filter(t=>{let{uploaded:e}=t;return!e});t.length&&this._sendUploadRequest(t[0].file)}this.updateBuyButton()}_createMediaIdInput(t,e){let i=document.createElement("input");return i.type="hidden",i.name=`customized-products-template[options][${this.options.optionId}][media][${t}][id]`,i.value=e,i}_createFileNameInput(t){let e=document.createElement("input");return e.type="hidden",e.name=`customized-products-template[options][${this.options.optionId}][media][${t}][filename]`,e.value=t,e}updatePriceDisplay(){let t=o.A.querySelector(document,this.options.selectors.priceDisplayContainer,!1);return!!t&&(window.PluginManager.getPluginInstanceFromElement(t,"SwagCustomizedProductPriceDisplay").onFormChange(),!0)}triggerExclusionValidation(){let t=o.A.querySelector(document,this.options.selectors.customizedProductContainer,!1);if(!t)return!1;let e=window.PluginManager.getPluginInstanceFromElement(t,"SwagCustomizedProductsExclusionListValidation");return!!e&&(e.onInputChange(),!0)}getSnippetByErrorCode(t){let e=o.A.getDataAttribute(this.el,"data-swag-customized-products-file-upload-translation-errors");return e[t]||e.generic}}},53:(t,e,i)=>{i.r(e),i.d(e,{default:()=>l});var s=i(549),r=i(795);class o{static iterate(t,e){if(t instanceof Map||Array.isArray(t))return t.forEach(e);if(t instanceof FormData){for(var i of t.entries())e(i[1],i[0]);return}if(t instanceof NodeList)return t.forEach(e);if(t instanceof HTMLCollection)return Array.from(t).forEach(e);if(t instanceof Object)return Object.keys(t).forEach(i=>{e(t[i],i)});throw Error(`The element type ${typeof t} is not iterable!`)}}var n=i(59),a=i(967);class l extends s.A{static #t=this.options={...super.options,containerSelector:".swag-customized-products__scrollable",pageSelector:".swag-customized-products__item",configureStepByStepSelector:'*[data-swag-customized-product-step-by-step-configure="true"]',pagerSelector:".swag-customized-products__pager-holder",navigationSelector:".swag-customized-products__navigation-holder",formControlSelector:".swag-customized-products-form-control",currentPageSelector:".swag-customized-products-pager__page-number",nextButtonSelector:".swag-customized-products-pager__button.btn-next",fileUploadSelector:".customized-products-upload",fileUploadElementClass:"swag-customized-products-option-type-template-fileupload",fileUploadDataAttribute:"swag-customized-products-file-upload-options",fileUploadFilesSelector:".customized-products-upload-files",dateTimeClass:"swag-customized-products-options-datetime",scrollableClass:"is--scrollable",history:{enabled:!0,hashPrefix:"wizard-step-"},validation:{delay:300,disableBuyButtonOnInvalid:!0},maxContentHeight:500};init(){this.translations={btnPrev:r.A.getDataAttribute(this.el,"swag-customized-product-step-by-step-translation-btnprev"),btnNext:r.A.getDataAttribute(this.el,"swag-customized-product-step-by-step-translation-btnnext"),btnFinish:r.A.getDataAttribute(this.el,"swag-customized-product-step-by-step-translation-btnfinish"),required:r.A.getDataAttribute(this.el,"swag-customized-product-step-by-step-translation-required"),stepReader:r.A.getDataAttribute(this.el,"swag-customized-product-step-by-step-translation-stepreader")},this.containerEl=r.A.querySelector(this.el,this.options.containerSelector),this.pages=r.A.querySelectorAll(this.el,this.options.pageSelector),this.pages=this.collectPages(this.pages),this.pagesCount=this.pages.length,this.currentPage=1,this.configureElements=r.A.querySelectorAll(this.el,this.options.configureStepByStepSelector),this.pagerEl=r.A.querySelector(this.el,this.options.pagerSelector),this.pagerEl.innerHTML=this.renderPager(),this.navigationEntries=this.collectNavigationEntries(this.pages),this.navigationEl=r.A.querySelector(this.el,this.options.navigationSelector),this.navigationEl.innerHTML=this.renderNavigationSelection(),o.iterate(this.configureElements,t=>{t.removeAttribute("disabled")}),this.options.history.enabled&&this.transitionToPage(1),this._registerEvents()}_registerEvents(){o.iterate(this.configureElements,t=>{t.addEventListener("click",this.onClickStartButton.bind(this),!1)}),this.buyForm.addEventListener("change",this.onFormChanged.bind(this));let t=r.A.querySelectorAll(this.buyForm,`*[data-${this.options.fileUploadDataAttribute}]`,!1);return t.length>0&&t.forEach(t=>{t.addEventListener(a.SWAG_CUSTOMIZED_PRODUCTS_FILE_UPLOAD.EVENT.UPLOAD_FINISHED,this.onFormChanged.bind(this)),t.addEventListener(a.SWAG_CUSTOMIZED_PRODUCTS_FILE_UPLOAD.EVENT.UPLOAD_REMOVED,this.onFormChanged.bind(this))}),this.pagerEl.addEventListener("click",t=>{t.preventDefault(),t.target.matches(".btn-prev")&&this.prevPage(),t.target.matches(".btn-next")&&this.nextPage(),t.target.matches(".btn-prev, .btn-next")&&r.A.querySelector(this.el,this.options.currentPageSelector,!1).focus()}),this.navigationEl.addEventListener("change",this.onNavigationEntry.bind(this)),!!l.isHistoryApiSupported()&&
1!!this.options.history.enabled&&(window.addEventListener("popstate",this.onPopstate.bind(this)),!0)}onNavigationEntry(t){if(!t.target.matches(".swag-customized-products-navigation"))return;let e=parseInt(t.target.options[t.target.selectedIndex].value,10);this.transitionToPage(e+1)}onPopstate(){this.parseLocationHashOnAndJumpToPage()}onClickStartButton(t){t.preventDefault(),this.transitionToPage(2)}onFormChanged(){this.pages=this.collectPages(r.A.querySelectorAll(this.el,this.options.pageSelector)),this.renderPager()}renderNavigationSelection(){return this.navigationEl.style.display=this.currentPage<=1||this.currentPage>=this.pagesCount?"none":"block",` 2 <div class="form-group"> 3 <div class="swag-customized-products-navigation"> 4 <select class="swag-customized-products-navigation" tabindex="-1"> 5 ${this.navigationEntries.map(t=>` 6 <option value="${t.pageNum}"${this.currentPage-1===t.pageNum?' selected="selected"':""}> 7 ${t.pageNum} - ${t.name} ${t.required?`(${this.translations.required})`:""} 8 </option>`)} 9 </select> 10 <span class="swag-customized-products-navigation__text"> 11 ${(()=>{let t=this.navigationEntries.find(t=>this.currentPage-1===t.pageNum);return t?`${t.pageNum}. ${t.name}`:""})()} 12 </span> 13 <svg 14 xmlns="http://www.w3.org/2000/svg" 15 xmlns:xlink="http://www.w3.org/1999/xlink" 16 width="16" 17 height="16"
18 viewBox="0 0 16 16" 19 class="swag-customized-products-navigation__icon"> 20 <defs> 21 <path 22 id="icons-small-arrow-small-down-a" 23 d="M5.70710678,6.29289322 C5.31658249,5.90236893 4.68341751,5.90236893 4.29289322,6.29289322 C3.90236893,6.68341751 3.90236893,7.31658249 4.29289322,7.70710678 L7.29289322,10.7071068 C7.68341751,11.0976311 8.31658249,11.0976311 8.70710678,10.7071068 L11.7071068,7.70710678 C12.0976311,7.31658249 12.0976311,6.68341751 11.7071068,6.29289322 C11.3165825,5.90236893 10.6834175,5.90236893 10.2928932,6.29289322 L8,8.58578644 L5.70710678,6.29289322 Z"/> 24 </defs> 25 <use 26 fill="#758CA3" 27 fill-rule="evenodd" 28 transform="matrix(-1 0 0 1 16 0)" 29 xlink:href="#icons-small-arrow-small-down-a"/> 30 </svg> 31 </div> 32 </div> 33 `}renderPager(){var t=this;let e=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=t.pagesCount-2,s=t.currentPage>=t.pagesCount?i:t.currentPage-1;return e&&t.translations.stepReader?t.translations.stepReader.replace("%current%",s).replace("%total%",i):`${s} / ${i}`};return` 34 <div class="swag-customized-products-pager${this.currentPage<=1||this.currentPage>=this.pagesCount?" d-none":""}"> 35 <button class="swag-customized-products-pager__button btn-prev btn btn-sm btn-outline-primary" tabindex="0" 36 ${this.currentPage<=1?' disabled="disabled"':""}> 37 ${this.translations.btnPrev} 38 </button> 39 40 <label class="swag-customized-products-pager__page-number" aria-label="${e(!0)}" tabindex="-1"> 41 <span aria-hidden="true">${e()}</span> 42 </label> 43 44 <button class="swag-customized-products-pager__button btn-next btn btn-sm btn-outline-primary" tabindex="0" 45 ${(()=>{let t=this.pages[this.currentPage-1],e=r.A.querySelector(this.el,this.options.nextButtonSelector,!1);return l.isPageValid(t)?(e&&e.removeAttribute("disabled"),this.currentPage>=this.pagesCount?' disabled="disabled"':""):(e&&e.setAttribute("disabled","disabled"),' disabled="disabled"')})()}> 46 ${this.currentPage-1>=this.pagesCount-2?this.translations.btnFinish:this.translations.btnNext} 47 </button> 48 </div> 49 `}collectPages(t){return Array.from(t).map((t,e)=>{let i=r.A.getDataAttribute(t,"name",!1)||null,s=this.collectFormControlFromPage(t,!0),o=!1;return s&&s.elements&&(o=s.elements.some(t=>{let e=r.A.getDataAttribute(t,"required",!1);return t.required||!!t.dataset.swagCustomizedProductsSelectionRequired||e})),{pageEl:t,pageNum:e,name:i,required:o,formValidation:s}})}collectNavigationEntries(t){return t.reduce((t,e)=>(e.name&&t.push(e),t),[])}nextPage(){let t=this.currentPage+1;return t>=this.pagesCount&&(t=this.pagesCount),this.transitionToPage(t)}prevPage(){let t=this.currentPage-1;return t<1&&(t=1),this.transitionToPage(t)}resetToFirstPage(){return this.transitionToPage(1)}transitionToPage(t){let e=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.resetPreviousFormControl(this.pages[this.currentPage-1]),this.currentPage=t,this.setActiveFormElement(this.pages[this.currentPage-1]),this.pagerEl.innerHTML=this.renderPager(),this.navigationEl.innerHTML=this.renderNavigationSelection(),this.pages.forEach(t=>{t.pageEl.classList.add("swag-customized-products_step-mode-hidden"),t.pageEl.classList.remove("swag-customized-products_step-mode-shown"),t.pageEl.setAttribute("inert",!0)}),this.pages[t-1].pageEl.classList.remove("swag-customized-products_step-mode-hidden"),this.pages[t-1].pageEl.classList.add("swag-customized-products_step-mode-shown"),this.pages[t-1].pageEl.removeAttribute("inert"),e&&this.updateHistory(),!0}setActiveFormElement(t){let{elements:e,handler:i}=t.formValidation;return!!e&&!!i&&(e.forEach(t=>{t.addEventListener("input",i,!1)}),!0)}collectFormControlFromPage(t){let e=Array.from(r.A.querySelectorAll(t,this.options.formControlSelector,!1));if(!e)return{elements:null,handler:null,valid:!0};let i=n.A.debounce(this.validateCurrentField.bind(this),this.options.validation.delay);return{elements:e,valid:e.every(t=>{if(void 0!==t.dataset.swagCustomizedProductsSelectionRequired)return t.checked;if(t.classList.contains(this.options.fileUploadElementClass)){let e=t.closest(this.options.fileUploadSelector),i=r.A.getDataAttribute(e,this.options.fileUploadDataAttribute).maxCount,s=r.A.querySelector(e,this.options.fileUploadFilesSelector).children.length;return s>0&&s<=i}return t.classList.contains(this.options.dateTimeClass)?!!t.value:t.validity.valid}),handler:i}}resetPreviousFormControl(t){let{elements:e,handler:i}=t.formValidation;return!i||(e.forEach(t=>{t.removeEventListener("input",i)}),!0)}validateCurrentField(){let t;let e=this.pages[this.currentPage-1],{elements:i}=e.formValidation;t=void 0!==r.A.getDataAttribute(i[0],"swag-customized-products-selection-required",!1)?i.reduce((t,e)=>t||e.checked,!1):i.reduce((e,i)=>{if(!e)return e;let s=i.checkValidity();return Object.prototype.hasOwnProperty.call(i,"_flatpickr")&&(s=i._flatpickr.selectedDates.length>0),i.__plugins&&i.__plugins.size>0&&i.__plugins.has("SwagCustomizedProductsHtmlEditor")&&(t=!window.PluginManager.getPluginInstanceFromElement(i,"SwagCustomizedProductsHtmlEditor").isEmpty()),e=s},!0),e.formValidation.valid=t,this.pagerEl.innerHTML=this.renderPager(),this.navigationEl.innerHTML=this.renderNavigationSelection()}
49parseLocationHashOnAndJumpToPage(){if(!l.isHistoryApiSupported()||!this.options.history.enabled||!window.location.hash||window.location.hash.length<=0)return!1;let t=parseInt(window.location.hash.substring(1).replace(this.options.history.hashPrefix,""),10);return t+=1,this.transitionToPage(t,!1),!0}updateHistory(){return!!l.isHistoryApiSupported()&&!!this.options.history.enabled&&(window.history.replaceState({currentPage:this.currentPage,pagesCount:this.pagesCount},"",`#${this.options.history.hashPrefix}${this.currentPage-1}`),!0)}isValidConfiguration(){let t=this.pages.reduce((t,e)=>t&&e.required?t=l.isPageValid(e):t,!0),e=window.PluginManager.getPluginInstanceFromElement(this.el,"SwagCustomizedProductsExclusionListValidation");return e&&(t=!e.isViolation),t}static isPageValid(t){let{required:e,formValidation:i}=t;return!i||!e||!!i.valid}static elementOuterHeight(t){let e=t.getBoundingClientRect().height,i=getComputedStyle(t);return e+(parseInt(i.marginTop,10)+parseInt(i.marginBottom,10))}static isHistoryApiSupported(){return!!(window.history&&history.pushState)}}},59:(t,e,i)=>{i.d(e,{A:()=>s});class s{static debounce(t,e){let i,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var r=arguments.length,o=Array(r),n=0;n<r;n++)o[n]=arguments[n];s&&!i&&setTimeout(t.bind(t,...o),0),clearTimeout(i),i=setTimeout(t.bind(t,...o),e)}}}},795:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(707);class r{static isNode(t){return"object"==typeof t&&null!==t&&(t===document||t===window||t instanceof Node)}static hasAttribute(t,e){if(!r.isNode(t))throw Error("The element must be a valid HTML Node!");return"function"==typeof t.hasAttribute&&t.hasAttribute(e)}static getAttribute(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!1===r.hasAttribute(t,e))throw Error(`The required property "${e}" does not exist!`);if("function"!=typeof t.getAttribute){if(i)throw Error("This node doesn't support the getAttribute function!");return}return t.getAttribute(e)}static getDataAttribute(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],o=e.replace(/^data(|-)/,""),n=s.A.toLowerCamelCase(o,"-");if(!r.isNode(t)){if(i)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===t.dataset){if(i)throw Error("This node doesn't support the dataset attribute!");return}let a=t.dataset[n];if(void 0===a){if(i)throw Error(`The required data attribute "${e}" does not exist on ${t}!`);return a}return s.A.parsePrimitive(a)}static querySelector(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!r.isNode(t))throw Error("The parent node is not a valid HTML Node!");let s=t.querySelector(e)||!1;if(i&&!1===s)throw Error(`The required element "${e}" does not exist in parent node!`);return s}static querySelectorAll(t,e){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(i&&!r.isNode(t))throw Error("The parent node is not a valid HTML Node!");let s=t.querySelectorAll(e);if(0===s.length&&(s=!1),i&&!1===s)throw Error(`At least one item of "${e}" must exist in parent node!`);return s}static getFocusableElements(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body,e=` 50 input:not([tabindex^="-"]):not([disabled]):not([type="hidden"]), 51 select:not([tabindex^="-"]):not([disabled]), 52 textarea:not([tabindex^="-"]):not([disabled]), 53 button:not([tabindex^="-"]):not([disabled]), 54 a[href]:not([tabindex^="-"]):not([disabled]), 55 [tabindex]:not([tabindex^="-"]):not([disabled]) 56 `;return t.querySelectorAll(e)}static getFirstFocusableElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return this.getFocusableElements(t)[0]}static getLastFocusableElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=this.getFocusableElements(t);return e[e.length-1]}}},707:(t,e,i)=>{i.d(e,{A:()=>s});class s{static ucFirst(t){return t.charAt(0).toUpperCase()+t.slice(1)}static lcFirst(t){return t.charAt(0).toLowerCase()+t.slice(1)}static toDashCase(t){return t.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(t,e){let i=s.toUpperCamelCase(t,e);return s.lcFirst(i)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>s.ucFirst(t.toLowerCase())).join(""):s.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}},737:(t,e,i)=>{i.d(e,{A:()=>a});var s=i(156),r=i.n(s),o=i(707);
56class n{constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=new CustomEvent(t,{detail:e,cancelable:i});return this.el.dispatchEvent(s),s}subscribe(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=this,r=t.split("."),o=i.scope?e.bind(i.scope):e;if(i.once&&!0===i.once){let e=o;o=function(i){s.unsubscribe(t),e(i)}}return this.el.addEventListener(r[0],o),this.listeners.push({splitEventName:r,opts:i,cb:o}),!0}unsubscribe(t){let e=t.split(".");return this.listeners=this.listeners.reduce((t,i)=>([...i.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(i.splitEventName[0],i.cb):t.push(i),t),[]),!0}reset(){return this.listeners.forEach(t=>{this.el.removeEventListener(t.splitEventName[0],t.cb)}),this.listeners=[],!0}get el(){return this._el}set el(t){this._el=t}get listeners(){return this._listeners}set listeners(t){this._listeners=t}}class a{constructor(t,e={},i=!1){if(!(t instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${i}".`);return}this.el=t,this.$emitter=new n(this.el),this._pluginName=this._getPluginName(i),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}init(){console.warn(`The "init" method for the plugin "${this._pluginName}" is not defined. The plugin will not be initialized.`)}update(){}_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(t){let e=[this.constructor.options,this.options,t];return e.push(this._getConfigFromDataAttribute()),e.push(this._getOptionsFromDataAttribute()),r().all(e.filter(t=>t instanceof Object&&!(t instanceof Array)).map(t=>t||{}))}_getConfigFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=o.A.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-config`);return i?window.PluginConfigManager.get(this._pluginName,i):t}_getOptionsFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=o.A.toDashCase(this._pluginName),i=this.el.getAttribute(`data-${e}-options`);if(i)try{return JSON.parse(i)}catch(t){console.error(`The data attribute "data-${e}-options" could not be parsed to json: ${t.message}`)}return t}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(t){return t||(t=this.constructor.name),t}}},68:(t,e,i)=>{i.d(e,{A:()=>s});class s{constructor(){this._request=null,this._errorHandlingInternal=!1}get(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",s=this._createPreparedRequest("GET",t,i);return this._sendRequest(s,null,e)}post(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(e,s);let r=this._createPreparedRequest("POST",t,s);return this._sendRequest(r,e,i)}delete(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(e,s);let r=this._createPreparedRequest("DELETE",t,s);return this._sendRequest(r,e,i)}patch(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(e,s);let r=this._createPreparedRequest("PATCH",t,s);return this._sendRequest(r,e,i)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(t){this._errorHandlingInternal=t}_registerOnLoaded(t,e){e&&(!0===this._errorHandlingInternal?(t.addEventListener("load",()=>{e(t.responseText,t)}),t.addEventListener("abort",()=>{console.warn(`the request to ${t.responseURL} was aborted`)}),t.addEventListener("error",()=>{console.warn(`the request to ${t.responseURL} failed with status ${t.status}`)}),t.addEventListener("timeout",()=>{console.warn(`the request to ${t.responseURL} timed out`)})):t.addEventListener("loadend",()=>{e(t.responseText,t)}))}_sendRequest(t,e,i){return this._registerOnLoaded(t,i),t.send(e),t}_getContentType(t,e){return t instanceof FormData&&(e=!1),e}_createPreparedRequest(t,e,i){return this._request=new XMLHttpRequest,this._request.open(t,e),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),i&&this._request.setRequestHeader("Content-type",i),this._request}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.