{"version":3,"file":"personnummervalidering.min.js","sources":["personnummervalidering.js"],"sourcesContent":["$.validator.addMethod('personnummer', function (value) {\r\n if (!value) {\r\n return true;\r\n }\r\n\r\n value = value.trim();\r\n\r\n // Bara siffror och + eller - �r till�tna\r\n value = value.replace('-', '');\r\n value = value.replace('+', '');\r\n\r\n if (/^\\d+$/.test(value) === false) {\r\n return false;\r\n }\r\n\r\n value = value\r\n .replace(/\\D/g, '') // Strip out all but digits\r\n .split('') // Convert string to array\r\n .reverse() // Reverse order for Luhn\r\n .slice(0, 10); // Keep only 10 digits (i.e. 1977 becomes 77)\r\n\r\n // verify we got 10 digits, otherwise it is invalid\r\n if (value.length !== 10) {\r\n return false;\r\n }\r\n\r\n var sum = value\r\n // Convert to number\r\n .map(function (n) {\r\n return Number(n);\r\n })\r\n // Perform arithmetic and return sum\r\n .reduce(function (previous, current, index) {\r\n // Multiply every other number with two\r\n if (index % 2) {\r\n current *= 2;\r\n }\r\n // If larger than 10 get sum of individual digits (also n-9)\r\n if (current > 9) {\r\n current -= 9;\r\n }\r\n // Sum it up\r\n return previous + current;\r\n });\r\n\r\n // Sum must be divisible by 10\r\n return sum % 10 === 0;\r\n});\r\n$.validator.unobtrusive.adapters.addBool('personnummer');\r\n"],"names":["$","validator","addMethod","value","trim","replace","test","split","reverse","slice","length","map","n","Number","reduce","previous","current","index","unobtrusive","adapters","addBool"],"mappings":"AAAAA,EAAEC,UAAUC,UAAU,eAAgB,SAAUC,GAC5C,MAAKA,CAAAA,IAQLA,GADAA,GAHAA,EAAQA,EAAMC,KAAK,GAGLC,QAAQ,IAAK,EAAE,GACfA,QAAQ,IAAK,EAAE,EAED,CAAA,IAAxB,QAAQC,KAAKH,CAAK,GAWD,MAPrBA,EAAQA,EACHE,QAAQ,MAAO,EAAE,EACjBE,MAAM,EAAE,EACRC,QAAQ,EACRC,MAAM,EAAG,EAAE,GAGNC,QAIAP,EAELQ,IAAI,SAAUC,GACX,OAAOC,OAAOD,CAAC,CACnB,CAAC,EAEAE,OAAO,SAAUC,EAAUC,EAASC,GAUjC,OARIA,EAAQ,IACRD,GAAW,GAGD,EAAVA,IACAA,GAAW,GAGRD,EAAWC,CACtB,CAAC,EAGQ,IAAO,EACxB,CAAC,EACDhB,EAAEC,UAAUiB,YAAYC,SAASC,QAAQ,cAAc"}