PageSourceSearch

https://www.lensonline.be/theme/7f255efc47df678a77fdada07f41cd83/j…-webshop.lens-config-modal.plugin.c2822b.js

js lensonline.be collected 2026-10-05 05:12:36 UTC 19,878 bytes, 10 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[33083,96549],{3083(e,t,r){r.r(t),r.d(t,{default:()=>l});var s=r(5683),i=r(5795),n=r(4156),o=r.n(n),a=r(6549);class l extends a.default{static #e=this.options=o()(a.default.options,{action:"add",parametersFormSelector:"#lens-config"});_loadModalContent(e,t){let r=new s.A(t);r.create(),t.classList.add(this.options.centerLoadingIndicatorClass),this.httpClient.get(this._buildUrl(),s=>{this._processResponse(s,r,e,t)})}_buildUrl(){let e=new URL(window.router["frontend.storefront.lens-config.modal"]);e.searchParams.append("action",this.options.action);let t=i.A.querySelector(document,this.options.parametersFormSelector,!1);return t&&[...new FormData(t).entries()].forEach(t=>e.searchParams.append(t[0],t[1])),e.toString()}_openModal(e){super._openModal(e);let t=e.getModal();t.classList.add("lens-config-modal","modal-lg"),this._currentModalEl=t,document.addEventListener("mousedown",this._outsideHandler,!0),document.addEventListener("click",this._outsideHandler,!0),t.addEventListener("keydown",this._escHandler,!0),this._tabHandler=()=>this._updateBackdropLock(t),t.addEventListener("shown.bs.tab",this._tabHandler,!0),this._updateBackdropLock(t),t.addEventListener("hidden.bs.modal",()=>{this._toggleBackdropLock(!1),document.removeEventListener("mousedown",this._outsideHandler,!0),document.removeEventListener("click",this._outsideHandler,!0),t.removeEventListener("keydown",this._escHandler,!0),t.removeEventListener("shown.bs.tab",this._tabHandler,!0),this._currentModalEl=null,this._tabHandler=null},{once:!0})}_updateBackdropLock(e){let t=e.querySelector("#lens-config-modal__cross-selling"),r=!!(t&&t.classList.contains("active")&&t.classList.contains("show"));this._toggleBackdropLock(r)}_toggleBackdropLock(e){this._backdropLocked=!!e}constructor(...e){super(...e),this._escHandler=e=>{"Escape"===e.key&&this._backdropLocked&&(e.stopImmediatePropagation?.(),e.stopPropagation(),e.preventDefault())},this._outsideHandler=e=>{if(!this._backdropLocked)return;let t=this._currentModalEl;if(!t)return;let r=e.target.closest(".modal")===t;e.target.closest(".modal-dialog")&&r||(e.stopImmediatePropagation?.(),e.stopPropagation(),e.preventDefault())}}}},4156(e){var t=function(e){var t;return!!e&&"object"==typeof e&&"[object RegExp]"!==(t=Object.prototype.toString.call(e))&&"[object Date]"!==t&&e.$$typeof!==r},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function s(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a(Array.isArray(e)?[]:{},e,t):e}function i(e,t,r){return e.concat(t).map(function(e){return s(e,r)})}function n(e){return Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[])}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=s;var d,c,u=Array.isArray(r);return u!==Array.isArray(e)?s(r,l):u?l.arrayMerge(e,r,l):(c={},(d=l).isMergeableObject(e)&&n(e).forEach(function(t){c[t]=s(e[t],d)}),n(r).forEach(function(t){(!o(e,t)||Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))&&(o(e,t)&&d.isMergeableObject(r[t])?c[t]=(function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a})(t,d)(e[t],r[t],d):c[t]=s(r[t],d))}),c)}a.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,r){return a(e,r,t)},{})},e.exports=a},4632(e,t,r){r.d(t,{A:()=>s});class s{static isTouchDevice(){return"ontouchstart"in document.documentElement}static isIOSDevice(){return s.isIPhoneDevice()||s.isIPadDevice()}static isNativeWindowsBrowser(){return s.isIEBrowser()||s.isEdgeBrowser()}static isIPhoneDevice(){return!!navigator.userAgent.match(/iPhone/i)}static isIPadDevice(){return!!navigator.userAgent.match(/iPad/i)}static isIEBrowser(){return -1!==navigator.userAgent.toLowerCase().indexOf("msie")||!!navigator.userAgent.match(/Trident.*rv:\d+\./)}static isEdgeBrowser(){return!!navigator.userAgent.match(/Edge\/\d+/i)}static getList(){return{"is-touch":s.isTouchDevice(),"is-ios":s.isIOSDevice(),"is-native-windows":s.isNativeWindowsBrowser(),"is-iphone":s.isIPhoneDevice(),"is-ipad":s.isIPadDevice(),"is-ie"
1:s.isIEBrowser(),"is-edge":s.isEdgeBrowser()}}}},4707(e,t,r){r.d(t,{A:()=>s});class s{static ucFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}static lcFirst(e){return e.charAt(0).toLowerCase()+e.slice(1)}static toDashCase(e){return e.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(e,t){let r=s.toUpperCamelCase(e,t);return s.lcFirst(r)}static toUpperCamelCase(e,t){return t?e.split(t).map(e=>s.ucFirst(e.toLowerCase())).join(""):s.ucFirst(e.toLowerCase())}static parsePrimitive(e){try{return/^\d+(.|,)\d+$/.test(e)&&(e=e.replace(",",".")),JSON.parse(e)}catch(t){return e.toString()}}}},5683(e,t,r){r.d(t,{A:()=>n});let s="loader",i={BEFORE:"before",INNER:"inner"};class n{constructor(e,t=i.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}create(){if(!this.exists()){if(this.position===i.INNER){this._previousHTML=this.parent.innerHTML,this.parent.innerHTML=n.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),n.getTemplate())}}remove(){if(this.position===i.INNER){this.parent.innerHTML=this._previousHTML;return}this.parent.querySelectorAll(`.${s}`).forEach(e=>e.remove())}exists(){return this.parent.querySelectorAll(`.${s}`).length>0}_getPosition(){return this.position===i.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return`<div class="${s}" role="status">
2                    <span class="visually-hidden">Loading...</span>
3                </div>`}static SELECTOR_CLASS(){return s}}},5795(e,t,r){r.d(t,{A:()=>i});var s=r(4707);class i{static isNode(e){return"object"==typeof e&&null!==e&&(e===document||e===window||e instanceof Node)}static hasAttribute(e,t){if(!i.isNode(e))throw Error("The element must be a valid HTML Node!");return"function"==typeof e.hasAttribute&&e.hasAttribute(t)}static getAttribute(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!1===i.hasAttribute(e,t))throw Error(`The required property "${t}" does not exist!`);if("function"!=typeof e.getAttribute){if(r)throw Error("This node doesn't support the getAttribute function!");return}return e.getAttribute(t)}static getDataAttribute(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=t.replace(/^data(|-)/,""),o=s.A.toLowerCamelCase(n,"-");if(!i.isNode(e)){if(r)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===e.dataset){if(r)throw Error("This node doesn't support the dataset attribute!");return}let a=e.dataset[o];if(void 0===a){if(r)throw Error(`The required data attribute "${t}" does not exist on ${e}!`);return a}return s.A.parsePrimitive(a)}static querySelector(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!i.isNode(e))throw Error("The parent node is not a valid HTML Node!");let s=e.querySelector(t)||!1;if(r&&!1===s)throw Error(`The required element "${t}" does not exist in parent node!`);return s}static querySelectorAll(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!i.isNode(e))throw Error("The parent node is not a valid HTML Node!");let s=e.querySelectorAll(t);if(0===s.length&&(s=!1),r&&!1===s)throw Error(`At least one item of "${t}" must exist in parent node!`);return s}static getFocusableElements(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body,t=`
4            input:not([tabindex^="-"]):not([disabled]):not([type="hidden"]),
5            select:not([tabindex^="-"]):not([disabled]),
6            textarea:not([tabindex^="-"]):not([disabled]),
7            button:not([tabindex^="-"]):not([disabled]),
8            a[href]:not([tabindex^="-"]):not([disabled]),
9            [tabindex]:not([tabindex^="-"]):not([disabled])
10        `;return e.querySelectorAll(t)}static getFirstFocusableElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return this.getFocusableElements(e)[0]}static getLastFocusableElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=this.getFocusableElements(e);return t[t.length-1]}}},6549(e,t,r){r.r(t),r.d(t,{default:()=>v});var s=r(9068),i=r(7220),n=r(5683),o=r(4632);let a="modal-backdrop",l="modal-backdrop-open",d="no-scroll",c={ON_CLICK:"backdrop/onclick"};class u{constructor(){return u.instance||(u.instance=this),u.instance}create(e){this._removeExistingBackdrops(),document.body.insertAdjacentHTML("beforeend",this._getTemplate());let t=document.body.lastChild;document.documentElement.classList.add(d),setTimeout(function(){t.classList.add(l),"function"==typeof e&&e()},75),this._dispatchEvents()}remove(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:350;
10this._getBackdrops().forEach(e=>e.classList.remove(l)),setTimeout(this._removeExistingBackdrops.bind(this),e),document.documentElement.classList.remove(d)}_dispatchEvents(){let e=o.A.isTouchDevice()?"touchstart":"click";document.addEventListener(e,function(e){e.target.classList.contains(a)&&document.dispatchEvent(new CustomEvent(c.ON_CLICK))})}_getBackdrops(){return document.querySelectorAll(`.${a}`)}_removeExistingBackdrops(){!1!==this._exists()&&this._getBackdrops().forEach(e=>e.remove())}_exists(){return document.querySelectorAll(`.${a}`).length>0}_getTemplate(){return`<div class="${a}"></div>`}}Object.freeze(new u);let h="js-pseudo-modal",p="js-pseudo-modal-template-root-element";class m{constructor(e,t=!0,r=".js-pseudo-modal-template",s=".js-pseudo-modal-template-content-element",i=".js-pseudo-modal-template-title-element"){this._content=e,this._useBackdrop=t,this._templateSelector=r,this._templateContentSelector=s,this._templateTitleSelector=i}open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:350;this._hideExistingModal(),this._create(),setTimeout(this._open.bind(this,e),t)}close(){let e=this.getModal();this._modalInstance=bootstrap.Modal.getInstance(e),this._modalInstance.hide()}getModal(){return this._modal||this._create(),this._modal}updatePosition(){this._modalInstance.handleUpdate()}updateContent(e,t){this._content=e,this._setModalContent(e),this.updatePosition(),"function"==typeof t&&t.bind(this)()}_hideExistingModal(){try{let e=document.querySelector(`.${h} .modal`);if(!e)return;let t=bootstrap.Modal.getInstance(e);if(!t)return;t.hide(),window.focusHandler._removeFocusTrapGuard()}catch(e){console.warn(`[PseudoModalUtil] Unable to hide existing pseudo modal before opening pseudo modal: ${e.message}`)}}_open(e){this.getModal(),this._modal.addEventListener("hidden.bs.modal",this._modalWrapper.remove),this._modal.addEventListener("shown.bs.modal",e),this._modal.addEventListener("hidden.bs.modal",()=>window.focusHandler._removeFocusTrapGuard()),this._modal.addEventListener("hide.bs.modal",()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()}),this._modalInstance.show(),window.focusHandler._addFocusTrapGuard(this._modalWrapper)}_create(){this._modalMarkupEl=document.querySelector(this._templateSelector),this._createModalWrapper(),this._modalWrapper.innerHTML=this._content,this._modal=this._createModalMarkup(),this._modalInstance=new bootstrap.Modal(this._modal,{backdrop:this._useBackdrop}),document.body.insertAdjacentElement("beforeend",this._modalWrapper)}_createModalWrapper(){this._modalWrapper=document.querySelector(`.${h}`),this._modalWrapper||(this._modalWrapper=document.createElement("div"),this._modalWrapper.classList.add(h))}_createModalMarkup(){let e=this._modalWrapper.querySelector(".modal");if(e)return e;let t=this._modalWrapper.innerHTML;return this._modalWrapper.innerHTML=this._modalMarkupEl.innerHTML,this._setModalContent(t),this._modalWrapper.querySelector(".modal")}_setModalTitle(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{this._modalWrapper.querySelector(this._templateTitleSelector).innerHTML=e}catch(e){}}_setModalContent(e){let t=this._modalWrapper.querySelector(this._templateContentSelector);t.innerHTML=e;let r=t.querySelector(`.${p}`);if(r){this._modalWrapper.querySelector(`.${p}`).replaceChildren(r);return}try{let e=t.querySelector(this._templateTitleSelector);e&&(this._setModalTitle(e.innerHTML),e.parentNode.removeChild(e))}catch(e){}}}let g="js-pseudo-modal-template-content-element";class _ extends i.A{static #e=this.options={modalBackdrop:!0,urlAttribute:"data-url",prevUrlAttribute:"data-prev-url",modalClassAttribute:"data-modal-class",modalClass:null,centerLoadingIndicatorClass:"text-center"};init(){this._registerEvents()}_registerEvents(){this._boundOnClickHandleAjaxModal||(this._boundOnClickHandleAjaxModal=this._onClickHandleAjaxModal.bind(this)),this.el.removeEventListener("click",this._boundOnClickHandleAjaxModal),this.el.addEventListener("click",this._boundOnClickHandleAjaxModal)}_onClickHandleAjaxModal(e){e.cancelable&&(e.preventDefault(),e.stopPropagation());let t=new m("",this.options.modalBackdrop);
10window.focusHandler.saveFocusState("ajax-modal"),this._openModal(t),t.getModal().addEventListener("hidden.bs.modal",()=>{window.focusHandler.resumeFocusState("ajax-modal")});let r=t._modal.querySelector(`.${g}`);r.classList.add(this.options.centerLoadingIndicatorClass),this._loadModalContent(t,r)}_openModal(e){let t=[this.el.getAttribute(this.options.modalClassAttribute),this.options.modalClass];e.open(this._onModalOpen.bind(this,e,t),0)}_loadModalContent(e,t){let r=new n.A(t);r.create();let s=this.el.getAttribute(this.options.urlAttribute);t.classList.add(this.options.centerLoadingIndicatorClass),fetch(s,{headers:{"X-Requested-With":"XMLHttpRequest"}}).then(e=>e.text()).then(s=>this._processResponse(s,r,e,t))}_processResponse(e,t,r,s){t.remove(),r.updateContent(e,this._renderBackButton.bind(this,r));let i=r.getModal();window.PluginManager.initializePluginsInParentElement(i),s.classList.remove(this.options.centerLoadingIndicatorClass)}_renderBackButton(e){let t=this.el.getAttribute(this.options.prevUrlAttribute);if(!t)return;let r=document.querySelector(".js-pseudo-modal-back-btn-template");if(!r)return;let s=r.content.cloneNode(!0);s.children.length&&(s.children[0].setAttribute("href",t),s.children[0].setAttribute("data-url",t),s.children[0].style.marginLeft="20px",e._modal.querySelector(`.${g}`).prepend(s))}_onModalOpen(e,t){let r=e.getModal();r.classList.add(...t),window.PluginManager.initializePluginsInParentElement(r),this.$emitter.publish("ajaxModalOpen",{modal:r})}constructor(...e){super(...e),this.httpClient=new s.A}}var b=r(5795);class v extends _{_onClickHandleAjaxModal(e){this.el.setAttribute("disabled","disabled"),super._onClickHandleAjaxModal(e)}_processResponse(e,t,r,s){super._processResponse(e,t,r,s);let i=b.A.querySelector(r.getModal(),r._templateTitleSelector);""===i.textContent.trim()&&i.parentNode.remove(),this.el.removeAttribute("disabled")}_onModalOpen(e,t){let r=e.getModal();t.forEach(e=>{if(!e)return;let t=e.split(" ").filter(e=>e.trim());r.classList.add(...t)}),window.PluginManager.initializePlugins(),this.$emitter.publish("ajaxModalOpen",{modal:r})}}},7220(e,t,r){r.d(t,{A:()=>a});var s=r(4156),i=r.n(s),n=r(4707),o=r(8308);class a{constructor(e,t={},r=!1){if(!(e instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${r}".`);return}this.el=e,this.$emitter=new o.A(this.el),this._pluginName=this._getPluginName(r),this.options=this._mergeOptions(t),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(e){let t=[this.constructor.options,this.options,e];return t.push(this._getConfigFromDataAttribute()),t.push(this._getOptionsFromDataAttribute()),i().all(t.filter(e=>e instanceof Object&&!(e instanceof Array)).map(e=>e||{}))}_getConfigFromDataAttribute(){let e={};if("function"!=typeof this.el.getAttribute)return e;let t=n.A.toDashCase(this._pluginName),r=this.el.getAttribute(`data-${t}-config`);return r?window.PluginConfigManager.get(this._pluginName,r):e}_getOptionsFromDataAttribute(){let e={};if("function"!=typeof this.el.getAttribute)return e;let t=n.A.toDashCase(this._pluginName),r=this.el.getAttribute(`data-${t}-options`);if(r)try{return JSON.parse(r)}catch(e){console.error(`The data attribute "data-${t}-options" could not be parsed to json: ${e.message}`)}return e}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(e){return e||(e=this.constructor.name),e}}},8308(e,t,r){r.d(t,{A:()=>s});class s{constructor(e=document){this._el=e,e.$emitter=this,this._listeners=[]}publish(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=new CustomEvent(e,{detail:t,cancelable:r});return this.el.dispatchEvent(s),s}subscribe(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=this,i=e.split("."),n=r.scope?t.bind(r.scope):t;if(r.once&&!0===r.once){let t=n;n=function(r){s.unsubscribe(e),t(r)}}return this.el.addEventListener(i[0],n),this.listeners.push({splitEventName:i,opts:r,cb:n}),!0}unsubscribe(e){let t=e.split(".");return this.listeners=this.listeners.reduce((e,r)=>([...r.splitEventName].sort().toString()===t.sort().toString()?this.el.removeEventListener(r.splitEventName[0],r.cb):e.push(r),e),[]),!0}
10reset(){return this.listeners.forEach(e=>{this.el.removeEventListener(e.splitEventName[0],e.cb)}),this.listeners=[],!0}get el(){return this._el}set el(e){this._el=e}get listeners(){return this._listeners}set listeners(e){this._listeners=e}}},9068(e,t,r){r.d(t,{A:()=>s});class s{constructor(){this._request=null,this._errorHandlingInternal=!1}get(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",s=this._createPreparedRequest("GET",e,r);return this._sendRequest(s,null,t)}post(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(t,s);let i=this._createPreparedRequest("POST",e,s);return this._sendRequest(i,t,r)}delete(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(t,s);let i=this._createPreparedRequest("DELETE",e,s);return this._sendRequest(i,t,r)}patch(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";s=this._getContentType(t,s);let i=this._createPreparedRequest("PATCH",e,s);return this._sendRequest(i,t,r)}
10abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(e){this._errorHandlingInternal=e}_registerOnLoaded(e,t){t&&(!0===this._errorHandlingInternal?(e.addEventListener("load",()=>{t(e.responseText,e)}),e.addEventListener("abort",()=>{console.warn(`the request to ${e.responseURL} was aborted`)}),e.addEventListener("error",()=>{console.warn(`the request to ${e.responseURL} failed with status ${e.status}`)}),e.addEventListener("timeout",()=>{console.warn(`the request to ${e.responseURL} timed out`)})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,r){return this._registerOnLoaded(e,r),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,r){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),r&&this._request.setRequestHeader("Content-type",r),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.