{"version":3,"file":"formatTelefonnummer.cjs","sources":["../../../../../src/utilities/formatters/telefonnummer/formatTelefonnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const TELEFONNUMMER_REGEX = {\n    mobil: /^([8]\\d{2})(\\d{2})(\\d{3})$/,\n    fast: /^([2-9]\\d)(\\d{2})(\\d{2})(\\d{2})$/,\n    mobilPartial: /^([8]\\d{2})(\\d{1,2})?(\\d{1,3})?$/,\n    fastPartial: /^([2-9]\\d)(\\d{1,2})?(\\d{1,2})?(\\d{1,2})?$/,\n};\n\nexport type FormatTelefonnummerOptions = {\n    partial?: boolean;\n    countryCode?: string;\n};\n\n/**\n * Formaterer et telefonnummer etter språkrådets anbefalinger. Delene av telefonnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Inkluder en valgfri landkode, eller angi at verdien er et ufullstendig telefonnummer og likevel skal formateres.\n * @returns Den formatererte verdien\n */\nexport function formatTelefonnummer(\n    input: string,\n    options?: FormatTelefonnummerOptions,\n) {\n    const strippedInput = input.replace(/\\W/g, \"\");\n    const mobilRegex = options?.partial\n        ? TELEFONNUMMER_REGEX.mobilPartial\n        : TELEFONNUMMER_REGEX.mobil;\n    const fastRegex = options?.partial\n        ? TELEFONNUMMER_REGEX.fastPartial\n        : TELEFONNUMMER_REGEX.fast;\n\n    const match =\n        strippedInput.match(mobilRegex) || strippedInput.match(fastRegex);\n\n    if (!match) {\n        return input;\n    }\n\n    return [\n        options?.countryCode ? `+${options.countryCode}` : undefined,\n        ...match.slice(1),\n    ] // build array of number elements\n        .filter(Boolean) // ensure all elements are valid\n        .join(unicode.NON_BREAKING_SPACE); // build formattet string\n}\n"],"names":["TELEFONNUMMER_REGEX","mobil","fast","mobilPartial","fastPartial","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,uGAcV,SACHC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAaH,GAASI,QACtBV,EAAoBG,aACpBH,EAAoBC,MACpBU,EAAYL,GAASI,QACrBV,EAAoBI,YACpBJ,EAAoBE,KAEpBU,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACHN,GAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,EAAAA,oBARCb,CASf"}