{"version":3,"file":"formatValuta.cjs","sources":["../../../../../src/utilities/formatters/valuta/formatValuta.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\nimport {\n    type FormatNumberOptions,\n    formatNumber,\n} from \"../util/formatNumber.js\";\nimport { parseNumber } from \"../util/parseNumber.js\";\n\ninterface FormatValutaOptions extends FormatNumberOptions {\n    prefix?: string;\n    /**\n     * For å fjerne suffix, send inn en tom streng\n     * @default \"kr\"\n     */\n    suffix?: string;\n}\n\nconst defaultOptions: FormatValutaOptions = {\n    locale: \"no-NB\",\n    minimumFractionDigits: 0,\n    maximumFractionDigits: 2,\n    suffix: \"kr\",\n};\n\n/**\n * Formaterer et gitt tall som valuta. Som standard vises suffikset \"kr\" og tallet formateres med norsk lokalisasjon\n *\n * @param input Tallet som skal formateres til valuta\n * @param options Valgene fra formatNumber, pluss valg for prefix og suffix\n * @returns Formatert beløp\n */\nexport function formatValuta(\n    input: string | number,\n    options?: FormatValutaOptions,\n) {\n    const number = parseNumber(input);\n    if (Number.isNaN(number)) {\n        return input.toString();\n    }\n\n    // Dersom tallet ikke er et heltall, pass på å alltid vise to desimaler\n    // Antall desimaler kan i alle tilfeller overstyres via options\n    const fractionOptions: Intl.NumberFormatOptions = Number.isInteger(number)\n        ? {}\n        : { minimumFractionDigits: 2, maximumFractionDigits: 2 };\n\n    const suffix =\n        options?.suffix !== undefined ? options.suffix : defaultOptions.suffix;\n    const { prefix, ...formatOptions } = {\n        ...defaultOptions,\n        ...fractionOptions,\n        ...options,\n    };\n\n    const prefixString = prefix?.length ? `${prefix}${unicode.nbsp}` : \"\";\n    const suffixString = suffix?.length ? `${unicode.nbsp}${suffix}` : \"\";\n    const formattedNumber = formatNumber(number, formatOptions);\n\n    return `${prefixString}${formattedNumber}${suffixString}`;\n}\n"],"names":["defaultOptions","locale","minimumFractionDigits","maximumFractionDigits","suffix","input","options","number","parseNumber","Number","isNaN","toString","fractionOptions","isInteger","prefix","formatOptions","prefixString","length","unicode.nbsp","suffixString","formatNumber"],"mappings":"6MAgBMA,EAAsC,CACxCC,OAAQ,QACRC,sBAAuB,EACvBC,sBAAuB,EACvBC,OAAQ,2BAUL,SACHC,EACAC,GAEA,MAAMC,EAASC,EAAAA,YAAYH,GAC3B,GAAII,OAAOC,MAAMH,GACb,OAAOF,EAAMM,WAKjB,MAAMC,EAA4CH,OAAOI,UAAUN,GAC7D,GACA,CAAEL,sBAAuB,EAAGC,sBAAuB,GAEnDC,OACkB,IAApBE,GAASF,OAAuBE,EAAQF,OAASJ,EAAeI,QAC5DU,OAAAA,KAAWC,GAAkB,IAC9Bf,KACAY,KACAN,GAGDU,EAAeF,GAAQG,OAAS,GAAGH,IAASI,EAAAA,OAAiB,GAC7DC,EAAef,GAAQa,OAAS,GAAGC,EAAAA,OAAed,IAAW,GAGnE,MAAO,GAAGY,IAFcI,EAAAA,aAAab,EAAQQ,KAEFI,GAC/C"}