{"version":3,"file":"currencyStore-CLwY7zdV-601d0a.js","sources":["../../ClientSPA/src/stores/currencyStore.ts"],"sourcesContent":["import { defineStore } from 'pinia';\r\nimport { Services } from 'src/services/Services';\r\nimport { Api } from 'src/services/api/Api';\r\nimport { usePropertyStore } from 'src/stores/propertyStore';\r\nimport { CurrencyExchangeRateDTO } from 'src/services/api/data-contracts';\r\nimport { Currency } from 'src/types/index';\r\n\r\nconst apiService = Services.getService(Api);\r\n\r\nexport const useCurrencyStore = defineStore('currencyStore', {\r\n state: () => ({\r\n selectedCurrency: null as Currency,\r\n exchangeRates: [] as Array,\r\n }),\r\n getters: {\r\n showCurrencySelector(): boolean {\r\n return this.availableCurrencies.length > 0;\r\n },\r\n currencyLocale(): string {\r\n let locale = 'en-GB';\r\n switch (this.selectedCurrency) {\r\n case 'AED':\r\n locale = 'en-AE';\r\n break;\r\n case 'GBP':\r\n locale = 'en-GB';\r\n break;\r\n case 'USD':\r\n locale = 'en-US';\r\n break;\r\n case 'NGN':\r\n locale = 'en-NG';\r\n break;\r\n case 'EUR':\r\n locale = 'en-EU';\r\n break;\r\n case 'MXN':\r\n locale = 'en-MX';\r\n break;\r\n case 'ZAR':\r\n locale = 'en-ZA';\r\n break;\r\n case 'DKK':\r\n locale = 'en-DK';\r\n break;\r\n case 'AUD':\r\n locale = 'en-AU';\r\n break;\r\n case 'CAD':\r\n locale = 'en-CA';\r\n break;\r\n case 'KES':\r\n locale = 'en-KE';\r\n break;\r\n default:\r\n locale = 'en-GB';\r\n break;\r\n }\r\n return locale;\r\n },\r\n baseCurrency(): string {\r\n const ps = usePropertyStore();\r\n return ps.currency;\r\n },\r\n availableCurrencies(): Array {\r\n const ps = usePropertyStore();\r\n return ps.availableCurrencies;\r\n },\r\n exchangeRate(): number | null {\r\n let exchangeRate = null;\r\n const selected = this.selectedCurrency;\r\n if (selected != null) {\r\n if (selected == this.baseCurrency) {\r\n exchangeRate = 1;\r\n } else {\r\n const rates = this.exchangeRates.filter((r) => {\r\n return r.Source == this.baseCurrency && r.Target == selected;\r\n });\r\n\r\n if (rates.length > 0) {\r\n exchangeRate = rates[0].ExchangeRate;\r\n }\r\n }\r\n }\r\n return exchangeRate;\r\n },\r\n },\r\n actions: {\r\n async getExchangeRates() {\r\n const currencyResponse = await apiService.currencyExchangeRateGet();\r\n this.exchangeRates = currencyResponse.data;\r\n },\r\n },\r\n});\r\n"],"names":["apiService","Services","Api","useCurrencyStore","defineStore","locale","usePropertyStore","exchangeRate","selected","rates","r","currencyResponse"],"mappings":"qEAOA,MAAMA,EAAaC,EAAS,WAAWC,CAAG,EAE7BC,EAAmBC,EAAY,gBAAiB,CAC3D,MAAO,KAAO,CACZ,iBAAkB,KAClB,cAAe,CAAC,CAAA,GAElB,QAAS,CACP,sBAAgC,CACvB,OAAA,KAAK,oBAAoB,OAAS,CAC3C,EACA,gBAAyB,CACvB,IAAIC,EAAS,QACb,OAAQ,KAAK,iBAAkB,CAC7B,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,IAAK,MACMA,EAAA,QACT,MACF,QACWA,EAAA,QACT,KACJ,CACO,OAAAA,CACT,EACA,cAAuB,CAErB,OADWC,IACD,QACZ,EACA,qBAAuC,CAErC,OADWA,IACD,mBACZ,EACA,cAA8B,CAC5B,IAAIC,EAAe,KACnB,MAAMC,EAAW,KAAK,iBACtB,GAAIA,GAAY,KACV,GAAAA,GAAY,KAAK,aACJD,EAAA,MACV,CACL,MAAME,EAAQ,KAAK,cAAc,OAAQC,GAChCA,EAAE,QAAU,KAAK,cAAgBA,EAAE,QAAUF,CACrD,EAEGC,EAAM,OAAS,IACFF,EAAAE,EAAM,CAAC,EAAE,aAE5B,CAEK,OAAAF,CACT,CACF,EACA,QAAS,CACP,MAAM,kBAAmB,CACjB,MAAAI,EAAmB,MAAMX,EAAW,0BAC1C,KAAK,cAAgBW,EAAiB,IACxC,CACF,CACF,CAAC"}