{"version":3,"file":"intl.js","sources":["../../../../IREP.Web.Content/v7/scripts/utilities/intl.ts"],"sourcesContent":["import { readOptions } from './helpers';\nexport function formatDateElement(timeElement) {\n const options = readOptions(timeElement);\n timeElement.innerText = formatDate(new Date(timeElement.getAttribute('datetime')), options);\n}\nexport function formatDate(date, options) {\n return new Intl.DateTimeFormat([documentToStandardLocale(document.documentElement.lang)], options).format(date);\n}\nexport function formatNumberElement(numberElement) {\n const options = readOptions(numberElement);\n numberElement.innerText = formatNumber(Number.parseFloat(numberElement.dataset.number), options);\n}\nexport function formatNumber(number, options) {\n return new Intl.NumberFormat([documentToStandardLocale(document.documentElement.lang)], options).format(number);\n}\nexport function formatRelativeDateElement(element) {\n const dateValue = element.dataset[\"date\"];\n const date = new Date(dateValue);\n element.innerText = formatRelativeDate(date);\n}\nconst durationDivision = [\n { amount: 60, unit: 'seconds' },\n { amount: 60, unit: 'minutes' },\n { amount: 24, unit: 'hours' },\n { amount: 7, unit: 'days' },\n { amount: 4.34524, unit: 'weeks' },\n { amount: 12, unit: 'months' },\n { amount: Number.POSITIVE_INFINITY, unit: 'years' }\n];\nexport function formatRelativeDate(date) {\n let duration = (date.valueOf() - new Date().valueOf()) / 1000;\n for (let i = 0; i < durationDivision.length; i++) {\n const division = durationDivision[i];\n if (Math.abs(duration) < division.amount) {\n const relativeTimeFormatter = new Intl.RelativeTimeFormat([documentToStandardLocale(document.documentElement.lang)], {\n numeric: 'always'\n });\n return relativeTimeFormatter.format(Math.round(duration), division.unit);\n }\n duration /= division.amount;\n }\n return \"\";\n}\nfunction documentToStandardLocale(lang) {\n if (lang == \"zh-CHS\")\n return \"zh-Hans\";\n if (lang == \"zh-TW\")\n return \"zh-Hant\";\n return lang;\n}\n"],"names":["formatDateElement","timeElement","options","readOptions","innerText","formatDate","Date","getAttribute","date","Intl","DateTimeFormat","documentToStandardLocale","document","documentElement","lang","format","formatNumberElement","numberElement","formatNumber","Number","parseFloat","dataset","number","NumberFormat","formatRelativeDateElement","element","dateValue","duration","valueOf","i","durationDivision","length","division","Math","abs","amount","RelativeTimeFormat","numeric","round","unit","formatRelativeDate","POSITIVE_INFINITY"],"mappings":"iCACO,SAASA,EAAkBC,GAC9B,MAAMC,EAAUC,EAAYF,GAC5BA,EAAYG,UAAYC,EAAW,IAAIC,KAAKL,EAAYM,aAAa,aAAcL,EACvF,CACO,SAASG,EAAWG,EAAMN,GAC7B,OAAO,IAAIO,KAAKC,eAAe,CAACC,EAAyBC,SAASC,gBAAgBC,OAAQZ,GAASa,OAAOP,EAC9G,CACO,SAASQ,EAAoBC,GAChC,MAAMf,EAAUC,EAAYc,GAC5BA,EAAcb,UAAYc,EAAaC,OAAOC,WAAWH,EAAcI,QAAQC,QAASpB,EAC5F,CACO,SAASgB,EAAaI,EAAQpB,GACjC,OAAO,IAAIO,KAAKc,aAAa,CAACZ,EAAyBC,SAASC,gBAAgBC,OAAQZ,GAASa,OAAOO,EAC5G,CACO,SAASE,EAA0BC,GACtC,MAAMC,EAAYD,EAAQJ,QAAc,KAClCb,EAAO,IAAIF,KAAKoB,GACtBD,EAAQrB,UAWL,SAA4BI,GAC/B,IAAImB,GAAYnB,EAAKoB,WAAY,IAAItB,MAAOsB,WAAa,IACzD,IAAK,IAAIC,EAAI,EAAGA,EAAIC,EAAiBC,OAAQF,IAAK,CAC9C,MAAMG,EAAWF,EAAiBD,GAClC,GAAII,KAAKC,IAAIP,GAAYK,EAASG,OAAQ,CAItC,OAH8B,IAAI1B,KAAK2B,mBAAmB,CAACzB,EAAyBC,SAASC,gBAAgBC,OAAQ,CACjHuB,QAAS,WAEgBtB,OAAOkB,KAAKK,MAAMX,GAAWK,EAASO,KAC/E,CACQZ,GAAYK,EAASG,MAC7B,CACI,MAAO,EACX,CAxBwBK,CAAmBhC,EAC3C,CACA,MAAMsB,EAAmB,CACrB,CAAEK,OAAQ,GAAII,KAAM,WACpB,CAAEJ,OAAQ,GAAII,KAAM,WACpB,CAAEJ,OAAQ,GAAII,KAAM,SACpB,CAAEJ,OAAQ,EAAGI,KAAM,QACnB,CAAEJ,OAAQ,QAASI,KAAM,SACzB,CAAEJ,OAAQ,GAAII,KAAM,UACpB,CAAEJ,OAAQhB,OAAOsB,kBAAmBF,KAAM,UAgB9C,SAAS5B,EAAyBG,GAC9B,MAAY,UAARA,EACO,UACC,SAARA,EACO,UACJA,CACX"}