{
  "version": 3,
  "sources": ["/cdn/shop/t/3495/assets/language-switcher.js?T=84138677175399877021481050481"],
  "sourcesContent": ["// themeVariables comes from snippets/js-variables.liquid; don't crash if this file runs without it.\nwindow.themeVariables = window.themeVariables || {};\n\nwindow.themeVariables.LanguageSwitcher = (function () {\n    console.log(\"Custom Language Switcher!\");\n    const selectors = {\n        countriesData: \"#countriesData\",\n        countryContent: \".country-content\",\n        locationUrl: \"/browsing_context_suggestions\",\n        languageChanger: \".lang-changer\",\n        countryChangers: \".country-button\",\n        close: \".fancy-shop-change-closebutton\",\n        redirectRules: {\n            \"FR\": [\"be\", \"fr\"],\n            \"DE\": [\"de\", \"at\", \"ch\"],\n        }\n    };\n\n    function LanguageSwitcher() {\n        const countriesData = document.querySelector(selectors.countriesData);\n        this.countryContent = countriesData ? JSON.parse(countriesData.innerHTML).Countries : [];\n        this.languageChanger = document.querySelectorAll(selectors.languageChanger);\n        this.closeFancyRedirections = document.querySelectorAll(selectors.close);\n        this.countryChangers = document.querySelectorAll(selectors.countryChangers);\n        this._init();\n    }\n\n    LanguageSwitcher.prototype = Object.assign({}, LanguageSwitcher.prototype, {\n        _init: async function () {\n            this._bindEvents();\n            if (!this.countryContent.length) return;\n            this.loadedData = await this._loadLocations();\n            if (!this.loadedData) return;\n            this._redirect();\n        },\n\n        _bindEvents: function () {\n            // Redirection pop-up close event\n            this.closeFancyRedirections.forEach((closer) => {\n                closer.addEventListener(\"click\", function (event) {\n                    if (event.currentTarget.closest(\".country-content\")) {\n                        event.currentTarget.closest(\".country-content\").style.display = \"none\";\n                        localStorage.setItem(\"fancy-redirection\", false);\n                    }\n                });\n            });\n\n            this.languageChanger.forEach((switcher) => {\n                switcher.addEventListener(\"click\", function (event) {\n                    window.location.href = event.currentTarget.getAttribute(\"data-value\");\n                });\n            });\n            this.countryChangers.forEach((countryChanger) => {\n                countryChanger.addEventListener(\"click\", function (event) {\n                    let link = event.currentTarget.getAttribute(\"data-link\");\n                    console.log(link);\n                    window.location.href = link; //open in same tab\n                });\n            });\n        },\n\n        // The country suggestion is optional: on a network failure or a non-JSON answer\n        // we skip the redirect banner instead of throwing an unhandled rejection.\n        _loadLocations: async function () {\n            try {\n                const response = await fetch(selectors.locationUrl);\n                if (!response.ok) return null;\n                return await response.json();\n            } catch (error) {\n                return null;\n            }\n        },\n\n        _redirect: function () {\n            const detectedValues = this.loadedData.detected_values;\n            const country = detectedValues && detectedValues.country;\n            if (!country || !country.handle) return;\n            // Get stores url;\n            let windowOrigin = (window.location.origin).split(\".\")[1] //(\"https://holyenergy.fr\").split(\".\")[1];\n            let currentLocation = (country.handle).toLowerCase();\n            let FRstoreRules = selectors.redirectRules.FR;\n            let DEstoreRules = selectors.redirectRules.DE;\n            let isOrigin = windowOrigin === currentLocation;\n            let redirectElement;\n            if (FRstoreRules.indexOf(currentLocation) > -1 && !isOrigin) {\n                //console.log(\"Redirect to fr store\");\n                redirectElement = document.querySelector(`${selectors.countryContent}[data-redirect-country='FR']`);\n            }\n            if (DEstoreRules.indexOf(currentLocation) > -1 && !isOrigin) {\n                //console.log(\"Redirect to DE store\");\n                redirectElement = document.querySelector(`${selectors.countryContent}[data-redirect-country='DE']`);\n            }\n            redirectElement ? (redirectElement.style.display = \"inline-flex\", window.scrollTo({ top: 0, behaviour: \"smooth\" })) : null;\n\n        }\n    });\n    return LanguageSwitcher;\n})();\n\nif (window.themeVariables.settings && window.themeVariables.settings.customLanguageSwitcher) {\n    new window.themeVariables.LanguageSwitcher();\n}"],
  "mappings": "AACA,OAAO,eAAiB,OAAO,gBAAkB,CAAC,EAElD,OAAO,eAAe,kBAAoB,UAAY,CAClD,QAAQ,IAAI,2BAA2B,EACvC,MAAM,UAAY,CACd,cAAe,iBACf,eAAgB,mBAChB,YAAa,gCACb,gBAAiB,gBACjB,gBAAiB,kBACjB,MAAO,iCACP,cAAe,CACX,GAAM,CAAC,KAAM,IAAI,EACjB,GAAM,CAAC,KAAM,KAAM,IAAI,CAC3B,CACJ,EAEA,SAAS,kBAAmB,CACxB,MAAM,cAAgB,SAAS,cAAc,UAAU,aAAa,EACpE,KAAK,eAAiB,cAAgB,KAAK,MAAM,cAAc,SAAS,EAAE,UAAY,CAAC,EACvF,KAAK,gBAAkB,SAAS,iBAAiB,UAAU,eAAe,EAC1E,KAAK,uBAAyB,SAAS,iBAAiB,UAAU,KAAK,EACvE,KAAK,gBAAkB,SAAS,iBAAiB,UAAU,eAAe,EAC1E,KAAK,MAAM,CACf,CAEA,wBAAiB,UAAY,OAAO,OAAO,CAAC,EAAG,iBAAiB,UAAW,CACvE,MAAO,gBAAkB,CACrB,KAAK,YAAY,EACZ,KAAK,eAAe,SACzB,KAAK,WAAa,MAAM,KAAK,eAAe,EACvC,KAAK,YACV,KAAK,UAAU,EACnB,EAEA,YAAa,UAAY,CAErB,KAAK,uBAAuB,QAAS,QAAW,CAC5C,OAAO,iBAAiB,QAAS,SAAU,MAAO,CAC1C,MAAM,cAAc,QAAQ,kBAAkB,IAC9C,MAAM,cAAc,QAAQ,kBAAkB,EAAE,MAAM,QAAU,OAChE,aAAa,QAAQ,oBAAqB,EAAK,EAEvD,CAAC,CACL,CAAC,EAED,KAAK,gBAAgB,QAAS,UAAa,CACvC,SAAS,iBAAiB,QAAS,SAAU,MAAO,CAChD,OAAO,SAAS,KAAO,MAAM,cAAc,aAAa,YAAY,CACxE,CAAC,CACL,CAAC,EACD,KAAK,gBAAgB,QAAS,gBAAmB,CAC7C,eAAe,iBAAiB,QAAS,SAAU,MAAO,CACtD,IAAI,KAAO,MAAM,cAAc,aAAa,WAAW,EACvD,QAAQ,IAAI,IAAI,EAChB,OAAO,SAAS,KAAO,IAC3B,CAAC,CACL,CAAC,CACL,EAIA,eAAgB,gBAAkB,CAC9B,GAAI,CACA,MAAM,SAAW,MAAM,MAAM,UAAU,WAAW,EAClD,OAAK,SAAS,GACP,MAAM,SAAS,KAAK,EADF,IAE7B,MAAgB,CACZ,OAAO,IACX,CACJ,EAEA,UAAW,UAAY,CACnB,MAAM,eAAiB,KAAK,WAAW,gBACjC,QAAU,gBAAkB,eAAe,QACjD,GAAI,CAAC,SAAW,CAAC,QAAQ,OAAQ,OAEjC,IAAI,aAAgB,OAAO,SAAS,OAAQ,MAAM,GAAG,EAAE,CAAC,EACpD,gBAAmB,QAAQ,OAAQ,YAAY,EAC/C,aAAe,UAAU,cAAc,GACvC,aAAe,UAAU,cAAc,GACvC,SAAW,eAAiB,gBAC5B,gBACA,aAAa,QAAQ,eAAe,EAAI,IAAM,CAAC,WAE/C,gBAAkB,SAAS,cAAc,GAAG,UAAU,cAAc,8BAA8B,GAElG,aAAa,QAAQ,eAAe,EAAI,IAAM,CAAC,WAE/C,gBAAkB,SAAS,cAAc,GAAG,UAAU,cAAc,8BAA8B,GAEtG,kBAAmB,gBAAgB,MAAM,QAAU,cAAe,OAAO,SAAS,CAAE,IAAK,EAAG,UAAW,QAAS,CAAC,EAErH,CACJ,CAAC,EACM,gBACX,GAAG,EAEC,OAAO,eAAe,UAAY,OAAO,eAAe,SAAS,wBACjE,IAAI,OAAO,eAAe",
  "names": []
}
