{"version":3,"file":"parseNumber.cjs","sources":["../../../../../src/utilities/formatters/util/parseNumber.ts"],"sourcesContent":["const replaceAllButLastOccurence = (\n    input: string | string[],\n    search: string,\n) => {\n    const arrInput = Array.isArray(input) ? input : input.split(\"\");\n    const indexOfSearch = arrInput.lastIndexOf(search);\n\n    return (\n        arrInput\n            // remove all instances of the notator except the last one\n            .filter((f, i) => {\n                if (f !== search) {\n                    return true;\n                }\n\n                return i === indexOfSearch;\n            })\n            .join(\"\")\n    );\n};\n\n/**\n * Parser en formatert string til et Number.\n * @param input Kandidaten som skal parses til et tall\n * @returns Verdien som et Number\n */\nexport function parseNumber(input: string | number) {\n    if (typeof input === \"number\") {\n        return input;\n    }\n\n    // remove all spaces from number\n    const spaceRegex = /\\s/g;\n    const arrNumber = input.replaceAll(spaceRegex, \"\").split(\"\");\n\n    // find what separator is used for decimal notation\n    const decimalNotator = arrNumber.reduce<\".\" | \",\" | null>(\n        (notator, currentItem) => {\n            if (currentItem === \",\" || currentItem === \".\") {\n                return currentItem;\n            }\n\n            return notator;\n        },\n        null,\n    );\n\n    if (decimalNotator === \".\") {\n        return Number(\n            replaceAllButLastOccurence(arrNumber, \".\").replace(\",\", \"\"),\n        );\n    }\n\n    if (decimalNotator === \",\") {\n        return Number(\n            replaceAllButLastOccurence(arrNumber, \",\")\n                .replace(\".\", \"\")\n                .replace(\",\", \".\"),\n        );\n    }\n\n    return Number(arrNumber.join(\"\"));\n}\n"],"names":["replaceAllButLastOccurence","input","search","arrInput","Array","isArray","split","indexOfSearch","lastIndexOf","filter","f","i","join","arrNumber","replaceAll","decimalNotator","reduce","notator","currentItem","Number","replace"],"mappings":"gFAAA,MAAMA,EAA6B,CAC/BC,EACAC,KAEA,MAAMC,EAAWC,MAAMC,QAAQJ,GAASA,EAAQA,EAAMK,MAAM,IACtDC,EAAgBJ,EAASK,YAAYN,GAE3C,OACIC,EAEKM,OAAO,CAACC,EAAGC,IACJD,IAAMR,GAIHS,IAAMJ,GAEhBK,KAAK,yBASX,SAAqBX,GACxB,GAAqB,iBAAVA,EACP,OAAOA,EAIX,MACMY,EAAYZ,EAAMa,WADL,MAC4B,IAAIR,MAAM,IAGnDS,EAAiBF,EAAUG,OAC7B,CAACC,EAASC,IACc,MAAhBA,GAAuC,MAAhBA,EAChBA,EAGJD,EAEX,MAGJ,OACWE,OADY,MAAnBJ,EAEIf,EAA2Ba,EAAW,KAAKO,QAAQ,IAAK,IAIzC,MAAnBL,EAEIf,EAA2Ba,EAAW,KACjCO,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAIZP,EAAUD,KAAK,IACjC"}