@ui5/webcomponents-localization 0.0.0-aeb93167c → 0.0.0-b93c2a321
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/.eslintignore +1 -0
- package/CHANGELOG.md +146 -0
- package/README.md +32 -1
- package/dist/Assets-static.js +2 -0
- package/dist/dates/ExtremeDates.js +39 -0
- package/dist/dates/getRoundedTimestamp.js +14 -0
- package/dist/dates/getTodayUTCTimestamp.js +9 -0
- package/dist/dates/modifyDateBy.js +42 -0
- package/dist/generated/assets/cldr/ar.json +5 -3
- package/dist/generated/assets/cldr/ar_EG.json +5 -3
- package/dist/generated/assets/cldr/ar_SA.json +5 -3
- package/dist/generated/assets/cldr/bg.json +5 -3
- package/dist/generated/assets/cldr/ca.json +5 -3
- package/dist/generated/assets/cldr/cs.json +5 -3
- package/dist/generated/assets/cldr/cy.json +5886 -0
- package/dist/generated/assets/cldr/da.json +5 -3
- package/dist/generated/assets/cldr/de.json +5 -3
- package/dist/generated/assets/cldr/de_AT.json +5 -3
- package/dist/generated/assets/cldr/de_CH.json +5 -3
- package/dist/generated/assets/cldr/el.json +5 -3
- package/dist/generated/assets/cldr/el_CY.json +5 -3
- package/dist/generated/assets/cldr/en.json +6 -3
- package/dist/generated/assets/cldr/en_AU.json +5 -3
- package/dist/generated/assets/cldr/en_GB.json +5 -3
- package/dist/generated/assets/cldr/en_HK.json +5 -3
- package/dist/generated/assets/cldr/en_IE.json +5 -3
- package/dist/generated/assets/cldr/en_IN.json +5 -3
- package/dist/generated/assets/cldr/en_NZ.json +5 -3
- package/dist/generated/assets/cldr/en_PG.json +5 -3
- package/dist/generated/assets/cldr/en_SG.json +5 -3
- package/dist/generated/assets/cldr/en_ZA.json +5 -3
- package/dist/generated/assets/cldr/es.json +5 -3
- package/dist/generated/assets/cldr/es_AR.json +5 -3
- package/dist/generated/assets/cldr/es_BO.json +5 -3
- package/dist/generated/assets/cldr/es_CL.json +5 -3
- package/dist/generated/assets/cldr/es_CO.json +5 -3
- package/dist/generated/assets/cldr/es_MX.json +5 -3
- package/dist/generated/assets/cldr/es_PE.json +5 -3
- package/dist/generated/assets/cldr/es_UY.json +5 -3
- package/dist/generated/assets/cldr/es_VE.json +5 -3
- package/dist/generated/assets/cldr/et.json +5 -3
- package/dist/generated/assets/cldr/fa.json +5 -3
- package/dist/generated/assets/cldr/fi.json +5 -3
- package/dist/generated/assets/cldr/fr.json +5 -3
- package/dist/generated/assets/cldr/fr_BE.json +5 -3
- package/dist/generated/assets/cldr/fr_CA.json +5 -3
- package/dist/generated/assets/cldr/fr_CH.json +5 -3
- package/dist/generated/assets/cldr/fr_LU.json +5 -3
- package/dist/generated/assets/cldr/he.json +5 -3
- package/dist/generated/assets/cldr/hi.json +5 -3
- package/dist/generated/assets/cldr/hr.json +5 -3
- package/dist/generated/assets/cldr/hu.json +5 -3
- package/dist/generated/assets/cldr/id.json +5 -3
- package/dist/generated/assets/cldr/it.json +5 -3
- package/dist/generated/assets/cldr/it_CH.json +5 -3
- package/dist/generated/assets/cldr/ja.json +5 -3
- package/dist/generated/assets/cldr/kk.json +5 -3
- package/dist/generated/assets/cldr/ko.json +5 -3
- package/dist/generated/assets/cldr/lt.json +5 -3
- package/dist/generated/assets/cldr/lv.json +5 -3
- package/dist/generated/assets/cldr/ms.json +5 -3
- package/dist/generated/assets/cldr/nb.json +5 -3
- package/dist/generated/assets/cldr/nl.json +5 -3
- package/dist/generated/assets/cldr/nl_BE.json +5 -3
- package/dist/generated/assets/cldr/pl.json +5 -3
- package/dist/generated/assets/cldr/pt.json +5 -3
- package/dist/generated/assets/cldr/pt_PT.json +5 -3
- package/dist/generated/assets/cldr/ro.json +5 -3
- package/dist/generated/assets/cldr/ru.json +5 -3
- package/dist/generated/assets/cldr/ru_UA.json +5 -3
- package/dist/generated/assets/cldr/sk.json +5 -3
- package/dist/generated/assets/cldr/sl.json +5 -3
- package/dist/generated/assets/cldr/sr.json +5 -3
- package/dist/generated/assets/cldr/sr_Latn.json +5129 -0
- package/dist/generated/assets/cldr/sv.json +5 -3
- package/dist/generated/assets/cldr/th.json +5 -3
- package/dist/generated/assets/cldr/tr.json +5 -3
- package/dist/generated/assets/cldr/uk.json +5 -3
- package/dist/generated/assets/cldr/vi.json +5 -3
- package/dist/generated/assets/cldr/zh_CN.json +5 -3
- package/dist/generated/assets/cldr/zh_HK.json +5 -3
- package/dist/generated/assets/cldr/zh_SG.json +5 -3
- package/dist/generated/assets/cldr/zh_TW.json +5 -3
- package/dist/generated/json-imports/LocaleData-static.js +90 -0
- package/dist/generated/json-imports/LocaleData.js +88 -91
- package/dist/sap/base/Log.js +2 -10
- package/dist/sap/base/assert.js +1 -5
- package/dist/sap/base/util/LoaderExtensions.js +12 -2
- package/dist/sap/base/util/array/uniqueSort.js +7 -7
- package/dist/sap/base/util/deepEqual.js +1 -5
- package/dist/sap/ui/base/Interface.js +3 -5
- package/dist/sap/ui/base/Metadata.js +1 -3
- package/dist/sap/ui/base/Object.js +26 -2
- package/dist/sap/ui/core/Locale.js +57 -31
- package/dist/sap/ui/core/LocaleData.js +28 -1502
- package/dist/sap/ui/core/date/UniversalDate.js +7 -5
- package/dist/sap/ui/core/format/DateFormat.js +40 -27
- package/hash.txt +1 -0
- package/package-scripts.js +14 -5
- package/package.json +12 -14
- package/src/Assets-static.js +2 -0
- package/src/dates/ExtremeDates.js +39 -0
- package/src/dates/getRoundedTimestamp.js +14 -0
- package/src/dates/getTodayUTCTimestamp.js +9 -0
- package/src/dates/modifyDateBy.js +42 -0
- package/src/sap/base/util/LoaderExtensions.js +12 -2
@@ -1,7 +1,17 @@
|
|
1
|
-
import {
|
1
|
+
import { getLocaleData } from "@ui5/webcomponents-base/dist/asset-registries/LocaleData.js";
|
2
|
+
|
3
|
+
const loadResource = moduleName => {
|
4
|
+
const moduleFormat = moduleName.match(/sap\/ui\/core\/cldr\/(\w+)\.json/);
|
5
|
+
if (!moduleFormat) {
|
6
|
+
throw new Error(`Unknown module "${moduleName}"`);
|
7
|
+
}
|
8
|
+
|
9
|
+
const localeId = moduleFormat[1];
|
10
|
+
return getLocaleData(localeId);
|
11
|
+
};
|
2
12
|
|
3
13
|
const LoaderExtensions = {
|
4
|
-
loadResource
|
14
|
+
loadResource,
|
5
15
|
};
|
6
16
|
|
7
17
|
export default LoaderExtensions;
|
@@ -1,17 +1,17 @@
|
|
1
1
|
import assert from '../../assert.js';
|
2
2
|
var fnUniqueSort = function (aArray) {
|
3
|
-
assert(aArray
|
4
|
-
var
|
5
|
-
if (
|
3
|
+
assert(Array.isArray(aArray), 'uniqueSort: input parameter must be an Array');
|
4
|
+
var iLength = aArray.length;
|
5
|
+
if (iLength > 1) {
|
6
6
|
aArray.sort();
|
7
7
|
var j = 0;
|
8
|
-
for (var i = 1; i <
|
9
|
-
if (aArray[i]
|
8
|
+
for (var i = 1; i < iLength; i++) {
|
9
|
+
if (aArray.indexOf(aArray[i]) === i) {
|
10
10
|
aArray[++j] = aArray[i];
|
11
11
|
}
|
12
12
|
}
|
13
|
-
if (++j <
|
14
|
-
aArray.splice(j,
|
13
|
+
if (++j < iLength) {
|
14
|
+
aArray.splice(j, iLength - j);
|
15
15
|
}
|
16
16
|
}
|
17
17
|
return aArray;
|
@@ -14,11 +14,7 @@ var fnEqual = function (a, b, maxDepth, contains, depth) {
|
|
14
14
|
Log.warning('deepEqual comparison exceeded maximum recursion depth of ' + maxDepth + '. Treating values as unequal');
|
15
15
|
return false;
|
16
16
|
}
|
17
|
-
if (a === b) {
|
18
|
-
return true;
|
19
|
-
}
|
20
|
-
var bIsReallyNaN = typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);
|
21
|
-
if (bIsReallyNaN) {
|
17
|
+
if (a === b || Number.isNaN(a) && Number.isNaN(b)) {
|
22
18
|
return true;
|
23
19
|
}
|
24
20
|
if (Array.isArray(a) && Array.isArray(b)) {
|
@@ -1,16 +1,14 @@
|
|
1
|
-
var
|
2
|
-
var Interface = function (oObject, aMethods, bFacade) {
|
1
|
+
var Interface = function (oObject, aMethods, _bReturnFacade) {
|
3
2
|
if (!oObject) {
|
4
3
|
return oObject;
|
5
4
|
}
|
6
|
-
BaseObject = BaseObject || sap.ui.requireSync("sap/ui/base/Object");
|
7
5
|
function fCreateDelegator(oObject, sMethodName) {
|
8
6
|
return function () {
|
9
7
|
var tmp = oObject[sMethodName].apply(oObject, arguments);
|
10
|
-
if (
|
8
|
+
if (_bReturnFacade) {
|
11
9
|
return this;
|
12
10
|
} else {
|
13
|
-
return tmp
|
11
|
+
return typeof tmp.getInterface === "function" ? tmp.getInterface() : tmp;
|
14
12
|
}
|
15
13
|
};
|
16
14
|
}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import ObjectPath from '../../base/util/ObjectPath.js';
|
2
|
-
import Device from '../Device.js';
|
3
2
|
import assert from '../../base/assert.js';
|
4
3
|
import Log from '../../base/Log.js';
|
5
4
|
import uniqueSort from '../../base/util/array/uniqueSort.js';
|
@@ -112,7 +111,6 @@ Metadata.prototype.isInstanceOf = function (sInterface) {
|
|
112
111
|
}
|
113
112
|
return false;
|
114
113
|
};
|
115
|
-
var WRITABLE_IFF_PHANTOM = !!Device.browser.phantomJS;
|
116
114
|
Object.defineProperty(Metadata.prototype, '_mImplementedTypes', {
|
117
115
|
get: function () {
|
118
116
|
if (this === Metadata.prototype) {
|
@@ -128,7 +126,7 @@ Object.defineProperty(Metadata.prototype, '_mImplementedTypes', {
|
|
128
126
|
}
|
129
127
|
Object.defineProperty(this, '_mImplementedTypes', {
|
130
128
|
value: Object.freeze(result),
|
131
|
-
writable:
|
129
|
+
writable: false,
|
132
130
|
configurable: false
|
133
131
|
});
|
134
132
|
return result;
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import Interface from './Interface.js';
|
2
1
|
import Metadata from './Metadata.js';
|
3
2
|
import Log from '../../base/Log.js';
|
4
3
|
var BaseObject = Metadata.createClass('sap.ui.base.Object', {
|
@@ -11,7 +10,7 @@ var BaseObject = Metadata.createClass('sap.ui.base.Object', {
|
|
11
10
|
BaseObject.prototype.destroy = function () {
|
12
11
|
};
|
13
12
|
BaseObject.prototype.getInterface = function () {
|
14
|
-
var oInterface = new
|
13
|
+
var oInterface = new BaseObject._Interface(this, this.getMetadata().getAllPublicMethods());
|
15
14
|
this.getInterface = function () {
|
16
15
|
return oInterface;
|
17
16
|
};
|
@@ -37,4 +36,29 @@ BaseObject.prototype.isA = function (vTypeName) {
|
|
37
36
|
BaseObject.isA = function (oObject, vTypeName) {
|
38
37
|
return oObject instanceof BaseObject && oObject.isA(vTypeName);
|
39
38
|
};
|
39
|
+
BaseObject._Interface = function (oObject, aMethods, _bReturnFacade) {
|
40
|
+
if (!oObject) {
|
41
|
+
return oObject;
|
42
|
+
}
|
43
|
+
function fCreateDelegator(oObject, sMethodName) {
|
44
|
+
return function () {
|
45
|
+
var tmp = oObject[sMethodName].apply(oObject, arguments);
|
46
|
+
if (_bReturnFacade) {
|
47
|
+
return this;
|
48
|
+
} else {
|
49
|
+
return tmp instanceof BaseObject ? tmp.getInterface() : tmp;
|
50
|
+
}
|
51
|
+
};
|
52
|
+
}
|
53
|
+
if (!aMethods) {
|
54
|
+
return {};
|
55
|
+
}
|
56
|
+
var sMethodName;
|
57
|
+
for (var i = 0, ml = aMethods.length; i < ml; i++) {
|
58
|
+
sMethodName = aMethods[i];
|
59
|
+
if (!oObject[sMethodName] || typeof oObject[sMethodName] === 'function') {
|
60
|
+
this[sMethodName] = fCreateDelegator(oObject, sMethodName);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
};
|
40
64
|
export default BaseObject;
|
@@ -6,7 +6,7 @@ var Locale = BaseObject.extend('sap.ui.core.Locale', {
|
|
6
6
|
BaseObject.apply(this);
|
7
7
|
var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));
|
8
8
|
if (aResult === null) {
|
9
|
-
throw 'The given language \'' + sLocaleId + '\' does not adhere to BCP-47.';
|
9
|
+
throw new TypeError('The given language \'' + sLocaleId + '\' does not adhere to BCP-47.');
|
10
10
|
}
|
11
11
|
this.sLocaleId = sLocaleId;
|
12
12
|
this.sLanguage = aResult[1] || null;
|
@@ -59,54 +59,62 @@ var Locale = BaseObject.extend('sap.ui.core.Locale', {
|
|
59
59
|
return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
|
60
60
|
},
|
61
61
|
toString: function () {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
r.push(this.sVariant);
|
71
|
-
}
|
72
|
-
if (this.sExtension) {
|
73
|
-
r.push(this.sExtension);
|
74
|
-
}
|
75
|
-
if (this.sPrivateUse) {
|
76
|
-
r.push(this.sPrivateUse);
|
62
|
+
return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
|
63
|
+
},
|
64
|
+
toLanguageTag: function () {
|
65
|
+
var sLanguage = this.getModernLanguage();
|
66
|
+
var sScript = this.sScript;
|
67
|
+
if (sLanguage === 'sr' && sScript === 'Latn') {
|
68
|
+
sLanguage = 'sh';
|
69
|
+
sScript = null;
|
77
70
|
}
|
78
|
-
return
|
71
|
+
return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
|
72
|
+
},
|
73
|
+
getModernLanguage: function () {
|
74
|
+
return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;
|
79
75
|
},
|
80
76
|
getSAPLogonLanguage: function () {
|
81
|
-
var sLanguage = this.sLanguage || ''
|
77
|
+
var sLanguage = this.sLanguage || '';
|
82
78
|
if (sLanguage.indexOf('-') >= 0) {
|
83
79
|
sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
|
84
80
|
}
|
85
81
|
sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
86
|
-
if (sLanguage === 'zh') {
|
87
|
-
|
88
|
-
sLanguage = 'zf';
|
89
|
-
}
|
90
|
-
}
|
91
|
-
if (this.sPrivateUse && (m = /-(saptrc|sappsd)(?:-|$)/i.exec(this.sPrivateUse))) {
|
92
|
-
sLanguage = m[1].toLowerCase() === 'saptrc' ? '1Q' : '2Q';
|
82
|
+
if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {
|
83
|
+
return 'ZF';
|
93
84
|
}
|
94
|
-
return sLanguage.toUpperCase();
|
85
|
+
return M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sScript)] || M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sRegion)] || M_LOCALE_TO_ABAP_LANGUAGE[getPseudoLanguageTag(this.sPrivateUse)] || sLanguage.toUpperCase();
|
95
86
|
}
|
96
87
|
});
|
88
|
+
function getPseudoLanguageTag(sPrivateUse) {
|
89
|
+
if (sPrivateUse) {
|
90
|
+
var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);
|
91
|
+
return m && 'en-US-x-' + m[1].toLowerCase();
|
92
|
+
}
|
93
|
+
}
|
97
94
|
var M_ISO639_OLD_TO_NEW = {
|
98
95
|
'iw': 'he',
|
99
|
-
'ji': 'yi'
|
100
|
-
'in': 'id',
|
101
|
-
'sh': 'sr'
|
96
|
+
'ji': 'yi'
|
102
97
|
};
|
98
|
+
var M_ABAP_LANGUAGE_TO_LOCALE = {
|
99
|
+
'ZH': 'zh-Hans',
|
100
|
+
'ZF': 'zh-Hant',
|
101
|
+
'SH': 'sr-Latn',
|
102
|
+
'6N': 'en-GB',
|
103
|
+
'1P': 'pt-PT',
|
104
|
+
'1X': 'es-MX',
|
105
|
+
'3F': 'fr-CA',
|
106
|
+
'1Q': 'en-US-x-saptrc',
|
107
|
+
'2Q': 'en-US-x-sappsd',
|
108
|
+
'3Q': 'en-US-x-saprigi'
|
109
|
+
};
|
110
|
+
var M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);
|
103
111
|
function getDesigntimePropertyAsArray(sValue) {
|
104
112
|
var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
|
105
113
|
return m && m[2] ? m[2].split(/,/) : null;
|
106
114
|
}
|
107
115
|
var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
|
108
|
-
Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,
|
109
|
-
Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');
|
116
|
+
Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
|
117
|
+
Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,en_GB,es,es_MX,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');
|
110
118
|
Locale._impliesRTL = function (vLanguage) {
|
111
119
|
var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
|
112
120
|
var sLanguage = oLocale.getLanguage() || '';
|
@@ -117,4 +125,22 @@ Locale._impliesRTL = function (vLanguage) {
|
|
117
125
|
}
|
118
126
|
return A_RTL_LOCALES.indexOf(sLanguage) >= 0;
|
119
127
|
};
|
128
|
+
Locale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {
|
129
|
+
if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {
|
130
|
+
sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;
|
131
|
+
try {
|
132
|
+
return new Locale(sSAPLogonLanguage);
|
133
|
+
} catch (e) {
|
134
|
+
}
|
135
|
+
}
|
136
|
+
};
|
137
|
+
function join() {
|
138
|
+
return Array.prototype.filter.call(arguments, Boolean).join('-');
|
139
|
+
}
|
140
|
+
function inverse(obj) {
|
141
|
+
return Object.keys(obj).reduce(function (inv, key) {
|
142
|
+
inv[obj[key]] = key;
|
143
|
+
return inv;
|
144
|
+
}, {});
|
145
|
+
}
|
120
146
|
export default Locale;
|