@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
@@ -0,0 +1,37 @@
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
+
7
+ let _fnRegisterEnum;
8
+ const mEarlyRegistrations = new Map();
9
+ export default {
10
+ /**
11
+ * The final registerEnum function is injected from the DataType class.
12
+ * @param {function} registerEnum the final registerEnum function of the DataType class
13
+ */
14
+ inject: function (registerEnum) {
15
+ if (!_fnRegisterEnum) {
16
+ _fnRegisterEnum = registerEnum;
17
+ mEarlyRegistrations.forEach((mEnumContent, sName) => {
18
+ _fnRegisterEnum(sName, mEnumContent);
19
+ });
20
+ }
21
+ },
22
+ /**
23
+ * Registers an enum.
24
+ * While the final registerEnum() function is not injected yet,
25
+ * the enums are collected and will be correctly registered once the DataType class injects
26
+ * its registerEnum() function.
27
+ * @param {*} sName the name of the enum in dot-syntax
28
+ * @param {*} mEnumContent the enum content
29
+ */
30
+ register: function (sName, mEnumContent) {
31
+ if (_fnRegisterEnum) {
32
+ _fnRegisterEnum(sName, mEnumContent);
33
+ } else {
34
+ mEarlyRegistrations.set(sName, mEnumContent);
35
+ }
36
+ }
37
+ };
@@ -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
 
@@ -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 assert from "../assert.js";
@@ -66,6 +66,11 @@ var rMessageFormat = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)
66
66
  * @public
67
67
  */
68
68
  var fnFormatMessage = function (sPattern, aValues) {
69
+ if (sPattern == null) {
70
+ // Binding formatter case: arguments might be nullish while data is still being populated
71
+ // Return an empty string in those cases
72
+ return "";
73
+ }
69
74
  assert(typeof sPattern === "string" || sPattern instanceof String, "pattern must be string");
70
75
  if (arguments.length > 2 || aValues != null && !Array.isArray(aValues)) {
71
76
  aValues = Array.prototype.slice.call(arguments, 1);
@@ -0,0 +1,12 @@
1
+ export default {
2
+ create: function () {
3
+ return Promise.resolve({
4
+ getProperty: function () {
5
+ return null;
6
+ },
7
+ getKeys: function () {
8
+ return [];
9
+ }
10
+ });
11
+ }
12
+ };
@@ -3,7 +3,7 @@
3
3
  // -------------------------- VERSION -------------------------------------
4
4
  /*!
5
5
  * OpenUI5
6
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
6
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
7
7
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
8
8
  */
9
9
 
@@ -34,9 +34,9 @@ var rVersion = /^[0-9]+(?:\.([0-9]+)(?:\.([0-9]+))?)?(.*)$/;
34
34
  *
35
35
  * @param {int|string|any[]|module:sap/base/util/Version} vMajor the major part of the version (int) or any of the single
36
36
  * parameter variants explained above.
37
- * @param {int} iMinor the minor part of the version number
38
- * @param {int} iPatch the patch part of the version number
39
- * @param {string} sSuffix the suffix part of the version number
37
+ * @param {int} [iMinor] the minor part of the version number
38
+ * @param {int} [iPatch] the patch part of the version number
39
+ * @param {string} [sSuffix] the suffix part of the version number
40
40
  * @class Represents a version consisting of major, minor, patch version, and suffix, for example '1.2.7-SNAPSHOT'.
41
41
  * @since 1.58
42
42
  * @alias module:sap/base/util/Version
@@ -72,7 +72,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
72
72
  /**
73
73
  * Returns a string representation of this version.
74
74
  *
75
- * @return {string} a string representation of this version.
75
+ * @returns {string} a string representation of this version.
76
76
  * @public
77
77
  */
78
78
  this.toString = function () {
@@ -82,7 +82,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
82
82
  /**
83
83
  * Returns the major version part of this version.
84
84
  *
85
- * @return {int} the major version part of this version
85
+ * @returns {int} the major version part of this version
86
86
  * @public
87
87
  */
88
88
  this.getMajor = function () {
@@ -92,7 +92,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
92
92
  /**
93
93
  * Returns the minor version part of this version.
94
94
  *
95
- * @return {int} the minor version part of this version
95
+ * @returns {int} the minor version part of this version
96
96
  * @public
97
97
  */
98
98
  this.getMinor = function () {
@@ -102,7 +102,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
102
102
  /**
103
103
  * Returns the patch (or micro) version part of this version.
104
104
  *
105
- * @return {int} the patch version part of this version
105
+ * @returns {int} the patch version part of this version
106
106
  * @public
107
107
  */
108
108
  this.getPatch = function () {
@@ -112,7 +112,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
112
112
  /**
113
113
  * Returns the version suffix of this version.
114
114
  *
115
- * @return {string} the version suffix of this version
115
+ * @returns {string} the version suffix of this version
116
116
  * @public
117
117
  */
118
118
  this.getSuffix = function () {
@@ -123,14 +123,20 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
123
123
  * Compares this version with a given one.
124
124
  *
125
125
  * The version with which this version should be compared can be given as a <code>sap/base/util/Version</code> instance,
126
- * as a string (e.g. <code>v.compareto("1.4.5")</code>). Or major, minor, patch and suffix values can be given as
126
+ * as a string (e.g. <code>v.compareTo("1.4.5")</code>). Or major, minor, patch and suffix values can be given as
127
127
  * separate parameters (e.g. <code>v.compareTo(1, 4, 5)</code>) or in an array (e.g. <code>v.compareTo([1, 4, 5])</code>).
128
128
  *
129
- * @return {int} 0, if the given version is equal to this version, a negative value if the given other version is greater
129
+ * @param {int|string|any[]|module:sap/base/util/Version} vOtherMajor
130
+ * The major part (an integer) of the version to compare to or the full version in any of the single
131
+ * parameter variants, as documented for the {@link module:sap/base/util/Version constructor}.
132
+ * @param {int} [iOtherMinor] A minor version to compare to (only valid when <code>vOther</code> is a single integer)
133
+ * @param {int} [iOtherPatch] A patch version to compare to (only valid when <code>vOther</code> is a single integer)
134
+ * @param {string} [sOtherSuffix] A version suffix like "-SNAPSHOT" to compare to (only valid when <code>vOther</code> is an integer)
135
+ * @returns {int} 0, if the given version is equal to this version, a negative value if the given other version is greater
130
136
  * and a positive value otherwise
131
137
  * @public
132
138
  */
133
- this.compareTo = function () {
139
+ this.compareTo = function (vOtherMajor, iOtherMinor, iOtherPatch, sOtherSuffix) {
134
140
  var vOther = Version.apply(window, arguments);
135
141
  /*eslint-disable no-nested-ternary */
136
142
  return vMajor - vOther.getMajor() || iMinor - vOther.getMinor() || iPatch - vOther.getPatch() || (sSuffix < vOther.getSuffix() ? -1 : sSuffix === vOther.getSuffix() ? 0 : 1);
@@ -147,7 +153,7 @@ function Version(vMajor, iMinor, iPatch, sSuffix) {
147
153
  *
148
154
  * @param {string|any[]|module:sap/base/util/Version} vMin the start of the range (inclusive)
149
155
  * @param {string|any[]|module:sap/base/util/Version} vMax the end of the range (exclusive)
150
- * @return {boolean} <code>true</code> if this version is greater or equal to <code>vMin</code> and smaller
156
+ * @returns {boolean} <code>true</code> if this version is greater or equal to <code>vMin</code> and smaller
151
157
  * than <code>vMax</code>, <code>false</code> otherwise.
152
158
  * @public
153
159
  */
@@ -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 isPlainObject from "./isPlainObject.js";
@@ -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 assert from "../../assert.js";
@@ -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 isPlainObject from "./isPlainObject.js";
@@ -65,7 +65,7 @@ function clone(src, depth, maxDepth) {
65
65
  return src;
66
66
  } else if (src instanceof Date) {
67
67
  if (src.clone) {
68
- // sap.ui.core.date.UI5Date
68
+ // module:sap/ui/core/date/UI5Date
69
69
  return src.clone();
70
70
  }
71
71
 
@@ -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
  /*global Node */
@@ -0,0 +1,60 @@
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
+ import _merge from "./_merge.js";
7
+ /**
8
+ * Performs object extension by merging source objects into a target object. Copies are always deep.
9
+ *
10
+ * If during merging a key in the target object exists it is overwritten with the source object's value.
11
+ * Usage is the same as <code>jQuery.extend(true, ...)</code>.
12
+ * Values that are <code>undefined</code> are ignored.
13
+ *
14
+ * For shallow copies, you may use {@link module:sap/base/util/extend sap/base/util/extend} or
15
+ * <code>Object.assign</code>, but note that <code>Object.assign</code> only copies enumerable and own
16
+ * properties and doesn't copy properties on the prototype and non-enumerable properties.
17
+ * Also, values that are <code>undefined</code> are NOT ignored.
18
+ *
19
+ * @example
20
+ * var oResult = deepExtend({}, {
21
+ * prop1: {
22
+ * prop1a: "1a"
23
+ * }
24
+ * }, {
25
+ * prop2: {
26
+ * prop2a: "2a"
27
+ * }
28
+ * }, {
29
+ * prop1: {
30
+ * prop1b: "1b"
31
+ * }
32
+ * }, {
33
+ * prop2: undefined
34
+ * });
35
+ *
36
+ * console.log(oResult);
37
+ * {
38
+ * "prop1": {
39
+ * "prop1a": "1a",
40
+ * "prop1b": "1b"
41
+ * },
42
+ * "prop2": {
43
+ * "prop2a": "2a"
44
+ * }
45
+ * }
46
+ *
47
+ * @function
48
+ * @alias module:sap/base/util/deepExtend
49
+ * @param {object} target The object that will receive new properties
50
+ * @param {...object} [source] One or more objects which get merged into the target object
51
+ * @return {object} the target object which is the result of the merge
52
+ * @public
53
+ * @since 1.71
54
+ */
55
+ var fnDeepExtend = function () {
56
+ var args = [true, true];
57
+ args.push.apply(args, arguments);
58
+ return _merge.apply(null, args);
59
+ };
60
+ export default fnDeepExtend;
@@ -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 _merge from "./_merge.js";
@@ -0,0 +1,8 @@
1
+ var fetch = function () {
2
+ return Promise.reject(new Error("fetch not supported in UI5 Web Components"));
3
+ };
4
+ fetch.ContentTypes = {
5
+ text: "text/plain",
6
+ json: "application/json"
7
+ };
8
+ export default fetch;
@@ -20,7 +20,7 @@
20
20
  * @returns {boolean} whether or not the given object is empty
21
21
  */ /*!
22
22
  * OpenUI5
23
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
23
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
24
24
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
25
25
  */
26
26
 
@@ -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
 
@@ -0,0 +1,57 @@
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
+ import _merge from "./_merge.js";
7
+ /**
8
+ * Performs object extension by merging source objects into a target object. Copies are always deep.
9
+ *
10
+ * If during merging a key in the target object exists it is overwritten with the source object's value.
11
+ * Usage is the same as <code>jQuery.extend(true, ...)</code>, but values that are <code>undefined</code>
12
+ * are NOT ignored.
13
+ *
14
+ * For shallow copies, you may use <code>Object.assign</code>, but note that <code>Object.assign</code> only
15
+ * copies enumerable and own properties and doesn't copy properties on the prototype and non-enumerable properties.
16
+ *
17
+ * @example
18
+ * var oResult = merge({}, {
19
+ * prop1: {
20
+ * prop1a: "1a"
21
+ * }
22
+ * }, {
23
+ * prop2: {
24
+ * prop2a: "2a"
25
+ * }
26
+ * }, {
27
+ * prop1: {
28
+ * prop1b: "1b"
29
+ * }
30
+ * }, {
31
+ * prop2: undefined
32
+ * });
33
+ *
34
+ * console.log(oResult);
35
+ * {
36
+ * "prop1": {
37
+ * "prop1a": "1a",
38
+ * "prop1b": "1b"
39
+ * },
40
+ * "prop2": undefined
41
+ * }
42
+ *
43
+ * @function
44
+ * @since 1.58
45
+ * @public
46
+ * @alias module:sap/base/util/merge
47
+ * @param {object} target The object that will receive new properties
48
+ * @param {...object} [source] One or more objects which get merged into the target object
49
+ * @return {object} the target object which is the result of the merge
50
+ *
51
+ */
52
+ var fnMerge = function () {
53
+ var args = [true, false];
54
+ args.push.apply(args, arguments);
55
+ return _merge.apply(null, args);
56
+ };
57
+ export default fnMerge;
@@ -0,0 +1,3 @@
1
+ export default (function () {
2
+ return Promise.reject(new Error("mixedFetch not supported in UI5 Web Components"));
3
+ });
@@ -1,9 +1,6 @@
1
- // @evo-todo window.performance does not exist on node.js, but there is a module performance-now. Maybe use it
2
-
3
1
  /**
4
- * Returns a high resolution timestamp in microseconds if supported by the environment, otherwise in milliseconds.
5
- * The timestamp is based on 01/01/1970 00:00:00 (UNIX epoch) as float with microsecond precision or
6
- * with millisecond precision, if high resolution timestamps are not available.
2
+ * Returns a high resolution timestamp in microseconds.
3
+ * The timestamp is based on 01/01/1970 00:00:00 (UNIX epoch) as float with microsecond precision.
7
4
  * The fractional part of the timestamp represents fractions of a millisecond.
8
5
  * Converting to a <code>Date</code> is possible by using <code>require(["sap/base/util/now"], function(now){new Date(now());}</code>
9
6
  *
@@ -11,18 +8,15 @@
11
8
  * @since 1.58
12
9
  * @public
13
10
  * @alias module:sap/base/util/now
14
- * @returns {float} timestamp in microseconds if supported by the environment otherwise in milliseconds
11
+ * @returns {float} timestamp in microseconds
15
12
  */ /*!
16
13
  * OpenUI5
17
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
14
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
18
15
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
19
16
  */
20
17
  /*global performance */
21
18
 
22
- var fnNow = !(typeof window != "undefined" && window.performance && performance.now && performance.timing) ? Date.now : function () {
23
- var iNavigationStart = performance.timing.navigationStart;
24
- return function perfnow() {
25
- return iNavigationStart + performance.now();
26
- };
27
- }();
19
+ var fnNow = function now() {
20
+ return performance.timeOrigin + performance.now();
21
+ };
28
22
  export default fnNow;
@@ -4,7 +4,7 @@
4
4
  * @private
5
5
  */ /*!
6
6
  * OpenUI5
7
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
7
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
9
9
  */
10
10
 
@@ -0,0 +1,27 @@
1
+ export default {
2
+ browser: {
3
+ firefox: false,
4
+ webkit: false,
5
+ chrome: false,
6
+ name: "",
7
+ version: -1
8
+ },
9
+ os: {
10
+ windows: false,
11
+ macintosh: false,
12
+ linux: false,
13
+ android: false,
14
+ ios: false
15
+ },
16
+ system: {
17
+ desktop: true,
18
+ phone: false,
19
+ tablet: false
20
+ },
21
+ support: {
22
+ touch: false
23
+ },
24
+ media: {},
25
+ orientation: {},
26
+ resize: {}
27
+ };
@@ -0,0 +1 @@
1
+ export default {};
@@ -0,0 +1,14 @@
1
+ export default {
2
+ load: function () {
3
+ return Promise.resolve({});
4
+ },
5
+ _load: function () {
6
+ return Promise.resolve({});
7
+ },
8
+ _getTransitiveDependencyForLibraries: function () {
9
+ return [];
10
+ },
11
+ _getTransitiveDependencyForComponent: function () {
12
+ return undefined;
13
+ }
14
+ };
@@ -1,15 +1,17 @@
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
  /* global Set */
7
7
  // Provides class sap.ui.base.DataType
8
+ import future from "../../base/future.js";
8
9
  import ObjectPath from "../../base/util/ObjectPath.js";
9
10
  import assert from "../../base/assert.js";
10
11
  import Log from "../../base/Log.js";
11
12
  import isPlainObject from "../../base/util/isPlainObject.js";
12
13
  import resolveReference from "../../base/util/resolveReference.js";
14
+ import _EnumHelper from "../../base/i18n/date/_EnumHelper.js";
13
15
  /**
14
16
  * Pseudo-Constructor for class <code>DataType</code>, never to be used.
15
17
  *
@@ -428,6 +430,28 @@ function createEnumType(sTypeName, oEnum) {
428
430
  };
429
431
  return oType;
430
432
  }
433
+ const oLoggedErrors = new Set();
434
+
435
+ /**
436
+ * Logs an error only once per class name and property name combination.
437
+ *
438
+ * If the class name and property name are not given, the message is logged.
439
+ *
440
+ * @param {string} sClassName - The name of the class where the error occurred.
441
+ * @param {string} sPropertyName - The name of the property causing the error.
442
+ * @param {string} sMessage - Additional message to log.
443
+ */
444
+ function logErrorOnce(sClassName, sPropertyName, sMessage) {
445
+ if (sClassName && sPropertyName) {
446
+ const sKey = `${sClassName}::${sPropertyName}`;
447
+ if (!oLoggedErrors.has(sKey)) {
448
+ oLoggedErrors.add(sKey);
449
+ Log.error(`Property "${sPropertyName}" of "${sClassName}": ${sMessage}`);
450
+ }
451
+ } else {
452
+ Log.error(sMessage);
453
+ }
454
+ }
431
455
 
432
456
  /**
433
457
  * Looks up the type with the given name and returns it.
@@ -468,11 +492,12 @@ function createEnumType(sTypeName, oEnum) {
468
492
  * needed by the specific control or class definition.
469
493
  *
470
494
  * @param {string} sTypeName Qualified name of the type to retrieve
495
+ * @param {sap.ui.base.ManagedObject.MetadataOptions.Property} [oProperty] Metadata of the property
471
496
  * @returns {sap.ui.base.DataType|undefined} Type object or <code>undefined</code> when
472
497
  * no such type has been defined yet
473
498
  * @public
474
499
  */
475
- DataType.getType = function (sTypeName) {
500
+ DataType.getType = function (sTypeName, oProperty) {
476
501
  assert(sTypeName && typeof sTypeName === 'string', "sTypeName must be a non-empty string");
477
502
  var oType = mTypes[sTypeName];
478
503
  if (!(oType instanceof DataType)) {
@@ -496,7 +521,7 @@ DataType.getType = function (sTypeName) {
496
521
  if (oType == null) {
497
522
  oType = ObjectPath.get(sTypeName);
498
523
  if (oType != null) {
499
- Log.error(`The type '${sTypeName}' was accessed via globals. Defining enums via globals is deprecated. Please require the module 'sap/ui/base/DataType' and call the static 'DataType.registerEnum' API.`);
524
+ logErrorOnce(oProperty?._oParent.getName(), oProperty?.name, `[DEPRECATED] The type '${sTypeName}' was accessed via globals. Defining types via globals is deprecated. ` + `In case the referenced type is an enum: require the module 'sap/ui/base/DataType' and call the static 'DataType.registerEnum' API. ` + `In case the referenced type is non-primitive, please note that only primitive types (and those derived from them) are supported for ManagedObject properties. ` + `If the given type is an interface or a subclass of ManagedObject, you can define a "0..1" aggregation instead of a property`);
500
525
  }
501
526
  }
502
527
  if (oType instanceof DataType) {
@@ -505,10 +530,10 @@ DataType.getType = function (sTypeName) {
505
530
  oType = mTypes[sTypeName] = createEnumType(sTypeName, oType);
506
531
  delete mEnumRegistry[sTypeName];
507
532
  } else if (oType) {
508
- Log.warning("[FUTURE FATAL] '" + sTypeName + "' is not a valid data type. Falling back to type 'any'.");
533
+ future.warningThrows("'" + sTypeName + "' is not a valid data type. Falling back to type 'any'.");
509
534
  oType = mTypes.any;
510
535
  } else {
511
- Log.error("[FUTURE FATAL] data type '" + sTypeName + "' could not be found.");
536
+ future.errorThrows("data type '" + sTypeName + "' could not be found.");
512
537
  oType = undefined;
513
538
  }
514
539
  }
@@ -565,20 +590,20 @@ DataType.createType = function (sName, mSettings, vBase) {
565
590
  assert(typeof sName === "string" && sName, "DataType.createType: type name must be a non-empty string");
566
591
  assert(vBase == null || vBase instanceof DataType || typeof vBase === "string" && vBase, "DataType.createType: base type must be empty or a DataType or a non-empty string");
567
592
  if (/[\[\]]/.test(sName)) {
568
- Log.error("[FUTURE FATAL] DataType.createType: array types ('something[]') must not be created with createType, " + "they're created on-the-fly by DataType.getType");
593
+ future.errorThrows("DataType.createType: array types ('something[]') must not be created with createType, " + "they're created on-the-fly by DataType.getType");
569
594
  }
570
595
  if (typeof vBase === "string") {
571
596
  vBase = DataType.getType(vBase);
572
597
  }
573
598
  vBase = vBase || mTypes.any;
574
599
  if (vBase.isArrayType() || vBase.isEnumType()) {
575
- Log.error("[FUTURE FATAL] DataType.createType: base type must not be an array- or enum-type");
600
+ future.errorThrows("DataType.createType: base type must not be an array- or enum-type");
576
601
  }
577
602
  if (sName === 'array' || mTypes[sName] instanceof DataType) {
578
603
  if (sName === 'array' || mTypes[sName].getBaseType() == null) {
579
604
  throw new Error("DataType.createType: primitive or hidden type " + sName + " can't be re-defined");
580
605
  }
581
- Log.warning("[FUTURE FATAL] DataTypes.createType: type " + sName + " is redefined. " + "This is an unsupported usage of DataType and might cause issues.");
606
+ future.warningThrows("DataTypes.createType: type " + sName + " is redefined. " + "This is an unsupported usage of DataType and might cause issues.");
582
607
  }
583
608
  var oType = mTypes[sName] = createType(sName, mSettings, vBase);
584
609
  return oType;
@@ -599,10 +624,15 @@ DataType.registerInterfaceTypes = function (aTypes) {
599
624
  aTypes.forEach(function (sType) {
600
625
  oInterfaces.add(sType);
601
626
 
602
- // Defining the interface on global namespace for compatibility reasons.
603
- // This has never been a public feature and it is strongly discouraged it be relied upon.
604
- // An interface must always be referenced by a string literal, not via the global namespace.
605
- ObjectPath.set(sType, sType);
627
+ /**
628
+ * @deprecated
629
+ */
630
+ (() => {
631
+ // Defining the interface on global namespace for compatibility reasons.
632
+ // This has never been a public feature and it is strongly discouraged it be relied upon.
633
+ // An interface must always be referenced by a string literal, not via the global namespace.
634
+ ObjectPath.set(sType, sType);
635
+ })();
606
636
  });
607
637
  };
608
638
 
@@ -654,4 +684,25 @@ DataType._isEnumCandidate = function (oObject) {
654
684
  DataType.isInterfaceType = function (sType) {
655
685
  return oInterfaces.has(sType);
656
686
  };
687
+
688
+ /**
689
+ * A string type representing an ID or a name.
690
+ *
691
+ * Allowed is a sequence of characters (capital/lowercase), digits, underscores, hyphens, dots and/or colons.
692
+ * It may start with a character or underscore only.
693
+ *
694
+ * @typedef {string} sap.ui.core.ID
695
+ * @final
696
+ * @public
697
+ * @ui5-module-override sap/ui/core/library ID
698
+ */
699
+ DataType.createType('sap.ui.core.ID', {
700
+ isValid: function (vValue) {
701
+ return /^([A-Za-z_][-A-Za-z0-9_.:]*)$/.test(vValue);
702
+ }
703
+ }, DataType.getType('string'));
704
+
705
+ // The enum helper receives the final registerEnum function and ensures
706
+ // that all early collected enums are correctly registered
707
+ _EnumHelper.inject(DataType.registerEnum);
657
708
  export default DataType;
@@ -0,0 +1,11 @@
1
+ export default {
2
+ isDesignModeEnabled: function () {
3
+ return false;
4
+ },
5
+ isControllerCodeDeactivationSuppressed: function () {
6
+ return false;
7
+ },
8
+ isControllerCodeDeactivated: function () {
9
+ return false;
10
+ }
11
+ };
@@ -0,0 +1,21 @@
1
+ function EventProvider() {}
2
+ EventProvider.prototype.attachEvent = function () {
3
+ return this;
4
+ };
5
+ EventProvider.prototype.attachEventOnce = function () {
6
+ return this;
7
+ };
8
+ EventProvider.prototype.detachEvent = function () {
9
+ return this;
10
+ };
11
+ EventProvider.prototype.fireEvent = function () {
12
+ return this;
13
+ };
14
+ EventProvider.prototype.hasListeners = function () {
15
+ return false;
16
+ };
17
+ EventProvider.prototype.getEventingParent = function () {
18
+ return null;
19
+ };
20
+ EventProvider.prototype.destroy = function () {};
21
+ export default EventProvider;