{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/locale-modal.js?cv=573c0a5"],
  "sourcesContent": ["import { x, u, r as register } from \"./preact-core.js\";\nimport { C as CustomSelect } from \"./custom-select.js\";\nimport { l as layout } from \"./layout-store.js\";\nimport { E, d } from \"./preact-signals.js\";\nclass Modal extends x {\n  constructor(props) {\n    super(props);\n    this.state = {\n      isOpen: false\n    };\n    E(() => {\n      if (layout.modal.value == this.props.title) {\n        this.setState({ isOpen: true });\n        document.body.classList.add(\"modal-open\");\n      } else {\n        this.setState({ isOpen: false });\n        document.body.classList.remove(\"modal-open\");\n      }\n    });\n    if (window.location.hash === `#${this.props.title}`) {\n      this.setState({ isOpen: true });\n    }\n    this.externalTriggers = document.querySelectorAll(\n      `button[data-target=\"${this.props.title}\"]`\n    );\n    this.externalTriggers.forEach((trigger) => {\n      trigger.addEventListener(\"click\", () => {\n        layout.modal.value = this.props.title;\n      });\n    });\n  }\n  componentDidUpdate(previousProps, previousState) {\n    if (previousState.isOpen !== this.state.isOpen) {\n      document.documentElement.style.overflow = this.state.isOpen ? \"hidden\" : \"\";\n    }\n  }\n  close() {\n    layout.modal.value = null;\n  }\n  render() {\n    return /* @__PURE__ */ u(\"div\", { class: `modal ${this.state.isOpen ? \"active\" : null}`, children: [\n      /* @__PURE__ */ u(\"div\", { class: \"modal__panel \", children: [\n        /* @__PURE__ */ u(\n          \"button\",\n          {\n            class: \"close\",\n            \"data-close\": \"engraving-modal\",\n            onClick: this.close,\n            children: /* @__PURE__ */ u(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", children: [\n              /* @__PURE__ */ u(\"path\", { d: \"M1 1L20 20\", stroke: \"currentColor\" }),\n              /* @__PURE__ */ u(\"path\", { d: \"M20 1L1 20\", stroke: \"currentColor\" })\n            ] })\n          }\n        ),\n        /* @__PURE__ */ u(\"div\", { class: \"modal__content\", children: this.props.children })\n      ] }),\n      /* @__PURE__ */ u(\"div\", { class: \"__backdrop\", onClick: this.close })\n    ] });\n  }\n}\nclass LocaleStore {\n  constructor() {\n    this.localeDisplay = null;\n  }\n}\nconst localeStore = new LocaleStore();\nclass LocaleModal extends x {\n  constructor(props) {\n    super(props);\n    this.layout = layout;\n    this.localeStore = localeStore;\n    this.localeStore.localeDisplay = \"currency\";\n    this.activeCountry = d(JSON.parse(this.props.defaultCountry));\n    this.userCountry = d(null);\n    this.activeRegion = d(null);\n    this.localeSet = d(false);\n    this.selectedIso = d(this.props.currentIso.toString());\n    this.selectedLanguage = d(this.props.currentLang.toString());\n    this.browsingContext = d(null);\n    this.setExternalTriggers();\n    this.getSuggestions();\n  }\n  setExternalTriggers() {\n    const currencyTriggers = document.querySelectorAll(\n      `[data-target='locale--currency']`\n    );\n    const countryTriggers = document.querySelectorAll(\n      `[data-target='locale--country']`\n    );\n    if (currencyTriggers) {\n      currencyTriggers.forEach((trigger) => {\n        trigger.addEventListener(\"click\", () => {\n          this.layout.modal.value = \"locale\";\n          this.localeStore.localeDisplay = \"currency\";\n        });\n      });\n    }\n    if (countryTriggers) {\n      countryTriggers.forEach((trigger) => {\n        trigger.addEventListener(\"click\", () => {\n          this.layout.modal.value = \"locale\";\n          this.localeStore.localeDisplay = \"country--select\";\n        });\n      });\n    }\n  }\n  updateCurrency(e) {\n    this.selectedIso.value = e.value.iso;\n    this.forceUpdate();\n  }\n  updateRegion(e) {\n    this.activeRegion.value = e.detail.data;\n  }\n  handleCountrySelect() {\n    if (this.props.availableCountries.length > 1) {\n      this.localeStore.localeDisplay = \"currency\";\n    } else {\n      this.layout.modal.value = null;\n    }\n  }\n  getSuggestions() {\n    if (!this.localeSet) {\n      fetch(\"/browsing_context_suggestions.json?currency[enabled]=true\", {\n        method: \"GET\",\n        headers: {\n          \"Content-Type\": \"application/json\"\n        }\n      }).then((res) => res.json()).then((data) => {\n        var _a, _b;\n        this.browsingContext.value = data;\n        const browsingCountry = (_a = this.browsingContext.value.detected_values) == null ? void 0 : _a.country_name;\n        (_b = this.browsingContext.value.detected_values) == null ? void 0 : _b.country.handle;\n        const correctLocale = this.props.availableCountries.filter(\n          (country) => {\n            return country.name == browsingCountry;\n          }\n        ).length;\n        this.userCountry.value = this.props.availableCountries.find(\n          (country) => country.name == browsingCountry\n        );\n        if (!correctLocale) {\n          this.layout.modal.value = \"locale\";\n          this.localeStore.localeDisplay = \"country--warn\";\n        } else if (this.activeCountry.value.name != browsingCountry) {\n          this.layout.modal.value = \"locale\";\n          this.localeStore.localeDisplay = \"currency\";\n        }\n      });\n    }\n  }\n  close() {\n    this.layout.modal.value = null;\n  }\n  render() {\n    return /* @__PURE__ */ u(Modal, { title: \"locale\", children: /* @__PURE__ */ u(\"div\", { class: \"locale-content\", children: this.localeStore.localeDisplay == \"country--warn\" ? /* @__PURE__ */ u(\"div\", { class: \"country-content\", children: [\n      /* @__PURE__ */ u(\"p\", { class: \"heading\", children: \"Change Country/ Region\" }),\n      /* @__PURE__ */ u(\"p\", { style: \"margin-bottom:15px;margin-top:auto;\", children: [\n        \"You are currently on the\u00A0\",\n        this.activeCountry ? this.activeCountry.value.name : \"\",\n        \" \",\n        \"\u00A0store\"\n      ] }),\n      /* @__PURE__ */ u(\"div\", { style: \"margin-bottom:15px;\", children: /* @__PURE__ */ u(\n        \"button\",\n        {\n          role: \"button\",\n          onClick: () => {\n            this.localeStore.localeDisplay = \"country--select\";\n          },\n          onTouchStart: () => {\n            this.localeStore.localeDisplay = \"country--select\";\n          },\n          class: \"btn btn--primary\",\n          children: \"Change Country\"\n        }\n      ) }),\n      /* @__PURE__ */ u(\"div\", { children: /* @__PURE__ */ u(\n        \"button\",\n        {\n          role: \"button\",\n          class: \"btn btn--link\",\n          onClick: this.close,\n          onTouchStart: this.close,\n          children: \"continue\"\n        }\n      ) })\n    ] }) : this.localeStore.localeDisplay == \"country--select\" ? /* @__PURE__ */ u(\"div\", { class: \"country-select__content\", children: [\n      /* @__PURE__ */ u(\"p\", { class: \"heading\", children: \"Set your Region\" }),\n      /* @__PURE__ */ u(\n        CustomSelect,\n        {\n          title: \"currency-selector\",\n          options: JSON.parse(this.localeStore.siteLocales),\n          type: \"locale\",\n          default: this.activeRegion.value,\n          onSelected: this.updateRegion,\n          searchEnabled: true\n        }\n      ),\n      /* @__PURE__ */ u(\n        \"button\",\n        {\n          onClick: this.handleCountrySelect,\n          onTouchStart: this.handleCountrySelect,\n          class: \"btn btn--primary mt-auto\",\n          children: \"Continue\"\n        }\n      )\n    ] }) : this.localeStore.localeDisplay == \"currency\" ? /* @__PURE__ */ u(\"div\", { class: \"currency-content\", children: [\n      /* @__PURE__ */ u(\"p\", { class: \"heading\", children: \"Set your Country\" }),\n      /* @__PURE__ */ u(\"p\", { style: \"margin-top:auto;margin-bottom:20px;\", children: [\n        \"You are currently on the\u00A0\",\n        this.activeCountry.value ? this.activeCountry.value.name : \"\",\n        \"\u00A0store\"\n      ] }),\n      /* @__PURE__ */ u(\n        \"form\",\n        {\n          method: \"post\",\n          action: \"/localization\",\n          enctype: \"multipart/form-data\",\n          \"accept-charset\": \"UTF-8\",\n          onSubmit: (e) => {\n            e.preventDefault();\n            this.close();\n            e.target.submit();\n          },\n          children: [\n            /* @__PURE__ */ u(\n              CustomSelect,\n              {\n                title: \"currency-selector\",\n                options: JSON.parse(this.props.availableCountries),\n                default: this.userCountry.value ? this.userCountry.value : this.activeCountry.value,\n                type: \"locale\",\n                searchEnabled: true,\n                onSelected: this.updateCurrency.bind(this)\n              }\n            ),\n            /* @__PURE__ */ u(\n              \"input\",\n              {\n                type: \"hidden\",\n                name: \"country_code\",\n                value: this.selectedIso.value\n              }\n            ),\n            /* @__PURE__ */ u(\"input\", { type: \"hidden\", name: \"form_type\", value: \"localization\" }),\n            /* @__PURE__ */ u(\"input\", { type: \"hidden\", name: \"utf8\", value: \"\u2713\" }),\n            /* @__PURE__ */ u(\"input\", { type: \"hidden\", name: \"_method\", value: \"put\" }),\n            /* @__PURE__ */ u(\n              \"input\",\n              {\n                type: \"hidden\",\n                name: \"return_to\",\n                value: window.location.pathname\n              }\n            ),\n            /* @__PURE__ */ u(\"button\", { type: \"submit\", class: \"btn btn--primary\", children: \"Set Country\" })\n          ]\n        }\n      )\n    ] }) : \"\" }) });\n  }\n}\nconst LocaleModal$1 = () => {\n  register(LocaleModal, \"locale-modal\", [\n    \"available-countries\",\n    \"default-country\",\n    \"current-domain\",\n    \"current-iso\",\n    \"current-lang\"\n  ]);\n};\nLocaleModal$1();\n"],
  "mappings": "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",
  "names": []
}
