{"version":3,"file":"search.widgets.bundle.js","mappings":"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","sources":["webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/LazyloadTrigger.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/ProductListingMgr.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/QuickViewNavigation.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/Refinement.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/RefinementsGridToggle.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/RefinementsPanel.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/RefinementsPanelToggle.js","webpack://sfra-boilerplate/./cartridges/app_custom_core/cartridge/client/default/js/widgets/search/StickyRefinements.js","webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/NoSearchResultsForm.ts","webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/ProductListingMgr.ts","webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/Refinement.ts","webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/RefinementsPanelToggle.ts"],"sourcesContent":["/**\n * @typedef {typeof import('widgets/Widget').default} Widget\n * @typedef {InstanceType} refElement\n */\n\n/**\n * @param {Widget} Widget Base widget for extending\n * @returns {typeof LazyloadTrigger} LazyloadTrigger widget\n */\nexport default function (Widget) {\n /**\n * @class LazyloadTrigger\n * @augments Widget\n */\n class LazyloadTrigger extends Widget {\n prefs() {\n return {\n threshold: 100,\n ...super.prefs()\n };\n }\n\n init() {\n super.init();\n\n this.eventEmited = false;\n\n this.has('self', selfElement => this.initOnScrollListener(selfElement));\n }\n\n /**\n * @description Add scroll listener to detect lazyload event\n * @param {refElement} selfElement self ref element\n * @returns {void}\n */\n initOnScrollListener(selfElement) {\n if (!selfElement) {\n return;\n }\n\n this.ev('scroll', () => {\n if (window.innerHeight + this.prefs().threshold > selfElement?.get()?.getBoundingClientRect()?.top) {\n if (!this.eventEmited) {\n this.emit('lazyload');\n\n this.eventEmited = true;\n }\n }\n }, window);\n }\n }\n\n return LazyloadTrigger;\n}\n","import { scrollWindowTo, getStickyHeaderHeight } from 'core/toolbox/scroll';\nimport { appendParamToURL, removeParamFromURL } from 'widgets/toolbox/util';\n/**\n * @typedef {ReturnType} BaseProductListingMgr\n * @typedef {InstanceType} refElement\n * @typedef {InstanceType>} refinementsGridToggle\n * @typedef {InstanceType>} InputSelect\n * @typedef {InstanceType} widget\n */\n\nimport { RefElement } from 'widgets/toolbox/RefElement';\n\nconst IDEAS = 'ideas';\nconst PRODUCTS = 'products';\nconst GRID_UPDATING_EVENT = 'products.grid.updated';\nconst GTM_DATALAYER_EVENT = 'gtm.datalayer.event';\nconst GTM_EVENT = 'data-layer-event';\nconst THEMATIC = 'thematic=true';\n\n/**\n * @param {BaseProductListingMgr} BaseProductListingMgr Base widget for extending\n * @returns {typeof ProductListingMgr} ProductListingMgr widget\n */\nexport default function (BaseProductListingMgr) {\n /**\n * @category widgets\n * @subcategory search\n * @class ProductListingMgr\n * @augments BaseProductListingMgr\n */\n class ProductListingMgr extends BaseProductListingMgr {\n prefs() {\n return {\n refinedByIdeas: false,\n keywordSearch: false,\n classesProductGridAlternative: 'm-one_column',\n classesInited: 'm-inited',\n copyUrlParamsConfig: '',\n ...super.prefs()\n };\n }\n\n init() {\n super.init();\n\n this.setGridType();\n this.scrollToSavedTile();\n\n this.lazyloadAllowed = false;\n\n this.latestHref = {\n [IDEAS]: undefined,\n [PRODUCTS]: undefined\n };\n\n this.inlineSlots = document.querySelectorAll('.b-plp_grid_slot');\n\n if (this.inlineSlots.length) {\n window.addEventListener('load', this.calculateInlineSlotWidth.bind(this));\n }\n\n this.eventBus().on(GRID_UPDATING_EVENT, 'onGridUpdated');\n this.eventBus().on('quickview.show.previous', 'showPreviousQuickView');\n this.eventBus().on('quickview.show.next', 'showNextQuickView');\n this.eventBus().on('productlistingmgr.execute', 'executeCallback');\n this.eventBus().on('update.product.list.grid.view', 'updateView');\n }\n\n scrollToSavedTile() {\n var anchorTileID = window.sessionStorage.getItem('anchorTileID');\n\n if (!this.prefs().firstPage && anchorTileID) {\n this.getById(anchorTileID, tile => {\n // prevent default scroll restoration\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n\n scrollWindowTo(tile.ref('self').get(), false, {\n behavior: 'auto',\n top: -parseInt(window.sessionStorage.getItem('anchorTileOffset') || '0', 10),\n left: 0\n });\n });\n }\n\n window.sessionStorage.removeItem('anchorTileID');\n window.sessionStorage.removeItem('anchorTileOffset');\n }\n\n /**\n * @description Basically injects self in scope of callback and executes it\n * Used in case of access to `ProductListingMgr` from other widgets, not directly related\n * @param {Function} cb callback to execute\n * @returns {void}\n */\n executeCallback(cb) {\n if (cb) {\n cb.apply(null, [this]);\n }\n }\n\n /**\n * @description Get tile index in grid by provided product ID\n * @param {string} productId product ID\n * @returns {number} tile index\n */\n getTileIndex(productId) {\n let currentTileIndex = 0;\n let tileIndex = 0;\n\n const ProductTile = this.getConstructor('productTile');\n\n this.eachChild(child => {\n if (child instanceof ProductTile) {\n if (child.config.productId === productId) {\n tileIndex = currentTileIndex;\n }\n\n currentTileIndex++;\n }\n });\n\n return tileIndex;\n }\n\n /**\n * @description Checks if it's very first tile in search results\n * @param {string} productId product ID\n * @returns {boolean} is first tile\n */\n isFirstTile(productId) {\n const tileIndex = this.getTileIndex(productId);\n\n let hasPrevProducts = false;\n\n this.has('loadPrevBlock', loadPrevBlock => {\n hasPrevProducts = !!loadPrevBlock.data('hasPrev');\n });\n\n return tileIndex === 0 && !hasPrevProducts;\n }\n\n /**\n * @description Checks if it's very last tile in search results\n * @param {string} productId product ID\n * @returns {boolean} is last tile\n */\n isLastTile(productId) {\n const tileIndex = this.getTileIndex(productId);\n\n let hasMoreProducts = false;\n\n this.has('loadMoreBlock', loadMoreBlock => {\n hasMoreProducts = !!loadMoreBlock.data('hasMore');\n });\n\n return tileIndex === (this.getProductTilesCount() - 1) && !hasMoreProducts;\n }\n\n /**\n * @description Show Quick View for tile with certain index\n * In case of last product tile + 1 and \"load more\" is shown - performs \"load more\" action\n * @param {number} index tile index to show quick view\n * @returns {void}\n */\n showQuickViewByIndex(index) {\n let targetProductTile = null;\n let currentTileIndex = 0;\n\n const ProductTile = this.getConstructor('productTile');\n\n this.eachChild(child => {\n if (child instanceof ProductTile) {\n if (index === currentTileIndex) {\n targetProductTile = child;\n }\n\n currentTileIndex++;\n }\n });\n\n if (targetProductTile) {\n // @ts-ignore\n targetProductTile.triggerQuickView();\n } else if (index < 0) {\n // TODO: find proper approach once load previous will be handled\n this.loadPrev(this.ref('loadPrevButton'));\n } else if (index >= this.getProductTilesCount()) {\n this.triggerQuickViewIndex = index;\n this.loadMore(this.ref('loadMoreButton'));\n }\n }\n\n /**\n * @description Show Quick View for previous tile in a grid\n * @param {string} productId product ID\n * @returns {void}\n */\n showPreviousQuickView(productId) {\n this.showQuickViewByIndex(\n this.getTileIndex(productId) - 1\n );\n }\n\n /**\n * @description Show Quick View for next tile in a grid\n * @param {string} productId product ID\n * @returns {void}\n */\n showNextQuickView(productId) {\n this.showQuickViewByIndex(\n this.getTileIndex(productId) + 1\n );\n }\n\n /**\n * @description Set initial grid type for different grid modes according to cookies\n * @returns {void}\n */\n setGridType() {\n this.getById(\n 'refinementsGridToggle',\n (/** @type {refinementsGridToggle} */refinementsGridToggle) => refinementsGridToggle.setGridType()\n );\n }\n\n /**\n * @description Get total products tiles count, presents in a grid\n * @returns {number} total products tiles count, presents in a grid\n */\n getProductTilesCount() {\n let productTilesCount = 0;\n const ProductTile = this.getConstructor('productTile');\n\n this.eachChild(child => {\n if (child instanceof ProductTile) {\n productTilesCount++;\n }\n });\n\n return productTilesCount;\n }\n\n /**\n * @description On grid updated:\n * Reflects an actual information of viewed products after loading more products chunks\n * Trigger quick view if needed\n * @param {object} [data] Rerender data when click on LoadMore and LoadPrev\n * @returns {void}\n */\n onGridUpdated(data) {\n this.updateGridInfo();\n\n if (this.triggerQuickViewIndex !== undefined) {\n this.showQuickViewByIndex(this.triggerQuickViewIndex);\n this.triggerQuickViewIndex = undefined;\n }\n\n if (data) {\n // @ts-ignore\n this.updateMetaLinks({ url: data.url, model: data.model });\n }\n }\n\n /**\n * @description Update canonical, prev and next link while rerender grid\n * @param {object} data Rerender data when click on LoadMore and LoadPrev\n * @returns {Promise} return Promise\n */\n updateMetaLinks(data) {\n // @ts-ignore\n var url = data.url;\n // @ts-ignore\n var model = data.model;\n\n this.updateCanonical(url);\n this.updatePaginationPrev(url, model);\n this.updatePaginationNext(url, model);\n\n return Promise.resolve();\n }\n\n /**\n * @description Update canonical link while rerender grid\n * @param {string} url - history.showUrl\n * @returns {void}\n */\n updateCanonical(url) {\n var canonical = this.ref('html').get()?.querySelectorAll('[rel=\"canonical\"]')[0];\n\n canonical?.setAttribute('href', url);\n }\n\n /**\n * @description Update prev link while rerender grid\n * @param {string} url - history.showUrl\n * @param {object} model updated search model\n * @returns {void}\n */\n updatePaginationPrev(url, model) {\n if (model) {\n var linkRelPrev = this.ref('html').get()?.querySelectorAll('[rel=\"prev\"]');\n\n var productSearch = model;\n // @ts-ignore\n var sz = productSearch.pageSize;\n // @ts-ignore\n var start = productSearch.pageSize * productSearch.pageNumber;\n // @ts-ignore\n var prevStart = productSearch.pageSize * (productSearch.pageNumber - 1);\n var prevUrl = url;\n\n var createLinkPrev = '';\n var canonical = this.ref('html').get()?.querySelectorAll('[rel=\"canonical\"]')[0];\n\n if (!linkRelPrev?.length) {\n // @ts-ignore\n canonical?.insertAdjacentHTML('beforebegin', createLinkPrev);\n linkRelPrev = this.ref('html').get()?.querySelectorAll('[rel=\"prev\"]');\n }\n\n if (sz !== start && prevStart > 0) {\n prevUrl = this.replaceParameterInUrl(prevUrl, 'start', prevStart);\n prevUrl = this.replaceParameterInUrl(prevUrl, 'sz', sz);\n } else {\n prevUrl = removeParamFromURL(prevUrl, 'sz');\n prevUrl = removeParamFromURL(prevUrl, 'start');\n }\n\n if (start === 0 && linkRelPrev?.length) {\n linkRelPrev[0].remove();\n } else {\n // @ts-ignore\n linkRelPrev[0].setAttribute('href', prevUrl);\n }\n }\n }\n\n /**\n * @description Update next link while rerender grid\n * @param {string} url - history.showUrl\n * @param {object} model updated search model\n * @returns {void}\n */\n updatePaginationNext(url, model) {\n if (model) {\n var linkRelNext = this.ref('html').get()?.querySelectorAll('[rel=\"next\"]');\n var productSearch = model;\n // @ts-ignore\n var nextStart = productSearch.pageSize * (productSearch.pageNumber + 1);\n // @ts-ignore\n var isLast = nextStart >= productSearch.count;\n var nextUrl = url;\n\n if (isLast && linkRelNext?.length) {\n linkRelNext[0].remove();\n } else {\n nextUrl = this.replaceParameterInUrl(nextUrl, 'start', nextStart);\n // @ts-ignore\n nextUrl = this.replaceParameterInUrl(nextUrl, 'sz', productSearch.pageSize);\n // @ts-ignore\n linkRelNext[0]?.setAttribute('href', nextUrl);\n }\n }\n }\n\n /**\n * @description Replace paramenter in Url\n * @param {string} url - any url\n * @param {string} name name of paramenter\n * @param {string} value value of paramenter\n * @returns {string} new url\n */\n replaceParameterInUrl(url, name, value) {\n url = removeParamFromURL(url, name);\n\n return appendParamToURL(url, name, value);\n }\n\n /**\n * @description Update product grid counters (viewing/viewed products)\n * @returns {void}\n */\n updateGridInfo() {\n let currentStart = 1;\n const selfRef = this.ref('self').get();\n\n this.has('loadPrevButton', loadPrevButton => {\n currentStart = Number(loadPrevButton.data('currentStart')) || 1;\n });\n\n const currentlyViewedCount = new RefElement(\n // @ts-ignore\n selfRef?.querySelectorAll('[data-ref=\"currentlyViewedCount\"]')\n );\n const currentlyViewingCount = new RefElement(\n // @ts-ignore\n selfRef?.querySelectorAll('[data-ref=\"currentlyViewingCount\"]')\n );\n\n if (currentlyViewedCount && currentlyViewedCount.length) {\n currentlyViewedCount.setText(\n (this.getProductTilesCount() + currentStart - 1).toString()\n );\n }\n\n if (currentlyViewingCount && currentlyViewingCount.length) {\n currentlyViewingCount.setText(currentStart.toString());\n }\n }\n\n /**\n * @description Shows full refinements set for target refinements accordion item\n * @param {RefElement} btn clicked `show more` button\n * @returns {void}\n */\n showMoreRefinements(btn) {\n const showMoreResultsContainer = btn.get()?.parentElement;\n const refinementsBlock = showMoreResultsContainer?.parentElement;\n\n if (refinementsBlock) {\n // @ts-ignore\n const refinementsItems = new RefElement(Array.from(refinementsBlock.children));\n\n refinementsItems.show();\n\n const showMoreResultsContainerRefElement = new RefElement([showMoreResultsContainer]);\n\n showMoreResultsContainerRefElement.hide();\n }\n }\n\n /**\n * @description Toggle ideas search\n * @param {RefElement} checkbox toggle checkbox\n * @returns {void}\n */\n toggleIdeas(checkbox) {\n this.eventBus().emit(GTM_DATALAYER_EVENT, {\n event: GTM_EVENT,\n eventCategory: 'Filter toggle click',\n eventAction: !this.prefs().refinedByIdeas ? 'ideas' : 'products',\n // @ts-ignore\n eventLabel: this.prefs().category\n });\n // @ts-ignore\n this.updateView(checkbox);\n }\n\n /**\n * @description handles update view\n * @param {RefElement} button - clicked button\n * @param {object} data - additional data params\n * @param {boolean} data.refinementPanelUpdate - refinement update flag\n */\n handleUpdateView(button) {\n button.addClass('-loading');\n let updateURL = button.data('href');\n const refinementSelected = button.data('checked');\n const alertMessage = refinementSelected\n ? this.prefs().accessibilityAlerts.filterremoved\n : this.prefs().accessibilityAlerts.filtersapplied;\n\n if (window.location.href.includes('/th/') || window.location.href.includes(THEMATIC)) {\n updateURL += '&thematic=true';\n }\n\n // @ts-ignore\n this.updateByUrl(updateURL, undefined, true)\n .then(() => {\n button.removeClass('-loading');\n this.accessibilityAlert(alertMessage);\n\n if (button.data('reset')) {\n this.eventBus().emit('refinement.panel.close');\n } else {\n this.eventBus().emit('refinement.panel.retainPanelState');\n }\n });\n }\n\n /**\n * @description Update View\n * Has additional logic as per requirements when switching views between ideas/products\n * @listens dom#click\n * @param {RefElement|widget} button Target element\n * @param {object} data - additional config\n * @returns {void}\n */\n // @ts-ignore\n updateView(button, data) {\n if (button.data('gtmEventLabel') && !button.config?.checked) {\n this.eventBus().emit(GTM_DATALAYER_EVENT, {\n event: GTM_EVENT,\n eventCategory: this.prefs().refinedByIdeas ? 'Ideas interaction' : 'Filter interaction',\n eventAction: 'Apply',\n eventLabel: button.data('gtmEventLabel'),\n eventSublabel: button.data('gtmEventSublabel')\n });\n }\n\n if (!this.prefs().keywordSearch) {\n this.handleUpdateView(button, data);\n\n return;\n }\n\n const isToggleIdeasButton = button.data('toggleIdeas');\n const currentToggleIdeasState = this.prefs().refinedByIdeas\n ? IDEAS : PRODUCTS;\n const futureToggleIdeaState = currentToggleIdeasState === IDEAS\n ? PRODUCTS : IDEAS;\n\n // @ts-ignore\n if (isToggleIdeasButton && this.latestHref[futureToggleIdeaState]) {\n // @ts-ignore\n this.updateByUrl(this.latestHref[futureToggleIdeaState], undefined, true)\n .then(() => this.accessibilityAlert(\n this.prefs().accessibilityAlerts.productlistupdated\n ));\n\n return;\n }\n\n if (!isToggleIdeasButton) {\n // @ts-ignore\n this.latestHref[currentToggleIdeasState] = button.data('href');\n // @ts-ignore\n this.latestHref[futureToggleIdeaState] = undefined;\n }\n\n this.handleUpdateView(button, data);\n }\n\n /**\n * @description Load more products\n * @listens dom#click\n * @param {RefElement} button Target element\n * @returns {void}\n */\n loadMore(button) {\n this.eventBus().emit(GTM_DATALAYER_EVENT, {\n event: GTM_EVENT,\n eventCategory: 'Key interactions',\n eventAction: 'Load more'\n });\n\n const href = button.data('show-url');\n const history = {\n showUrl: button.attr('href'),\n showAjaxUrl: button.data('show-ajax-url')\n };\n var url = '';\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'productPositions' does not exist on type... Remove this comment to see the full error message\n const model = window.searchModel;\n\n if (typeof href === 'string') {\n url = href;\n }\n\n this.ref('loadMoreBlock').remove();\n this.loadChunk(url, (/** @type {string} */ response) => {\n if (typeof response === 'string') {\n this.ref('productGrid').append(response);\n this.accessibilityAlert(this.prefs().accessibilityAlerts.productlistupdated);\n setTimeout(() => this.eventBus().emit(GRID_UPDATING_EVENT, {\n url: history.showUrl,\n model: model\n }), 0);\n }\n }, true, history);\n }\n\n /**\n * @description Update product grid by url\n * @param {string} url Update URL\n * @param {refElement} ref Reference element\n * @param {boolean} handleHistory Handle history flag\n * @returns {Promise} Promise object represents server response with products list markup\n */\n // @ts-ignore\n updateByUrl(url, ref, handleHistory) {\n return super.updateByUrl(url, ref, handleHistory)\n .then(response => {\n this.setGridType();\n\n this.eventBus().emit('virtual.page.load');\n\n return response;\n });\n }\n\n /**\n * @description No Result Combination handler\n * Added empty object as a parameter in order not to rise error\n * @returns {void}\n */\n handleNoResult() {\n // @ts-ignore\n this.getById('noResultPopup', popup => popup.showModal({}));\n }\n\n /**\n * @description toggle grid type class\n * @param {boolean} isAlternativeGrid widget container element\n * @returns {void}\n */\n toggleGridType(isAlternativeGrid) {\n this.ref('productGrid').toggleClass(this.prefs().classesProductGridAlternative, !!isAlternativeGrid);\n }\n\n /**\n * @description Executes on no refinements combination popup closed\n * @returns {void}\n */\n onNoResultPopupClosed() {\n let refinedByIdeas = false;\n\n const RefinementsPanel = this.getConstructor('refinementsPanel');\n\n this.eachChild(child => {\n if (child instanceof RefinementsPanel) {\n // @ts-ignore\n child.getRefinementsModel();\n // @ts-ignore\n refinedByIdeas = child?.model?.refinedByIdeas;\n }\n });\n\n if (!refinedByIdeas) {\n this.has('toggleIdeas', toggleIdeas => toggleIdeas.prop('checked', false));\n }\n }\n\n /**\n * @description Start lazyload of product tiles during window scroll\n * @returns {void}\n */\n startLazyload() {\n this.lazyloadAllowed = true;\n\n this.has('loadMoreButton', loadMoreButton => this.loadMore(loadMoreButton));\n }\n\n /**\n * @description On `lazyload` event triggered - send `loadMore` request\n * @returns {void}\n */\n lazyload() {\n if (!this.lazyloadAllowed) {\n return;\n }\n\n this.has('loadMoreButton', loadMoreButton => this.loadMore(loadMoreButton));\n }\n\n /**\n * @description Update Grid\n * @listens dom#change\n * @param {InputSelect} select Target element\n * @returns {void}\n */\n updateGrid(select) {\n const selectedSorting = select.getSelectedOptions();\n\n if (selectedSorting) {\n let url = selectedSorting.data('url');\n\n if (window.location.href.includes('/th/') || window.location.href.includes(THEMATIC)) {\n url += '&thematic=true';\n }\n\n // @ts-ignore\n this.updateByUrl(url, undefined, true)\n .then(() => this.afterUpdateGrid());\n }\n }\n\n /**\n * @description Handle History\n * @param {boolean} [isReplace] Replace flag\n * @param {object} [history] history object\n * @returns {void}\n */\n handleHistory(isReplace = false, history) {\n if (window.location.href.includes('/th/') || window.location.href.includes(THEMATIC)) {\n return;\n }\n\n const state = {\n ajaxUrl: history ? history.showAjaxUrl : this.prefs().showAjaxUrl\n };\n let historyURL = history ? history.showUrl : this.prefs().showUrl;\n const lcHref = window.location.href.toLowerCase();\n\n if (lcHref.includes('plppdpproduct') && this.hasPaidParams(lcHref)) {\n historyURL = this.copyPaidParams(window.location.href, historyURL);\n }\n\n if (document.location.hash) {\n historyURL += document.location.hash;\n }\n\n if (isReplace) {\n window.history.replaceState(state, '', historyURL);\n } else {\n window.history.pushState(state, '', historyURL);\n }\n }\n\n /**\n * @description Check if the given URL contains any paid params (UTM, GCLID, etc.) based on the config.\n * @param {string} url - URL string to check\n * @returns {boolean} - True if the URL contains paid params, otherwise false\n */\n hasPaidParams(url) {\n const configParams = this.prefs().copyUrlParamsConfig.toLowerCase().split(',');\n const urlParams = new URL(url).searchParams;\n\n for (const [key] of urlParams) {\n if (this.matchesConfigPattern(key.toLowerCase(), configParams)) {\n return true;\n }\n }\n return false;\n }\n\n \n /**\n * @description Determine if a given key matches any patterns in the config (e.g., \"utm*\" matches \"utm_source\").\n * @param {string} key - The key to check\n * @param {Array} patterns - Array of patterns to match against\n * @returns {boolean} - True if the key matches any pattern, otherwise false\n */\n matchesConfigPattern(key, patterns) {\n return patterns.some(pattern => {\n if (pattern.endsWith('*')) {\n // Wildcard match: Check if the key starts with the pattern (excluding the '*')\n return key.startsWith(pattern.slice(0, -1));\n }\n // Exact match\n return key === pattern;\n });\n }\n\n /**\n * @description Copy Parameters from paid redirect based on configuration\n * @param {string} [currentURL] URL with params\n * @param {string} [historyURL] history URL\n * @returns {string} Updated history URL\n */\n copyPaidParams(currentURL, historyURL) {\n const currentURLObj = new URL(currentURL);\n const historyURLObj = new URL(historyURL);\n\n // Convert comma-separated string into an array of patterns\n const configPatterns = this.prefs().copyUrlParamsConfig.split(',').map(param => param.trim().toLowerCase());\n\n currentURLObj.searchParams.forEach((value, key) => {\n const keyLower = key.toLowerCase();\n\n // Copy parameter if it matches any configuration pattern\n if (this.matchesConfigPattern(keyLower, configPatterns)) {\n historyURLObj.searchParams.set(key, value);\n }\n });\n\n return historyURLObj.toString();\n }\n\n /**\n * @description after update grid events\n */\n afterUpdateGrid() {\n this.accessibilityAlert(this.prefs().accessibilityAlerts.sortingapplied);\n }\n\n /**\n * @description Busy\n * @returns {void}\n */\n busy() {\n super.busy();\n\n this.getById(\n 'refinementsPanel',\n refinementsPanel => refinementsPanel.ref('panel').addClass(this.prefs().classesBusy).attr('aria-busy', 'true')\n );\n }\n\n /**\n * @description Unbusy\n * @returns {void}\n */\n unbusy() {\n super.unbusy();\n\n this.getById(\n 'refinementsPanel',\n refinementsPanel => refinementsPanel.ref('panel').removeClass(this.prefs().classesBusy).attr('aria-busy', false)\n );\n }\n\n /**\n * @description Load previous products\n * @listens dom#click\n * @param {RefElement} button Target element\n * @returns {void}\n */\n loadPrev(button) {\n let firstAvailableTile;\n let firstAvailableTileOffset;\n\n this.has('productGrid', productGrid => {\n const productTiles = productGrid.get()?.querySelectorAll('[data-widget=\"productTile\"]');\n\n if (productTiles && productTiles.length) {\n firstAvailableTile = productTiles[0];\n firstAvailableTileOffset = firstAvailableTile.getBoundingClientRect().top\n - firstAvailableTile.offsetTop;\n }\n });\n\n const href = button.data('show-url');\n const history = {\n showUrl: button.attr('href'),\n showAjaxUrl: button.data('show-ajax-url')\n };\n var url = '';\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'productPositions' does not exist on type... Remove this comment to see the full error message\n const model = window.searchModel;\n\n if (typeof href === 'string') {\n url = href;\n }\n\n this.ref('loadPrevBlock').remove();\n this.loadChunk(url, (/** @type {string} */ response) => {\n if (typeof response === 'string') {\n this.ref('productGrid').prepend(response);\n this.accessibilityAlert(this.prefs().accessibilityAlerts.productlistupdated);\n setTimeout(() => this.eventBus().emit(GRID_UPDATING_EVENT, {\n url: history.showUrl,\n model: model\n }), 0);\n\n if (firstAvailableTile) {\n scrollWindowTo(firstAvailableTile, true, {\n behavior: 'auto',\n top: -(firstAvailableTileOffset - getStickyHeaderHeight())\n });\n }\n }\n }, true, history);\n }\n\n /**\n * @description Calculate Inline Slot Title's width\n * @returns {void}\n */\n calculateInlineSlotWidth() {\n this.inlineSlots?.forEach(item => {\n const inlineSlotsTitle = item.querySelector('.b-plp_grid_slot-title');\n\n if (inlineSlotsTitle) {\n inlineSlotsTitle.style.width = Math.ceil(inlineSlotsTitle.getBoundingClientRect().width) + 'px';\n }\n\n item.classList.add(this.prefs().classesInited);\n });\n }\n }\n\n return ProductListingMgr;\n}\n","/**\n * @typedef {typeof import('widgets/Widget').default} Widget\n */\n\n/**\n * @description QuickViewNavigation implementation\n * @param {Widget} Widget Base widget for extending\n * @returns {typeof QuickViewNavigation} QuickViewNavigation class\n */\nexport default function (Widget) {\n /**\n * @class QuickViewNavigation\n * @augments Widget\n */\n class QuickViewNavigation extends Widget {\n prefs() {\n return {\n productId: '',\n ...super.prefs()\n };\n }\n\n init() {\n super.init();\n\n this.initNavigation();\n }\n\n /**\n * @description Hides next/previous links according to product tile position in search grid\n * @returns {void}\n */\n initNavigation() {\n this.eventBus().emit('productlistingmgr.execute', productListingMgr => {\n const productId = this.prefs().productId;\n\n if (productListingMgr.isFirstTile(productId)) {\n this.has('previous', previous => previous.hide());\n }\n\n if (productListingMgr.isLastTile(productId)) {\n this.has('next', next => next.hide());\n }\n });\n }\n\n /**\n * @description Show previous product tile quick view\n * @returns {void}\n */\n previous() {\n this.eventBus().emit('quickview.show.previous', this.prefs().productId);\n }\n\n /**\n * @description Show next product tile quick view\n * @returns {void}\n */\n next() {\n this.eventBus().emit('quickview.show.next', this.prefs().productId);\n }\n }\n\n return QuickViewNavigation;\n}\n","/**\n * @typedef {ReturnType} RefinementBase\n */\n\n/**\n * @description Extend Refinement implementation\n * @param {RefinementBase} RefinementBase Base widget for extending\n * @returns {typeof Refinement} Refinement extending widget\n */\nexport default function (RefinementBase) {\n /**\n * @category widgets\n * @subcategory search\n * @class Refinement\n * @augments RefinementBase\n */\n class Refinement extends RefinementBase {\n prefs() {\n return {\n attrCount: 0,\n ...super.prefs()\n };\n }\n\n init() {\n super.init();\n\n if (this.prefs().isRanged) {\n this.value = decodeURIComponent(this.prefs().attrValue);\n }\n }\n\n /**\n * @description Return count product\n * @returns {number} count product\n */\n getCount() {\n return this.prefs().attrCount;\n }\n\n /**\n * @description Check\n */\n check() {\n this.ref('self').attr('aria-checked', 'true');\n this.setPref('pendingFilter', true);\n\n this.selected = true;\n }\n\n /**\n * @description Uncheck\n */\n uncheck() {\n this.ref('self').attr('aria-checked', 'false');\n this.setPref('pendingFilter', false);\n\n this.selected = false;\n }\n }\n\n return Refinement;\n}\n","import { setCookie, getCookie } from 'widgets/toolbox/cookie';\n\n/**\n * @typedef {typeof import('widgets/Widget').default} Widget\n * @typedef {InstanceType } RefElement\n * @typedef {InstanceType>} button\n */\n\nconst GRID_MODE_PRODUCTS = 'products';\n\nconst GRID_TYPE_BASIC = 'basicGrid';\nconst GRID_TYPE_ALTERNATIVE = 'alternativeGrid';\n\n/**\n * @param {Widget} Widget Base widget for extending\n * @returns {typeof RefinementsGridToggle} RefinementsGridToggle class\n */\n\nexport default function (Widget) {\n /**\n * @category widgets\n * @subcategory search\n * @class RefinementsGridToggle\n * @augments Widget\n * @classdesc Represents RefinementsGridToggle component\n */\n\n class RefinementsGridToggle extends Widget {\n prefs() {\n return {\n classesGridButtonActive: 'm-active',\n gridCookieProducts: 'productsGridType',\n gridCookieIdeas: 'ideasGridType',\n gridMode: GRID_MODE_PRODUCTS,\n gridTypeDefault: '',\n ...super.prefs()\n };\n }\n\n /**\n * @description Set grid type for SM viewport. Called on page load,\n * any refinements applied/unapplied, sorting rule updated etc.\n * @returns {void}\n */\n setGridType() {\n const gridCookieName = this.config.gridMode === GRID_MODE_PRODUCTS\n ? this.prefs().gridCookieProducts\n : this.prefs().gridCookieIdeas;\n\n const gridType = getCookie(gridCookieName) || this.prefs().gridTypeDefault;\n\n if (gridType) {\n this.activateGrid(gridType === GRID_TYPE_ALTERNATIVE);\n }\n }\n\n /**\n * @description handle click on grid toggle icon and emmit parent method\n * @param {button} clickedButton current clicked button\n * @returns {void}\n */\n handleGridClick(clickedButton) {\n if (!clickedButton) {\n return;\n }\n\n const isAlternativeGrid = clickedButton.data('id') === GRID_TYPE_ALTERNATIVE;\n\n this.activateGrid(isAlternativeGrid);\n\n setCookie(\n this.config.gridMode === GRID_MODE_PRODUCTS\n ? this.prefs().gridCookieProducts : this.prefs().gridCookieIdeas,\n isAlternativeGrid ? GRID_TYPE_ALTERNATIVE : GRID_TYPE_BASIC\n );\n }\n\n /**\n * @description Activate concrete grid type\n * @param {boolean} isAlternativeGrid is alternative grid switched on\n * @returns {void}\n */\n activateGrid(isAlternativeGrid) {\n this.deactivateGridButtons();\n\n this.getById(\n isAlternativeGrid ? GRID_TYPE_ALTERNATIVE : GRID_TYPE_BASIC,\n (/** @type {button} */gridButton) => gridButton.activate()\n );\n\n // Emit toggle alternative grid class on parent widget {ProductListingMgr}\n this.emitWithoutContext('togglerefinementsgrid', isAlternativeGrid);\n }\n\n /**\n * @description deactivate (remove) grid buttons class names\n * @returns {void}\n */\n deactivateGridButtons() {\n [GRID_TYPE_BASIC, GRID_TYPE_ALTERNATIVE]\n .forEach(gridType => {\n this.getById(\n gridType,\n (/** @type {button} */gridButton) => gridButton.removeClass(\n this.prefs().classesGridButtonActive\n )\n );\n });\n }\n }\n\n return RefinementsGridToggle;\n}\n","import { timeout } from 'widgets/toolbox/util';\nimport { getJSONByUrl } from 'widgets/toolbox/ajax';\nimport {\n appendParamsToUrl,\n getUrlParams,\n removeParamFromURL\n} from 'widgets/toolbox/util';\n\n/**\n * @typedef {ReturnType} RefinementsPanelBase\n */\n\n/**\n * @description Extend RefinementsPanel implementation\n * @param {RefinementsPanelBase} RefinementsPanelBase Base widget for extending\n * @returns {typeof RefinementsPanel} RefinementsPanel extending widget\n */\nexport default function (RefinementsPanelBase) {\n /**\n * @category widgets\n * @subcategory search\n * @class RefinementsPanel\n * @augments RefinementsPanelBase\n */\n class RefinementsPanel extends RefinementsPanelBase {\n /**\n * @description Overloaded Get Refinements Model\n * - `ratings` attribute mustache rendering support with stars\n * @returns {void}\n */\n getRefinementsModel() {\n super.getRefinementsModel();\n\n this.model.starsRating = this.getStarsRatingFunction();\n }\n\n /**\n * @description Mustache helper for displaying rating stars for refinement\n * @returns {Function} mustache helper for stars rating rendering\n */\n getStarsRatingFunction() {\n return function () {\n return function (text, render) {\n const currentValue = render(text);\n\n if (Number.isNaN(currentValue)) {\n return currentValue;\n }\n\n const currentRating = parseInt(currentValue, 10);\n const stars = [1, 2, 3, 4, 5].reduce((acc, val) => {\n return acc + ' 1 ? (Math.round(val - 1) * 18) : 0) + '\" />';\n }, '');\n\n return ''\n + stars\n + '';\n };\n };\n }\n\n /**\n * @description Update Panel\n * @emits RefinementsPanel#noresult\n * @param {object} data Update data\n * @returns {void}\n */\n updatePanel(data) {\n this.ref('dialog').attr('aria-busy', 'true');\n this.ref('panel').removeClass(this.prefs().classesActiveLevel + 2).addClass(this.prefs().classesActiveLevel + 1);\n\n // apply filters and results count only after panel is change back\n this.onDestroy(timeout(() => {\n getJSONByUrl(data.url).then(res => {\n const param = getUrlParams(data.url);\n\n if (Object.keys(res).length && res.count) {\n this.render(\n 'template',\n {\n ...res,\n starsRating: this.getStarsRatingFunction(),\n updateUrl: removeParamFromURL(appendParamsToUrl(this.prefs().showAjaxUrl, param), 'ajax')\n },\n this.ref('dialog')\n ).then(() => {\n this.ref('dialog').addClass(this.prefs().classesDialogOpen);\n this.ref('dialog').attr('aria-busy', 'false');\n this.defineItems();\n this.setFocusToFirstItem();\n });\n } else {\n /**\n * @description Event to\n * @event RefinementsPanel#noresult\n */\n this.emit('noresult');\n }\n });\n }, this.prefs().itemSwitchTimeout));\n }\n\n /**\n * @description Open Menu Panel\n * @param {object} data data\n * @returns {Promise} Promise object represents panel rendering result\n */\n openPanel(data) {\n if (data || !this.isOpen) {\n return super.openPanel(data);\n }\n\n return Promise.resolve();\n }\n }\n\n return RefinementsPanel;\n}\n","/**\n * @typedef {ReturnType} RefinementsPanelToggleBase\n */\n\n/**\n * @description Extends RefinementsPanelToggle implementation\n * @param {RefinementsPanelToggleBase} RefinementsPanelToggleBase Base widget for extending\n * @returns {typeof RefinementsPanelToggle} RefinementsPanelToggle extending widget\n */\nexport default function (RefinementsPanelToggleBase) {\n class RefinementsPanelToggle extends RefinementsPanelToggleBase {\n init() {\n super.init();\n\n this.initGlobalEvents();\n }\n\n /**\n * @description inits global events\n */\n initGlobalEvents() {\n this.eventBus().on('refinement.panel.show', 'showPanel');\n }\n }\n\n return RefinementsPanelToggle;\n}\n","/**\n * @typedef {typeof import('widgets/Widget').default} Widget\n */\n\nimport { getScrollPosition } from 'widgets/toolbox/scroll';\n\n/**\n * @param {Widget} Widget Base widget for extending\n * @returns {typeof StickyRefinements} StickyRefinements widget\n */\nexport default function (Widget) {\n /**\n * @category widgets\n * @subcategory search\n * @class StickyRefinements\n * @augments Widget\n * @classdesc StickyRefinements helper.\n */\n class StickyRefinements extends Widget {\n init() {\n super.init();\n\n const selfEl = this.ref('self').get();\n const stickyContentEl = this.ref('stickyContent').get();\n\n let lastScrollPosition = getScrollPosition();\n\n if (selfEl && stickyContentEl) {\n this.ev('scroll', () => {\n const curentScrollPosition = getScrollPosition();\n const positionDelta = curentScrollPosition - lastScrollPosition;\n\n if (positionDelta > 0) {\n if (stickyContentEl.offsetTop > 0) {\n stickyContentEl.scrollTop += positionDelta;\n }\n } else if (stickyContentEl.offsetTop < stickyContentEl.scrollTop) {\n stickyContentEl.scrollTop += positionDelta;\n }\n\n lastScrollPosition = curentScrollPosition < 0 ? 0 : curentScrollPosition;\n }, window);\n }\n }\n }\n\n return StickyRefinements;\n}\n","/**\n * @typedef {InstanceType} refElement\n */\n\n/**\n * @param BasicForm Base widget for extending\n * @returns NoSearchResultsForm widget\n */\nexport default function (BasicForm: ReturnType) {\n /**\n * @category widgets\n * @subcategory search\n * @class NoSearchResultsForm\n * @augments BasicForm\n * @classdesc NoSearchResultsForm widget component with next features:\n * 1. This is simplified form with no validation rules applied\n * 2. Has an ability to clear user input by pressing button\n * @property {string} data-widget - Widget name \"noSearchResultsForm\"\n * @property {string} data-classes-clear-enabled - class to toggle on clear input button\n * @example Example of NoSearchResultsForm widget usage\n * \n * ... form contents\n * \n * \n * ... submit button\n * \n */\n class NoSearchResultsForm extends BasicForm {\n prefs() {\n return {\n classesClearEnabled: 'm-visible',\n ...super.prefs()\n };\n }\n\n /**\n * @description Submit form simplified handler\n * @param {refElement} _el event source element\n * @param {Event} event event instance\n * @returns {void}\n */\n handleSubmit(_el, event) {\n if (!this.ref('input').val()) {\n event.preventDefault();\n }\n }\n\n /**\n * @description Handle input event into the form field\n * @listens dom#input\n * @returns {void}\n */\n handleInput() {\n this.toggleClearButton(!!this.ref('input').val());\n }\n\n /**\n * @description Toggle Clear Button based on input value\n * @param {boolean} isInputHasValue - indicates if input has a value\n * @returns {void}\n */\n toggleClearButton(isInputHasValue) {\n this.ref('clearButton').toggleClass(this.prefs().classesClearEnabled, isInputHasValue);\n }\n\n /**\n * @description Clear input field\n * @returns {void}\n */\n clearInput() {\n const searchInput = this.ref('input');\n\n searchInput.val('');\n\n const searchInputField = searchInput.get();\n\n if (searchInputField) {\n searchInputField.focus();\n }\n\n this.toggleClearButton(false);\n }\n }\n\n return NoSearchResultsForm;\n}\n","import { RefElement } from 'widgets/toolbox/RefElement';\nimport { get } from 'widgets/toolbox/util';\nimport { scrollWindowTo } from 'widgets/toolbox/scroll';\nimport { getContentByUrl } from 'widgets/toolbox/ajax';\nimport {\n appendParamToURL\n} from 'widgets/toolbox/util';\n\nconst keyCode = Object.freeze({\n RETURN: 13,\n ESC: 27\n});\nconst GRID_UPDATING_EVENT = 'products.grid.updated';\n\n/**\n * @typedef {ReturnType} ProductTile\n * @typedef {ReturnType} InputSelect\n * @typedef {InstanceType} RefElement\n * @typedef {InstanceType} widget\n */\n\n/**\n * @param Tabs Base widget for extending\n * @returns ProductListingMgr widget\n */\nexport default function (Tabs: ReturnType) {\n /**\n * @category widgets\n * @subcategory search\n * @class ProductListingMgr\n * @augments Tabs\n * @classdesc Represents ProductListingMgr component with next features:\n * 1. Updating product grid using product refinement, sorting and paging\n * 2. Load previous/next product tile\n * 3. Allow handling no search result case\n * 4. Allow handling \"Enter\" keydown event to be able to skip refinements and set focus to the first element of the grid\n * @property {string} data-show-url Search show url\n * @property {string} data-show-ajax-url Search show AJAX url\n * @property {string} data-load-more-block Block with a button `Load more` for products\n * @property {string} data-load-more-prev Block with a button `Load previous` for products\n * @property {string} data-product-progress-indicator - reference element with search progress indicator for products search\n * @property {string} data-content-progress-indicator - reference element with search progress indicator for content search\n * @property {string} data-load-more-content-block - Block with a button `Load more` for content\n * @property {object} data-accessibility-alerts - Accessibility alerts messages for different user actions\n * @property {boolean} data-first-page - First page flag\n * Possible values are: `filtersapplied`, `filterremoved`, `sortingapplied`, `productlistupdated`, `addedtowishlist`, `previousstatereverted`\n * @example Example of ProductListingMgr widget usage\n * \n * .... product list contents\n * \n */\n class ProductListingMgr extends Tabs {\n isPanelActive = false;\n\n lastActiveCategory = '';\n\n prefs() {\n return {\n classesActiveSection: 'm-expanded',\n classesBusy: 'm-busy',\n loadMoreBlock: 'loadMoreBlock',\n loadPrevBlock: 'loadPrevBlock',\n loadMoreContentBlock: 'loadMoreContentBlock',\n accessibilityAlerts: {},\n showAjaxUrl: '',\n showUrl: '',\n firstPage: true,\n ...super.prefs()\n };\n }\n\n /**\n * @description Initialize widget logic\n * @returns {void}\n */\n init() {\n super.init();\n this.initEvents();\n\n // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.\n this.handleHistory(true);\n\n if (!this.prefs().firstPage) {\n scrollWindowTo(this.ref('grid').get(), true);\n }\n\n this.eventBus().on('refinement.panel.open', 'openPanel');\n this.eventBus().on('refinement.panel.close', 'closePanel');\n this.eventBus().on('refinement.panel.retainPanelState', 'retainPanelState');\n this.eventBus().on('accordion.panel.open', 'lastAccordionCategory');\n }\n\n /**\n * @description Keep record of last accordion panel ID\n * @param {refElement} el - Button\n */\n lastAccordionCategory(el: RefElement) {\n const e = el?.els[0];\n\n if (e) {\n this.lastActiveCategory = e.id;\n }\n }\n\n /**\n * @description Open Menu Panel\n */\n openPanel() {\n this.isPanelActive = true;\n\n setTimeout(() => {\n // Set focus to panel, timeout to cater for inability to focus not visible element, since it animates in via CSS\n this.ref('refinementsPanel').focus();\n }, 100);\n\n this.ref('refinementsPanel').addClass('-active');\n this.ref('html').addClass('m-has_dialog');\n }\n\n /**\n * @description Close Menu Panel\n */\n closePanel() {\n if (this.isPanelActive) {\n this.isPanelActive = false;\n this.ref('refinementsPanel').removeClass('-active');\n this.ref('html').removeClass('m-has_dialog');\n this.eventBus().emit('refresh.accordion.close');\n }\n }\n\n /**\n * @description Retain the panel state, either previously open or closed\n */\n retainPanelState() {\n if (this.isPanelActive) {\n this.openPanel();\n } else {\n this.closePanel();\n }\n }\n\n /**\n * @description Keep the mobile accordion panel open\n */\n retainAccordion() {\n this.eventBus().emit('refresh.accordion.reinit');\n }\n\n /**\n * @description Keep the last active category accordion open\n */\n retainLastCategory() {\n const findCategory = document.getElementById(this.lastActiveCategory);\n\n if (findCategory && findCategory.getAttribute('aria-expanded') === 'false') {\n findCategory.click();\n }\n }\n\n /**\n * @description Close On Backdrop handler\n * @listens dom#click\n * @param {RefElement} [ref] Reference element\n * @param event - event object\n */\n closeOnBackdrop(ref: RefElement, event: Event) {\n if (event.target === this.ref('refinementsPanel').get()) {\n this.closePanel();\n }\n }\n\n /**\n * @description Update product grid by url\n * @param {string} url Update URL\n * @param {RefElement} [ref] Reference element\n * @param {boolean} [handleHistory] Handle history flag\n * @emits \"products.grid.updated\"\n * @returns {Promise} Promise object represents server response with products list markup\n */\n updateByUrl(url, ref, handleHistory) {\n this.busy();\n\n return getContentByUrl(url)\n .then(response => {\n if (typeof response === 'string') {\n return this.render(undefined, undefined, ref || this.ref('self'), response)\n .then(() => {\n this.eventBus().emit(GRID_UPDATING_EVENT);\n\n if (handleHistory) {\n // @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 0.\n this.handleHistory();\n scrollWindowTo(this.ref('grid').get(), true);\n }\n\n this.handleRetainment();\n })\n .then(() => response);\n } else {\n return response;\n }\n }).catch(() => {\n this.handleNoResult();\n\n return Promise.resolve(null);\n })\n .finally(() => {\n this.unbusy();\n });\n }\n\n /**\n * @description Determine panel state after update success\n */\n handleRetainment() {\n if (this.isPanelActive) {\n this.retainAccordion();\n }\n\n if (this.lastActiveCategory) {\n this.retainLastCategory();\n }\n }\n\n /**\n * @description Handle History\n * @param {boolean} [isReplace] Replace flag\n * @param {object} [history] history object\n * @returns {void}\n */\n handleHistory(isReplace = false, history) {\n const state = {\n ajaxUrl: history ? history.showAjaxUrl : this.prefs().showAjaxUrl\n };\n let historyURL = history ? history.showUrl : this.prefs().showUrl;\n\n if (document.location.hash) {\n historyURL += document.location.hash;\n }\n\n if (isReplace) {\n window.history.replaceState(state, '', historyURL);\n } else {\n window.history.pushState(state, '', historyURL);\n }\n }\n\n /**\n * @description Update View\n * @listens dom#click\n * @param {RefElement|widget} button Target element\n * @returns {void}\n */\n updateView(button) {\n const updateURL = button.data('href');\n const refinementSelected = button.data('checked');\n const alertMessage = refinementSelected\n ? this.prefs().accessibilityAlerts.filterremoved\n : this.prefs().accessibilityAlerts.filtersapplied;\n\n this.updateByUrl(updateURL, undefined, true)\n .then(() => this.accessibilityAlert(alertMessage));\n }\n\n /**\n * @description Update Grid\n * @listens dom#change\n * @param {InstanceType} select Target element\n * @returns {void}\n */\n updateGrid(select) {\n const selectedSorting = select.getSelectedOptions();\n\n if (selectedSorting) {\n const url = selectedSorting.data('url');\n\n this.updateByUrl(url, undefined, true)\n .then(() => this.accessibilityAlert(this.prefs().accessibilityAlerts.sortingapplied));\n }\n }\n\n /**\n * @description Load more products\n * @listens dom#click\n * @param {RefElement} button Target element\n * @returns {void}\n */\n loadMore(button) {\n const href = button.data('show-url');\n const history = {\n showUrl: button.attr('href'),\n showAjaxUrl: button.data('show-ajax-url')\n };\n let url = '';\n\n if (typeof href === 'string') {\n url = href;\n }\n\n this.ref('loadMoreBlock').remove();\n this.loadChunk(url, response => {\n if (typeof response === 'string') {\n this.ref('productGrid').append(response);\n this.accessibilityAlert(this.prefs().accessibilityAlerts.productlistupdated);\n setTimeout(() => this.eventBus().emit(GRID_UPDATING_EVENT), 0);\n }\n }, true, history);\n }\n\n /**\n * @description Load previous products\n * @listens dom#click\n * @param {RefElement} button Target element\n * @returns {void}\n */\n loadPrev(button) {\n const href = button.data('show-url');\n const history = {\n showUrl: button.attr('href'),\n showAjaxUrl: button.data('show-ajax-url')\n };\n let url = '';\n\n if (typeof href === 'string') {\n url = href;\n }\n\n this.ref('loadPrevBlock').remove();\n this.loadChunk(url, response => {\n if (typeof response === 'string') {\n this.ref('productGrid').prepend(response);\n this.accessibilityAlert(this.prefs().accessibilityAlerts.productlistupdated);\n setTimeout(() => this.eventBus().emit(GRID_UPDATING_EVENT), 0);\n }\n }, true, history);\n }\n\n /**\n * @description Load more content\n * @listens dom#click\n * @param {RefElement} button Target element\n * @returns {void}\n */\n loadMoreContent(button) {\n const href = button.attr('href');\n let url = '';\n\n if (typeof href === 'string') {\n url = href;\n }\n\n this.ref('loadMoreContentBlock').remove();\n\n // @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.\n this.loadChunk(url, response => {\n if (typeof response === 'string') {\n this.ref('contentGrid').append(response);\n // eslint-disable-next-line spellcheck/spell-checker\n this.accessibilityAlert(this.prefs().accessibilityAlerts.contentlistupdated);\n }\n }, false);\n }\n\n /**\n * @description Loads chunk of data and executes callback. Data might be either products or content\n * @param {string} url load chunk url\n * @param {(arg: Response) => void} successCb success callback to be called after chunk was loaded with response as an argument\n * @param {boolean} handleHistory do we need to handle history change after chunk loaded\n * @param {object} [history] history object\n */\n loadChunk(url, successCb, handleHistory, history) {\n if (!url) {\n // eslint-disable-next-line no-console\n console.error('Somithing wrong with target URL');\n } else {\n this.busy();\n getContentByUrl(\n appendParamToURL(url, 'selectedUrl', url)\n ).then(response => {\n successCb(response);\n\n if (handleHistory) {\n this.handleHistory(true, history);\n }\n }).finally(() => {\n this.unbusy();\n });\n }\n }\n\n /**\n * @description Show appropriate Global Alert for page changes\n * @emits \"alert.show\"\n * @param {string} message - alert message\n * @returns {void}\n */\n accessibilityAlert(message) {\n // We need to show alerts with delay to not overlap with other big changes on the page\n /**\n * @description Global event to show alert\n * @event \"alert.show\"\n */\n setTimeout(() => this.eventBus().emit('alert.show', { accessibilityAlert: message }), 400);\n }\n\n /**\n * @description Busy\n * @returns {void}\n */\n busy() {\n this.ref('productGrid').addClass(this.prefs().classesBusy).attr('aria-busy', 'true');\n this.ref('contentGrid').addClass(this.prefs().classesBusy).attr('aria-busy', 'true');\n this.ref('refinementsPanel').addClass(this.prefs().classesBusy).attr('aria-busy', 'true');\n }\n\n /**\n * @description Unbusy\n * @returns {void}\n */\n unbusy() {\n this.ref('productGrid').removeClass(this.prefs().classesBusy).attr('aria-busy', false);\n this.ref('contentGrid').removeClass(this.prefs().classesBusy).attr('aria-busy', false);\n this.ref('refinementsPanel').removeClass(this.prefs().classesBusy).attr('aria-busy', false);\n }\n\n /**\n * @description Skip refinements and focus first element in product grid on \"Enter\" keydown event\n * @listens dom#keydown\n * @param {HTMLElement} _ Source of keydown event\n * @param {KeyboardEvent} event Event object\n * @returns {void}\n */\n skipRefinements(_, event) {\n let preventEventActions = false;\n let focused = false;\n\n switch (event.keyCode) {\n case keyCode.RETURN:\n scrollWindowTo(this.ref('productGrid').get(), true);\n this.getById('firstTile', element => {\n focused = true;\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focus' does not exist on type 'Widget'.\n element.focus();\n });\n\n if (!focused && this.items) {\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n // @ts-expect-error check gridItem definition\n if (item.prefs().gridItem) {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focus' does not exist on type 'Widget'.\n item.focus();\n break;\n }\n }\n }\n\n preventEventActions = true;\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * @description Init Events\n * @emits \"alert.show\"\n * @returns {void}\n */\n initEvents() {\n this.ev('popstate', (_target, event) => {\n if (event instanceof PopStateEvent && event.state) {\n const hashChangedOnly = get(event, 'state.hashChangedOnly', false);\n\n if (hashChangedOnly) {\n this.handleUrlChange(false);\n\n return;\n }\n\n let updateUrl = get(event, 'state.ajaxUrl', window.location.href);\n\n updateUrl = appendParamToURL(updateUrl, 'history', 'true');\n\n this.updateByUrl(updateUrl, undefined, false)\n .then(() => {\n this.handleUrlChange(false);\n // eslint-disable-next-line spellcheck/spell-checker\n const accessibilityAlert = this.prefs().accessibilityAlerts.previousstatereverted;\n\n /**\n * @description Global event to show alert\n * @event \"alert.show\"\n */\n this.eventBus().emit('alert.show', {\n accessibilityAlert\n });\n });\n }\n }, window);\n }\n\n /**\n * @description No Result Combination handler\n * @returns {void}\n */\n handleNoResult() {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'showModal' does not exist on type 'Widget... Remove this comment to see the full error message\n this.getById('noResultPopup', popup => popup.showModal());\n }\n\n /**\n * @description Keydown Event handler\n * @listens dom#keydown\n * @param {HTMLElement} _ Source of keydown event\n * @param {KeyboardEvent} event Event object\n */\n handleKeydown(_, event) {\n switch (event.keyCode) {\n case keyCode.ESC:\n if (this.isPanelActive) {\n this.eventBus().emit('refinement.panel.close');\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n return ProductListingMgr;\n}\n","import { TWidget } from 'widgets/Widget';\n\nconst keyCode = Object.freeze({\n RETURN: 13,\n SPACE: 32\n});\n\n/**\n * @param Widget Base widget for extending\n * @returns Refinement widget\n */\nexport default function (Widget: TWidget) {\n /**\n * @category widgets\n * @subcategory search\n * @class Refinement\n * @augments Widget\n * @classdesc Represents Refinement component with next features:\n * 1. Support keyboard navigation for accessibility\n * 2. Support all typo of refinement\n * 3. Use \"update\" and \"uncheck\" event to handle changes used parent methods\n * 4. Using mustache template for dynamic rendering\n *\n * @property {string} data-widget - Widget name `refinement`\n * @property {string} data-widget-event-click - Event listener to call Parent's widget method\n * @property {string} data-event-click - Event listener method `handleClick` for click event on widget\n * @property {string} data-attr-id - attribute id\n * @property {string} data-attr-value - attribute value for on price refinement\n * @property {string} data-value-from - from value for price refinement\n * @property {string} data-value-to - to value for price refinement\n * @property {string} data-event-keydown - keydown handler\n * @property {string} data-widget-event-update=\"updateRefinementControls\"\n * @property {string} data-widget-event-uncheck=\"uncheckRefinements\"\n * @property {string} data-event-click - click handler\n * @property {string} data-checked - checked flag, used for initialization\n * @property {string} [data-prevent-action=false] - prevent any action flag\n * @example Example of Refinement widget usage\n * \n * \n * {{displayValue}} {{${'#'}hitCount}}({{hitCount}}){{/hitCount}}\n * \n * \n */\n class Refinement extends Widget {\n selected = false;\n\n attrId = '';\n\n value = '';\n\n min = '';\n\n max = '';\n\n prefs() {\n return {\n attrRefinement: 'data-refinement',\n preventAction: false,\n checked: false,\n attrId: '',\n attrValue: '',\n valueFrom: '',\n valueTo: '',\n ...super.prefs()\n };\n }\n\n /**\n * @description Toggle check status\n */\n toggleCheck(): void {\n if (this.selected) {\n this.uncheck();\n } else {\n this.check();\n }\n }\n\n /**\n * @description Check\n */\n check(): void {\n this.ref('self').attr('aria-checked', 'true');\n this.selected = true;\n }\n\n /**\n * @description Uncheck\n */\n uncheck(): void {\n this.ref('self').attr('aria-checked', 'false');\n this.selected = false;\n }\n\n /**\n * @description Widget logic initialization\n */\n init(): void {\n this.selected = this.prefs().checked;\n this.attrId = this.prefs().attrId;\n this.value = this.prefs().attrValue;\n this.min = this.prefs().valueFrom;\n this.max = this.prefs().valueTo;\n }\n\n /**\n * @description Focus\n */\n focus(): void {\n return this.ref('self').focus();\n }\n\n /**\n * @description Change state\n * @listens dom#click\n * @emits Refinement#uncheck\n * @emits Refinement#update\n * @param [skipCurrentItemDetermination] Skip Current Item Determination\n */\n changeState(skipCurrentItemDetermination?: boolean): void {\n const param = {};\n\n if (this.prefs().preventAction) {\n return;\n }\n\n if (this.attrId === 'price') {\n /**\n * @description Event to uncheck refinement\n * @event Refinement#uncheck\n */\n this.emit('uncheck');\n this.check();\n } else {\n this.toggleCheck();\n }\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'skipCurrentItemDetermination' does not e... Remove this comment to see the full error message\n param.skipCurrentItemDetermination = skipCurrentItemDetermination;\n /**\n * @description Event to update refinement\n * @event Refinement#update\n */\n this.emit('update', param);\n }\n\n /**\n * @description Is Attribute Refinement\n * @returns Attribute refinement flag\n */\n isAttributeRefinement(): boolean {\n return this.ref('self').hasAttr(this.prefs().attrRefinement);\n }\n\n /**\n * @description Handle Click\n * @listens dom#click\n */\n handleClick(): void {\n this.changeState(true);\n }\n\n /**\n * @description Keydown Event handler\n * @listens dom#keydown\n * @param _ Source of keydown event\n * @param event Event object\n */\n handleKeydown(_: HTMLElement, event: KeyboardEvent): void {\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case keyCode.RETURN:\n case keyCode.SPACE:\n this.changeState();\n preventEventActions = true;\n break;\n default:\n break;\n }\n\n if (preventEventActions) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n return Refinement;\n}\n","import { TWidget } from 'widgets/Widget';\nconst keyCode = Object.freeze({\n RETURN: 13,\n SPACE: 32,\n UP: 38,\n DOWN: 40\n});\n\n/**\n * @param Widget Base widget for extending\n * @returns RefinementsPanelToggle instance\n */\nexport default function (Widget: TWidget) {\n /**\n * @category widgets\n * @subcategory search\n * @class RefinementsPanelToggle\n * @augments Widget\n * @classdesc Widget, which triggers touch/mobile refinements panel to open/close\n * @property {string} data-widget - Widget name `refinementsPanelToggle`\n * @property {string} data-event-click - Event handler method for click event\n * @property {string} data-event-keydown - Event handler method for keydown event\n * \n * \n * ${Resource.msg('refinements.editfilter', 'search', null)}\n * \n * ${Resource.msg('refinements.filter', 'search', null)}\n * \n * \n * \n */\n class RefinementsPanelToggle extends Widget {\n /**\n * @description Init widget logic\n * @listens \"refinement.panel.close\"\n * @listens \"refinement.panel.open\"\n * @returns {void}\n */\n init() {\n this.eventBus().on('refinement.panel.close', 'closePanel');\n this.eventBus().on('refinement.panel.open', 'openPanel');\n }\n\n /**\n * @description Focus\n * @returns {void}\n */\n focus() {\n this.ref('self').focus();\n }\n\n /**\n * @description Show panel\n * @emits \"refinement.panel.open\"\n * @param {boolean} [focusToLastItem] Focus to last item flag\n * @returns {void}\n */\n showPanel(focusToLastItem) {\n this.openPanel();\n /**\n * @description Event to open refinement panel\n * @event \"refinement.panel.open\"\n */\n this.eventBus().emit('refinement.panel.open', { focusToLastItem });\n }\n\n /**\n * @description Handle Click\n * @listens dom#click\n * @returns {void}\n */\n handleClick() {\n // @ts-expect-error ts-migrate(2554) FIXME: Expected 1 arguments, but got 0.\n this.showPanel();\n }\n\n /**\n * @description Open panel\n * @returns {void}\n */\n openPanel() {\n this.ref('self').attr('aria-expanded', 'true');\n }\n\n /**\n * @description Close panel\n * @returns {void}\n */\n closePanel() {\n this.focus();\n this.ref('self').attr('aria-expanded', 'false');\n }\n\n /**\n * @description Keydown Event handler\n * @listens dom#keydown\n * @param {HTMLElement} _ Source of keydown event\n * @param {KeyboardEvent} event Event object\n */\n handleKeydown(_, event) {\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case keyCode.UP:\n this.showPanel(true);\n preventEventActions = true;\n\n break;\n\n case keyCode.RETURN:\n case keyCode.SPACE:\n case keyCode.DOWN:\n\n // @ts-expect-error ts-migrate(2554) FIXME: Expected 1 arguments, but got 0.\n this.showPanel();\n preventEventActions = true;\n\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n return RefinementsPanelToggle;\n}\n"],"names":["Widget","LazyloadTrigger","prefs","threshold","init","eventEmited","has","selfElement","initOnScrollListener","ev","window","innerHeight","get","getBoundingClientRect","top","emit","scrollWindowTo","getStickyHeaderHeight","appendParamToURL","removeParamFromURL","RefElement","IDEAS","PRODUCTS","GRID_UPDATING_EVENT","GTM_DATALAYER_EVENT","GTM_EVENT","THEMATIC","BaseProductListingMgr","ProductListingMgr","refinedByIdeas","keywordSearch","classesProductGridAlternative","classesInited","copyUrlParamsConfig","setGridType","scrollToSavedTile","lazyloadAllowed","latestHref","undefined","inlineSlots","document","querySelectorAll","length","addEventListener","calculateInlineSlotWidth","bind","eventBus","on","anchorTileID","sessionStorage","getItem","firstPage","getById","tile","history","scrollRestoration","ref","behavior","parseInt","left","removeItem","executeCallback","cb","apply","getTileIndex","productId","currentTileIndex","tileIndex","ProductTile","getConstructor","eachChild","child","config","isFirstTile","hasPrevProducts","loadPrevBlock","data","isLastTile","hasMoreProducts","loadMoreBlock","getProductTilesCount","showQuickViewByIndex","index","targetProductTile","triggerQuickView","loadPrev","triggerQuickViewIndex","loadMore","showPreviousQuickView","showNextQuickView","refinementsGridToggle","productTilesCount","onGridUpdated","updateGridInfo","updateMetaLinks","url","model","updateCanonical","updatePaginationPrev","updatePaginationNext","Promise","resolve","canonical","setAttribute","linkRelPrev","productSearch","sz","pageSize","start","pageNumber","prevStart","prevUrl","createLinkPrev","insertAdjacentHTML","replaceParameterInUrl","remove","linkRelNext","nextStart","isLast","count","nextUrl","name","value","currentStart","selfRef","loadPrevButton","Number","currentlyViewedCount","currentlyViewingCount","setText","toString","showMoreRefinements","btn","showMoreResultsContainer","parentElement","refinementsBlock","refinementsItems","Array","from","children","show","showMoreResultsContainerRefElement","hide","toggleIdeas","checkbox","event","eventCategory","eventAction","eventLabel","category","updateView","handleUpdateView","button","addClass","updateURL","refinementSelected","alertMessage","accessibilityAlerts","filterremoved","filtersapplied","location","href","includes","updateByUrl","then","removeClass","accessibilityAlert","checked","eventSublabel","isToggleIdeasButton","currentToggleIdeasState","futureToggleIdeaState","productlistupdated","showUrl","attr","showAjaxUrl","searchModel","loadChunk","response","append","setTimeout","handleHistory","handleNoResult","popup","showModal","toggleGridType","isAlternativeGrid","toggleClass","onNoResultPopupClosed","RefinementsPanel","getRefinementsModel","prop","startLazyload","loadMoreButton","lazyload","updateGrid","select","selectedSorting","getSelectedOptions","afterUpdateGrid","isReplace","state","ajaxUrl","historyURL","lcHref","toLowerCase","hasPaidParams","copyPaidParams","hash","replaceState","pushState","configParams","split","urlParams","URL","searchParams","key","matchesConfigPattern","patterns","some","pattern","endsWith","startsWith","slice","currentURL","currentURLObj","historyURLObj","configPatterns","map","param","trim","forEach","keyLower","set","sortingapplied","busy","refinementsPanel","classesBusy","unbusy","firstAvailableTile","firstAvailableTileOffset","productGrid","productTiles","offsetTop","prepend","item","inlineSlotsTitle","querySelector","style","width","Math","ceil","classList","add","QuickViewNavigation","initNavigation","productListingMgr","previous","next","RefinementBase","Refinement","attrCount","isRanged","decodeURIComponent","attrValue","getCount","check","setPref","selected","uncheck","setCookie","getCookie","GRID_MODE_PRODUCTS","GRID_TYPE_BASIC","GRID_TYPE_ALTERNATIVE","RefinementsGridToggle","classesGridButtonActive","gridCookieProducts","gridCookieIdeas","gridMode","gridTypeDefault","gridCookieName","gridType","activateGrid","handleGridClick","clickedButton","deactivateGridButtons","gridButton","activate","emitWithoutContext","timeout","getJSONByUrl","appendParamsToUrl","getUrlParams","RefinementsPanelBase","starsRating","getStarsRatingFunction","text","render","currentValue","isNaN","currentRating","stars","reduce","acc","val","round","updatePanel","classesActiveLevel","onDestroy","res","Object","keys","updateUrl","classesDialogOpen","defineItems","setFocusToFirstItem","itemSwitchTimeout","openPanel","isOpen","RefinementsPanelToggleBase","RefinementsPanelToggle","initGlobalEvents","getScrollPosition","StickyRefinements","selfEl","stickyContentEl","lastScrollPosition","curentScrollPosition","positionDelta","scrollTop","BasicForm","NoSearchResultsForm","classesClearEnabled","handleSubmit","_el","preventDefault","handleInput","toggleClearButton","isInputHasValue","clearInput","searchInput","searchInputField","focus","getContentByUrl","keyCode","freeze","RETURN","ESC","Tabs","isPanelActive","lastActiveCategory","classesActiveSection","loadMoreContentBlock","initEvents","lastAccordionCategory","el","e","els","id","closePanel","retainPanelState","retainAccordion","retainLastCategory","findCategory","getElementById","getAttribute","click","closeOnBackdrop","target","handleRetainment","catch","finally","loadMoreContent","contentlistupdated","successCb","console","error","message","skipRefinements","_","preventEventActions","focused","element","items","i","gridItem","stopPropagation","_target","PopStateEvent","hashChangedOnly","handleUrlChange","previousstatereverted","handleKeydown","SPACE","attrId","min","max","attrRefinement","preventAction","valueFrom","valueTo","toggleCheck","changeState","skipCurrentItemDetermination","isAttributeRefinement","hasAttr","handleClick","UP","DOWN","showPanel","focusToLastItem"],"sourceRoot":""}