{"version":3,"file":"isValidOrganisasjonsnummer.cjs","sources":["../../../../../src/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.ts"],"sourcesContent":["/**\n * This algorithm is called the Modulus 11 algorithm, and produces a checksum\n * based on its input. It's documented very well in Norwegian here:\n * https://no.wikipedia.org/wiki/MOD11\n *\n * It's used here to validate that an organization number is valid.\n */\nconst calculateChecksum = (reversedNumbers: number[]) => {\n    const controlSum = reversedNumbers\n        .map((number, i) => number * ((i % 6) + 2))\n        .reduce((a, b) => a + b, 0);\n    const result = 11 - (controlSum % 11);\n    return result === 11 ? 0 : result;\n};\n\n/**\n * Sjekker om verdien validerer som et gyldig organisasjonsnummer etter Modulus 11-algoritmen (https://no.wikipedia.org/wiki/MOD11).\n * @param value Verdien som skal valideres\n * @returns Om verdien er et gyldig organisasjonsnummer\n */\nexport const isValidOrganisasjonsnummer = (value: string) => {\n    if (!value || value.length !== 9) {\n        return false;\n    }\n\n    const [controlDigit, ...numbers] = value\n        .split(\"\")\n        .map((number) => Number(number))\n        .reverse();\n\n    return calculateChecksum(numbers) === controlDigit;\n};\n"],"names":["value","length","controlDigit","numbers","split","map","number","Number","reverse","reversedNumbers","result","i","reduce","a","b","calculateChecksum"],"mappings":"mHAoB2CA,IACvC,IAAKA,GAA0B,IAAjBA,EAAMC,OAChB,OAAO,EAGX,MAAOC,KAAiBC,GAAWH,EAC9BI,MAAM,IACNC,IAAKC,GAAWC,OAAOD,IACvBE,UAEL,MAvBuBC,KAIvB,MAAMC,EAAS,GAHID,EACdJ,IAAI,CAACC,EAAQK,IAAML,GAAWK,EAAI,EAAK,IACvCC,OAAO,CAACC,EAAGC,IAAMD,EAAIC,EAAG,GACK,GAClC,OAAkB,KAAXJ,EAAgB,EAAIA,GAkBpBK,CAAkBZ,KAAaD"}