{"version":3,"file":"internationalisation-init.min.js","names":["m","$","userCulture","decimalSeparator","initInternationalisation","cultureData","getData","cultureName","undefined","name","trim","validator","methods","number","value","element","this","optional","test","range","param","replace","val","parseFloat","Number","prototype","toFixedIntl","decimals","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","parseLocaleNumber","stringNumber","thousandSeparator","RegExp","e","window","ooooby","jQuery","document","ready"],"sources":["internationalisation-init.js"],"mappings":"CAAA,SAAWA,EAAGC,GACVD,EAAEE,YAAc,QAChBF,EAAEG,iBAAmB,IAOrBH,EAAEI,yBAA2B,WAEzB,IAAIC,EAAcL,EAAEM,QAAQ,gBAPT,IAAUC,OAUFC,WAAhBH,GAAyD,KAA5BA,EAAYI,KAAKC,SACrDL,EAAc,CACVI,KAAM,QACNN,iBAAkB,MAbGI,EAiBdF,EAAYI,KAhB3BT,EAAEE,YAAoC,iBAAfK,GAAkD,KAAvBA,EAAYG,OACxDH,EAAc,QAoBK,MAHFF,EAAYF,mBAI/BH,EAAEG,iBAAmB,IAErBF,EAAEU,UAAUC,QAAQC,OAAS,SAAUC,EAAOC,GAC1C,OAAOC,KAAKC,SAASF,IAAY,gDAAgDG,KAAKJ,EAC1F,EAEAb,EAAEU,UAAUC,QAAQO,MAAQ,SAAUL,EAAOC,EAASK,GAClD,GAAIJ,KAAKC,SAASF,GACd,OAAO,EAIXD,EAAQA,EAAMO,QAAQ,KAAM,KAE5B,IAAIC,EAAMC,WAAWT,GACrB,OAAOQ,GAAOF,EAAM,IAAME,GAAOF,EAAM,EAC3C,EAIR,EAEAI,OAAOC,UAAUC,YAAc,SAAUC,GACrC,OAAO,IAAIC,KAAKC,aAAa7B,EAAEE,YAAa,CAAE4B,sBAAuBH,EAAUI,sBAAuBJ,IACjGK,OAAOhB,KAChB,EAEAhB,EAAEiC,kBAAoB,SAAUC,GAC5B,IACI,MAAMC,EAAoBP,KAAKC,aAAa7B,EAAEE,aAAa8B,OAAO,OAAOX,QAAQ,KAAM,IACjFlB,EAAmByB,KAAKC,aAAa7B,EAAEE,aAAa8B,OAAO,KAAKX,QAAQ,KAAM,IAEpF,OAAOE,WAAWW,EACbb,QAAQ,IAAIe,OAAO,KAAOD,EAAmB,KAAM,IACnDd,QAAQ,IAAIe,OAAO,KAAOjC,GAAmB,KAEtD,CAAE,MAAOkC,GACL,OAAOb,OAAOU,EAClB,CACJ,CACH,CAnED,CAmEII,OAAOC,OAASD,OAAOC,QAAU,CAAC,EAAIC,QAE1CvC,EAAEwC,UAAUC,OAAM,WACdH,OAAOnC,0BACX","ignoreList":[],"sourcesContent":["(function (m, $) {\n m.userCulture = \"en-GB\";\n m.decimalSeparator = \".\";\n \n const setUserCulture = function (cultureName) {\n m.userCulture = typeof cultureName == \"string\" && cultureName.trim() !== \"\" \n ? cultureName : \"en-GB\";\n };\n \n m.initInternationalisation = function () {\n\n let cultureData = m.getData('data-culture');\n\n // fallback\n if (typeof cultureData === undefined || cultureData.name.trim() === ''){\n cultureData = {\n name: 'en-GB',\n decimalSeparator: \".\"\n };\n }\n \n setUserCulture(cultureData.name);\n\n let decimalSeparator = cultureData.decimalSeparator;\n \n // overrides used for some European number formats, e.g. Norway use \"10,00\" rather than \"10.00\"\n if (decimalSeparator === ',') {\n m.decimalSeparator = \",\";\n\n $.validator.methods.number = function (value, element) {\n return this.optional(element) || /^(-|−)?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)?(?:,\\d+)?$/.test(value);\n };\n\n $.validator.methods.range = function (value, element, param) {\n if (this.optional(element)) {\n return true;\n }\n\n // Replace comma with dot for validation\n value = value.replace(/,/g, '.');\n\n let val = parseFloat(value);\n return val >= param[0] && val <= param[1];\n };\n } else {\n // do nothing - this will use the default jQuery.validation.js validators.\n }\n };\n \n Number.prototype.toFixedIntl = function (decimals) {\n return new Intl.NumberFormat(m.userCulture, { minimumFractionDigits: decimals, maximumFractionDigits: decimals })\n .format(this);\n };\n \n m.parseLocaleNumber = function (stringNumber) {\n try {\n const thousandSeparator = Intl.NumberFormat(m.userCulture).format(11111).replace(/1/g, '');\n const decimalSeparator = Intl.NumberFormat(m.userCulture).format(1.1).replace(/1/g, '');\n\n return parseFloat(stringNumber\n .replace(new RegExp('\\\\' + thousandSeparator, 'g'), '') // Remove thousand separators\n .replace(new RegExp('\\\\' + decimalSeparator), '.') // Replace decimal separators with dot\n );\n } catch (e) {\n return Number(stringNumber);\n }\n };\n})((window.ooooby = window.ooooby || {}), jQuery);\n\n$(document).ready(function() {\n ooooby.initInternationalisation();\n});"]}