{"version":3,"file":"js/2077.chunk.js?v=1742528680091","mappings":"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","sources":["webpack://fed-boilerplate/./src/3-components/search-uplift/c-search-uplift.js","webpack://fed-boilerplate/./src/4-sections/search-page-new/utils/getLocalisedData.js","webpack://fed-boilerplate/./node_modules/is-retry-allowed/index.js","webpack://fed-boilerplate/./node_modules/axios-retry/dist/esm/index.js"],"sourcesContent":["/* eslint-disable no-plusplus */\nimport $ from 'jquery';\nimport axios from 'axios';\nimport axiosRetry from 'axios-retry';\nimport { currentDomain } from '../../js/utils/apiKeys.js';\nimport { getLocalisedData } from '../../4-sections/search-page-new/utils/getLocalisedData.js';\n\nconst OPEN_CLASS = 'is-open';\nconst INPUT_CLASS = 'has-input';\nconst NO_RESULT_CLASS = 'no-result';\nconst NO_SUGGESTIONS_CLASS = 'no-suggestions';\n\nconst searchUpliftInit = () => {\n    // Targeting Elements\n    const $component = $('.c-search-uplift');\n    if (!$component.length) {\n        return;\n    }\n    const $closeMobile = $component.find('.close-mobile-search');\n    const $inputField = $component.find('.open-search-panel');\n    const $closePanel = $component.find('.close-search-btn');\n    const $enterInput = $component.find('.enter-search-input');\n    const $infoContainer = $component.find('.info-container');\n    const $viewAllProducts = $component.find('.popular-products .view-all-btn');\n    const $viewAllContent = $component.find('.popular-content .view-all-btn');\n    const $popularContainer = $component.find('.popular-container');\n    const $popularProducts = $component.find('.popular-products');\n    const $popularContent = $component.find('.popular-content');\n    const $popularProductsItems = $component.find('.popular-products-items');\n    const $popularContentItems = $component.find('.popular-content-items');\n    const $searchContainer = $component.find('.search-container');\n    const $panelContainer = $component.find('.panel-container');\n    const $noResultText = $component.find('.no-result-text');\n    const $overlay = $component.find('.search-overlay');\n\n    // APIs\n    const searchUrl = $component.data('search-url');\n\n    window.dataLayer = window.dataLayer || [];\n\n    // Set Changeable Content\n    let timeout = null;\n    let dataFound = null;\n    let totalSearchHits;\n    let newProductListHtml = '';\n    let newContentListHtml = '';\n    let suggestedSearchListHtml = '';\n    // const suggestedSearchTitle = `<div class=\"search-panel-header\"><span>Suggested Searches</span></div>`;\n\n    const recentSearchClear = `<div class=\"clear-recent\">\n        <button type=\"button\" class=\"clear-recent-btn\">\n            <svg class=\"svg-icon clear-icon\" style=\"\"><use xlink:href=\"#bin\"></use></svg>\n            <span class=\"close-text\">Clear recent searches</span>\n        </button>\n    </div>`;\n\n    // Functions\n    const resetData = () => {\n        $popularProductsItems.empty();\n        $popularContentItems.empty();\n        $searchContainer.empty();\n        newProductListHtml = '';\n        newContentListHtml = '';\n        suggestedSearchListHtml = '';\n    };\n\n    const appendData = () => {\n        $popularProductsItems.append(newProductListHtml);\n        $popularContentItems.append(newContentListHtml);\n        dataFound = true;\n    };\n\n    const appendSuggestions = () => {\n        $searchContainer.append(suggestedSearchListHtml, recentSearchClear);\n    };\n\n    // const obtainRandomData = (num, items, newArr) => {\n    //     for (let i = 0; i < num; i++) {\n    //         if (i <= items.length) {\n    //             const random = items.splice(\n    //                 Math.floor(Math.random() * items.length),\n    //                 1\n    //             );\n    //             if (!newArr.includes(random)) {\n    //                 newArr.push(random);\n    //             }\n    //         }\n    //     }\n    // };\n\n    // ensure top positioning of opened panel is correct to cover logo\n    const checkSearchTopPositioning = addClass => {\n        if (window.innerWidth > 768 && addClass) {\n            $component.css({ top: 90 });\n        } else {\n            $component.css({ top: 0 });\n        }\n    };\n\n    // ensure in case of iPad resizing that positioning doesn't glitch\n    window.addEventListener('resize', () => {\n        if (window.innerWidth > 768 && $component.hasClass(OPEN_CLASS)) {\n            $component.css({ top: 90 });\n        }\n        if (window.innerWidth < 768 && $component.hasClass(OPEN_CLASS)) {\n            $component.css({ top: 0 });\n        }\n    });\n\n    // Events\n    $closeMobile.on('click', e => {\n        e.preventDefault();\n        $component.removeClass(OPEN_CLASS);\n        checkSearchTopPositioning(false);\n        $infoContainer.removeClass(OPEN_CLASS);\n        $panelContainer.removeClass(NO_RESULT_CLASS);\n        $noResultText.html('');\n    });\n\n    $closePanel.on('click', e => {\n        e.preventDefault();\n        $component.removeClass(OPEN_CLASS);\n        checkSearchTopPositioning(false);\n        $infoContainer.removeClass(OPEN_CLASS);\n        $panelContainer.removeClass(NO_RESULT_CLASS);\n        $noResultText.html('');\n    });\n\n    $enterInput.on('click', e => {\n        e.preventDefault();\n        $inputField.val();\n        window.open(`${searchUrl}q=${$inputField.val()}`, '_self');\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: false,\n            site_search_keyword: $inputField.val(),\n            refined_search: false,\n            search_term: $inputField.val(),\n            site_search_results: totalSearchHits,\n        });\n    });\n\n    $overlay.on('click', () => {\n        $component.removeClass(OPEN_CLASS);\n        checkSearchTopPositioning(false);\n        $infoContainer.removeClass(OPEN_CLASS);\n        $panelContainer.removeClass(NO_RESULT_CLASS);\n        $noResultText.html('');\n    });\n\n    $component.on('click', '.input-container', () => {\n        $component.addClass(OPEN_CLASS);\n        checkSearchTopPositioning(true);\n    });\n\n    $(document).scroll(() => {\n        if ($component.hasClass(OPEN_CLASS)) {\n            $component.css({ top: 0 });\n            $component.removeClass(OPEN_CLASS);\n        }\n    });\n\n    $component.on('click', '.search-option', function() {\n        const id = $(this).attr('id');\n        $inputField.val($(`#${id} span`).html()\n            .trim()\n            .toLowerCase());\n        const suggestedSearch = $inputField.val();\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'searchSuggestion',\n            guided_search_keyword: suggestedSearch,\n        });\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'searchSuggestion',\n            guided_search_keyword: suggestedSearch,\n        });\n        window.open(`${searchUrl}q=${suggestedSearch}`, '_self');\n    });\n\n    $component.on('click', '.spell-check-option', function() {\n        const id = $(this).attr('id');\n        $inputField.val($(`#${id} span`).html());\n        $inputField.trigger('keyup');\n    });\n\n    $component.on('click', '.popular-product', () => {\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: true,\n            site_search_keyword: $inputField.val(),\n            refined_search: false,\n            search_term: $inputField.val(),\n            site_search_results: totalSearchHits,\n        });\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'Popular Product',\n            guided_search_keyword: $inputField.val(),\n        });\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: true,\n            site_search_keywords: $inputField.val(),\n            refined_search: false,\n            site_search_results: totalSearchHits,\n        });\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'Popular Product',\n            guided_search_keyword: $inputField.val(),\n        });\n    });\n\n    $component.on('click', '.popular-content', () => {\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: true,\n            site_search_keyword: $inputField.val(),\n            refined_search: false,\n            search_term: $inputField.val(),\n            site_search_results: totalSearchHits,\n        });\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'Popular Content',\n            guided_search_keyword: $inputField.val(),\n        });\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: true,\n            site_search_keywords: $inputField.val(),\n            refined_search: false,\n            site_search_results: totalSearchHits,\n        });\n        window.dataLayer.push({\n            event: 'guided_search_click',\n            guided_search_category: 'Popular Content',\n            guided_search_keyword: $inputField.val(),\n        });\n    });\n\n    $viewAllProducts.on('click', () => {\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: false,\n            site_search_keyword: $inputField.val(),\n            refined_search: true, // due to triggering same search but going to search results\n            search_term: $inputField.val(),\n            site_search_results: totalSearchHits,\n        });\n    });\n\n    $viewAllContent.on('click', () => {\n        window.dataLayer.push({\n            event: 'search',\n            site_search_category: 'Federated Search',\n            is_guided_search: false,\n            site_search_keyword: $inputField.val(),\n            refined_search: true, // due to triggering same search but going to search results\n            search_term: $inputField.val(),\n            site_search_results: totalSearchHits,\n        });\n    });\n\n    $component.on('click', '.clear-recent-btn', () => {\n        $searchContainer.empty();\n    });\n\n    $inputField.on('keydown', e => {\n        if (e.key === 'Enter' || e.key === 'Go') {\n            e.preventDefault();\n            $inputField.val();\n            if ($inputField.val().length) {\n                window.open(\n                    `${searchUrl}q=${$inputField.val().replace('&', 'and')}`,\n                    '_self'\n                );\n                window.dataLayer.push({\n                    event: 'search',\n                    site_search_category: 'Federated Search',\n                    is_guided_search: false,\n                    site_search_keyword: $inputField.val(),\n                    refined_search: false,\n                    search_term: $inputField.val(),\n                    site_search_results: totalSearchHits,\n                });\n            }\n        }\n    });\n\n    // API Calls\n    const callApi = () => {\n        timeout = null;\n        dataFound = null;\n        axiosRetry(axios, { retries: 3 });\n\n        $inputField.val();\n\n        const productsData = {\n            searcher: `${currentDomain === 'pdl' ? 'pdl/products' : 'clipsal/products'}`,\n            term: $inputField.val(),\n            country: `${currentDomain === 'pdl' ? 'NZ' : 'AU'}`,\n            language: 'en',\n        };\n\n        const contentData = {\n            searcher: `${currentDomain === 'pdl' ? 'pdl/content' : 'clipsal/content'}`,\n            term: $inputField.val(),\n            country: `${currentDomain === 'pdl' ? 'NZ' : 'AU'}`,\n            language: 'en',\n        };\n\n        const requestProducts = axios.post('/webapi/v1/search', productsData, {\n            header: {\n                'Content-Type': 'application/json',\n                Accept: '*/*',\n            },\n        });\n        const requestContent = axios.post('/webapi/v1/search', contentData, {\n            header: {\n                'Content-Type': 'application/json',\n                Accept: '*/*',\n            },\n        });\n        // const requestSuggestions = axios.post('/webapi/vi/search', data);\n\n        // 1. axios get for all 4 requests\n        setTimeout(() => {\n            axios\n                .all([\n                    requestProducts,\n                    requestContent\n                ])\n                .then(\n                    axios.spread((...responses) => {\n                        const productsResponse = responses[0];\n                        const contentResponse = responses[1];\n\n                        if ($inputField.val().length) {\n                            $infoContainer.addClass(OPEN_CLASS);\n                        }\n\n                        if (\n                            $inputField.val().length &&\n                            (productsResponse.data.stats.totalHits !== 0 || contentResponse.data.stats.totalHits !== 0)\n                        ) {\n                            $panelContainer.removeClass(NO_RESULT_CLASS);\n                            $noResultText.html('');\n                        }\n\n                        // 2. resets populated data when new input entered, prevents over-population of data\n                        resetData();\n\n                        // 3. Render/populate data in panel\n                        const productItems =\n                            productsResponse.data.documents;\n                        const contentItems =\n                            contentResponse.data.documents;\n                        // const suggestedSearches =\n                        //     suggestionsResponse.data.documents;\n                        const popularProducts = productItems.slice(0, 4);\n                        const popularContent = contentItems.slice(0, 2);\n                        // const suggestions = [];\n                        // totalSearchHits = searchResponse.data.stats.totalHits;\n\n                        // obtainRandomData(5, suggestedSearches, suggestions);\n\n                        // Render suggested searches\n                        // suggestedSearchListHtml = suggestedSearches.map(\n                        //     (search, index) => {\n                        //         let searchTerm = '';\n                        //         if (index === 0) {\n                        //             searchTerm = $inputField.val();\n                        //         } else if (search.title_qc && index > 0) {\n                        //             searchTerm = search.title_qc;\n                        //         } else {\n                        //             searchTerm = search.queryString_qc;\n                        //         }\n\n                        //         return `\n                        //                 <button type=\"button\" id=\"search-${index}\" class=\"search-option\">\n                        //                     <svg class=\"svg-icon search-btn\" style=\"\"><use xlink:href=\"#pictogram-search\"></use></svg>\n                        //                     <span>\n                        //                         ${searchTerm[0].toUpperCase() + searchTerm.slice(1).toLowerCase()}\n                        //                     </span>\n                        //                 </button>`;\n                        //     }\n                        // );\n\n                        // if (!suggestedSearches.length) { // edit this\n                        $searchContainer.addClass(NO_RESULT_CLASS);\n                        $popularContainer.addClass(NO_SUGGESTIONS_CLASS);\n                        // } else {\n                        //     $searchContainer.removeClass(NO_RESULT_CLASS);\n                        //     $popularContainer.removeClass(NO_SUGGESTIONS_CLASS);\n                        //     $searchContainer.append(suggestedSearchTitle);\n                        // }\n\n                        // Render the popular products\n                        if (!popularProducts[0]) {\n                            $popularProducts.addClass(NO_RESULT_CLASS);\n                        } else {\n                            $popularProducts.removeClass(NO_RESULT_CLASS);\n                            $viewAllProducts.html('');\n                            newProductListHtml = popularProducts.map(\n                                product => {\n                                    const localisedItem = getLocalisedData(product);\n                                    // ensures an image provided in markup as some have multiple images\n                                    let productImage;\n                                    if (localisedItem.images.length) {\n                                        productImage = localisedItem.images[0].openUrl;\n                                    } else {\n                                        productImage = localisedItem.images.openUrl;\n                                    }\n\n                                    return (\n                                        // eslint-disable-next-line implicit-arrow-linebreak\n                                        `<a href=\"${localisedItem.openUrl}\" class=\"popular-product\">\n                                            <div class=\"product-image-container\">\n                                                <img class=\"product-image\" src=\"${productImage}\" alt=\"${localisedItem.title}\" />\n                                            </div>\n                                            <div class=\"product-details\">\n                                                <div class=\"product-title\">${localisedItem.title}</div>\n                                                <div class=\"product-cat-no\">${localisedItem.catalogueNumber}</div>\n                                                <div class=\"product-category\">${localisedItem.rangeName || ''}</div>\n                                            </div>\n                                        </a>`\n                                    );\n                                }\n                            );\n                            if (popularProducts.length > 1) {\n                                $viewAllProducts.html('View all');\n                                $viewAllProducts.attr(\n                                    'href',\n                                    `${searchUrl}q=${$inputField\n                                        .val()\n                                        .replace(\n                                            '&',\n                                            'and'\n                                        )}&datasource=products`\n                                );\n                            }\n                        }\n\n                        // Render the panel content\n                        if (!popularContent[0]) {\n                            $popularContent.addClass(NO_RESULT_CLASS);\n                            $viewAllContent.html('');\n                        } else {\n                            $popularContent.removeClass(NO_RESULT_CLASS);\n                            newContentListHtml = popularContent.map(\n                                content => {\n                                    const localisedItem = getLocalisedData(content);\n                                    return `<a href=\"${localisedItem.openUrl}\">${localisedItem.title}</a>`;\n                                }\n                            );\n                        }\n\n                        if (!popularProducts[0] && !popularContent[0]) {\n                            $panelContainer.addClass(NO_RESULT_CLASS);\n                            if ($inputField.val().length) {\n                                $noResultText.html(\n                                    `No matches for <b style=\"color: black\">'${$inputField.val()}'</b>`\n                                );\n                            }\n                        }\n\n                        appendSuggestions();\n\n                        appendData();\n                    })\n                )\n                .catch(error => {\n                    console.error(error);\n                    $component.addClass(OPEN_CLASS);\n                    checkSearchTopPositioning(true);\n                    $panelContainer.addClass(NO_RESULT_CLASS);\n                    if ($inputField.val().length) {\n                        $noResultText.html(\n                            `<b style=\"color: red\">'Sorry, an error occurred while processing your request.\n                            Please refresh your browser.'</b>`\n                        );\n                    }\n                });\n        }, 0);\n    };\n\n    $inputField.on('click', () => {\n        if (\n            !$component.hasClass(OPEN_CLASS) &&\n            $inputField.val().length &&\n            dataFound\n        ) {\n            $component.addClass(OPEN_CLASS);\n            $infoContainer.addClass(OPEN_CLASS);\n        } else if (\n            !$component.hasClass(OPEN_CLASS) &&\n            $inputField.val().length &&\n            !dataFound\n        ) {\n            if (timeout !== null) {\n                clearTimeout(timeout);\n            }\n            timeout = setTimeout(callApi, 1000);\n            $enterInput.addClass(INPUT_CLASS);\n        }\n    });\n\n    $inputField.keyup(() => {\n        if ($inputField.val().trim().length < 3) {\n            $enterInput.removeClass(INPUT_CLASS);\n        } else {\n            $enterInput.addClass(INPUT_CLASS);\n        }\n        if (timeout !== null) {\n            clearTimeout(timeout);\n        }\n        if ($inputField.val().trim().length > 2) {\n            timeout = setTimeout(callApi, 1000);\n        }\n    });\n};\n\n$(() => {\n    searchUpliftInit();\n});\n","import { currentDomain } from '../../../js/utils/apiKeys';\n\nexport const getLocalisedData = item => {\n    if (currentDomain === 'pdl') {\n        return item.en_NZ;\n    }\n    return item.en_AU;\n};\n","'use strict';\n\nconst denyList = new Set([\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED',\n\t'HOSTNAME_MISMATCH'\n]);\n\n// TODO: Use `error?.code` when targeting Node.js 14\nmodule.exports = error => !denyList.has(error && error.code);\n","import isRetryAllowed from 'is-retry-allowed';\nexport const namespace = 'axios-retry';\nexport function isNetworkError(error) {\n    const CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED'];\n    if (error.response) {\n        return false;\n    }\n    if (!error.code) {\n        return false;\n    }\n    // Prevents retrying timed out & cancelled requests\n    if (CODE_EXCLUDE_LIST.includes(error.code)) {\n        return false;\n    }\n    // Prevents retrying unsafe errors\n    return isRetryAllowed(error);\n}\nconst SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nconst IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\nexport function isRetryableError(error) {\n    return (error.code !== 'ECONNABORTED' &&\n        (!error.response ||\n            error.response.status === 429 ||\n            (error.response.status >= 500 && error.response.status <= 599)));\n}\nexport function isSafeRequestError(error) {\n    if (!error.config?.method) {\n        // Cannot determine if the request can be retried\n        return false;\n    }\n    return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nexport function isIdempotentRequestError(error) {\n    if (!error.config?.method) {\n        // Cannot determine if the request can be retried\n        return false;\n    }\n    return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nexport function isNetworkOrIdempotentRequestError(error) {\n    return isNetworkError(error) || isIdempotentRequestError(error);\n}\nexport function retryAfter(error = undefined) {\n    const retryAfterHeader = error?.response?.headers['retry-after'];\n    if (!retryAfterHeader) {\n        return 0;\n    }\n    // if the retry after header is a number, convert it to milliseconds\n    let retryAfterMs = (Number(retryAfterHeader) || 0) * 1000;\n    // If the retry after header is a date, get the number of milliseconds until that date\n    if (retryAfterMs === 0) {\n        retryAfterMs = (new Date(retryAfterHeader).valueOf() || 0) - Date.now();\n    }\n    return Math.max(0, retryAfterMs);\n}\nfunction noDelay(_retryNumber = 0, error = undefined) {\n    return Math.max(0, retryAfter(error));\n}\nexport function exponentialDelay(retryNumber = 0, error = undefined, delayFactor = 100) {\n    const calculatedDelay = 2 ** retryNumber * delayFactor;\n    const delay = Math.max(calculatedDelay, retryAfter(error));\n    const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n    return delay + randomSum;\n}\n/**\n * Linear delay\n * @param {number | undefined} delayFactor - delay factor in milliseconds (default: 100)\n * @returns {function} (retryNumber: number, error: AxiosError | undefined) => number\n */\nexport function linearDelay(delayFactor = 100) {\n    return (retryNumber = 0, error = undefined) => {\n        const delay = retryNumber * delayFactor;\n        return Math.max(delay, retryAfter(error));\n    };\n}\nexport const DEFAULT_OPTIONS = {\n    retries: 3,\n    retryCondition: isNetworkOrIdempotentRequestError,\n    retryDelay: noDelay,\n    shouldResetTimeout: false,\n    onRetry: () => { },\n    onMaxRetryTimesExceeded: () => { },\n    validateResponse: null\n};\nfunction getRequestOptions(config, defaultOptions) {\n    return { ...DEFAULT_OPTIONS, ...defaultOptions, ...config[namespace] };\n}\nfunction setCurrentState(config, defaultOptions, resetLastRequestTime = false) {\n    const currentState = getRequestOptions(config, defaultOptions || {});\n    currentState.retryCount = currentState.retryCount || 0;\n    if (!currentState.lastRequestTime || resetLastRequestTime) {\n        currentState.lastRequestTime = Date.now();\n    }\n    config[namespace] = currentState;\n    return currentState;\n}\nfunction fixConfig(axiosInstance, config) {\n    // @ts-ignore\n    if (axiosInstance.defaults.agent === config.agent) {\n        // @ts-ignore\n        delete config.agent;\n    }\n    if (axiosInstance.defaults.httpAgent === config.httpAgent) {\n        delete config.httpAgent;\n    }\n    if (axiosInstance.defaults.httpsAgent === config.httpsAgent) {\n        delete config.httpsAgent;\n    }\n}\nasync function shouldRetry(currentState, error) {\n    const { retries, retryCondition } = currentState;\n    const shouldRetryOrPromise = (currentState.retryCount || 0) < retries && retryCondition(error);\n    // This could be a promise\n    if (typeof shouldRetryOrPromise === 'object') {\n        try {\n            const shouldRetryPromiseResult = await shouldRetryOrPromise;\n            // keep return true unless shouldRetryPromiseResult return false for compatibility\n            return shouldRetryPromiseResult !== false;\n        }\n        catch (_err) {\n            return false;\n        }\n    }\n    return shouldRetryOrPromise;\n}\nasync function handleRetry(axiosInstance, currentState, error, config) {\n    currentState.retryCount += 1;\n    const { retryDelay, shouldResetTimeout, onRetry } = currentState;\n    const delay = retryDelay(currentState.retryCount, error);\n    // Axios fails merging this configuration to the default configuration because it has an issue\n    // with circular structures: https://github.com/mzabriskie/axios/issues/370\n    fixConfig(axiosInstance, config);\n    if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n        const lastRequestDuration = Date.now() - currentState.lastRequestTime;\n        const timeout = config.timeout - lastRequestDuration - delay;\n        if (timeout <= 0) {\n            return Promise.reject(error);\n        }\n        config.timeout = timeout;\n    }\n    config.transformRequest = [(data) => data];\n    await onRetry(currentState.retryCount, error, config);\n    if (config.signal?.aborted) {\n        return Promise.resolve(axiosInstance(config));\n    }\n    return new Promise((resolve) => {\n        const abortListener = () => {\n            clearTimeout(timeout);\n            resolve(axiosInstance(config));\n        };\n        const timeout = setTimeout(() => {\n            resolve(axiosInstance(config));\n            if (config.signal?.removeEventListener) {\n                config.signal.removeEventListener('abort', abortListener);\n            }\n        }, delay);\n        if (config.signal?.addEventListener) {\n            config.signal.addEventListener('abort', abortListener, { once: true });\n        }\n    });\n}\nasync function handleMaxRetryTimesExceeded(currentState, error) {\n    if (currentState.retryCount >= currentState.retries)\n        await currentState.onMaxRetryTimesExceeded(error, currentState.retryCount);\n}\nconst axiosRetry = (axiosInstance, defaultOptions) => {\n    const requestInterceptorId = axiosInstance.interceptors.request.use((config) => {\n        setCurrentState(config, defaultOptions, true);\n        if (config[namespace]?.validateResponse) {\n            // by setting this, all HTTP responses will be go through the error interceptor first\n            config.validateStatus = () => false;\n        }\n        return config;\n    });\n    const responseInterceptorId = axiosInstance.interceptors.response.use(null, async (error) => {\n        const { config } = error;\n        // If we have no information to retry the request\n        if (!config) {\n            return Promise.reject(error);\n        }\n        const currentState = setCurrentState(config, defaultOptions);\n        if (error.response && currentState.validateResponse?.(error.response)) {\n            // no issue with response\n            return error.response;\n        }\n        if (await shouldRetry(currentState, error)) {\n            return handleRetry(axiosInstance, currentState, error, config);\n        }\n        await handleMaxRetryTimesExceeded(currentState, error);\n        return Promise.reject(error);\n    });\n    return { requestInterceptorId, responseInterceptorId };\n};\n// Compatibility with CommonJS\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.linearDelay = linearDelay;\naxiosRetry.isRetryableError = isRetryableError;\nexport default axiosRetry;\n"],"names":["OPEN_CLASS","INPUT_CLASS","NO_RESULT_CLASS","$","$component","length","$closeMobile","find","$inputField","$closePanel","$enterInput","$infoContainer","$viewAllProducts","$viewAllContent","$popularContainer","$popularProducts","$popularContent","$popularProductsItems","$popularContentItems","$searchContainer","$panelContainer","$noResultText","$overlay","searchUrl","data","window","dataLayer","totalSearchHits","timeout","dataFound","newProductListHtml","newContentListHtml","suggestedSearchListHtml","checkSearchTopPositioning","addClass","innerWidth","css","top","addEventListener","hasClass","on","e","preventDefault","removeClass","html","val","open","concat","push","event","site_search_category","is_guided_search","site_search_keyword","refined_search","search_term","site_search_results","document","scroll","id","this","attr","trim","toLowerCase","suggestedSearch","guided_search_category","guided_search_keyword","trigger","site_search_keywords","empty","key","replace","callApi","axiosRetry","axios","retries","productsData","searcher","currentDomain","term","country","language","contentData","requestProducts","post","header","Accept","requestContent","setTimeout","all","then","spread","productsResponse","arguments","undefined","contentResponse","stats","totalHits","productItems","documents","contentItems","popularProducts","slice","popularContent","map","product","productImage","localisedItem","getLocalisedData","images","openUrl","title","catalogueNumber","rangeName","content","append","error","console","clearTimeout","keyup","searchUpliftInit","item","en_NZ","en_AU","denyList","Set","module","exports","has","code","namespace","isNetworkError","response","includes","SAFE_HTTP_METHODS","IDEMPOTENT_HTTP_METHODS","isRetryableError","status","isIdempotentRequestError","config","method","indexOf","isNetworkOrIdempotentRequestError","retryAfter","retryAfterHeader","headers","retryAfterMs","Number","Date","valueOf","now","Math","max","DEFAULT_OPTIONS","retryCondition","retryDelay","_retryNumber","shouldResetTimeout","onRetry","onMaxRetryTimesExceeded","validateResponse","setCurrentState","defaultOptions","resetLastRequestTime","currentState","getRequestOptions","retryCount","lastRequestTime","axiosInstance","requestInterceptorId","interceptors","request","use","validateStatus","responseInterceptorId","async","Promise","reject","shouldRetryOrPromise","_err","shouldRetry","delay","defaults","agent","httpAgent","httpsAgent","fixConfig","lastRequestDuration","transformRequest","signal","aborted","resolve","abortListener","removeEventListener","once","handleRetry","handleMaxRetryTimesExceeded","isSafeRequestError","exponentialDelay","retryNumber","delayFactor","calculatedDelay","random","linearDelay"],"sourceRoot":""}