@ui5/webcomponents-localization 0.0.0-96e98c995 → 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.
Files changed (171) hide show
  1. package/.eslintignore +1 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +316 -0
  4. package/dist/Assets-static.js.map +1 -1
  5. package/dist/Assets.js.map +1 -1
  6. package/dist/DateFormat.js.map +1 -1
  7. package/dist/LocaleData.js.map +1 -1
  8. package/dist/dates/CalendarDate.d.ts +7 -5
  9. package/dist/dates/CalendarDate.js +8 -7
  10. package/dist/dates/CalendarDate.js.map +1 -1
  11. package/dist/dates/ExtremeDates.d.ts +2 -2
  12. package/dist/dates/ExtremeDates.js.map +1 -1
  13. package/dist/dates/UI5Date.d.ts +6 -0
  14. package/dist/dates/UI5Date.js +7 -0
  15. package/dist/dates/UI5Date.js.map +1 -0
  16. package/dist/dates/UniversalDate.d.ts +2 -1
  17. package/dist/dates/UniversalDate.js.map +1 -1
  18. package/dist/dates/calculateWeekNumber.d.ts +2 -1
  19. package/dist/dates/calculateWeekNumber.js.map +1 -1
  20. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +1 -1
  21. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
  22. package/dist/dates/getDaysInMonth.js.map +1 -1
  23. package/dist/dates/getRoundedTimestamp.js +1 -0
  24. package/dist/dates/getRoundedTimestamp.js.map +1 -1
  25. package/dist/dates/getTodayUTCTimestamp.d.ts +1 -1
  26. package/dist/dates/getTodayUTCTimestamp.js +2 -1
  27. package/dist/dates/getTodayUTCTimestamp.js.map +1 -1
  28. package/dist/dates/modifyDateBy.d.ts +2 -1
  29. package/dist/dates/modifyDateBy.js +34 -19
  30. package/dist/dates/modifyDateBy.js.map +1 -1
  31. package/dist/dates/transformDateToSecondaryType.d.ts +1 -1
  32. package/dist/dates/transformDateToSecondaryType.js +3 -2
  33. package/dist/dates/transformDateToSecondaryType.js.map +1 -1
  34. package/dist/features/calendar/Buddhist.js.map +1 -1
  35. package/dist/features/calendar/Gregorian.js.map +1 -1
  36. package/dist/features/calendar/Islamic.js.map +1 -1
  37. package/dist/features/calendar/Japanese.js.map +1 -1
  38. package/dist/features/calendar/Persian.js.map +1 -1
  39. package/dist/generated/assets/cldr/ar.json +5531 -6704
  40. package/dist/generated/assets/cldr/ar_EG.json +5531 -6704
  41. package/dist/generated/assets/cldr/ar_SA.json +5530 -6704
  42. package/dist/generated/assets/cldr/bg.json +4452 -5742
  43. package/dist/generated/assets/cldr/ca.json +4440 -5793
  44. package/dist/generated/assets/cldr/cs.json +4960 -6294
  45. package/dist/generated/assets/cldr/cy.json +5211 -6612
  46. package/dist/generated/assets/cldr/da.json +4308 -5651
  47. package/dist/generated/assets/cldr/de.json +4313 -5713
  48. package/dist/generated/assets/cldr/de_AT.json +4314 -5714
  49. package/dist/generated/assets/cldr/de_CH.json +4312 -5712
  50. package/dist/generated/assets/cldr/el.json +4281 -5579
  51. package/dist/generated/assets/cldr/el_CY.json +4281 -5579
  52. package/dist/generated/assets/cldr/en.json +4316 -5732
  53. package/dist/generated/assets/cldr/en_AU.json +4319 -5724
  54. package/dist/generated/assets/cldr/en_GB.json +4329 -5733
  55. package/dist/generated/assets/cldr/en_HK.json +4337 -5739
  56. package/dist/generated/assets/cldr/en_IE.json +4328 -5733
  57. package/dist/generated/assets/cldr/en_IN.json +4333 -5734
  58. package/dist/generated/assets/cldr/en_NZ.json +4328 -5733
  59. package/dist/generated/assets/cldr/en_PG.json +4329 -5734
  60. package/dist/generated/assets/cldr/en_SG.json +4333 -5735
  61. package/dist/generated/assets/cldr/en_ZA.json +4329 -5734
  62. package/dist/generated/assets/cldr/es.json +4331 -5641
  63. package/dist/generated/assets/cldr/es_AR.json +4334 -5643
  64. package/dist/generated/assets/cldr/es_BO.json +4333 -5642
  65. package/dist/generated/assets/cldr/es_CL.json +4334 -5643
  66. package/dist/generated/assets/cldr/es_CO.json +4333 -5642
  67. package/dist/generated/assets/cldr/es_MX.json +4335 -5644
  68. package/dist/generated/assets/cldr/es_PE.json +4333 -5642
  69. package/dist/generated/assets/cldr/es_UY.json +4335 -5644
  70. package/dist/generated/assets/cldr/es_VE.json +4334 -5643
  71. package/dist/generated/assets/cldr/et.json +4340 -5729
  72. package/dist/generated/assets/cldr/fa.json +4367 -5647
  73. package/dist/generated/assets/cldr/fi.json +4463 -5804
  74. package/dist/generated/assets/cldr/fr.json +4357 -5741
  75. package/dist/generated/assets/cldr/fr_BE.json +4357 -5741
  76. package/dist/generated/assets/cldr/fr_CA.json +4351 -5735
  77. package/dist/generated/assets/cldr/fr_CH.json +4375 -5759
  78. package/dist/generated/assets/cldr/fr_LU.json +4357 -5741
  79. package/dist/generated/assets/cldr/he.json +4869 -6175
  80. package/dist/generated/assets/cldr/hi.json +4295 -5558
  81. package/dist/generated/assets/cldr/hr.json +4583 -5681
  82. package/dist/generated/assets/cldr/hu.json +4364 -5686
  83. package/dist/generated/assets/cldr/id.json +4060 -5420
  84. package/dist/generated/assets/cldr/it.json +4299 -5712
  85. package/dist/generated/assets/cldr/it_CH.json +4299 -5712
  86. package/dist/generated/assets/cldr/ja.json +4211 -5626
  87. package/dist/generated/assets/cldr/kk.json +4339 -5487
  88. package/dist/generated/assets/cldr/ko.json +4189 -5534
  89. package/dist/generated/assets/cldr/lt.json +4850 -6243
  90. package/dist/generated/assets/cldr/lv.json +4587 -5874
  91. package/dist/generated/assets/cldr/ms.json +4021 -5245
  92. package/dist/generated/assets/cldr/nb.json +4335 -5740
  93. package/dist/generated/assets/cldr/nl.json +4294 -5613
  94. package/dist/generated/assets/cldr/nl_BE.json +4294 -5613
  95. package/dist/generated/assets/cldr/pl.json +4667 -5972
  96. package/dist/generated/assets/cldr/pt.json +4235 -5567
  97. package/dist/generated/assets/cldr/pt_PT.json +4372 -5702
  98. package/dist/generated/assets/cldr/ro.json +4563 -5852
  99. package/dist/generated/assets/cldr/ru.json +4909 -6169
  100. package/dist/generated/assets/cldr/ru_UA.json +4909 -6169
  101. package/dist/generated/assets/cldr/sk.json +4939 -6166
  102. package/dist/generated/assets/cldr/sl.json +4910 -6136
  103. package/dist/generated/assets/cldr/sr.json +4585 -5888
  104. package/dist/generated/assets/cldr/sr_Latn.json +4574 -5889
  105. package/dist/generated/assets/cldr/sv.json +4362 -5774
  106. package/dist/generated/assets/cldr/th.json +4214 -5627
  107. package/dist/generated/assets/cldr/tr.json +4400 -5809
  108. package/dist/generated/assets/cldr/uk.json +4858 -6115
  109. package/dist/generated/assets/cldr/vi.json +4070 -5435
  110. package/dist/generated/assets/cldr/zh_CN.json +4100 -5429
  111. package/dist/generated/assets/cldr/zh_HK.json +4108 -5437
  112. package/dist/generated/assets/cldr/zh_SG.json +4108 -5437
  113. package/dist/generated/assets/cldr/zh_TW.json +4131 -5525
  114. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  115. package/dist/locale/getLocaleData.js.map +1 -1
  116. package/dist/sap/base/i18n/LanguageTag.js +35 -0
  117. package/dist/sap/base/i18n/Localization.d.ts +4 -0
  118. package/dist/sap/base/i18n/Localization.js +12 -0
  119. package/dist/sap/base/i18n/Localization.js.map +1 -0
  120. package/dist/sap/base/i18n/date/CalendarType.js +8 -0
  121. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
  122. package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
  123. package/dist/sap/base/util/LoaderExtensions.js.map +1 -1
  124. package/dist/sap/ui/base/Metadata.js +20 -9
  125. package/dist/sap/ui/core/CalendarType.js +2 -8
  126. package/dist/sap/ui/core/Configuration.d.ts +1 -1
  127. package/dist/sap/ui/core/Configuration.js +2 -1
  128. package/dist/sap/ui/core/Configuration.js.map +1 -1
  129. package/dist/sap/ui/core/Core.d.ts +2 -2
  130. package/dist/sap/ui/core/Core.js.map +1 -1
  131. package/dist/sap/ui/core/FormatSettings.d.ts +1 -1
  132. package/dist/sap/ui/core/FormatSettings.js +2 -1
  133. package/dist/sap/ui/core/FormatSettings.js.map +1 -1
  134. package/dist/sap/ui/core/Locale.js +28 -125
  135. package/dist/sap/ui/core/LocaleData.js +107 -35
  136. package/dist/sap/ui/core/date/CalendarUtils.js +7 -18
  137. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -7
  138. package/dist/sap/ui/core/date/UI5Date.js +305 -0
  139. package/dist/sap/ui/core/date/UniversalDate.js +12 -22
  140. package/dist/sap/ui/core/format/DateFormat.js +385 -329
  141. package/dist/sap/ui/core/format/TimezoneUtil.js +2 -94
  142. package/{package-scripts.js → package-scripts.cjs} +2 -3
  143. package/package.json +7 -6
  144. package/tsconfig.json +1 -0
  145. package/used-modules.txt +5 -0
  146. package/src/Assets-static.ts +0 -2
  147. package/src/Assets.ts +0 -2
  148. package/src/DateFormat.ts +0 -8
  149. package/src/LocaleData.ts +0 -8
  150. package/src/dates/CalendarDate.ts +0 -232
  151. package/src/dates/ExtremeDates.ts +0 -40
  152. package/src/dates/UniversalDate.ts +0 -51
  153. package/src/dates/calculateWeekNumber.ts +0 -53
  154. package/src/dates/convertMonthNumbersToMonthNames.ts +0 -34
  155. package/src/dates/getDaysInMonth.ts +0 -11
  156. package/src/dates/getRoundedTimestamp.ts +0 -14
  157. package/src/dates/getTodayUTCTimestamp.ts +0 -10
  158. package/src/dates/modifyDateBy.ts +0 -42
  159. package/src/dates/transformDateToSecondaryType.ts +0 -21
  160. package/src/features/calendar/Buddhist.ts +0 -1
  161. package/src/features/calendar/Gregorian.ts +0 -1
  162. package/src/features/calendar/Islamic.ts +0 -1
  163. package/src/features/calendar/Japanese.ts +0 -1
  164. package/src/features/calendar/Persian.ts +0 -1
  165. package/src/getCachedLocaleDataInstance.ts +0 -15
  166. package/src/locale/getLocaleData.ts +0 -28
  167. package/src/sap/base/util/LoaderExtensions.ts +0 -17
  168. package/src/sap/ui/core/Configuration.ts +0 -22
  169. package/src/sap/ui/core/Core.ts +0 -15
  170. package/src/sap/ui/core/FormatSettings.ts +0 -15
  171. /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,4 @@
1
+ declare const Localization: {
2
+ getModernLanguage: (sLanguage: string) => string;
3
+ };
4
+ export default Localization;
@@ -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,8 @@
1
+ var CalendarType = {
2
+ Gregorian: "Gregorian",
3
+ Islamic: "Islamic",
4
+ Japanese: "Japanese",
5
+ Persian: "Persian",
6
+ Buddhist: "Buddhist"
7
+ };
8
+ export default CalendarType;
@@ -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 (typeof oClassInfo.constructor !== 'function') {
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 = ObjectPath.get(oStaticInfo.baseType);
31
- if (typeof oParentClass !== 'function') {
32
- Log.fatal('base class \'' + oStaticInfo.baseType + '\' does not exist');
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 || typeof fnBaseClass === 'function');
181
+ assert(!fnBaseClass || isFunction(fnBaseClass));
171
182
  assert(typeof sClassName === 'string' && !!sClassName);
172
183
  assert(!oClassInfo || typeof oClassInfo === 'object');
173
- assert(!FNMetaImpl || typeof FNMetaImpl === 'function');
184
+ assert(!FNMetaImpl || isFunction(FNMetaImpl));
174
185
  FNMetaImpl = FNMetaImpl || Metadata;
175
- if (typeof FNMetaImpl.preprocessClassInfo === 'function') {
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 || typeof fnClass === 'function');
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.getMetadata().getName();
211
+ oClassInfo.metadata.baseType = fnBaseClass;
201
212
  } else {
202
213
  fnClass = fnClass || function () {
203
214
  };
@@ -1,8 +1,2 @@
1
- var CalendarType = {
2
- Gregorian: "Gregorian",
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;
@@ -9,8 +9,8 @@ declare const Configuration: {
9
9
  getFormatSettings: () => {
10
10
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
11
11
  getLegacyDateFormat: () => void;
12
- getLegacyDateCalendarCustomizing: () => void;
13
12
  getCustomLocaleData: () => void;
13
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
14
14
  };
15
15
  getTimezone: () => string;
16
16
  };
@@ -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;CAC5D,CAAC;AAEF,eAAe,aAAa,CAAC"}
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"]}
@@ -10,8 +10,8 @@ declare const Core: {
10
10
  getFormatSettings: () => {
11
11
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
12
12
  getLegacyDateFormat: () => void;
13
- getLegacyDateCalendarCustomizing: () => void;
14
13
  getCustomLocaleData: () => void;
14
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
15
15
  };
16
16
  getTimezone: () => string;
17
17
  };
@@ -19,8 +19,8 @@ declare const Core: {
19
19
  getFormatSettings: () => {
20
20
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
21
21
  getLegacyDateFormat: () => void;
22
- getLegacyDateCalendarCustomizing: () => void;
23
22
  getCustomLocaleData: () => void;
23
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
24
24
  };
25
25
  };
26
26
  export default Core;
@@ -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"]}
@@ -4,7 +4,7 @@
4
4
  declare const FormatSettings: {
5
5
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale").default;
6
6
  getLegacyDateFormat: () => void;
7
- getLegacyDateCalendarCustomizing: () => void;
8
7
  getCustomLocaleData: () => void;
8
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats").default.getLegacyDateCalendarCustomizing;
9
9
  };
10
10
  export default FormatSettings;
@@ -1,4 +1,5 @@
1
1
  import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
+ import { getLegacyDateCalendarCustomizing } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
2
3
  const emptyFn = () => { };
3
4
  /**
4
5
  * OpenUI5 FormatSettings shim
@@ -6,8 +7,8 @@ const emptyFn = () => { };
6
7
  const FormatSettings = {
7
8
  getFormatLocale: getLocale,
8
9
  getLegacyDateFormat: emptyFn,
9
- getLegacyDateCalendarCustomizing: emptyFn,
10
10
  getCustomLocaleData: emptyFn,
11
+ getLegacyDateCalendarCustomizing,
11
12
  };
12
13
  export default FormatSettings;
13
14
  //# sourceMappingURL=FormatSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC,EAAE,OAAO;IACzC,mBAAmB,EAAE,OAAO;CAC5B,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 CalendarType from './CalendarType.js';
4
- var rLocale = /^((?:[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
+ 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 (sLocaleId) {
6
+ constructor: function (vLocale) {
7
7
  BaseObject.apply(this);
8
- var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));
9
- if (aResult === null) {
10
- throw new TypeError('The given language \'' + sLocaleId + '\' does not adhere to BCP-47.');
11
- }
12
- this.sLocaleId = sLocaleId;
13
- this.sLanguage = aResult[1] || null;
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.sLanguage;
19
+ return this.language;
33
20
  },
34
21
  getScript: function () {
35
- return this.sScript;
22
+ return this.script;
36
23
  },
37
24
  getRegion: function () {
38
- return this.sRegion;
25
+ return this.region;
39
26
  },
40
27
  getVariant: function () {
41
- return this.sVariant;
28
+ return this.variant;
42
29
  },
43
30
  getVariantSubtags: function () {
44
- return this.sVariant ? this.sVariant.split('-') : [];
31
+ return this.variantSubtags;
45
32
  },
46
33
  getExtension: function () {
47
- return this.sExtension;
34
+ return this.extension;
48
35
  },
49
36
  getExtensionSubtags: function () {
50
- return this.sExtension ? this.sExtension.slice(2).split('-') : [];
37
+ return this.extensionSubtags;
51
38
  },
52
39
  getPrivateUse: function () {
53
- return this.sPrivateUse;
40
+ return this.privateUse;
54
41
  },
55
42
  getPrivateUseSubtags: function () {
56
- return this.sPrivateUse ? this.sPrivateUse.slice(2).split('-') : [];
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.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
47
+ return this.privateUseSubtags.indexOf(sSubtag) >= 0;
61
48
  },
62
49
  toString: function () {
63
- return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
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 this._getSAPLogonLanguage();
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 getPseudoLanguageTag(sPrivateUse) {
96
- if (sPrivateUse) {
97
- var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);
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;