@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
package/dist/sap/base/Event.js
CHANGED
|
@@ -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
|
// 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.
|
|
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
|
|
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
|
-
*
|
|
10
|
+
* @class A simple eventing implementation that manages listeners and can fire events.
|
|
11
11
|
*
|
|
12
12
|
* @author SAP SE
|
|
13
|
-
* @version 1.
|
|
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 = {};
|
package/dist/sap/base/assert.js
CHANGED
|
@@ -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 { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
|
|
3
|
+
import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.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: () => getLanguage() || "en",
|
|
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;
|
|
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,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAEtF,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG;IAClB,iBAAiB,EAAE,OAAO;IAC1B,4BAA4B,EAAE,gCAAgC;IAC9D,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI;IAC3C,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 { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Formatting Shim\n */\nconst Formatting = {\n\tgetABAPDateFormat: emptyFn,\n\tgetCustomIslamicCalendarData: getLegacyDateCalendarCustomizing,\n\tgetLanguageTag: () => getLanguage() || \"en\",\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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
99
|
-
* again with a
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.#
|
|
173
|
+
return this.#tagAsString;
|
|
168
174
|
}
|
|
169
175
|
#join() {
|
|
170
176
|
return Array.prototype.filter.call(arguments, Boolean).join("-");
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
|
|
2
|
+
import { getTimezone as getConfigTimezone } from "@ui5/webcomponents-base/dist/config/Timezone.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: () => getLanguage() || "en",
|
|
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;
|
|
1
|
+
{"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../../../src/sap/base/i18n/Localization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEnG,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,WAAW,EAAE,IAAI,IAAI;IAC3C,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 { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getTimezone as getConfigTimezone } from \"@ui5/webcomponents-base/dist/config/Timezone.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: () => getLanguage() || \"en\",\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.
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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/
|
|
277
|
-
"America/
|
|
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
|
-
"
|
|
281
|
-
"
|
|
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
|
-
"
|
|
401
|
+
"Pacific/Samoa": "Pacific/Pago_Pago",
|
|
286
402
|
"Pacific/Truk": "Pacific/Chuuk",
|
|
287
|
-
"
|
|
288
|
-
"
|
|
289
|
-
"
|
|
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.
|
|
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.
|
|
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
|
*
|
|
@@ -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
|
+
};
|