@ui5/webcomponents-localization 0.0.0-47cc17a26 → 0.0.0-49bade48d

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 (169) hide show
  1. package/CHANGELOG.md +293 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DateFormat.d.ts +23 -0
  4. package/dist/DateFormat.js +16 -0
  5. package/dist/DateFormat.js.map +1 -1
  6. package/dist/Locale.d.ts +5 -0
  7. package/dist/Locale.js +7 -0
  8. package/dist/Locale.js.map +1 -0
  9. package/dist/NumberFormat.d.ts +5 -0
  10. package/dist/NumberFormat.js +7 -0
  11. package/dist/NumberFormat.js.map +1 -0
  12. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +2 -2
  13. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
  14. package/dist/generated/assets/cldr/Unicode-Data-Files-LICENSE.txt +36 -24
  15. package/dist/generated/assets/cldr/ar.json +624 -354
  16. package/dist/generated/assets/cldr/ar_EG.json +624 -354
  17. package/dist/generated/assets/cldr/ar_SA.json +625 -355
  18. package/dist/generated/assets/cldr/bg.json +339 -215
  19. package/dist/generated/assets/cldr/ca.json +633 -509
  20. package/dist/generated/assets/cldr/cnr.json +960 -653
  21. package/dist/generated/assets/cldr/cs.json +343 -531
  22. package/dist/generated/assets/cldr/cy.json +684 -1050
  23. package/dist/generated/assets/cldr/da.json +354 -231
  24. package/dist/generated/assets/cldr/de.json +458 -330
  25. package/dist/generated/assets/cldr/de_AT.json +459 -331
  26. package/dist/generated/assets/cldr/de_CH.json +522 -386
  27. package/dist/generated/assets/cldr/el.json +317 -152
  28. package/dist/generated/assets/cldr/el_CY.json +317 -152
  29. package/dist/generated/assets/cldr/en.json +606 -253
  30. package/dist/generated/assets/cldr/en_AU.json +830 -376
  31. package/dist/generated/assets/cldr/en_GB.json +696 -251
  32. package/dist/generated/assets/cldr/en_HK.json +544 -203
  33. package/dist/generated/assets/cldr/en_IE.json +533 -192
  34. package/dist/generated/assets/cldr/en_IN.json +820 -296
  35. package/dist/generated/assets/cldr/en_NZ.json +534 -193
  36. package/dist/generated/assets/cldr/en_PG.json +509 -168
  37. package/dist/generated/assets/cldr/en_SG.json +526 -185
  38. package/dist/generated/assets/cldr/en_ZA.json +529 -186
  39. package/dist/generated/assets/cldr/es.json +355 -230
  40. package/dist/generated/assets/cldr/es_AR.json +444 -288
  41. package/dist/generated/assets/cldr/es_BO.json +419 -264
  42. package/dist/generated/assets/cldr/es_CL.json +455 -300
  43. package/dist/generated/assets/cldr/es_CO.json +412 -257
  44. package/dist/generated/assets/cldr/es_MX.json +515 -352
  45. package/dist/generated/assets/cldr/es_PE.json +397 -234
  46. package/dist/generated/assets/cldr/es_UY.json +424 -269
  47. package/dist/generated/assets/cldr/es_VE.json +398 -243
  48. package/dist/generated/assets/cldr/et.json +390 -233
  49. package/dist/generated/assets/cldr/fa.json +510 -271
  50. package/dist/generated/assets/cldr/fi.json +497 -251
  51. package/dist/generated/assets/cldr/fr.json +339 -106
  52. package/dist/generated/assets/cldr/fr_BE.json +341 -108
  53. package/dist/generated/assets/cldr/fr_CA.json +652 -397
  54. package/dist/generated/assets/cldr/fr_CH.json +342 -109
  55. package/dist/generated/assets/cldr/fr_LU.json +339 -106
  56. package/dist/generated/assets/cldr/he.json +726 -904
  57. package/dist/generated/assets/cldr/hi.json +529 -288
  58. package/dist/generated/assets/cldr/hr.json +392 -383
  59. package/dist/generated/assets/cldr/hu.json +459 -335
  60. package/dist/generated/assets/cldr/id.json +379 -128
  61. package/dist/generated/assets/cldr/it.json +420 -301
  62. package/dist/generated/assets/cldr/it_CH.json +426 -307
  63. package/dist/generated/assets/cldr/ja.json +332 -74
  64. package/dist/generated/assets/cldr/kk.json +540 -240
  65. package/dist/generated/assets/cldr/ko.json +371 -115
  66. package/dist/generated/assets/cldr/lt.json +428 -545
  67. package/dist/generated/assets/cldr/lv.json +415 -413
  68. package/dist/generated/assets/cldr/mk.json +691 -559
  69. package/dist/generated/assets/cldr/ms.json +395 -136
  70. package/dist/generated/assets/cldr/nb.json +355 -234
  71. package/dist/generated/assets/cldr/nl.json +357 -251
  72. package/dist/generated/assets/cldr/nl_BE.json +428 -322
  73. package/dist/generated/assets/cldr/pl.json +333 -459
  74. package/dist/generated/assets/cldr/pt.json +419 -298
  75. package/dist/generated/assets/cldr/pt_PT.json +362 -231
  76. package/dist/generated/assets/cldr/ro.json +369 -397
  77. package/dist/generated/assets/cldr/ru.json +599 -368
  78. package/dist/generated/assets/cldr/ru_UA.json +598 -367
  79. package/dist/generated/assets/cldr/sk.json +343 -517
  80. package/dist/generated/assets/cldr/sl.json +477 -640
  81. package/dist/generated/assets/cldr/sr.json +478 -531
  82. package/dist/generated/assets/cldr/sr_Latn.json +631 -684
  83. package/dist/generated/assets/cldr/sv.json +395 -258
  84. package/dist/generated/assets/cldr/th.json +452 -199
  85. package/dist/generated/assets/cldr/tr.json +391 -238
  86. package/dist/generated/assets/cldr/uk.json +696 -342
  87. package/dist/generated/assets/cldr/vi.json +836 -487
  88. package/dist/generated/assets/cldr/zh_CN.json +358 -104
  89. package/dist/generated/assets/cldr/zh_HK.json +366 -113
  90. package/dist/generated/assets/cldr/zh_SG.json +371 -118
  91. package/dist/generated/assets/cldr/zh_TW.json +480 -238
  92. package/dist/getCachedLocaleDataInstance.js +2 -0
  93. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  94. package/dist/locale/getLocaleData.js +2 -0
  95. package/dist/locale/getLocaleData.js.map +1 -1
  96. package/dist/sap/base/Event.js +2 -2
  97. package/dist/sap/base/Eventing.js +4 -3
  98. package/dist/sap/base/assert.js +1 -1
  99. package/dist/sap/base/config/MemoryConfigurationProvider.js +1 -1
  100. package/dist/sap/base/future.js +12 -0
  101. package/dist/sap/base/i18n/Formatting.d.ts +5 -0
  102. package/dist/sap/base/i18n/Formatting.js +7 -0
  103. package/dist/sap/base/i18n/Formatting.js.map +1 -1
  104. package/dist/sap/base/i18n/LanguageTag.js +18 -12
  105. package/dist/sap/base/i18n/Localization.d.ts +3 -0
  106. package/dist/sap/base/i18n/Localization.js +5 -0
  107. package/dist/sap/base/i18n/Localization.js.map +1 -1
  108. package/dist/sap/base/i18n/ResourceBundle.js +20 -0
  109. package/dist/sap/base/i18n/date/CalendarType.js +9 -8
  110. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +9 -8
  111. package/dist/sap/base/i18n/date/TimezoneUtils.js +170 -18
  112. package/dist/sap/base/i18n/date/_EnumHelper.js +37 -0
  113. package/dist/sap/base/strings/camelize.js +1 -1
  114. package/dist/sap/base/strings/formatMessage.js +6 -1
  115. package/dist/sap/base/util/Properties.js +12 -0
  116. package/dist/sap/base/util/Version.js +19 -13
  117. package/dist/sap/base/util/_merge.js +1 -1
  118. package/dist/sap/base/util/array/uniqueSort.js +1 -1
  119. package/dist/sap/base/util/deepClone.js +2 -2
  120. package/dist/sap/base/util/deepEqual.js +1 -1
  121. package/dist/sap/base/util/deepExtend.js +60 -0
  122. package/dist/sap/base/util/extend.js +1 -1
  123. package/dist/sap/base/util/fetch.js +8 -0
  124. package/dist/sap/base/util/isEmptyObject.js +1 -1
  125. package/dist/sap/base/util/isPlainObject.js +1 -1
  126. package/dist/sap/base/util/merge.js +57 -0
  127. package/dist/sap/base/util/mixedFetch.js +3 -0
  128. package/dist/sap/base/util/now.js +7 -13
  129. package/dist/sap/base/util/uid.js +1 -1
  130. package/dist/sap/ui/Device.js +27 -0
  131. package/dist/sap/ui/Global.js +1 -0
  132. package/dist/sap/ui/VersionInfo.js +14 -0
  133. package/dist/sap/ui/base/DataType.js +63 -12
  134. package/dist/sap/ui/base/DesignTime.js +11 -0
  135. package/dist/sap/ui/base/EventProvider.js +21 -0
  136. package/dist/sap/ui/base/Metadata.js +45 -10
  137. package/dist/sap/ui/base/Object.js +2 -2
  138. package/dist/sap/ui/base/OwnStatics.js +6 -0
  139. package/dist/sap/ui/base/SyncPromise.js +98 -0
  140. package/dist/sap/ui/core/AnimationMode.js +42 -0
  141. package/dist/sap/ui/core/CalendarType.js +2 -2
  142. package/dist/sap/ui/core/ControlBehavior.js +11 -0
  143. package/dist/sap/ui/core/Lib.js +41 -0
  144. package/dist/sap/ui/core/Locale.js +9 -9
  145. package/dist/sap/ui/core/LocaleData.js +498 -333
  146. package/dist/sap/ui/core/Theming.js +25 -525
  147. package/dist/sap/ui/core/_UrlResolver.js +11 -0
  148. package/dist/sap/ui/core/date/Buddhist.js +2 -2
  149. package/dist/sap/ui/core/date/CalendarUtils.js +14 -12
  150. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -2
  151. package/dist/sap/ui/core/date/Gregorian.js +2 -2
  152. package/dist/sap/ui/core/date/Islamic.js +2 -2
  153. package/dist/sap/ui/core/date/Japanese.js +2 -2
  154. package/dist/sap/ui/core/date/Persian.js +2 -2
  155. package/dist/sap/ui/core/date/UI5Date.js +80 -32
  156. package/dist/sap/ui/core/date/UniversalDate.js +83 -101
  157. package/dist/sap/ui/core/format/DateFormat.js +70 -73
  158. package/dist/sap/ui/core/format/FormatUtils.js +30 -0
  159. package/dist/sap/ui/core/format/NumberFormat.js +3164 -0
  160. package/dist/sap/ui/core/format/TimezoneUtil.js +80 -11
  161. package/dist/sap/ui/core/getCompatibilityVersion.js +7 -0
  162. package/dist/sap/ui/core/theming/ThemeHelper.js +14 -0
  163. package/dist/sap/ui/security/Security.js +12 -0
  164. package/dist/sap/ui/util/XMLHelper.js +11 -0
  165. package/dist/sap/ui/util/_URL.js +1 -0
  166. package/dist/ui5loader-autoconfig.js +1 -0
  167. package/package-scripts.cjs +1 -1
  168. package/package.json +9 -11
  169. package/used-modules.txt +7 -1
@@ -2,6 +2,8 @@ import LocaleData from "./LocaleData.js";
2
2
  const cache = new Map();
3
3
  const getCachedLocaleDataInstance = (locale) => {
4
4
  if (!cache.has(locale)) {
5
+ // @ts-expect-error - The LocaleData constructor expects a LocaleT, but we are passing a Locale. This is a known issue and can be ignored for now.
6
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
5
7
  cache.set(locale, new LocaleData(locale));
6
8
  }
7
9
  return cache.get(locale);
@@ -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,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;IACjE,CAAC;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
+ {"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,CAAC;QACxB,kJAAkJ;QAClJ,iEAAiE;QACjE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;IACjE,CAAC;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\t// @ts-expect-error - The LocaleData constructor expects a LocaleT, but we are passing a Locale. This is a known issue and can be ignored for now.\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\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"]}
@@ -15,6 +15,8 @@ const getLocaleData = async (lang) => {
15
15
  const localeLang = locale.getLanguage();
16
16
  if (!instances.has(localeLang)) {
17
17
  await fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());
18
+ // @ts-expect-error - The LocaleData constructor expects a LocaleT, but we are passing a Locale. This is a known issue and can be ignored for now.
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
18
20
  instances.set(localeLang, new LocaleData(locale));
19
21
  }
20
22
  return instances.get(localeLang);
@@ -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,CAAC;QAChC,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;IACzE,CAAC;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"]}
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,CAAC;QAChC,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,kJAAkJ;QAClJ,iEAAiE;QACjE,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;IACzE,CAAC;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\t// @ts-expect-error - The LocaleData constructor expects a LocaleT, but we are passing a Locale. This is a known issue and can be ignored for now.\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\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"]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  // Provides class module:sap/base/Event
@@ -9,7 +9,7 @@ const EVENT_PARAMETERS_SYMBOL = Symbol("parameters");
9
9
 
10
10
  /**
11
11
  * @author SAP SE
12
- * @version 1.120.17
12
+ * @version 1.146.0
13
13
  *
14
14
  * Creates an event with the given <code>sType</code>,
15
15
  * linked to the provided <code>oTarget</code> and enriched with the <code>oParameters</code>.
@@ -1,20 +1,21 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  // Provides mixin sap/base/Eventing
7
7
  import assert from "./assert.js";
8
8
  import Event from "./Event.js";
9
9
  /**
10
- * Eventing
10
+ * @class A simple eventing implementation that manages listeners and can fire events.
11
11
  *
12
12
  * @author SAP SE
13
- * @version 1.120.17
13
+ * @version 1.146.0
14
14
  *
15
15
  * @since 1.120.0
16
16
  * @private
17
17
  * @ui5-restricted sap.ui.core sap/base/i18n
18
+ * @alias module:sap/base/Eventing
18
19
  */
19
20
  class Eventing {
20
21
  #mEventRegistry = {};
@@ -19,7 +19,7 @@
19
19
  *
20
20
  */ /*!
21
21
  * OpenUI5
22
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
22
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
23
23
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
24
24
  */
25
25
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  import uid from "../util/uid.js";
@@ -0,0 +1,12 @@
1
+ export default {
2
+ active: false,
3
+ fatalThrows: function () {},
4
+ errorThrows: function () {},
5
+ warningThrows: function () {},
6
+ assertThrows: function () {},
7
+ warningRejects: function (fnResolve) {
8
+ if (fnResolve) {
9
+ fnResolve();
10
+ }
11
+ }
12
+ };
@@ -4,5 +4,10 @@
4
4
  declare const Formatting: {
5
5
  getABAPDateFormat: () => void;
6
6
  getCustomIslamicCalendarData: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
7
+ getLanguageTag: () => string;
8
+ getCalendarType: () => import("@ui5/webcomponents-base/dist/types/CalendarType.js").default;
9
+ getTrailingCurrencyCode: () => boolean;
10
+ getCustomLocaleData: () => {};
11
+ getCalendarWeekNumbering: () => string;
7
12
  };
8
13
  export default Formatting;
@@ -1,4 +1,6 @@
1
1
  import { getLegacyDateCalendarCustomizing } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
2
+ import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
3
+ import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
4
  const emptyFn = () => { };
3
5
  /**
4
6
  * OpenUI5 Formatting Shim
@@ -6,6 +8,11 @@ const emptyFn = () => { };
6
8
  const Formatting = {
7
9
  getABAPDateFormat: emptyFn,
8
10
  getCustomIslamicCalendarData: getLegacyDateCalendarCustomizing,
11
+ getLanguageTag: () => getLocale().toString(),
12
+ getCalendarType,
13
+ getTrailingCurrencyCode: () => true,
14
+ getCustomLocaleData: () => ({}),
15
+ getCalendarWeekNumbering: () => "Default",
9
16
  };
10
17
  export default Formatting;
11
18
  //# sourceMappingURL=Formatting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatting.js","sourceRoot":"","sources":["../../../../src/sap/base/i18n/Formatting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG;IAClB,iBAAiB,EAAE,OAAO;IAC1B,4BAA4B,EAAE,gCAAgC;CAC9D,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { getLegacyDateCalendarCustomizing } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Formatting Shim\n */\nconst Formatting = {\n\tgetABAPDateFormat: emptyFn,\n\tgetCustomIslamicCalendarData: getLegacyDateCalendarCustomizing,\n};\n\nexport default Formatting;\n"]}
1
+ {"version":3,"file":"Formatting.js","sourceRoot":"","sources":["../../../../src/sap/base/i18n/Formatting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,GAAG;IAClB,iBAAiB,EAAE,OAAO;IAC1B,4BAA4B,EAAE,gCAAgC;IAC9D,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC5C,eAAe;IACf,uBAAuB,EAAE,GAAG,EAAE,CAAC,IAAI;IACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/B,wBAAwB,EAAE,GAAG,EAAE,CAAC,SAAS;CACzC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { getLegacyDateCalendarCustomizing } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\n\nconst emptyFn = () => { };\n\n/**\n * OpenUI5 Formatting Shim\n */\nconst Formatting = {\n\tgetABAPDateFormat: emptyFn,\n\tgetCustomIslamicCalendarData: getLegacyDateCalendarCustomizing,\n\tgetLanguageTag: () => getLocale().toString(),\n\tgetCalendarType,\n\tgetTrailingCurrencyCode: () => true,\n\tgetCustomLocaleData: () => ({}),\n\tgetCalendarWeekNumbering: () => \"Default\",\n};\n\nexport default Formatting;\n"]}
@@ -14,7 +14,7 @@
14
14
  * [-------------------- language ----------------------][--- script ---][------- region --------][------------- variants --------------][----------- extensions ------------][------ private use -------]
15
15
  */ /*!
16
16
  * OpenUI5
17
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
17
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
18
18
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
19
19
  */
20
20
 
@@ -31,7 +31,7 @@ var rLanguageTag = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-(
31
31
  * @param {string} sLanguageTag the language tag identifier, in format en-US or en_US.
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.120.17
34
+ * @version 1.146.0
35
35
  * @public
36
36
  * @alias module:sap/base/i18n/LanguageTag
37
37
  */
@@ -73,7 +73,7 @@ class LanguageTag {
73
73
  /**
74
74
  * Get the variants as a single string or <code>null</code>.
75
75
  *
76
- * Multiple variants are separated by a dash '-'.
76
+ * Multiple variants are separated by a hyphen '-'.
77
77
  *
78
78
  * @type {string|null}
79
79
  * @public
@@ -83,7 +83,7 @@ class LanguageTag {
83
83
  /**
84
84
  * Get the variants as an array of individual variants.
85
85
  *
86
- * The separating dashes are not part of the result.
86
+ * The separating hyphens are not part of the result.
87
87
  * If there is no variant section in the language tag, an empty array is returned.
88
88
  *
89
89
  * @type {string[]}
@@ -95,8 +95,8 @@ class LanguageTag {
95
95
  * Get the extension as a single string or <code>null</code>.
96
96
  *
97
97
  * The extension always consists of a singleton character (not 'x'),
98
- * a dash '-' and one or more extension token, each separated
99
- * again with a dash.
98
+ * a hyphen '-' and one or more extension token, each separated
99
+ * again with a hyphen.
100
100
  *
101
101
  * @type {string|null}
102
102
  * @public
@@ -106,7 +106,7 @@ class LanguageTag {
106
106
  /**
107
107
  * Get the extensions as an array of tokens.
108
108
  *
109
- * The leading singleton and the separating dashes are not part of the result.
109
+ * The leading singleton and the separating hyphens are not part of the result.
110
110
  * If there is no extensions section in the language tag, an empty array is returned.
111
111
  *
112
112
  * @type {string[]}
@@ -124,25 +124,30 @@ class LanguageTag {
124
124
  /**
125
125
  * Get the private use section as an array of tokens.
126
126
  *
127
- * The leading singleton and the separating dashes are not part of the result.
127
+ * The leading singleton and the separating hyphens are not part of the result.
128
128
  * If there is no private use section in the language tag, an empty array is returned.
129
129
  *
130
130
  * @type {string[]}
131
131
  */
132
132
  privateUseSubtags;
133
+
134
+ /**
135
+ * @private
136
+ */
137
+ #tagAsString;
133
138
  constructor(sLanguageTag) {
134
139
  var aResult = rLanguageTag.exec(sLanguageTag.replace(/_/g, "-"));
135
140
  // If the given language tag string cannot be parsed by the regular expression above,
136
141
  // we should at least tell the developer why the Core fails to load.
137
142
  if (aResult === null) {
138
- throw new TypeError("The given language tag'" + sLanguageTag + "' does not adhere to BCP-47.");
143
+ throw new TypeError("The given language tag '" + sLanguageTag + "' does not adhere to BCP-47.");
139
144
  }
140
145
  this.language = aResult[1] || null;
141
146
  this.script = aResult[2] || null;
142
147
  this.region = aResult[3] || null;
143
- this.variant = aResult[4] && aResult[4].slice(1) || null; // remove leading dash from capturing group
148
+ this.variant = aResult[4] && aResult[4].slice(1) || null; // remove leading hyphen from capturing group
144
149
  this.variantSubtags = this.variant ? this.variant.split('-') : [];
145
- this.extension = aResult[5] && aResult[5].slice(1) || null; // remove leading dash from capturing group
150
+ this.extension = aResult[5] && aResult[5].slice(1) || null; // remove leading hyphen from capturing group
146
151
  this.extensionSubtags = this.variant ? this.variant.split('-') : [];
147
152
  this.privateUse = aResult[6] || null;
148
153
  this.privateUseSubtags = this.privateUse ? this.privateUse.slice(2).split('-') : [];
@@ -161,10 +166,11 @@ class LanguageTag {
161
166
  if (this.region) {
162
167
  this.region = this.region.toUpperCase();
163
168
  }
169
+ this.#tagAsString = this.#join(this.language, this.script, this.region, this.variant, this.extension, this.privateUse);
164
170
  Object.freeze(this);
165
171
  }
166
172
  toString() {
167
- return this.#join(this.language, this.script, this.region, this.variant, this.extension, this.privateUse);
173
+ return this.#tagAsString;
168
174
  }
169
175
  #join() {
170
176
  return Array.prototype.filter.call(arguments, Boolean).join("-");
@@ -1,4 +1,7 @@
1
1
  declare const Localization: {
2
2
  getModernLanguage: (sLanguage: string) => string;
3
+ getLanguageTag: () => string;
4
+ getTimezone: () => string;
5
+ setTimezone: () => void;
3
6
  };
4
7
  export default Localization;
@@ -1,3 +1,5 @@
1
+ import { getTimezone as getConfigTimezone } from "@ui5/webcomponents-base/dist/config/Timezone.js";
2
+ import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
1
3
  const M_ISO639_OLD_TO_NEW = {
2
4
  "iw": "he",
3
5
  "ji": "yi",
@@ -7,6 +9,9 @@ const getModernLanguage = (sLanguage) => {
7
9
  };
8
10
  const Localization = {
9
11
  getModernLanguage,
12
+ getLanguageTag: () => getLocale().toString(),
13
+ getTimezone: () => getConfigTimezone() || Intl.DateTimeFormat().resolvedOptions().timeZone,
14
+ setTimezone: () => { },
10
15
  };
11
16
  export default Localization;
12
17
  //# sourceMappingURL=Localization.js.map
@@ -1 +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"]}
1
+ {"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../../../src/sap/base/i18n/Localization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,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;IACjB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;IAC1F,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;CACrB,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import { getTimezone as getConfigTimezone } from \"@ui5/webcomponents-base/dist/config/Timezone.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\n\nconst 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\tgetLanguageTag: () => getLocale().toString(),\n\tgetTimezone: () => getConfigTimezone() || Intl.DateTimeFormat().resolvedOptions().timeZone,\n\tsetTimezone: () => {},\n};\n\nexport default Localization;\n"]}
@@ -0,0 +1,20 @@
1
+ var oEmptyBundle = {
2
+ getText: function () {
3
+ return "";
4
+ },
5
+ hasText: function () {
6
+ return false;
7
+ },
8
+ getProperty: function () {
9
+ return "";
10
+ }
11
+ };
12
+ var ResourceBundle = {
13
+ create: function () {
14
+ return Promise.resolve(oEmptyBundle);
15
+ },
16
+ _getUrl: function () {
17
+ return "";
18
+ }
19
+ };
20
+ export default ResourceBundle;
@@ -1,3 +1,10 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ // Provides type module:sap/base/i18n/date/CalendarType.
7
+ import _EnumHelper from "./_EnumHelper.js";
1
8
  /**
2
9
  * The types of <code>Calendar</code>.
3
10
  *
@@ -5,14 +12,7 @@
5
12
  * @alias module:sap/base/i18n/date/CalendarType
6
13
  * @public
7
14
  * @since 1.120
8
- */ /*!
9
- * OpenUI5
10
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
11
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
12
- */
13
-
14
- // Provides type module:sap/base/i18n/date/CalendarType.
15
-
15
+ */
16
16
  var CalendarType = {
17
17
  /**
18
18
  * The Gregorian calendar
@@ -40,4 +40,5 @@ var CalendarType = {
40
40
  */
41
41
  Buddhist: "Buddhist"
42
42
  };
43
+ _EnumHelper.register("sap.base.i18n.date.CalendarType", CalendarType);
43
44
  export default CalendarType;
@@ -1,3 +1,10 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ // Provides type module:sap/base/i18n/date/CalendarWeekNumbering.
7
+ import _EnumHelper from "./_EnumHelper.js";
1
8
  /**
2
9
  * The <code>CalendarWeekNumbering</code> enum defines how to calculate calendar weeks. Each
3
10
  * value defines:
@@ -10,14 +17,7 @@
10
17
  * @public
11
18
  * @alias module:sap/base/i18n/date/CalendarWeekNumbering
12
19
  * @since 1.120
13
- */ /*!
14
- * OpenUI5
15
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
16
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
17
- */
18
-
19
- // Provides type module:sap/base/i18n/date/CalendarWeekNumbering.
20
-
20
+ */
21
21
  var CalendarWeekNumbering = {
22
22
  /**
23
23
  * The default calendar week numbering:
@@ -61,6 +61,7 @@ var CalendarWeekNumbering = {
61
61
  */
62
62
  WesternTraditional: "WesternTraditional"
63
63
  };
64
+ _EnumHelper.register("sap.base.i18n.date.CalendarWeekNumbering", CalendarWeekNumbering);
64
65
 
65
66
  /**
66
67
  * Returns an object containing the week configuration values for the given calendar week
@@ -2,14 +2,13 @@
2
2
  * Static collection of utility functions to handle time zone related conversions
3
3
  *
4
4
  * @author SAP SE
5
- * @version 1.120.17
5
+ * @version 1.146.0
6
6
  * @namespace
7
7
  * @alias module:sap/base/i18n/date/TimezoneUtils
8
8
  * @private
9
- * @ui5-restricted sap.ui.core.Configuration, sap/base/i18n/format/DateFormat
10
9
  */ /*!
11
10
  * OpenUI5
12
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
11
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
13
12
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
14
13
  */
15
14
 
@@ -87,7 +86,8 @@ var oIntlDateTimeFormatCache = {
87
86
  * @param {string} sTimezone The IANA timezone ID which is checked, e.g <code>"Europe/Berlin"</code>
88
87
  * @returns {boolean} Whether the time zone is a valid IANA timezone ID
89
88
  * @private
90
- * @ui5-restricted sap.ui.core.Configuration, sap.ui.core.format.DateFormat
89
+ * @ui5-restricted sap.ui.comp.util.DateTimeUtil, sap.ui.core.format.DateFormat, sap.viz,
90
+ * sap/base/i18n/Localization, sap/ui/core/format/TimezoneUtil
91
91
  */
92
92
  TimezoneUtils.isValidTimezone = function (sTimezone) {
93
93
  if (!sTimezone) {
@@ -130,7 +130,8 @@ TimezoneUtils.isValidTimezone = function (sTimezone) {
130
130
  * @param {string} sTargetTimezone The target IANA timezone ID, e.g <code>"Europe/Berlin"</code>
131
131
  * @returns {Date} The new date in the target time zone.
132
132
  * @private
133
- * @ui5-restricted sap.ui.core.format.DateFormat, sap.ui.unified, sap.m
133
+ * @ui5-restricted sap.ui.core.format.DateFormat, sap.ui.comp.util.DateTimeUtil, sap.viz,
134
+ * sap/ui/core/format/TimezoneUtil
134
135
  */
135
136
  TimezoneUtils.convertToTimezone = function (oDate, sTargetTimezone) {
136
137
  var oFormatParts = this._getParts(oDate, sTargetTimezone);
@@ -156,6 +157,7 @@ TimezoneUtils.convertToTimezone = function (oDate, sTargetTimezone) {
156
157
  * year: string
157
158
  * }} An object containing the date and time fields considering the target time zone.
158
159
  * @private
160
+ * @ui5-restricted sap.viz, sap/ui/core/date/UI5Date, sap/ui/core/format/TimezoneUtil
159
161
  */
160
162
  TimezoneUtils._getParts = function (oDate, sTargetTimezone) {
161
163
  var sKey,
@@ -181,6 +183,7 @@ TimezoneUtils._getParts = function (oDate, sTargetTimezone) {
181
183
  * @param {object} oParts Separated date and time fields as object, see {@link #_getParts}.
182
184
  * @returns {Date} Returns the date object created from the provided parts.
183
185
  * @private
186
+ * @ui5-restricted sap.viz, sap/ui/core/date/UI5Date, sap/ui/core/format/TimezoneUtil
184
187
  */
185
188
  TimezoneUtils._getDateFromParts = function (oParts) {
186
189
  // no need to use UI5Date.getInstance as only the UTC timestamp is used
@@ -239,7 +242,8 @@ TimezoneUtils._getDateFromParts = function (oParts) {
239
242
  * @param {string} sTimezoneSource The source IANA timezone ID, e.g <code>"Europe/Berlin"</code>
240
243
  * @returns {number} The difference to UTC between the date in the time zone.
241
244
  * @private
242
- * @ui5-restricted sap.ui.core.format.DateFormat
245
+ * @ui5-restricted sap.ui.core.format.DateFormat, sap.viz, sap/ui/core/date/UI5Date,
246
+ * sap/ui/core/format/TimezoneUtil
243
247
  */
244
248
  TimezoneUtils.calculateOffset = function (oDate, sTimezoneSource) {
245
249
  const oDateInTimezone = TimezoneUtils.convertToTimezone(oDate, sTimezoneSource);
@@ -265,28 +269,163 @@ TimezoneUtils.calculateOffset = function (oDate, sTimezoneSource) {
265
269
  };
266
270
 
267
271
  /**
268
- * Map outdated IANA timezone IDs used in CLDR to correct and up-to-date IANA IDs as maintained in ABAP systems.
272
+ * Map outdated IANA timezone IDs used in CLDR to correct and IANA IDs as maintained in ABAP systems.
269
273
  *
270
274
  * @private
271
275
  */
272
- TimezoneUtils.mCLDR2ABAPTimezones = {
276
+ TimezoneUtils.mTimezoneAliases2ABAPTimezones = {
277
+ "Africa/Asmera": "Africa/Asmara",
278
+ "Africa/Timbuktu": "Africa/Bamako",
279
+ "America/Argentina/ComodRivadavia": "America/Argentina/Catamarca",
280
+ "America/Atka": "America/Adak",
273
281
  "America/Buenos_Aires": "America/Argentina/Buenos_Aires",
274
282
  "America/Catamarca": "America/Argentina/Catamarca",
283
+ "America/Coral_Harbour": "America/Atikokan",
275
284
  "America/Cordoba": "America/Argentina/Cordoba",
276
- "America/Jujuy": "America/Argentina/Jujuy",
277
- "America/Mendoza": "America/Argentina/Mendoza",
285
+ "America/Ensenada": "America/Tijuana",
286
+ "America/Fort_Wayne": "America/Indiana/Indianapolis",
287
+ "America/Godthab": "America/Nuuk",
278
288
  "America/Indianapolis": "America/Indiana/Indianapolis",
289
+ "America/Jujuy": "America/Argentina/Jujuy",
290
+ "America/Knox_IN": "America/Indiana/Knox",
279
291
  "America/Louisville": "America/Kentucky/Louisville",
280
- "Africa/Asmera": "Africa/Asmara",
281
- "Asia/Katmandu": "Asia/Kathmandu",
292
+ "America/Mendoza": "America/Argentina/Mendoza",
293
+ "America/Montreal": "America/Toronto",
294
+ "America/Nipigon": "America/Toronto",
295
+ "America/Pangnirtung": "America/Iqaluit",
296
+ "America/Porto_Acre": "America/Rio_Branco",
297
+ "America/Rainy_River": "America/Winnipeg",
298
+ "America/Rosario": "America/Argentina/Cordoba",
299
+ "America/Santa_Isabel": "America/Tijuana",
300
+ "America/Shiprock": "America/Denver",
301
+ "America/Thunder_Bay": "America/Toronto",
302
+ "America/Virgin": "America/St_Thomas",
303
+ "America/Yellowknife": "America/Edmonton",
304
+ "Antarctica/South_Pole": "Antarctica/McMurdo",
305
+ "Asia/Ashkhabad": "Asia/Ashgabat",
282
306
  "Asia/Calcutta": "Asia/Kolkata",
307
+ "Asia/Choibalsan": "Asia/Ulaanbaatar",
308
+ "Asia/Chongqing": "Asia/Shanghai",
309
+ "Asia/Chungking": "Asia/Shanghai",
310
+ "Asia/Dacca": "Asia/Dhaka",
311
+ "Asia/Harbin": "Asia/Shanghai",
312
+ "Asia/Istanbul": "Europe/Istanbul",
313
+ "Asia/Kashgar": "Asia/Urumqi",
314
+ "Asia/Katmandu": "Asia/Kathmandu",
315
+ "Asia/Macao": "Asia/Macau",
316
+ "Asia/Rangoon": "Asia/Yangon",
317
+ "Asia/Saigon": "Asia/Ho_Chi_Minh",
318
+ "Asia/Tel_Aviv": "Asia/Jerusalem",
319
+ "Asia/Thimbu": "Asia/Thimphu",
320
+ "Asia/Ujung_Pandang": "Asia/Makassar",
321
+ "Asia/Ulan_Bator": "Asia/Ulaanbaatar",
283
322
  "Atlantic/Faeroe": "Atlantic/Faroe",
323
+ "Atlantic/Jan_Mayen": "Arctic/Longyearbyen",
324
+ "Australia/ACT": "Australia/Sydney",
325
+ "Australia/Canberra": "Australia/Sydney",
326
+ "Australia/Currie": "Australia/Hobart",
327
+ "Australia/LHI": "Australia/Lord_Howe",
328
+ "Australia/NSW": "Australia/Sydney",
329
+ "Australia/North": "Australia/Darwin",
330
+ "Australia/Queensland": "Australia/Brisbane",
331
+ "Australia/South": "Australia/Adelaide",
332
+ "Australia/Tasmania": "Australia/Hobart",
333
+ "Australia/Victoria": "Australia/Melbourne",
334
+ "Australia/West": "Australia/Perth",
335
+ "Australia/Yancowinna": "Australia/Broken_Hill",
336
+ "Brazil/Acre": "America/Rio_Branco",
337
+ "Brazil/DeNoronha": "America/Noronha",
338
+ "Brazil/East": "America/Sao_Paulo",
339
+ "Brazil/West": "America/Manaus",
340
+ "CET": "Europe/Brussels",
341
+ "CST6CDT": "America/Chicago",
342
+ "Canada/Atlantic": "America/Halifax",
343
+ "Canada/Central": "America/Winnipeg",
344
+ "Canada/East-Saskatchewan": "America/Regina",
345
+ "Canada/Eastern": "America/Toronto",
346
+ "Canada/Mountain": "America/Edmonton",
347
+ "Canada/Newfoundland": "America/St_Johns",
348
+ "Canada/Pacific": "America/Vancouver",
349
+ "Canada/Saskatchewan": "America/Regina",
350
+ "Canada/Yukon": "America/Whitehorse",
351
+ "Chile/Continental": "America/Santiago",
352
+ "Chile/EasterIsland": "Pacific/Easter",
353
+ "Cuba": "America/Havana",
354
+ "EET": "Europe/Athens",
355
+ "EST": "America/Panama",
356
+ "EST5EDT": "America/New_York",
357
+ "Egypt": "Africa/Cairo",
358
+ "Eire": "Europe/Dublin",
359
+ "Etc/GMT+0": "Etc/GMT",
360
+ "Etc/GMT-0": "Etc/GMT",
361
+ "Etc/GMT0": "Etc/GMT",
362
+ "Etc/Greenwich": "Etc/GMT",
363
+ "Etc/UCT": "Etc/UTC",
364
+ "Etc/Zulu": "Etc/UTC",
365
+ "Europe/Belfast": "Europe/London",
366
+ "Europe/Kyiv": "Europe/Kiev",
367
+ "Europe/Nicosia": "Asia/Nicosia",
368
+ "Europe/Tiraspol": "Europe/Chisinau",
369
+ "Europe/Uzhgorod": "Europe/Kiev",
370
+ "Europe/Zaporozhye": "Europe/Kiev",
371
+ "GB": "Europe/London",
372
+ "GB-Eire": "Europe/London",
373
+ "GMT": "Etc/GMT",
374
+ "GMT+0": "Etc/GMT",
375
+ "GMT-0": "Etc/GMT",
376
+ "GMT0": "Etc/GMT",
377
+ "Greenwich": "Etc/GMT",
378
+ "HST": "Pacific/Honolulu",
379
+ "Hongkong": "Asia/Hong_Kong",
380
+ "Iceland": "Atlantic/Reykjavik",
381
+ "Iran": "Asia/Tehran",
382
+ "Israel": "Asia/Jerusalem",
383
+ "Jamaica": "America/Jamaica",
384
+ "Japan": "Asia/Tokyo",
385
+ "Kwajalein": "Pacific/Kwajalein",
386
+ "Libya": "Africa/Tripoli",
387
+ "MET": "Europe/Brussels",
388
+ "MST": "America/Phoenix",
389
+ "MST7MDT": "America/Denver",
390
+ "Mexico/BajaNorte": "America/Tijuana",
391
+ "Mexico/BajaSur": "America/Mazatlan",
392
+ "Mexico/General": "America/Mexico_City",
393
+ "NZ": "Pacific/Auckland",
394
+ "NZ-CHAT": "Pacific/Chatham",
395
+ "Navajo": "America/Denver",
396
+ "PRC": "Asia/Shanghai",
397
+ "PST8PDT": "America/Los_Angeles",
398
+ "Pacific/Enderbury": "Pacific/Kanton",
399
+ "Pacific/Johnston": "Pacific/Honolulu",
284
400
  "Pacific/Ponape": "Pacific/Pohnpei",
285
- "Asia/Rangoon": "Asia/Yangon",
401
+ "Pacific/Samoa": "Pacific/Pago_Pago",
286
402
  "Pacific/Truk": "Pacific/Chuuk",
287
- "America/Godthab": "America/Nuuk",
288
- "Asia/Saigon": "Asia/Ho_Chi_Minh",
289
- "America/Coral_Harbour": "America/Atikokan"
403
+ "Pacific/Yap": "Pacific/Chuuk",
404
+ "Poland": "Europe/Warsaw",
405
+ "Portugal": "Europe/Lisbon",
406
+ "ROC": "Asia/Taipei",
407
+ "ROK": "Asia/Seoul",
408
+ "Singapore": "Asia/Singapore",
409
+ "Turkey": "Europe/Istanbul",
410
+ "UCT": "Etc/UTC",
411
+ "US/Alaska": "America/Anchorage",
412
+ "US/Aleutian": "America/Adak",
413
+ "US/Arizona": "America/Phoenix",
414
+ "US/Central": "America/Chicago",
415
+ "US/East-Indiana": "America/Indiana/Indianapolis",
416
+ "US/Eastern": "America/New_York",
417
+ "US/Hawaii": "Pacific/Honolulu",
418
+ "US/Indiana-Starke": "America/Indiana/Knox",
419
+ "US/Michigan": "America/Detroit",
420
+ "US/Mountain": "America/Denver",
421
+ "US/Pacific": "America/Los_Angeles",
422
+ "US/Pacific-New": "America/Los_Angeles",
423
+ "US/Samoa": "Pacific/Pago_Pago",
424
+ "UTC": "Etc/UTC",
425
+ "Universal": "Etc/UTC",
426
+ "W-SU": "Europe/Moscow",
427
+ "WET": "Europe/Lisbon",
428
+ "Zulu": "Etc/UTC"
290
429
  };
291
430
 
292
431
  /**
@@ -297,17 +436,30 @@ TimezoneUtils.mCLDR2ABAPTimezones = {
297
436
  * e.g. <code>"Europe/Berlin"</code> or <code>"Asia/Kolkata"</code>
298
437
  *
299
438
  * @private
300
- * @ui5-restricted sap.ui.core.Configuration,sap.m.DateTimeField
439
+ * @ui5-restricted sap.gantt, sap.gantt, sap.viz, lib/cldr-openui5/lib/Generator,
440
+ * sap/base/i18n/Localization, sap/ui/core/date/UI5Date, sap/ui/core/format/TimezoneUtil
301
441
  */
302
442
  TimezoneUtils.getLocalTimezone = function () {
303
443
  if (sLocalTimezone === "") {
304
444
  // timezone may be undefined, only value "" means empty cache
305
445
  sLocalTimezone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
306
- sLocalTimezone = TimezoneUtils.mCLDR2ABAPTimezones[sLocalTimezone] || sLocalTimezone;
446
+ sLocalTimezone = TimezoneUtils.getABAPTimezone(sLocalTimezone);
307
447
  }
308
448
  return sLocalTimezone;
309
449
  };
310
450
 
451
+ /**
452
+ * Returns the ABAP time zone ID for the given IANA time zone ID.
453
+ *
454
+ * @param {string} sTimezone The IANA time zone ID
455
+ *
456
+ * @returns {string} The ABAP time zone ID
457
+ * @private
458
+ */
459
+ TimezoneUtils.getABAPTimezone = function (sTimezone) {
460
+ return TimezoneUtils.mTimezoneAliases2ABAPTimezones[sTimezone] || sTimezone;
461
+ };
462
+
311
463
  /**
312
464
  * Clears the cache for the browser's local IANA timezone ID.
313
465
  *