@ui5/webcomponents-localization 2.20.1 → 2.20.3

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 (165) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DateFormat.d.ts +23 -0
  4. package/dist/DateFormat.js +9 -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/dates/convertMonthNumbersToMonthNames.d.ts +2 -2
  10. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
  11. package/dist/generated/assets/cldr/Unicode-Data-Files-LICENSE.txt +36 -24
  12. package/dist/generated/assets/cldr/ar.json +624 -354
  13. package/dist/generated/assets/cldr/ar_EG.json +624 -354
  14. package/dist/generated/assets/cldr/ar_SA.json +625 -355
  15. package/dist/generated/assets/cldr/bg.json +339 -215
  16. package/dist/generated/assets/cldr/ca.json +633 -509
  17. package/dist/generated/assets/cldr/cnr.json +960 -653
  18. package/dist/generated/assets/cldr/cs.json +343 -531
  19. package/dist/generated/assets/cldr/cy.json +684 -1050
  20. package/dist/generated/assets/cldr/da.json +354 -231
  21. package/dist/generated/assets/cldr/de.json +458 -330
  22. package/dist/generated/assets/cldr/de_AT.json +459 -331
  23. package/dist/generated/assets/cldr/de_CH.json +522 -386
  24. package/dist/generated/assets/cldr/el.json +317 -152
  25. package/dist/generated/assets/cldr/el_CY.json +317 -152
  26. package/dist/generated/assets/cldr/en.json +606 -253
  27. package/dist/generated/assets/cldr/en_AU.json +830 -376
  28. package/dist/generated/assets/cldr/en_GB.json +696 -251
  29. package/dist/generated/assets/cldr/en_HK.json +544 -203
  30. package/dist/generated/assets/cldr/en_IE.json +533 -192
  31. package/dist/generated/assets/cldr/en_IN.json +820 -296
  32. package/dist/generated/assets/cldr/en_NZ.json +534 -193
  33. package/dist/generated/assets/cldr/en_PG.json +509 -168
  34. package/dist/generated/assets/cldr/en_SG.json +526 -185
  35. package/dist/generated/assets/cldr/en_ZA.json +529 -186
  36. package/dist/generated/assets/cldr/es.json +355 -230
  37. package/dist/generated/assets/cldr/es_AR.json +444 -288
  38. package/dist/generated/assets/cldr/es_BO.json +419 -264
  39. package/dist/generated/assets/cldr/es_CL.json +455 -300
  40. package/dist/generated/assets/cldr/es_CO.json +412 -257
  41. package/dist/generated/assets/cldr/es_MX.json +515 -352
  42. package/dist/generated/assets/cldr/es_PE.json +397 -234
  43. package/dist/generated/assets/cldr/es_UY.json +424 -269
  44. package/dist/generated/assets/cldr/es_VE.json +398 -243
  45. package/dist/generated/assets/cldr/et.json +390 -233
  46. package/dist/generated/assets/cldr/fa.json +510 -271
  47. package/dist/generated/assets/cldr/fi.json +497 -251
  48. package/dist/generated/assets/cldr/fr.json +339 -106
  49. package/dist/generated/assets/cldr/fr_BE.json +341 -108
  50. package/dist/generated/assets/cldr/fr_CA.json +652 -397
  51. package/dist/generated/assets/cldr/fr_CH.json +342 -109
  52. package/dist/generated/assets/cldr/fr_LU.json +339 -106
  53. package/dist/generated/assets/cldr/he.json +726 -904
  54. package/dist/generated/assets/cldr/hi.json +529 -288
  55. package/dist/generated/assets/cldr/hr.json +392 -383
  56. package/dist/generated/assets/cldr/hu.json +459 -335
  57. package/dist/generated/assets/cldr/id.json +379 -128
  58. package/dist/generated/assets/cldr/it.json +420 -301
  59. package/dist/generated/assets/cldr/it_CH.json +426 -307
  60. package/dist/generated/assets/cldr/ja.json +332 -74
  61. package/dist/generated/assets/cldr/kk.json +540 -240
  62. package/dist/generated/assets/cldr/ko.json +371 -115
  63. package/dist/generated/assets/cldr/lt.json +428 -545
  64. package/dist/generated/assets/cldr/lv.json +415 -413
  65. package/dist/generated/assets/cldr/mk.json +691 -559
  66. package/dist/generated/assets/cldr/ms.json +395 -136
  67. package/dist/generated/assets/cldr/nb.json +355 -234
  68. package/dist/generated/assets/cldr/nl.json +357 -251
  69. package/dist/generated/assets/cldr/nl_BE.json +428 -322
  70. package/dist/generated/assets/cldr/pl.json +333 -459
  71. package/dist/generated/assets/cldr/pt.json +419 -298
  72. package/dist/generated/assets/cldr/pt_PT.json +362 -231
  73. package/dist/generated/assets/cldr/ro.json +369 -397
  74. package/dist/generated/assets/cldr/ru.json +599 -368
  75. package/dist/generated/assets/cldr/ru_UA.json +598 -367
  76. package/dist/generated/assets/cldr/sk.json +343 -517
  77. package/dist/generated/assets/cldr/sl.json +477 -640
  78. package/dist/generated/assets/cldr/sr.json +478 -531
  79. package/dist/generated/assets/cldr/sr_Latn.json +631 -684
  80. package/dist/generated/assets/cldr/sv.json +395 -258
  81. package/dist/generated/assets/cldr/th.json +452 -199
  82. package/dist/generated/assets/cldr/tr.json +391 -238
  83. package/dist/generated/assets/cldr/uk.json +696 -342
  84. package/dist/generated/assets/cldr/vi.json +836 -487
  85. package/dist/generated/assets/cldr/zh_CN.json +358 -104
  86. package/dist/generated/assets/cldr/zh_HK.json +366 -113
  87. package/dist/generated/assets/cldr/zh_SG.json +371 -118
  88. package/dist/generated/assets/cldr/zh_TW.json +480 -238
  89. package/dist/getCachedLocaleDataInstance.js +2 -0
  90. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  91. package/dist/locale/getLocaleData.js +2 -0
  92. package/dist/locale/getLocaleData.js.map +1 -1
  93. package/dist/sap/base/Event.js +2 -2
  94. package/dist/sap/base/Eventing.js +4 -3
  95. package/dist/sap/base/assert.js +1 -1
  96. package/dist/sap/base/config/MemoryConfigurationProvider.js +1 -1
  97. package/dist/sap/base/future.js +12 -0
  98. package/dist/sap/base/i18n/Formatting.d.ts +5 -0
  99. package/dist/sap/base/i18n/Formatting.js +7 -0
  100. package/dist/sap/base/i18n/Formatting.js.map +1 -1
  101. package/dist/sap/base/i18n/LanguageTag.js +18 -12
  102. package/dist/sap/base/i18n/Localization.d.ts +3 -0
  103. package/dist/sap/base/i18n/Localization.js +5 -0
  104. package/dist/sap/base/i18n/Localization.js.map +1 -1
  105. package/dist/sap/base/i18n/ResourceBundle.js +20 -0
  106. package/dist/sap/base/i18n/date/CalendarType.js +9 -8
  107. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +9 -8
  108. package/dist/sap/base/i18n/date/TimezoneUtils.js +170 -18
  109. package/dist/sap/base/i18n/date/_EnumHelper.js +37 -0
  110. package/dist/sap/base/strings/camelize.js +1 -1
  111. package/dist/sap/base/strings/formatMessage.js +6 -1
  112. package/dist/sap/base/util/Properties.js +12 -0
  113. package/dist/sap/base/util/Version.js +19 -13
  114. package/dist/sap/base/util/_merge.js +1 -1
  115. package/dist/sap/base/util/array/uniqueSort.js +1 -1
  116. package/dist/sap/base/util/deepClone.js +2 -2
  117. package/dist/sap/base/util/deepEqual.js +1 -1
  118. package/dist/sap/base/util/deepExtend.js +60 -0
  119. package/dist/sap/base/util/extend.js +1 -1
  120. package/dist/sap/base/util/fetch.js +8 -0
  121. package/dist/sap/base/util/isEmptyObject.js +1 -1
  122. package/dist/sap/base/util/isPlainObject.js +1 -1
  123. package/dist/sap/base/util/merge.js +57 -0
  124. package/dist/sap/base/util/mixedFetch.js +3 -0
  125. package/dist/sap/base/util/now.js +7 -13
  126. package/dist/sap/base/util/uid.js +1 -1
  127. package/dist/sap/ui/Device.js +27 -0
  128. package/dist/sap/ui/Global.js +1 -0
  129. package/dist/sap/ui/VersionInfo.js +14 -0
  130. package/dist/sap/ui/base/DataType.js +63 -12
  131. package/dist/sap/ui/base/DesignTime.js +11 -0
  132. package/dist/sap/ui/base/EventProvider.js +21 -0
  133. package/dist/sap/ui/base/Metadata.js +45 -10
  134. package/dist/sap/ui/base/Object.js +2 -2
  135. package/dist/sap/ui/base/OwnStatics.js +6 -0
  136. package/dist/sap/ui/base/SyncPromise.js +98 -0
  137. package/dist/sap/ui/core/AnimationMode.js +42 -0
  138. package/dist/sap/ui/core/CalendarType.js +2 -2
  139. package/dist/sap/ui/core/ControlBehavior.js +11 -0
  140. package/dist/sap/ui/core/Lib.js +41 -0
  141. package/dist/sap/ui/core/Locale.js +9 -9
  142. package/dist/sap/ui/core/LocaleData.js +498 -333
  143. package/dist/sap/ui/core/Theming.js +25 -525
  144. package/dist/sap/ui/core/_UrlResolver.js +11 -0
  145. package/dist/sap/ui/core/date/Buddhist.js +2 -2
  146. package/dist/sap/ui/core/date/CalendarUtils.js +14 -12
  147. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -2
  148. package/dist/sap/ui/core/date/Gregorian.js +2 -2
  149. package/dist/sap/ui/core/date/Islamic.js +2 -2
  150. package/dist/sap/ui/core/date/Japanese.js +2 -2
  151. package/dist/sap/ui/core/date/Persian.js +2 -2
  152. package/dist/sap/ui/core/date/UI5Date.js +80 -32
  153. package/dist/sap/ui/core/date/UniversalDate.js +83 -101
  154. package/dist/sap/ui/core/format/DateFormat.js +70 -73
  155. package/dist/sap/ui/core/format/FormatUtils.js +30 -0
  156. package/dist/sap/ui/core/format/NumberFormat.js +917 -588
  157. package/dist/sap/ui/core/format/TimezoneUtil.js +80 -11
  158. package/dist/sap/ui/core/getCompatibilityVersion.js +7 -0
  159. package/dist/sap/ui/core/theming/ThemeHelper.js +14 -0
  160. package/dist/sap/ui/security/Security.js +12 -0
  161. package/dist/sap/ui/util/XMLHelper.js +11 -0
  162. package/dist/sap/ui/util/_URL.js +1 -0
  163. package/dist/ui5loader-autoconfig.js +1 -0
  164. package/package.json +6 -6
  165. package/used-modules.txt +5 -0
@@ -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
  *