1 line
4.7 KiB
JSON
1 line
4.7 KiB
JSON
{"file":"region-0mvXqaMM.js","mappings":";;AAaO,MAAM,iBAAiB,YAAY,UAAU,MAAM;AAExD,QAAM,UAAU,IAAoB,EAAE;AACtC,QAAM,eAAe,IAAyB,IAAI;AAClD,QAAM,YAAY,IAAI,KAAK;AAC3B,QAAM,QAAQ,IAAmB,IAAI;AAGrC,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,QAAQ,MAAM,KAAK,OAAK,EAAE,iBAAiB,SAAS,KAAK;AAAA,EAClE,CAAC;AAED,QAAM,YAAY,SAAS,MAAM;AAC/B,UAAM,0BAAU,IAAA;AAChB,eAAW,KAAK,QAAQ,OAAO;AAC7B,UAAI,IAAI,EAAE,cAAc,CAAC;AAAA,IAC3B;AACA,WAAO;AAAA,EACT,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAED,QAAM,eAAe,SAAS,MAAM;AAClC,WAAO,aAAa,OAAO,eAAe,cAAc,OAAO,eAAe;AAAA,EAChF,CAAC;AAED,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,aAAa,OAAO,oBAAoB,cAAc,OAAO,oBAAoB;AAAA,EAC1F,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAQD,iBAAe,eAAe;AAC5B,QAAI,QAAQ,MAAM,SAAS,EAAG;AAC9B,cAAU,QAAQ;AAClB,UAAM,QAAQ;AAEd,QAAI;AACF,YAAM,OAAO,MAAM,OAAuB,wBAAwB;AAClE,cAAQ,QAAQ,QAAQ,CAAA;AAAA,IAC1B,SAAS,KAAU;AACjB,YAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,WAAW;AACnD,cAAQ,MAAM,8BAA8B,GAAG;AAAA,IACjD,UAAA;AACE,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAMA,WAAS,gBAAgB,aAAqB;AAC5C,UAAM,QAAQ,QAAQ,MAAM,KAAK,CAAA,MAAK,EAAE,iBAAiB,WAAW;AACpE,iBAAa,QAAQ,SAAS,cAAc;AAAA,EAC9C;AAKA,WAAS,UAAU,aAA+C;AAChE,WAAO,UAAU,MAAM,IAAI,WAAW;AAAA,EACxC;AAEA,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ,CAAC;","names":[],"sources":["../../../../stores/region.ts"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { ref, computed } from 'vue'\n\nexport interface RegionConfig {\n country_code: string\n name: string\n currency: string\n default_vat_rate: number\n locale_code: string\n timezone: string\n is_active: boolean\n}\n\nexport const useRegionStore = defineStore('region', () => {\n // ── State ──────────────────────────────────────────────────────────\n const regions = ref<RegionConfig[]>([])\n const activeRegion = ref<RegionConfig | null>(null)\n const isLoading = ref(false)\n const error = ref<string | null>(null)\n\n // ── Getters ────────────────────────────────────────────────────────\n const defaultRegion = computed(() => {\n return regions.value.find(r => r.country_code === 'DEFAULT') || null\n })\n\n const regionMap = computed(() => {\n const map = new Map<string, RegionConfig>()\n for (const r of regions.value) {\n map.set(r.country_code, r)\n }\n return map\n })\n\n const activeCurrency = computed(() => {\n return activeRegion.value?.currency || defaultRegion.value?.currency || 'EUR'\n })\n\n const activeLocale = computed(() => {\n return activeRegion.value?.locale_code || defaultRegion.value?.locale_code || 'en-EU'\n })\n\n const activeVatRate = computed(() => {\n return activeRegion.value?.default_vat_rate ?? defaultRegion.value?.default_vat_rate ?? 0\n })\n\n const activeTimezone = computed(() => {\n return activeRegion.value?.timezone || defaultRegion.value?.timezone || 'Europe/Brussels'\n })\n\n // ── Actions ────────────────────────────────────────────────────────\n\n /**\n * Fetch all active regions from the public API endpoint.\n * Called once on app initialization.\n */\n async function fetchRegions() {\n if (regions.value.length > 0) return // already loaded\n isLoading.value = true\n error.value = null\n\n try {\n const data = await $fetch<RegionConfig[]>('/api/v1/system/regions')\n regions.value = data || []\n } catch (err: any) {\n error.value = err?.data?.detail || err?.message || 'Failed to load regions'\n console.error('[RegionStore] Fetch error:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n /**\n * Set the active region by country_code.\n * Falls back to DEFAULT if the code is not found.\n */\n function setActiveRegion(countryCode: string) {\n const found = regions.value.find(r => r.country_code === countryCode)\n activeRegion.value = found || defaultRegion.value\n }\n\n /**\n * Get a region config by country_code.\n */\n function getRegion(countryCode: string): RegionConfig | undefined {\n return regionMap.value.get(countryCode)\n }\n\n return {\n // State\n regions,\n activeRegion,\n isLoading,\n error,\n\n // Getters\n defaultRegion,\n regionMap,\n activeCurrency,\n activeLocale,\n activeVatRate,\n activeTimezone,\n\n // Actions\n fetchRegions,\n setActiveRegion,\n getRegion,\n }\n})\n"],"version":3} |