@ui5/webcomponents-localization 2.20.1 → 2.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/generated/assets/cldr/Unicode-Data-Files-LICENSE.txt +36 -24
- package/dist/generated/assets/cldr/ar.json +624 -354
- package/dist/generated/assets/cldr/ar_EG.json +624 -354
- package/dist/generated/assets/cldr/ar_SA.json +625 -355
- package/dist/generated/assets/cldr/bg.json +339 -215
- package/dist/generated/assets/cldr/ca.json +633 -509
- package/dist/generated/assets/cldr/cnr.json +960 -653
- package/dist/generated/assets/cldr/cs.json +343 -531
- package/dist/generated/assets/cldr/cy.json +684 -1050
- package/dist/generated/assets/cldr/da.json +354 -231
- package/dist/generated/assets/cldr/de.json +458 -330
- package/dist/generated/assets/cldr/de_AT.json +459 -331
- package/dist/generated/assets/cldr/de_CH.json +522 -386
- package/dist/generated/assets/cldr/el.json +317 -152
- package/dist/generated/assets/cldr/el_CY.json +317 -152
- package/dist/generated/assets/cldr/en.json +606 -253
- package/dist/generated/assets/cldr/en_AU.json +830 -376
- package/dist/generated/assets/cldr/en_GB.json +696 -251
- package/dist/generated/assets/cldr/en_HK.json +544 -203
- package/dist/generated/assets/cldr/en_IE.json +533 -192
- package/dist/generated/assets/cldr/en_IN.json +820 -296
- package/dist/generated/assets/cldr/en_NZ.json +534 -193
- package/dist/generated/assets/cldr/en_PG.json +509 -168
- package/dist/generated/assets/cldr/en_SG.json +526 -185
- package/dist/generated/assets/cldr/en_ZA.json +529 -186
- package/dist/generated/assets/cldr/es.json +355 -230
- package/dist/generated/assets/cldr/es_AR.json +444 -288
- package/dist/generated/assets/cldr/es_BO.json +419 -264
- package/dist/generated/assets/cldr/es_CL.json +455 -300
- package/dist/generated/assets/cldr/es_CO.json +412 -257
- package/dist/generated/assets/cldr/es_MX.json +515 -352
- package/dist/generated/assets/cldr/es_PE.json +397 -234
- package/dist/generated/assets/cldr/es_UY.json +424 -269
- package/dist/generated/assets/cldr/es_VE.json +398 -243
- package/dist/generated/assets/cldr/et.json +390 -233
- package/dist/generated/assets/cldr/fa.json +510 -271
- package/dist/generated/assets/cldr/fi.json +497 -251
- package/dist/generated/assets/cldr/fr.json +339 -106
- package/dist/generated/assets/cldr/fr_BE.json +341 -108
- package/dist/generated/assets/cldr/fr_CA.json +652 -397
- package/dist/generated/assets/cldr/fr_CH.json +342 -109
- package/dist/generated/assets/cldr/fr_LU.json +339 -106
- package/dist/generated/assets/cldr/he.json +726 -904
- package/dist/generated/assets/cldr/hi.json +529 -288
- package/dist/generated/assets/cldr/hr.json +392 -383
- package/dist/generated/assets/cldr/hu.json +459 -335
- package/dist/generated/assets/cldr/id.json +379 -128
- package/dist/generated/assets/cldr/it.json +420 -301
- package/dist/generated/assets/cldr/it_CH.json +426 -307
- package/dist/generated/assets/cldr/ja.json +332 -74
- package/dist/generated/assets/cldr/kk.json +540 -240
- package/dist/generated/assets/cldr/ko.json +371 -115
- package/dist/generated/assets/cldr/lt.json +428 -545
- package/dist/generated/assets/cldr/lv.json +415 -413
- package/dist/generated/assets/cldr/mk.json +691 -559
- package/dist/generated/assets/cldr/ms.json +395 -136
- package/dist/generated/assets/cldr/nb.json +355 -234
- package/dist/generated/assets/cldr/nl.json +357 -251
- package/dist/generated/assets/cldr/nl_BE.json +428 -322
- package/dist/generated/assets/cldr/pl.json +333 -459
- package/dist/generated/assets/cldr/pt.json +419 -298
- package/dist/generated/assets/cldr/pt_PT.json +362 -231
- package/dist/generated/assets/cldr/ro.json +369 -397
- package/dist/generated/assets/cldr/ru.json +599 -368
- package/dist/generated/assets/cldr/ru_UA.json +598 -367
- package/dist/generated/assets/cldr/sk.json +343 -517
- package/dist/generated/assets/cldr/sl.json +477 -640
- package/dist/generated/assets/cldr/sr.json +478 -531
- package/dist/generated/assets/cldr/sr_Latn.json +631 -684
- package/dist/generated/assets/cldr/sv.json +395 -258
- package/dist/generated/assets/cldr/th.json +452 -199
- package/dist/generated/assets/cldr/tr.json +391 -238
- package/dist/generated/assets/cldr/uk.json +696 -342
- package/dist/generated/assets/cldr/vi.json +836 -487
- package/dist/generated/assets/cldr/zh_CN.json +358 -104
- package/dist/generated/assets/cldr/zh_HK.json +366 -113
- package/dist/generated/assets/cldr/zh_SG.json +371 -118
- package/dist/generated/assets/cldr/zh_TW.json +480 -238
- package/dist/sap/base/Event.js +2 -2
- package/dist/sap/base/Eventing.js +4 -3
- package/dist/sap/base/assert.js +1 -1
- package/dist/sap/base/config/MemoryConfigurationProvider.js +1 -1
- package/dist/sap/base/future.js +12 -0
- package/dist/sap/base/i18n/Formatting.d.ts +5 -0
- package/dist/sap/base/i18n/Formatting.js +7 -0
- package/dist/sap/base/i18n/Formatting.js.map +1 -1
- package/dist/sap/base/i18n/LanguageTag.js +18 -12
- package/dist/sap/base/i18n/Localization.d.ts +3 -0
- package/dist/sap/base/i18n/Localization.js +5 -0
- package/dist/sap/base/i18n/Localization.js.map +1 -1
- package/dist/sap/base/i18n/ResourceBundle.js +20 -0
- package/dist/sap/base/i18n/date/CalendarType.js +9 -8
- package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +9 -8
- package/dist/sap/base/i18n/date/TimezoneUtils.js +170 -18
- package/dist/sap/base/i18n/date/_EnumHelper.js +37 -0
- package/dist/sap/base/strings/camelize.js +1 -1
- package/dist/sap/base/strings/formatMessage.js +6 -1
- package/dist/sap/base/util/Properties.js +12 -0
- package/dist/sap/base/util/Version.js +19 -13
- package/dist/sap/base/util/_merge.js +1 -1
- package/dist/sap/base/util/array/uniqueSort.js +1 -1
- package/dist/sap/base/util/deepClone.js +2 -2
- package/dist/sap/base/util/deepEqual.js +1 -1
- package/dist/sap/base/util/deepExtend.js +60 -0
- package/dist/sap/base/util/extend.js +1 -1
- package/dist/sap/base/util/fetch.js +8 -0
- package/dist/sap/base/util/isEmptyObject.js +1 -1
- package/dist/sap/base/util/isPlainObject.js +1 -1
- package/dist/sap/base/util/merge.js +57 -0
- package/dist/sap/base/util/mixedFetch.js +3 -0
- package/dist/sap/base/util/now.js +7 -13
- package/dist/sap/base/util/uid.js +1 -1
- package/dist/sap/ui/Device.js +27 -0
- package/dist/sap/ui/Global.js +1 -0
- package/dist/sap/ui/VersionInfo.js +14 -0
- package/dist/sap/ui/base/DataType.js +63 -12
- package/dist/sap/ui/base/DesignTime.js +11 -0
- package/dist/sap/ui/base/EventProvider.js +21 -0
- package/dist/sap/ui/base/Metadata.js +45 -10
- package/dist/sap/ui/base/Object.js +2 -2
- package/dist/sap/ui/base/OwnStatics.js +6 -0
- package/dist/sap/ui/base/SyncPromise.js +98 -0
- package/dist/sap/ui/core/AnimationMode.js +42 -0
- package/dist/sap/ui/core/CalendarType.js +2 -2
- package/dist/sap/ui/core/ControlBehavior.js +11 -0
- package/dist/sap/ui/core/Lib.js +41 -0
- package/dist/sap/ui/core/Locale.js +9 -9
- package/dist/sap/ui/core/LocaleData.js +498 -333
- package/dist/sap/ui/core/Theming.js +25 -525
- package/dist/sap/ui/core/_UrlResolver.js +11 -0
- package/dist/sap/ui/core/date/Buddhist.js +2 -2
- package/dist/sap/ui/core/date/CalendarUtils.js +14 -12
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -2
- package/dist/sap/ui/core/date/Gregorian.js +2 -2
- package/dist/sap/ui/core/date/Islamic.js +2 -2
- package/dist/sap/ui/core/date/Japanese.js +2 -2
- package/dist/sap/ui/core/date/Persian.js +2 -2
- package/dist/sap/ui/core/date/UI5Date.js +80 -32
- package/dist/sap/ui/core/date/UniversalDate.js +83 -101
- package/dist/sap/ui/core/format/DateFormat.js +70 -73
- package/dist/sap/ui/core/format/FormatUtils.js +30 -0
- package/dist/sap/ui/core/format/NumberFormat.js +917 -588
- package/dist/sap/ui/core/format/TimezoneUtil.js +80 -11
- package/dist/sap/ui/core/getCompatibilityVersion.js +7 -0
- package/dist/sap/ui/core/theming/ThemeHelper.js +14 -0
- package/dist/sap/ui/security/Security.js +12 -0
- package/dist/sap/ui/util/XMLHelper.js +11 -0
- package/dist/sap/ui/util/_URL.js +1 -0
- package/dist/ui5loader-autoconfig.js +1 -0
- package/package.json +5 -5
- package/used-modules.txt +5 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// -------------------------- VERSION -------------------------------------
|
|
4
4
|
/*!
|
|
5
5
|
* OpenUI5
|
|
6
|
-
* (c) Copyright
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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.
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
|
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
|
|
68
|
+
// module:sap/ui/core/date/UI5Date
|
|
69
69
|
return src.clone();
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -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;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @returns {boolean} whether or not the given object is empty
|
|
21
21
|
*/ /*!
|
|
22
22
|
* OpenUI5
|
|
23
|
-
* (c) Copyright
|
|
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
|
|
|
@@ -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;
|
|
@@ -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
|
|
5
|
-
* The timestamp is based on 01/01/1970 00:00:00 (UNIX epoch) as float with microsecond precision
|
|
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
|
|
11
|
+
* @returns {float} timestamp in microseconds
|
|
15
12
|
*/ /*!
|
|
16
13
|
* OpenUI5
|
|
17
|
-
* (c) Copyright
|
|
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 =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return iNavigationStart + performance.now();
|
|
26
|
-
};
|
|
27
|
-
}();
|
|
19
|
+
var fnNow = function now() {
|
|
20
|
+
return performance.timeOrigin + performance.now();
|
|
21
|
+
};
|
|
28
22
|
export default fnNow;
|
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
533
|
+
future.warningThrows("'" + sTypeName + "' is not a valid data type. Falling back to type 'any'.");
|
|
509
534
|
oType = mTypes.any;
|
|
510
535
|
} else {
|
|
511
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
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,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;
|