@ui5/webcomponents-localization 0.0.0-974b11d82 → 0.0.0-97c4a1259
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -1
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +273 -0
- package/dist/Assets-static.js.map +1 -1
- package/dist/Assets.js.map +1 -1
- package/dist/DateFormat.js.map +1 -1
- package/dist/LocaleData.js.map +1 -1
- package/dist/dates/CalendarDate.d.ts +7 -5
- package/dist/dates/CalendarDate.js +8 -7
- package/dist/dates/CalendarDate.js.map +1 -1
- package/dist/dates/ExtremeDates.d.ts +2 -2
- package/dist/dates/ExtremeDates.js.map +1 -1
- package/dist/dates/UI5Date.d.ts +6 -0
- package/dist/dates/UI5Date.js +7 -0
- package/dist/dates/UI5Date.js.map +1 -0
- package/dist/dates/UniversalDate.d.ts +2 -1
- package/dist/dates/UniversalDate.js.map +1 -1
- package/dist/dates/calculateWeekNumber.d.ts +2 -1
- package/dist/dates/calculateWeekNumber.js.map +1 -1
- package/dist/dates/convertMonthNumbersToMonthNames.d.ts +1 -1
- package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
- package/dist/dates/getDaysInMonth.js.map +1 -1
- package/dist/dates/getRoundedTimestamp.js +1 -0
- package/dist/dates/getRoundedTimestamp.js.map +1 -1
- package/dist/dates/getTodayUTCTimestamp.d.ts +1 -1
- package/dist/dates/getTodayUTCTimestamp.js +2 -1
- package/dist/dates/getTodayUTCTimestamp.js.map +1 -1
- package/dist/dates/modifyDateBy.d.ts +2 -1
- package/dist/dates/modifyDateBy.js +34 -19
- package/dist/dates/modifyDateBy.js.map +1 -1
- package/dist/dates/transformDateToSecondaryType.d.ts +1 -1
- package/dist/dates/transformDateToSecondaryType.js +3 -2
- package/dist/dates/transformDateToSecondaryType.js.map +1 -1
- package/dist/features/calendar/Buddhist.js.map +1 -1
- package/dist/features/calendar/Gregorian.js.map +1 -1
- package/dist/features/calendar/Islamic.js.map +1 -1
- package/dist/features/calendar/Japanese.js.map +1 -1
- package/dist/features/calendar/Persian.js.map +1 -1
- package/dist/generated/assets/cldr/ar.json +5531 -6704
- package/dist/generated/assets/cldr/ar_EG.json +5531 -6704
- package/dist/generated/assets/cldr/ar_SA.json +5530 -6704
- package/dist/generated/assets/cldr/bg.json +4452 -5742
- package/dist/generated/assets/cldr/ca.json +4440 -5793
- package/dist/generated/assets/cldr/cs.json +4960 -6294
- package/dist/generated/assets/cldr/cy.json +5211 -6612
- package/dist/generated/assets/cldr/da.json +4308 -5651
- package/dist/generated/assets/cldr/de.json +4313 -5713
- package/dist/generated/assets/cldr/de_AT.json +4314 -5714
- package/dist/generated/assets/cldr/de_CH.json +4312 -5712
- package/dist/generated/assets/cldr/el.json +4281 -5579
- package/dist/generated/assets/cldr/el_CY.json +4281 -5579
- package/dist/generated/assets/cldr/en.json +4316 -5732
- package/dist/generated/assets/cldr/en_AU.json +4319 -5724
- package/dist/generated/assets/cldr/en_GB.json +4329 -5733
- package/dist/generated/assets/cldr/en_HK.json +4337 -5739
- package/dist/generated/assets/cldr/en_IE.json +4328 -5733
- package/dist/generated/assets/cldr/en_IN.json +4333 -5734
- package/dist/generated/assets/cldr/en_NZ.json +4328 -5733
- package/dist/generated/assets/cldr/en_PG.json +4329 -5734
- package/dist/generated/assets/cldr/en_SG.json +4333 -5735
- package/dist/generated/assets/cldr/en_ZA.json +4329 -5734
- package/dist/generated/assets/cldr/es.json +4331 -5641
- package/dist/generated/assets/cldr/es_AR.json +4334 -5643
- package/dist/generated/assets/cldr/es_BO.json +4333 -5642
- package/dist/generated/assets/cldr/es_CL.json +4334 -5643
- package/dist/generated/assets/cldr/es_CO.json +4333 -5642
- package/dist/generated/assets/cldr/es_MX.json +4335 -5644
- package/dist/generated/assets/cldr/es_PE.json +4333 -5642
- package/dist/generated/assets/cldr/es_UY.json +4335 -5644
- package/dist/generated/assets/cldr/es_VE.json +4334 -5643
- package/dist/generated/assets/cldr/et.json +4340 -5729
- package/dist/generated/assets/cldr/fa.json +4367 -5647
- package/dist/generated/assets/cldr/fi.json +4463 -5804
- package/dist/generated/assets/cldr/fr.json +4357 -5741
- package/dist/generated/assets/cldr/fr_BE.json +4357 -5741
- package/dist/generated/assets/cldr/fr_CA.json +4351 -5735
- package/dist/generated/assets/cldr/fr_CH.json +4375 -5759
- package/dist/generated/assets/cldr/fr_LU.json +4357 -5741
- package/dist/generated/assets/cldr/he.json +4869 -6175
- package/dist/generated/assets/cldr/hi.json +4295 -5558
- package/dist/generated/assets/cldr/hr.json +4583 -5681
- package/dist/generated/assets/cldr/hu.json +4364 -5686
- package/dist/generated/assets/cldr/id.json +4060 -5420
- package/dist/generated/assets/cldr/it.json +4299 -5712
- package/dist/generated/assets/cldr/it_CH.json +4299 -5712
- package/dist/generated/assets/cldr/ja.json +4211 -5626
- package/dist/generated/assets/cldr/kk.json +4339 -5487
- package/dist/generated/assets/cldr/ko.json +4189 -5534
- package/dist/generated/assets/cldr/lt.json +4850 -6243
- package/dist/generated/assets/cldr/lv.json +4587 -5874
- package/dist/generated/assets/cldr/ms.json +4021 -5245
- package/dist/generated/assets/cldr/nb.json +4335 -5740
- package/dist/generated/assets/cldr/nl.json +4294 -5613
- package/dist/generated/assets/cldr/nl_BE.json +4294 -5613
- package/dist/generated/assets/cldr/pl.json +4667 -5972
- package/dist/generated/assets/cldr/pt.json +4235 -5567
- package/dist/generated/assets/cldr/pt_PT.json +4372 -5702
- package/dist/generated/assets/cldr/ro.json +4563 -5852
- package/dist/generated/assets/cldr/ru.json +4909 -6169
- package/dist/generated/assets/cldr/ru_UA.json +4909 -6169
- package/dist/generated/assets/cldr/sk.json +4939 -6166
- package/dist/generated/assets/cldr/sl.json +4910 -6136
- package/dist/generated/assets/cldr/sr.json +4585 -5888
- package/dist/generated/assets/cldr/sr_Latn.json +4574 -5889
- package/dist/generated/assets/cldr/sv.json +4362 -5774
- package/dist/generated/assets/cldr/th.json +4214 -5627
- package/dist/generated/assets/cldr/tr.json +4400 -5809
- package/dist/generated/assets/cldr/uk.json +4858 -6115
- package/dist/generated/assets/cldr/vi.json +4070 -5435
- package/dist/generated/assets/cldr/zh_CN.json +4100 -5429
- package/dist/generated/assets/cldr/zh_HK.json +4108 -5437
- package/dist/generated/assets/cldr/zh_SG.json +4108 -5437
- package/dist/generated/assets/cldr/zh_TW.json +4131 -5525
- package/dist/getCachedLocaleDataInstance.js.map +1 -1
- package/dist/locale/getLocaleData.js.map +1 -1
- package/dist/sap/base/i18n/LanguageTag.js +35 -0
- package/dist/sap/base/i18n/Localization.d.ts +4 -0
- package/dist/sap/base/i18n/Localization.js +12 -0
- package/dist/sap/base/i18n/Localization.js.map +1 -0
- package/dist/sap/base/i18n/date/CalendarType.js +8 -0
- package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
- package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
- package/dist/sap/base/util/LoaderExtensions.js.map +1 -1
- package/dist/sap/ui/base/Metadata.js +20 -9
- package/dist/sap/ui/core/CalendarType.js +2 -8
- package/dist/sap/ui/core/Configuration.js +2 -1
- package/dist/sap/ui/core/Configuration.js.map +1 -1
- package/dist/sap/ui/core/Core.js.map +1 -1
- package/dist/sap/ui/core/FormatSettings.js.map +1 -1
- package/dist/sap/ui/core/Locale.js +28 -125
- package/dist/sap/ui/core/LocaleData.js +107 -35
- package/dist/sap/ui/core/date/CalendarUtils.js +7 -18
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -7
- package/dist/sap/ui/core/date/UI5Date.js +305 -0
- package/dist/sap/ui/core/date/UniversalDate.js +12 -22
- package/dist/sap/ui/core/format/DateFormat.js +385 -329
- package/dist/sap/ui/core/format/TimezoneUtil.js +2 -94
- package/{package-scripts.js → package-scripts.cjs} +2 -3
- package/package.json +7 -6
- package/tsconfig.json +1 -0
- package/used-modules.txt +5 -0
- package/src/Assets-static.ts +0 -2
- package/src/Assets.ts +0 -2
- package/src/DateFormat.ts +0 -8
- package/src/LocaleData.ts +0 -8
- package/src/dates/CalendarDate.ts +0 -232
- package/src/dates/ExtremeDates.ts +0 -40
- package/src/dates/UniversalDate.ts +0 -51
- package/src/dates/calculateWeekNumber.ts +0 -53
- package/src/dates/convertMonthNumbersToMonthNames.ts +0 -34
- package/src/dates/getDaysInMonth.ts +0 -11
- package/src/dates/getRoundedTimestamp.ts +0 -14
- package/src/dates/getTodayUTCTimestamp.ts +0 -10
- package/src/dates/modifyDateBy.ts +0 -42
- package/src/dates/transformDateToSecondaryType.ts +0 -21
- package/src/features/calendar/Buddhist.ts +0 -1
- package/src/features/calendar/Gregorian.ts +0 -1
- package/src/features/calendar/Islamic.ts +0 -1
- package/src/features/calendar/Japanese.ts +0 -1
- package/src/features/calendar/Persian.ts +0 -1
- package/src/getCachedLocaleDataInstance.ts +0 -15
- package/src/locale/getLocaleData.ts +0 -28
- package/src/sap/base/util/LoaderExtensions.ts +0 -17
- package/src/sap/ui/core/Configuration.ts +0 -22
- package/src/sap/ui/core/Core.ts +0 -15
- package/src/sap/ui/core/FormatSettings.ts +0 -16
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getCachedLocaleDataInstance.js","sourceRoot":"","sources":["../src/getCachedLocaleDataInstance.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
1
|
+
{"version":3,"file":"getCachedLocaleDataInstance.js","sourceRoot":"","sources":["../src/getCachedLocaleDataInstance.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC","sourcesContent":["import type Locale from \"@ui5/webcomponents-base/dist/locale/Locale.js\";\nimport type LocaleT from \"sap/ui/core/Locale\";\nimport LocaleData from \"./LocaleData.js\";\n\nconst cache = new Map<Locale, LocaleData>();\n\nconst getCachedLocaleDataInstance = (locale: Locale) => {\n\tif (!cache.has(locale)) {\n\t\tcache.set(locale, new LocaleData(locale as unknown as LocaleT));\n\t}\n\n\treturn cache.get(locale)!;\n};\n\nexport default getCachedLocaleDataInstance;\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getLocaleData.js","sourceRoot":"","sources":["../../src/locale/getLocaleData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6DAA6D,CAAC;AACxF,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KACxE;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;AACnC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
1
|
+
{"version":3,"file":"getLocaleData.js","sourceRoot":"","sources":["../../src/locale/getLocaleData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6DAA6D,CAAC;AACxF,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KACxE;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;AACnC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleT from \"sap/ui/core/Locale\";\nimport LocaleData from \"../LocaleData.js\";\n\nconst instances = new Map<string, LocaleData>();\n\n/**\n * Fetches and returns а LocaleData object for the required locale\n * For more information on this object's API, please see:\n * https://sdk.openui5.org/api/sap.ui.core.LocaleData\n *\n * @param { string } lang - if left empty, will use the configured/current locale\n * @returns { Promise<LocaleData> }\n */\nconst getLocaleData = async (lang: string): Promise<LocaleData> => {\n\tconst locale = getLocale(lang);\n\tconst localeLang = locale.getLanguage();\n\n\tif (!instances.has(localeLang)) {\n\t\tawait fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());\n\t\tinstances.set(localeLang, new LocaleData(locale as unknown as LocaleT));\n\t}\n\n\treturn instances.get(localeLang)!;\n};\n\nexport default getLocaleData;\n"]}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
var rLanguageTag = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
|
2
|
+
var LanguageTag = function (sLanguageTag) {
|
3
|
+
var aResult = rLanguageTag.exec(sLanguageTag.replace(/_/g, "-"));
|
4
|
+
if (aResult === null) {
|
5
|
+
throw new TypeError("The given language tag'" + sLanguageTag + "' does not adhere to BCP-47.");
|
6
|
+
}
|
7
|
+
this.language = aResult[1] || null;
|
8
|
+
this.script = aResult[2] || null;
|
9
|
+
this.region = aResult[3] || null;
|
10
|
+
this.variant = aResult[4] && aResult[4].slice(1) || null;
|
11
|
+
this.variantSubtags = this.variant ? this.variant.split("-") : [];
|
12
|
+
this.extension = aResult[5] && aResult[5].slice(1) || null;
|
13
|
+
this.extensionSubtags = this.variant ? this.variant.split("-") : [];
|
14
|
+
this.privateUse = aResult[6] || null;
|
15
|
+
this.privateUseSubtags = this.privateUse ? this.privateUse.slice(2).split("-") : [];
|
16
|
+
if (this.language) {
|
17
|
+
this.language = this.language.toLowerCase();
|
18
|
+
}
|
19
|
+
if (this.script) {
|
20
|
+
this.script = this.script.toLowerCase().replace(/^[a-z]/, function ($) {
|
21
|
+
return $.toUpperCase();
|
22
|
+
});
|
23
|
+
}
|
24
|
+
if (this.region) {
|
25
|
+
this.region = this.region.toUpperCase();
|
26
|
+
}
|
27
|
+
Object.freeze(this);
|
28
|
+
};
|
29
|
+
LanguageTag.prototype.toString = function () {
|
30
|
+
return join(this.language, this.script, this.region, this.variant, this.extension, this.privateUse);
|
31
|
+
};
|
32
|
+
function join() {
|
33
|
+
return Array.prototype.filter.call(arguments, Boolean).join("-");
|
34
|
+
}
|
35
|
+
export default LanguageTag;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
const M_ISO639_OLD_TO_NEW = {
|
2
|
+
"iw": "he",
|
3
|
+
"ji": "yi",
|
4
|
+
};
|
5
|
+
const getModernLanguage = (sLanguage) => {
|
6
|
+
return M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
7
|
+
};
|
8
|
+
const Localization = {
|
9
|
+
getModernLanguage,
|
10
|
+
};
|
11
|
+
export default Localization;
|
12
|
+
//# sourceMappingURL=Localization.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../../../src/sap/base/i18n/Localization.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG;IAC3B,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,OAAO,mBAAmB,CAAC,SAA6C,CAAC,IAAI,SAAS,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACpB,iBAAiB;CACjB,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["const M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n};\n\nconst getModernLanguage = (sLanguage: string) => {\n\treturn M_ISO639_OLD_TO_NEW[sLanguage as keyof typeof M_ISO639_OLD_TO_NEW] || sLanguage;\n};\n\nconst Localization = {\n\tgetModernLanguage,\n};\n\nexport default Localization;\n"]}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
var CalendarWeekNumbering = {
|
2
|
+
Default: "Default",
|
3
|
+
ISO_8601: "ISO_8601",
|
4
|
+
MiddleEastern: "MiddleEastern",
|
5
|
+
WesternTraditional: "WesternTraditional"
|
6
|
+
};
|
7
|
+
Object.defineProperty(CalendarWeekNumbering, "getWeekConfigurationValues", {
|
8
|
+
value: function (sCalendarWeekNumbering) {
|
9
|
+
switch (sCalendarWeekNumbering) {
|
10
|
+
case CalendarWeekNumbering.ISO_8601:
|
11
|
+
return {
|
12
|
+
firstDayOfWeek: 1,
|
13
|
+
minimalDaysInFirstWeek: 4
|
14
|
+
};
|
15
|
+
case CalendarWeekNumbering.MiddleEastern:
|
16
|
+
return {
|
17
|
+
firstDayOfWeek: 6,
|
18
|
+
minimalDaysInFirstWeek: 1
|
19
|
+
};
|
20
|
+
case CalendarWeekNumbering.WesternTraditional:
|
21
|
+
return {
|
22
|
+
firstDayOfWeek: 0,
|
23
|
+
minimalDaysInFirstWeek: 1
|
24
|
+
};
|
25
|
+
default:
|
26
|
+
return undefined;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
});
|
30
|
+
export default CalendarWeekNumbering;
|
@@ -0,0 +1,89 @@
|
|
1
|
+
var TimezoneUtils = {};
|
2
|
+
var sLocalTimezone = "";
|
3
|
+
var aSupportedTimezoneIDs;
|
4
|
+
var oIntlDateTimeFormatCache = {
|
5
|
+
_oCache: new Map(),
|
6
|
+
_iCacheLimit: 10,
|
7
|
+
get: function (sTimezone) {
|
8
|
+
var cacheEntry = this._oCache.get(sTimezone);
|
9
|
+
if (cacheEntry) {
|
10
|
+
return cacheEntry;
|
11
|
+
}
|
12
|
+
var oOptions = {
|
13
|
+
hourCycle: "h23",
|
14
|
+
hour: "2-digit",
|
15
|
+
minute: "2-digit",
|
16
|
+
second: "2-digit",
|
17
|
+
fractionalSecondDigits: 3,
|
18
|
+
day: "2-digit",
|
19
|
+
month: "2-digit",
|
20
|
+
year: "numeric",
|
21
|
+
timeZone: sTimezone,
|
22
|
+
timeZoneName: "short",
|
23
|
+
era: "narrow",
|
24
|
+
weekday: "short"
|
25
|
+
};
|
26
|
+
var oInstance = new Intl.DateTimeFormat("en-US", oOptions);
|
27
|
+
if (this._oCache.size === this._iCacheLimit) {
|
28
|
+
this._oCache = new Map();
|
29
|
+
}
|
30
|
+
this._oCache.set(sTimezone, oInstance);
|
31
|
+
return oInstance;
|
32
|
+
}
|
33
|
+
};
|
34
|
+
TimezoneUtils.isValidTimezone = function (sTimezone) {
|
35
|
+
if (!sTimezone) {
|
36
|
+
return false;
|
37
|
+
}
|
38
|
+
if (Intl.supportedValuesOf) {
|
39
|
+
try {
|
40
|
+
aSupportedTimezoneIDs = aSupportedTimezoneIDs || Intl.supportedValuesOf("timeZone");
|
41
|
+
if (aSupportedTimezoneIDs.includes(sTimezone)) {
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
} catch (oError) {
|
45
|
+
aSupportedTimezoneIDs = [];
|
46
|
+
}
|
47
|
+
}
|
48
|
+
try {
|
49
|
+
oIntlDateTimeFormatCache.get(sTimezone);
|
50
|
+
return true;
|
51
|
+
} catch (oError) {
|
52
|
+
return false;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
TimezoneUtils.convertToTimezone = function (oDate, sTargetTimezone) {
|
56
|
+
var oFormatParts = this._getParts(oDate, sTargetTimezone);
|
57
|
+
return TimezoneUtils._getDateFromParts(oFormatParts);
|
58
|
+
};
|
59
|
+
TimezoneUtils._getParts = function (oDate, sTargetTimezone) {
|
60
|
+
var sKey, oPart, oDateParts = Object.create(null), oIntlDate = oIntlDateTimeFormatCache.get(sTargetTimezone), oParts = oIntlDate.formatToParts(new Date(oDate.getTime()));
|
61
|
+
for (sKey in oParts) {
|
62
|
+
oPart = oParts[sKey];
|
63
|
+
if (oPart.type !== "literal") {
|
64
|
+
oDateParts[oPart.type] = oPart.value;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
return oDateParts;
|
68
|
+
};
|
69
|
+
TimezoneUtils._getDateFromParts = function (oParts) {
|
70
|
+
var oDate = new Date(0), iUTCYear = parseInt(oParts.year);
|
71
|
+
if (oParts.era === "B") {
|
72
|
+
iUTCYear = iUTCYear * -1 + 1;
|
73
|
+
}
|
74
|
+
oDate.setUTCFullYear(iUTCYear, parseInt(oParts.month) - 1, parseInt(oParts.day));
|
75
|
+
oDate.setUTCHours(parseInt(oParts.hour), parseInt(oParts.minute), parseInt(oParts.second), parseInt(oParts.fractionalSecond || 0));
|
76
|
+
return oDate;
|
77
|
+
};
|
78
|
+
TimezoneUtils.calculateOffset = function (oDate, sTimezoneSource) {
|
79
|
+
var oFirstGuess = this.convertToTimezone(oDate, sTimezoneSource), iInitialOffset = oDate.getTime() - oFirstGuess.getTime(), oDateSource = new Date(oDate.getTime() + iInitialOffset), oDateTarget = this.convertToTimezone(oDateSource, sTimezoneSource);
|
80
|
+
return (oDateSource.getTime() - oDateTarget.getTime()) / 1000;
|
81
|
+
};
|
82
|
+
TimezoneUtils.getLocalTimezone = function () {
|
83
|
+
if (sLocalTimezone) {
|
84
|
+
return sLocalTimezone;
|
85
|
+
}
|
86
|
+
sLocalTimezone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
87
|
+
return sLocalTimezone;
|
88
|
+
};
|
89
|
+
export default TimezoneUtils;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LoaderExtensions.js","sourceRoot":"","sources":["../../../../src/sap/base/util/LoaderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;KAClD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACxB,YAAY;CACZ,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
1
|
+
{"version":3,"file":"LoaderExtensions.js","sourceRoot":"","sources":["../../../../src/sap/base/util/LoaderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;KAClD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACxB,YAAY;CACZ,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import { getLocaleData } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\n\nconst loadResource = (moduleName: string) => {\n\tconst moduleFormat = moduleName.match(/sap\\/ui\\/core\\/cldr\\/(\\w+)\\.json/);\n\tif (!moduleFormat) {\n\t\tthrow new Error(`Unknown module \"${moduleName}\"`);\n\t}\n\n\tconst localeId = moduleFormat[1];\n\treturn getLocaleData(localeId);\n};\n\nconst LoaderExtensions = {\n\tloadResource,\n};\n\nexport default LoaderExtensions;\n"]}
|
@@ -2,6 +2,9 @@ import ObjectPath from '../../base/util/ObjectPath.js';
|
|
2
2
|
import assert from '../../base/assert.js';
|
3
3
|
import Log from '../../base/Log.js';
|
4
4
|
import uniqueSort from '../../base/util/array/uniqueSort.js';
|
5
|
+
function isFunction(obj) {
|
6
|
+
return typeof obj === 'function';
|
7
|
+
}
|
5
8
|
var Metadata = function (sClassName, oClassInfo) {
|
6
9
|
assert(typeof sClassName === 'string' && sClassName, 'Metadata: sClassName must be a non-empty string');
|
7
10
|
assert(typeof oClassInfo === 'object', 'Metadata: oClassInfo must be empty or an object');
|
@@ -13,7 +16,7 @@ var Metadata = function (sClassName, oClassInfo) {
|
|
13
16
|
oClassInfo.metadata.__version = 1;
|
14
17
|
}
|
15
18
|
oClassInfo.metadata.__version = oClassInfo.metadata.__version || 2;
|
16
|
-
if (
|
19
|
+
if (!isFunction(oClassInfo.constructor)) {
|
17
20
|
throw Error('constructor for class ' + sClassName + ' must have been declared before creating metadata for it');
|
18
21
|
}
|
19
22
|
this._sClassName = sClassName;
|
@@ -27,9 +30,17 @@ Metadata.prototype.extend = function (oClassInfo) {
|
|
27
30
|
Metadata.prototype.applySettings = function (oClassInfo) {
|
28
31
|
var that = this, oStaticInfo = oClassInfo.metadata, oPrototype;
|
29
32
|
if (oStaticInfo.baseType) {
|
30
|
-
var oParentClass
|
31
|
-
if (
|
32
|
-
|
33
|
+
var oParentClass;
|
34
|
+
if (isFunction(oStaticInfo.baseType)) {
|
35
|
+
oParentClass = oStaticInfo.baseType;
|
36
|
+
if (!isFunction(oParentClass.getMetadata)) {
|
37
|
+
throw new TypeError('baseType must be a UI5 class with a static getMetadata function');
|
38
|
+
}
|
39
|
+
} else {
|
40
|
+
oParentClass = ObjectPath.get(oStaticInfo.baseType);
|
41
|
+
if (!isFunction(oParentClass)) {
|
42
|
+
Log.fatal('base class \'' + oStaticInfo.baseType + '\' does not exist');
|
43
|
+
}
|
33
44
|
}
|
34
45
|
if (oParentClass.getMetadata) {
|
35
46
|
this._oParent = oParentClass.getMetadata();
|
@@ -167,12 +178,12 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
167
178
|
sClassName = fnBaseClass;
|
168
179
|
fnBaseClass = null;
|
169
180
|
}
|
170
|
-
assert(!fnBaseClass ||
|
181
|
+
assert(!fnBaseClass || isFunction(fnBaseClass));
|
171
182
|
assert(typeof sClassName === 'string' && !!sClassName);
|
172
183
|
assert(!oClassInfo || typeof oClassInfo === 'object');
|
173
|
-
assert(!FNMetaImpl ||
|
184
|
+
assert(!FNMetaImpl || isFunction(FNMetaImpl));
|
174
185
|
FNMetaImpl = FNMetaImpl || Metadata;
|
175
|
-
if (
|
186
|
+
if (isFunction(FNMetaImpl.preprocessClassInfo)) {
|
176
187
|
oClassInfo = FNMetaImpl.preprocessClassInfo(oClassInfo);
|
177
188
|
}
|
178
189
|
oClassInfo = oClassInfo || {};
|
@@ -181,7 +192,7 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
181
192
|
oClassInfo.constructor = undefined;
|
182
193
|
}
|
183
194
|
var fnClass = oClassInfo.constructor;
|
184
|
-
assert(!fnClass ||
|
195
|
+
assert(!fnClass || isFunction(fnClass));
|
185
196
|
if (fnBaseClass) {
|
186
197
|
if (!fnClass) {
|
187
198
|
if (oClassInfo.metadata.deprecated) {
|
@@ -197,7 +208,7 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
197
208
|
}
|
198
209
|
fnClass.prototype = Object.create(fnBaseClass.prototype);
|
199
210
|
fnClass.prototype.constructor = fnClass;
|
200
|
-
oClassInfo.metadata.baseType = fnBaseClass
|
211
|
+
oClassInfo.metadata.baseType = fnBaseClass;
|
201
212
|
} else {
|
202
213
|
fnClass = fnClass || function () {
|
203
214
|
};
|
@@ -1,8 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Islamic: "Islamic",
|
4
|
-
Japanese: "Japanese",
|
5
|
-
Persian: "Persian",
|
6
|
-
Buddhist: "Buddhist"
|
7
|
-
};
|
8
|
-
export default CalendarType;
|
1
|
+
import CalendarType from '../../base/i18n/date/CalendarType.js';
|
2
|
+
export default CalendarType;
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
|
2
2
|
import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
|
3
|
+
import { getTimezone as getConfigTimezone } from "@ui5/webcomponents-base/dist/config/Timezone.js";
|
3
4
|
import getDesigntimePropertyAsArray from "@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js";
|
4
5
|
// @ts-ignore
|
5
6
|
import TimezoneUtil from "./format/TimezoneUtil.js";
|
@@ -14,7 +15,7 @@ const Configuration = {
|
|
14
15
|
getSupportedLanguages: () => getDesigntimePropertyAsArray("$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$"),
|
15
16
|
getOriginInfo: emptyFn,
|
16
17
|
getFormatSettings: () => FormatSettings,
|
17
|
-
getTimezone: () => TimezoneUtil.getLocalTimezone(),
|
18
|
+
getTimezone: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone(),
|
18
19
|
};
|
19
20
|
export default Configuration;
|
20
21
|
//# sourceMappingURL=Configuration.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,4BAA4B,MAAM,mEAAmE,CAAC;AAC7G,aAAa;AACb,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,aAAa,GAAG;IACrB,WAAW;IACX,eAAe;IACf,qBAAqB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,2IAA2I,CAAC;IACtM,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;IACvC,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAY;
|
1
|
+
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,4BAA4B,MAAM,mEAAmE,CAAC;AAC7G,aAAa;AACb,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,aAAa,GAAG;IACrB,WAAW;IACX,eAAe;IACf,qBAAqB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,2IAA2I,CAAC;IACtM,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;IACvC,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,IAAI,YAAY,CAAC,gBAAgB,EAAY;CACnF,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport { getTimezone as getConfigTimezone } from \"@ui5/webcomponents-base/dist/config/Timezone.js\";\nimport getDesigntimePropertyAsArray from \"@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js\";\n// @ts-ignore\nimport TimezoneUtil from \"./format/TimezoneUtil.js\";\nimport FormatSettings from \"./FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Configuration Shim\n */\nconst Configuration = {\n\tgetLanguage,\n\tgetCalendarType,\n\tgetSupportedLanguages: () => getDesigntimePropertyAsArray(\"$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$\"),\n\tgetOriginInfo: emptyFn,\n\tgetFormatSettings: () => FormatSettings,\n\tgetTimezone: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone() as string,\n};\n\nexport default Configuration;\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Core.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,IAAI,GAAG;IACZ,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;IACrC,wBAAwB,EAAE,OAAO,EAAE;IACnC,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;CACvC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
1
|
+
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Core.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,IAAI,GAAG;IACZ,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;IACrC,wBAAwB,EAAE,OAAO,EAAE;IACnC,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;CACvC,CAAC;AAEF,eAAe,IAAI,CAAC","sourcesContent":["import FormatSettings from \"./FormatSettings.js\";\nimport Configuration from \"./Configuration.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Core shim\n */\nconst Core = {\n\tgetConfiguration: () => Configuration,\n\tgetLibraryResourceBundle: emptyFn(),\n\tgetFormatSettings: () => FormatSettings,\n};\n\nexport default Core;\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC;CAChC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
1
|
+
{"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC;CAChC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getLegacyDateCalendarCustomizing } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 FormatSettings shim\n */\nconst FormatSettings = {\n\tgetFormatLocale: getLocale,\n\tgetLegacyDateFormat: emptyFn,\n\tgetCustomLocaleData: emptyFn,\n\tgetLegacyDateCalendarCustomizing,\n};\n\nexport default FormatSettings;\n"]}
|
@@ -1,159 +1,62 @@
|
|
1
|
-
import BaseObject from '../base/Object.js';
|
2
1
|
import assert from '../../base/assert.js';
|
3
|
-
import
|
4
|
-
|
2
|
+
import BaseObject from '../base/Object.js';
|
3
|
+
import Localization from '../../base/i18n/Localization.js';
|
4
|
+
import LanguageTag from '../../base/i18n/LanguageTag.js';
|
5
5
|
var Locale = BaseObject.extend('sap.ui.core.Locale', {
|
6
|
-
constructor: function (
|
6
|
+
constructor: function (vLocale) {
|
7
7
|
BaseObject.apply(this);
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
}
|
12
|
-
|
13
|
-
|
14
|
-
this.sScript = aResult[2] || null;
|
15
|
-
this.sRegion = aResult[3] || null;
|
16
|
-
this.sVariant = aResult[4] && aResult[4].slice(1) || null;
|
17
|
-
this.sExtension = aResult[5] && aResult[5].slice(1) || null;
|
18
|
-
this.sPrivateUse = aResult[6] || null;
|
19
|
-
if (this.sLanguage) {
|
20
|
-
this.sLanguage = this.sLanguage.toLowerCase();
|
21
|
-
}
|
22
|
-
if (this.sScript) {
|
23
|
-
this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {
|
24
|
-
return $.toUpperCase();
|
25
|
-
});
|
26
|
-
}
|
27
|
-
if (this.sRegion) {
|
28
|
-
this.sRegion = this.sRegion.toUpperCase();
|
8
|
+
if (vLocale instanceof LanguageTag) {
|
9
|
+
this.oLanguageTag = vLocale;
|
10
|
+
this.sLocaleId = this.oLanguageTag.toString();
|
11
|
+
} else {
|
12
|
+
this.oLanguageTag = new LanguageTag(vLocale);
|
13
|
+
this.sLocaleId = vLocale;
|
29
14
|
}
|
15
|
+
Object.assign(this, this.oLanguageTag);
|
16
|
+
this.sLanguage = this.language;
|
30
17
|
},
|
31
18
|
getLanguage: function () {
|
32
|
-
return this.
|
19
|
+
return this.language;
|
33
20
|
},
|
34
21
|
getScript: function () {
|
35
|
-
return this.
|
22
|
+
return this.script;
|
36
23
|
},
|
37
24
|
getRegion: function () {
|
38
|
-
return this.
|
25
|
+
return this.region;
|
39
26
|
},
|
40
27
|
getVariant: function () {
|
41
|
-
return this.
|
28
|
+
return this.variant;
|
42
29
|
},
|
43
30
|
getVariantSubtags: function () {
|
44
|
-
return this.
|
31
|
+
return this.variantSubtags;
|
45
32
|
},
|
46
33
|
getExtension: function () {
|
47
|
-
return this.
|
34
|
+
return this.extension;
|
48
35
|
},
|
49
36
|
getExtensionSubtags: function () {
|
50
|
-
return this.
|
37
|
+
return this.extensionSubtags;
|
51
38
|
},
|
52
39
|
getPrivateUse: function () {
|
53
|
-
return this.
|
40
|
+
return this.privateUse;
|
54
41
|
},
|
55
42
|
getPrivateUseSubtags: function () {
|
56
|
-
return this.
|
43
|
+
return this.privateUseSubtags;
|
57
44
|
},
|
58
45
|
hasPrivateUseSubtag: function (sSubtag) {
|
59
46
|
assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');
|
60
|
-
return this.
|
47
|
+
return this.privateUseSubtags.indexOf(sSubtag) >= 0;
|
61
48
|
},
|
62
49
|
toString: function () {
|
63
|
-
return
|
64
|
-
},
|
65
|
-
toLanguageTag: function () {
|
66
|
-
var sLanguage = this.getModernLanguage();
|
67
|
-
var sScript = this.sScript;
|
68
|
-
if (sLanguage === 'sr' && sScript === 'Latn') {
|
69
|
-
sLanguage = 'sh';
|
70
|
-
sScript = null;
|
71
|
-
}
|
72
|
-
return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
|
73
|
-
},
|
74
|
-
getModernLanguage: function () {
|
75
|
-
return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;
|
50
|
+
return this.oLanguageTag.toString();
|
76
51
|
},
|
77
52
|
getSAPLogonLanguage: function () {
|
78
|
-
return
|
79
|
-
},
|
80
|
-
_getSAPLogonLanguage: function () {
|
81
|
-
var sLanguage = this.sLanguage || '';
|
82
|
-
if (sLanguage.indexOf('-') >= 0) {
|
83
|
-
sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
|
84
|
-
}
|
85
|
-
sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
86
|
-
if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {
|
87
|
-
return 'ZF';
|
88
|
-
}
|
89
|
-
return M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sScript)] || M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sRegion)] || M_LOCALE_TO_ABAP_LANGUAGE[getPseudoLanguageTag(this.sPrivateUse)] || sLanguage.toUpperCase();
|
90
|
-
},
|
91
|
-
getPreferredCalendarType: function () {
|
92
|
-
return Locale._mPreferredCalendar[this.getLanguage() + '-' + this.getRegion()] || Locale._mPreferredCalendar[this.getLanguage()] || Locale._mPreferredCalendar['default'];
|
53
|
+
return Localization._getSAPLogonLanguage(this);
|
93
54
|
}
|
94
55
|
});
|
95
|
-
function
|
96
|
-
if (
|
97
|
-
|
98
|
-
return m && 'en-US-x-' + m[1].toLowerCase();
|
99
|
-
}
|
100
|
-
}
|
101
|
-
var M_ISO639_OLD_TO_NEW = {
|
102
|
-
'iw': 'he',
|
103
|
-
'ji': 'yi'
|
104
|
-
};
|
105
|
-
var M_ABAP_LANGUAGE_TO_LOCALE = {
|
106
|
-
'ZH': 'zh-Hans',
|
107
|
-
'ZF': 'zh-Hant',
|
108
|
-
'SH': 'sr-Latn',
|
109
|
-
'6N': 'en-GB',
|
110
|
-
'1P': 'pt-PT',
|
111
|
-
'1X': 'es-MX',
|
112
|
-
'3F': 'fr-CA',
|
113
|
-
'1Q': 'en-US-x-saptrc',
|
114
|
-
'2Q': 'en-US-x-sappsd',
|
115
|
-
'3Q': 'en-US-x-saprigi'
|
116
|
-
};
|
117
|
-
var M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);
|
118
|
-
function getDesigntimePropertyAsArray(sValue) {
|
119
|
-
var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
|
120
|
-
return m && m[2] ? m[2].split(/,/) : null;
|
121
|
-
}
|
122
|
-
var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
|
123
|
-
Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
|
124
|
-
Locale._mPreferredCalendar = {
|
125
|
-
'ar-SA': CalendarType.Islamic,
|
126
|
-
'fa': CalendarType.Persian,
|
127
|
-
'th': CalendarType.Buddhist,
|
128
|
-
'default': CalendarType.Gregorian
|
129
|
-
};
|
130
|
-
Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,en_GB,es,es_MX,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');
|
131
|
-
Locale._impliesRTL = function (vLanguage) {
|
132
|
-
var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
|
133
|
-
var sLanguage = oLocale.getLanguage() || '';
|
134
|
-
sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
135
|
-
var sRegion = oLocale.getRegion() || '';
|
136
|
-
if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {
|
137
|
-
return true;
|
138
|
-
}
|
139
|
-
return A_RTL_LOCALES.indexOf(sLanguage) >= 0;
|
140
|
-
};
|
141
|
-
Locale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {
|
142
|
-
if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {
|
143
|
-
sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;
|
144
|
-
try {
|
145
|
-
return new Locale(sSAPLogonLanguage);
|
146
|
-
} catch (e) {
|
147
|
-
}
|
56
|
+
Locale._getCoreLocale = function (oLocale) {
|
57
|
+
if (oLocale instanceof LanguageTag) {
|
58
|
+
oLocale = new Locale(oLocale);
|
148
59
|
}
|
60
|
+
return oLocale;
|
149
61
|
};
|
150
|
-
function join() {
|
151
|
-
return Array.prototype.filter.call(arguments, Boolean).join('-');
|
152
|
-
}
|
153
|
-
function inverse(obj) {
|
154
|
-
return Object.keys(obj).reduce(function (inv, key) {
|
155
|
-
inv[obj[key]] = key;
|
156
|
-
return inv;
|
157
|
-
}, {});
|
158
|
-
}
|
159
62
|
export default Locale;
|