UNPKG

weekstart

Version:

Library to get first day of week.

343 lines (334 loc) 5.2 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.weekstart = {}))); }(this, (function (exports) { 'use strict'; function getWeekStartByRegion(regionCode, regionDayMap) { var code = regionDayMap[typeof regionCode === 'string' ? regionCode.toUpperCase() : regionCode]; return typeof code === 'number' ? code : 1; } function getWeekStartByLocale(locale, langRegionMap, regionDayMap) { if (locale) { var data = locale.toLowerCase().split(/[-_]/); var langTag = data[0]; var language = langTag; var country; if (data[1] && data[1].length === 4) { language += "_" + (data[1]); country = data[2]; } else { country = data[1]; } if (!country) { country = langRegionMap[language] || langRegionMap[langTag]; } if (country) { return getWeekStartByRegion(country.match(/^\d+$/) ? Number(country) : country, regionDayMap); } } return 1; } var langRegionMap = { en: 'US', hi: 'IN', deva: 'IN', te: 'IN', mr: 'IN', ta: 'IN', gu: 'IN', kn: 'IN', or: 'IN', ml: 'IN', pa: 'IN', bho: 'IN', awa: 'IN', as: 'IN', mwr: 'IN', mai: 'IN', mag: 'IN', bgc: 'IN', hne: 'IN', dcc: 'IN', bn: 'BD', beng: 'BD', rkt: 'BD', dz: 'BT', tibt: 'BT', tn: 'BW', am: 'ET', ethi: 'ET', om: 'ET', quc: 'GT', id: 'ID', jv: 'ID', su: 'ID', mad: 'ID', ms_arab: 'ID', he: 'IL', hebr: 'IL', jam: 'JM', ja: 'JP', jpan: 'JP', km: 'KH', khmr: 'KH', ko: 'KR', kore: 'KR', lo: 'LA', laoo: 'LA', mh: 'MH', my: 'MM', mymr: 'MM', mt: 'MT', ne: 'NP', fil: 'PH', ceb: 'PH', ilo: 'PH', ur: 'PK', pa_arab: 'PK', lah: 'PK', ps: 'PK', sd: 'PK', skr: 'PK', gn: 'PY', th: 'TH', thai: 'TH', tts: 'TH', zh_hant: 'TW', hant: 'TW', sm: 'WS', zu: 'ZA', sn: 'ZW', arq: 'DZ', ar: 'EG', arab: 'EG', arz: 'EG', fa: 'IR', az_arab: 'IR', dv: 'MV', thaa: 'MV' }; var regionDayMap = { AG: 0, ATG: 0, 28: 0, AS: 0, ASM: 0, 16: 0, BD: 0, BGD: 0, 50: 0, BR: 0, BRA: 0, 76: 0, BS: 0, BHS: 0, 44: 0, BT: 0, BTN: 0, 64: 0, BW: 0, BWA: 0, 72: 0, BZ: 0, BLZ: 0, 84: 0, CA: 0, CAN: 0, 124: 0, CO: 0, COL: 0, 170: 0, DM: 0, DMA: 0, 212: 0, DO: 0, DOM: 0, 214: 0, ET: 0, ETH: 0, 231: 0, GT: 0, GTM: 0, 320: 0, GU: 0, GUM: 0, 316: 0, HK: 0, HKG: 0, 344: 0, HN: 0, HND: 0, 340: 0, ID: 0, IDN: 0, 360: 0, IL: 0, ISR: 0, 376: 0, IN: 0, IND: 0, 356: 0, JM: 0, JAM: 0, 388: 0, JP: 0, JPN: 0, 392: 0, KE: 0, KEN: 0, 404: 0, KH: 0, KHM: 0, 116: 0, KR: 0, KOR: 0, 410: 0, LA: 0, LA0: 0, 418: 0, MH: 0, MHL: 0, 584: 0, MM: 0, MMR: 0, 104: 0, MO: 0, MAC: 0, 446: 0, MT: 0, MLT: 0, 470: 0, MX: 0, MEX: 0, 484: 0, MZ: 0, MOZ: 0, 508: 0, NI: 0, NIC: 0, 558: 0, NP: 0, NPL: 0, 524: 0, PA: 0, PAN: 0, 591: 0, PE: 0, PER: 0, 604: 0, PH: 0, PHL: 0, 608: 0, PK: 0, PAK: 0, 586: 0, PR: 0, PRI: 0, 630: 0, PT: 0, PRT: 0, 620: 0, PY: 0, PRY: 0, 600: 0, SA: 0, SAU: 0, 682: 0, SG: 0, SGP: 0, 702: 0, SV: 0, SLV: 0, 222: 0, TH: 0, THA: 0, 764: 0, TT: 0, TTO: 0, 780: 0, TW: 0, TWN: 0, 158: 0, UM: 0, UMI: 0, 581: 0, US: 0, USA: 0, 840: 0, VE: 0, VEN: 0, 862: 0, VI: 0, VIR: 0, 850: 0, WS: 0, WSM: 0, 882: 0, YE: 0, YEM: 0, 887: 0, ZA: 0, ZAF: 0, 710: 0, ZW: 0, ZWE: 0, 716: 0, AE: 6, ARE: 6, 784: 6, AF: 6, AFG: 6, 4: 6, BH: 6, BHR: 6, 48: 6, DJ: 6, DJI: 6, 262: 6, DZ: 6, DZA: 6, 12: 6, EG: 6, EGY: 6, 818: 6, IQ: 6, IRQ: 6, 368: 6, IR: 6, IRN: 6, 364: 6, JO: 6, JOR: 6, 400: 6, KW: 6, KWT: 6, 414: 6, LY: 6, LBY: 6, 434: 6, OM: 6, OMN: 6, 512: 6, QA: 6, QAT: 6, 634: 6, SD: 6, SDN: 6, 729: 6, SY: 6, SYR: 6, 760: 6, MV: 5, MDV: 5, 462: 5 }; function getWeekStartByRegion$1(regionCode) { return getWeekStartByRegion(regionCode, regionDayMap); } function getWeekStartByLocale$1(locale) { return getWeekStartByLocale(locale, langRegionMap, regionDayMap); } exports.getWeekStartByRegion = getWeekStartByRegion$1; exports.getWeekStartByLocale = getWeekStartByLocale$1; }))); //# sourceMappingURL=main.js.map