{"version":3,"file":"DJfN9JHw.js","sources":["../../../../node_modules/@heroicons/vue/solid/esm/GlobeIcon.js","../../../../components/goby/GobyPaymentInfoModal.vue"],"sourcesContent":["import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, [\n _createVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z\",\n \"clip-rule\": \"evenodd\"\n })\n ]))\n}","<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { GlobeIcon } from '@heroicons/vue/solid';\nimport countryCodes from 'country-codes-list';\nimport SalesTax from 'sales-tax';\nimport type { PropType } from 'vue';\n\nconst props = defineProps({\n modelValue: Boolean as PropType<boolean>,\n});\nconst emit = defineEmits(['update:modelValue', 'onSave']);\n\nconst countries = countryCodes.all().sort((a, b) => a.countryNameEn.localeCompare(b.countryNameEn));\nconst selectedCountry = ref<string | undefined>(undefined);\n\nconst submissionError = ref<string | undefined>(undefined);\n\nconst taxRate = ref<any>(undefined);\nwatch(selectedCountry, async () => {\n if (selectedCountry.value) {\n SalesTax.setTaxOriginCountry('DE', false);\n const salesTax = await SalesTax.getSalesTax(selectedCountry.value);\n taxRate.value = salesTax.rate;\n } else {\n taxRate.value = undefined;\n }\n});\n\nconst submit = async () => {\n submissionError.value = undefined;\n\n if (!selectedCountry.value || taxRate.value === undefined) {\n submissionError.value = 'Country is required.';\n return;\n }\n\n emit('onSave', { country: selectedCountry.value, taxRate: taxRate.value });\n emit('update:modelValue', false);\n};\n</script>\n<template>\n <TransitionRoot as=\"template\" :show=\"props.modelValue\">\n <Dialog as=\"div\" class=\"relative z-50\" @close=\"emit('update:modelValue', false)\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0\"\n enter-to=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100\"\n leave-to=\"opacity-0\"\n >\n <div class=\"bg-opacity-75 fixed inset-0 bg-neutral-500/70 transition-opacity dark:bg-neutral-400/70\" />\n </TransitionChild>\n\n <div class=\"fixed inset-0 z-10 overflow-y-auto\">\n <div class=\"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\">\n <TransitionChild\n as=\"template\"\n enter=\"ease-out duration-300\"\n enter-from=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-200\"\n leave-from=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <DialogPanel\n class=\"relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 text-left shadow-xl transition-all dark:bg-black sm:my-8 sm:w-full sm:max-w-lg sm:p-6\"\n >\n <div>\n <div class=\"sm:flex sm:items-start\">\n <div\n class=\"mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-emerald-100 sm:mx-0 sm:h-10 sm:w-10\"\n >\n <GlobeIcon class=\"h-6 w-6 text-emerald-600\" aria-hidden=\"true\" />\n </div>\n <div class=\"mt-3 flex flex-col gap-2 text-center sm:ml-4 sm:mt-0 sm:text-left\">\n <DialogTitle as=\"h3\" class=\"text-lg font-medium leading-6 text-neutral-900 dark:text-neutral-50\">\n Country of Residence\n </DialogTitle>\n <div>\n <p class=\"text-sm text-neutral-500 dark:text-neutral-400\">\n Please select your country of residence (for tax purposes).\n </p>\n </div>\n <div class=\"mt-2\">\n <label for=\"profile\" class=\"block text-sm font-medium text-neutral-700 dark:text-neutral-200\"\n >Country</label\n >\n <select\n id=\"location\"\n v-model=\"selectedCountry\"\n name=\"location\"\n class=\"mt-1 block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-neutral-900 ring-1 ring-inset ring-neutral-300 focus:ring-2 focus:ring-emerald-600 dark:bg-neutral-800 dark:text-neutral-50 dark:text-white dark:ring-neutral-600 sm:text-sm sm:leading-6\"\n >\n <option value=\"\" disabled selected>Country of Residence</option>\n <option v-for=\"country in countries\" :value=\"country.countryCode\">\n {{ country.countryNameEn }}\n </option>\n </select>\n </div>\n <div v-if=\"submissionError\">\n <div class=\"text-sm font-medium text-red-600\">{{ submissionError }}</div>\n </div>\n </div>\n </div>\n <div class=\"mt-5 sm:mt-4 sm:flex sm:flex-row-reverse\">\n <button\n type=\"button\"\n class=\"inline-flex w-full justify-center rounded-md border border-transparent bg-emerald-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-emerald-700 dark:text-black sm:ml-3 sm:w-auto sm:text-sm\"\n @click=\"submit\"\n >\n Save\n </button>\n <button\n ref=\"cancelButtonRef\"\n type=\"button\"\n class=\"mt-3 inline-flex w-full justify-center rounded-md border border-neutral-300 bg-white px-4 py-2 text-base font-medium text-neutral-700 shadow-sm hover:bg-neutral-50 dark:bg-black dark:text-neutral-200 dark:hover:bg-neutral-900 sm:mt-0 sm:w-auto sm:text-sm\"\n @click=\"emit('update:modelValue', false)\"\n >\n Cancel\n </button>\n </div>\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </TransitionRoot>\n</template>\n"],"names":["render","_ctx","_cache","_openBlock","_createBlock","_createVNode","props","__props","emit","__emit","countries","countryCodes","a","b","selectedCountry","ref","submissionError","taxRate","watch","SalesTax","salesTax","submit"],"mappings":"2PAEe,SAASA,EAAOC,EAAMC,EAAQ,CAC3C,OAAQC,EAAU,EAAIC,EAAa,MAAO,CACxC,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,MACnB,EAAK,CACDC,EAAa,OAAQ,CACnB,YAAa,UACb,EAAG,oSACH,YAAa,SACnB,CAAK,CACL,CAAG,CACH,2kCCRA,MAAMC,EAAQC,EAGRC,EAAOC,EAEPC,EAAYC,EAAa,IAAI,EAAE,KAAK,CAACC,EAAGC,IAAMD,EAAE,cAAc,cAAcC,EAAE,aAAa,CAAC,EAC5FC,EAAkBC,EAAwB,MAAS,EAEnDC,EAAkBD,EAAwB,MAAS,EAEnDE,EAAUF,EAAS,MAAS,EAClCG,EAAMJ,EAAiB,SAAY,CACjC,GAAIA,EAAgB,MAAO,CAChBK,EAAA,oBAAoB,KAAM,EAAK,EACxC,MAAMC,EAAW,MAAMD,EAAS,YAAYL,EAAgB,KAAK,EACjEG,EAAQ,MAAQG,EAAS,IAAA,MAEzBH,EAAQ,MAAQ,MAClB,CACD,EAED,MAAMI,EAAS,SAAY,CAGzB,GAFAL,EAAgB,MAAQ,OAEpB,CAACF,EAAgB,OAASG,EAAQ,QAAU,OAAW,CACzDD,EAAgB,MAAQ,uBACxB,MACF,CAEKR,EAAA,SAAU,CAAE,QAASM,EAAgB,MAAO,QAASG,EAAQ,MAAO,EACzET,EAAK,oBAAqB,EAAK,CAAA","x_google_ignoreList":[0]}