{"version":3,"file":"Money-D1JjsZNA.js","sources":["../../../app/javascript/src/components/Money.vue"],"sourcesContent":["<template>\n <div :class=\"{ 'money__inline': inline }\">{{ formatted }}</div>\n</template>\n\n<script setup>\nimport { computed } from \"vue\";\nimport { useShared } from \"@/helpers/vueHelpers.js\";\nimport CURRENCIES from \"@/dataset/currencies.json\";\n\nconst props = defineProps({\n currency: String,\n value: Number,\n inline: {type: Boolean, default: false},\n subunitsValue: {type: Boolean, default: true},\n options: {type: Object, default: () => ({currencyDisplay: \"code\"})}\n});\n\nconst {locale} = useShared();\n\nconst hideSubunits = computed(() => props.value.toFixed().slice(-2) === '00' || Number(props.value) === 0);\n\nconst formatted = computed(() => {\n let value = props.value;\n if (Number.isFinite(value)) {\n try {\n let formatOptions = {style: 'currency', currency: props.currency}\n let numFormat = new Intl.NumberFormat(locale, formatOptions);\n let {minimumFractionDigits} = numFormat.resolvedOptions();\n if (props.subunitsValue) {\n const { exponent } = CURRENCIES[props.currency];\n value = value / 10 ** (exponent === undefined ? minimumFractionDigits : exponent);\n }\n if (hideSubunits.value) {\n formatOptions = {style: 'currency', currency: props.currency, minimumFractionDigits: 0, maximumFractionDigits: 0};\n }\n formatOptions = {\n ...formatOptions,\n ...props.options\n }\n numFormat = new Intl.NumberFormat(locale, formatOptions);\n return numFormat.format(value);\n } catch (err) {\n return err.message;\n }\n } else {\n return '#NaN!';\n }\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.money__inline {\n display: inline-block;\n}\n</style>\n"],"names":["props","__props","locale","useShared","hideSubunits","computed","formatted","value","formatOptions","numFormat","minimumFractionDigits","exponent","CURRENCIES","err"],"mappings":"obASA,MAAMA,EAAQC,EAQR,CAAC,OAAAC,CAAM,EAAIC,EAAW,EAEtBC,EAAeC,EAAS,IAAML,EAAM,MAAM,QAAO,EAAG,MAAM,EAAE,IAAM,MAAQ,OAAOA,EAAM,KAAK,IAAM,CAAC,EAEnGM,EAAYD,EAAS,IAAM,CAC/B,IAAIE,EAAQP,EAAM,MAClB,GAAI,OAAO,SAASO,CAAK,EACvB,GAAI,CACF,IAAIC,EAAgB,CAAC,MAAO,WAAY,SAAUR,EAAM,QAAQ,EAC5DS,EAAY,IAAI,KAAK,aAAaP,EAAQM,CAAa,EACvD,CAAC,sBAAAE,CAAqB,EAAID,EAAU,gBAAiB,EACzD,GAAIT,EAAM,cAAe,CACvB,KAAM,CAAE,SAAAW,CAAU,EAAGC,EAAWZ,EAAM,QAAQ,EAC9CO,EAAQA,EAAQ,KAAOI,IAAa,OAAYD,EAAwBC,EAChF,CACM,OAAIP,EAAa,QACfI,EAAgB,CAAC,MAAO,WAAY,SAAUR,EAAM,SAAU,sBAAuB,EAAG,sBAAuB,CAAC,GAElHQ,EAAgB,CACd,GAAGA,EACH,GAAGR,EAAM,OACjB,EACMS,EAAY,IAAI,KAAK,aAAaP,EAAQM,CAAa,EAChDC,EAAU,OAAOF,CAAK,CAC9B,OAAQM,EAAK,CACZ,OAAOA,EAAI,OACjB,KAEI,OAAO,OAEX,CAAC"}