@ui5/webcomponents-localization 0.0.0-ef27ca1aa → 0.0.0-f24ff9019
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/.npsrc.json +3 -0
- package/CHANGELOG.md +702 -0
- package/README.md +37 -6
- package/dist/Assets-static.d.ts +1 -0
- package/dist/Assets-static.js +3 -0
- package/dist/Assets-static.js.map +1 -0
- package/dist/Assets.d.ts +1 -0
- package/dist/Assets.js +1 -0
- package/dist/Assets.js.map +1 -0
- package/dist/DateFormat.d.ts +6 -0
- package/dist/DateFormat.js +6 -2
- package/dist/DateFormat.js.map +1 -0
- package/dist/LocaleData.d.ts +6 -0
- package/dist/LocaleData.js +6 -2
- package/dist/LocaleData.js.map +1 -0
- package/dist/dates/CalendarDate.d.ts +43 -0
- package/dist/dates/CalendarDate.js +171 -181
- package/dist/dates/CalendarDate.js.map +1 -0
- package/dist/dates/ExtremeDates.d.ts +5 -0
- package/dist/dates/ExtremeDates.js +29 -0
- package/dist/dates/ExtremeDates.js.map +1 -0
- package/dist/dates/UI5Date.d.ts +6 -0
- package/dist/dates/UI5Date.js +7 -0
- package/dist/dates/UI5Date.js.map +1 -0
- package/dist/dates/UniversalDate.d.ts +47 -0
- package/dist/dates/UniversalDate.js +5 -0
- package/dist/dates/UniversalDate.js.map +1 -0
- package/dist/dates/calculateWeekNumber.d.ts +5 -0
- package/dist/dates/calculateWeekNumber.js +42 -48
- package/dist/dates/calculateWeekNumber.js.map +1 -0
- package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
- package/dist/dates/getDaysInMonth.d.ts +3 -0
- package/dist/dates/getDaysInMonth.js +10 -0
- package/dist/dates/getDaysInMonth.js.map +1 -0
- package/dist/dates/getRoundedTimestamp.d.ts +7 -0
- package/dist/dates/getRoundedTimestamp.js +15 -0
- package/dist/dates/getRoundedTimestamp.js.map +1 -0
- package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
- package/dist/dates/getTodayUTCTimestamp.js +9 -0
- package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
- package/dist/dates/modifyDateBy.d.ts +14 -0
- package/dist/dates/modifyDateBy.js +55 -0
- package/dist/dates/modifyDateBy.js.map +1 -0
- package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
- package/dist/dates/transformDateToSecondaryType.js +18 -0
- package/dist/dates/transformDateToSecondaryType.js.map +1 -0
- package/dist/features/calendar/Buddhist.js +1 -0
- package/dist/features/calendar/Buddhist.js.map +1 -0
- package/dist/features/calendar/Gregorian.js +1 -0
- package/dist/features/calendar/Gregorian.js.map +1 -0
- package/dist/features/calendar/Islamic.js +1 -0
- package/dist/features/calendar/Islamic.js.map +1 -0
- package/dist/features/calendar/Japanese.js +1 -0
- package/dist/features/calendar/Japanese.js.map +1 -0
- package/dist/features/calendar/Persian.js +1 -0
- package/dist/features/calendar/Persian.js.map +1 -0
- package/dist/generated/assets/cldr/ar.json +5531 -5904
- package/dist/generated/assets/cldr/ar_EG.json +5531 -5904
- package/dist/generated/assets/cldr/ar_SA.json +5530 -5904
- package/dist/generated/assets/cldr/bg.json +4452 -4977
- package/dist/generated/assets/cldr/ca.json +4440 -4994
- package/dist/generated/assets/cldr/cs.json +4960 -5496
- package/dist/generated/assets/cldr/cy.json +5213 -0
- package/dist/generated/assets/cldr/da.json +4308 -4886
- package/dist/generated/assets/cldr/de.json +4313 -4914
- package/dist/generated/assets/cldr/de_AT.json +4314 -4915
- package/dist/generated/assets/cldr/de_CH.json +4312 -4913
- package/dist/generated/assets/cldr/el.json +4281 -4881
- package/dist/generated/assets/cldr/el_CY.json +4281 -4881
- package/dist/generated/assets/cldr/en.json +4316 -4968
- package/dist/generated/assets/cldr/en_AU.json +4319 -4960
- package/dist/generated/assets/cldr/en_GB.json +4329 -4969
- package/dist/generated/assets/cldr/en_HK.json +4337 -4975
- package/dist/generated/assets/cldr/en_IE.json +4328 -4969
- package/dist/generated/assets/cldr/en_IN.json +4333 -4970
- package/dist/generated/assets/cldr/en_NZ.json +4328 -4969
- package/dist/generated/assets/cldr/en_PG.json +4329 -4970
- package/dist/generated/assets/cldr/en_SG.json +4333 -4971
- package/dist/generated/assets/cldr/en_ZA.json +4329 -4970
- package/dist/generated/assets/cldr/es.json +4331 -4910
- package/dist/generated/assets/cldr/es_AR.json +4334 -4912
- package/dist/generated/assets/cldr/es_BO.json +4333 -4911
- package/dist/generated/assets/cldr/es_CL.json +4334 -4912
- package/dist/generated/assets/cldr/es_CO.json +4333 -4911
- package/dist/generated/assets/cldr/es_MX.json +4335 -4913
- package/dist/generated/assets/cldr/es_PE.json +4333 -4911
- package/dist/generated/assets/cldr/es_UY.json +4335 -4913
- package/dist/generated/assets/cldr/es_VE.json +4334 -4912
- package/dist/generated/assets/cldr/et.json +4340 -4965
- package/dist/generated/assets/cldr/fa.json +4367 -4881
- package/dist/generated/assets/cldr/fi.json +4463 -5006
- package/dist/generated/assets/cldr/fr.json +4357 -4977
- package/dist/generated/assets/cldr/fr_BE.json +4357 -4977
- package/dist/generated/assets/cldr/fr_CA.json +4351 -4971
- package/dist/generated/assets/cldr/fr_CH.json +4375 -4995
- package/dist/generated/assets/cldr/fr_LU.json +4357 -4977
- package/dist/generated/assets/cldr/he.json +4869 -5376
- package/dist/generated/assets/cldr/hi.json +4295 -4827
- package/dist/generated/assets/cldr/hr.json +4583 -4917
- package/dist/generated/assets/cldr/hu.json +4364 -4854
- package/dist/generated/assets/cldr/id.json +4060 -4656
- package/dist/generated/assets/cldr/it.json +4299 -4948
- package/dist/generated/assets/cldr/it_CH.json +4299 -4948
- package/dist/generated/assets/cldr/ja.json +4211 -4828
- package/dist/generated/assets/cldr/kk.json +4339 -4723
- package/dist/generated/assets/cldr/ko.json +4189 -4736
- package/dist/generated/assets/cldr/lt.json +4850 -5479
- package/dist/generated/assets/cldr/lv.json +4587 -5110
- package/dist/generated/assets/cldr/ms.json +4021 -4513
- package/dist/generated/assets/cldr/nb.json +4335 -4975
- package/dist/generated/assets/cldr/nl.json +4294 -4882
- package/dist/generated/assets/cldr/nl_BE.json +4294 -4882
- package/dist/generated/assets/cldr/pl.json +4667 -5174
- package/dist/generated/assets/cldr/pt.json +4235 -4803
- package/dist/generated/assets/cldr/pt_PT.json +4372 -4938
- package/dist/generated/assets/cldr/ro.json +4563 -5088
- package/dist/generated/assets/cldr/ru.json +4909 -5405
- package/dist/generated/assets/cldr/ru_UA.json +4909 -5405
- package/dist/generated/assets/cldr/sk.json +4939 -5368
- package/dist/generated/assets/cldr/sl.json +4910 -5338
- package/dist/generated/assets/cldr/sr.json +4585 -5124
- package/dist/generated/assets/cldr/sr_Latn.json +4576 -0
- package/dist/generated/assets/cldr/sv.json +4362 -5009
- package/dist/generated/assets/cldr/th.json +4214 -4795
- package/dist/generated/assets/cldr/tr.json +4400 -4977
- package/dist/generated/assets/cldr/uk.json +4858 -5351
- package/dist/generated/assets/cldr/vi.json +4070 -4671
- package/dist/generated/assets/cldr/zh_CN.json +4100 -4630
- package/dist/generated/assets/cldr/zh_HK.json +4108 -4638
- package/dist/generated/assets/cldr/zh_SG.json +4108 -4638
- package/dist/generated/assets/cldr/zh_TW.json +4131 -4726
- package/dist/generated/json-imports/LocaleData-static.js +90 -0
- package/dist/generated/json-imports/LocaleData.js +88 -91
- package/dist/getCachedLocaleDataInstance.d.ts +4 -0
- package/dist/getCachedLocaleDataInstance.js +10 -0
- package/dist/getCachedLocaleDataInstance.js.map +1 -0
- package/dist/locale/getLocaleData.d.ts +11 -0
- package/dist/locale/getLocaleData.js +13 -17
- package/dist/locale/getLocaleData.js.map +1 -0
- package/dist/sap/base/Log.js +28 -37
- package/dist/sap/base/assert.js +5 -10
- package/dist/sap/base/i18n/LanguageTag.js +35 -0
- package/dist/sap/base/i18n/Localization.d.ts +4 -0
- package/dist/sap/base/i18n/Localization.js +12 -0
- package/dist/sap/base/i18n/Localization.js.map +1 -0
- package/dist/sap/base/i18n/date/CalendarType.js +8 -0
- package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
- package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
- package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
- package/dist/sap/base/util/LoaderExtensions.js +11 -4
- package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
- 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 +21 -12
- package/dist/sap/ui/base/Object.js +26 -2
- package/dist/sap/ui/core/CalendarType.js +2 -8
- package/dist/sap/ui/core/Configuration.d.ts +18 -0
- package/dist/sap/ui/core/Configuration.js +23 -0
- package/dist/sap/ui/core/Configuration.js.map +1 -0
- package/dist/sap/ui/core/Core.d.ts +27 -0
- package/dist/sap/ui/core/Core.js +7 -32
- package/dist/sap/ui/core/Core.js.map +1 -0
- package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
- package/dist/sap/ui/core/FormatSettings.js +14 -0
- package/dist/sap/ui/core/FormatSettings.js.map +1 -0
- package/dist/sap/ui/core/Locale.js +28 -86
- package/dist/sap/ui/core/LocaleData.js +237 -1538
- package/dist/sap/ui/core/date/Buddhist.js +0 -6
- package/dist/sap/ui/core/date/CalendarUtils.js +25 -0
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -0
- package/dist/sap/ui/core/date/Islamic.js +3 -3
- package/dist/sap/ui/core/date/Japanese.js +4 -4
- package/dist/sap/ui/core/date/UI5Date.js +305 -0
- package/dist/sap/ui/core/date/UniversalDate.js +74 -25
- package/dist/sap/ui/core/format/DateFormat.js +881 -517
- package/dist/sap/ui/core/format/TimezoneUtil.js +2 -0
- package/package-scripts.cjs +37 -0
- package/package.json +14 -13
- package/tsconfig.json +14 -0
- package/used-modules.txt +9 -1
- package/package-scripts.js +0 -31
- package/src/Assets.js +0 -2
- package/src/DateFormat.js +0 -3
- package/src/LocaleData.js +0 -3
- package/src/dates/CalendarDate.js +0 -203
- package/src/dates/calculateWeekNumber.js +0 -51
- package/src/locale/getLocaleData.js +0 -27
- package/src/sap/base/util/LoaderExtensions.js +0 -7
- package/src/sap/ui/core/Core.js +0 -38
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
- /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
- /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
- /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
- /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
- /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
var TimezoneUtils = {};
|
2
|
+
var sLocalTimezone = "";
|
3
|
+
var aSupportedTimezoneIDs;
|
4
|
+
var oIntlDateTimeFormatCache = {
|
5
|
+
_oCache: new Map(),
|
6
|
+
_iCacheLimit: 10,
|
7
|
+
get: function (sTimezone) {
|
8
|
+
var cacheEntry = this._oCache.get(sTimezone);
|
9
|
+
if (cacheEntry) {
|
10
|
+
return cacheEntry;
|
11
|
+
}
|
12
|
+
var oOptions = {
|
13
|
+
hourCycle: "h23",
|
14
|
+
hour: "2-digit",
|
15
|
+
minute: "2-digit",
|
16
|
+
second: "2-digit",
|
17
|
+
fractionalSecondDigits: 3,
|
18
|
+
day: "2-digit",
|
19
|
+
month: "2-digit",
|
20
|
+
year: "numeric",
|
21
|
+
timeZone: sTimezone,
|
22
|
+
timeZoneName: "short",
|
23
|
+
era: "narrow",
|
24
|
+
weekday: "short"
|
25
|
+
};
|
26
|
+
var oInstance = new Intl.DateTimeFormat("en-US", oOptions);
|
27
|
+
if (this._oCache.size === this._iCacheLimit) {
|
28
|
+
this._oCache = new Map();
|
29
|
+
}
|
30
|
+
this._oCache.set(sTimezone, oInstance);
|
31
|
+
return oInstance;
|
32
|
+
}
|
33
|
+
};
|
34
|
+
TimezoneUtils.isValidTimezone = function (sTimezone) {
|
35
|
+
if (!sTimezone) {
|
36
|
+
return false;
|
37
|
+
}
|
38
|
+
if (Intl.supportedValuesOf) {
|
39
|
+
try {
|
40
|
+
aSupportedTimezoneIDs = aSupportedTimezoneIDs || Intl.supportedValuesOf("timeZone");
|
41
|
+
if (aSupportedTimezoneIDs.includes(sTimezone)) {
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
} catch (oError) {
|
45
|
+
aSupportedTimezoneIDs = [];
|
46
|
+
}
|
47
|
+
}
|
48
|
+
try {
|
49
|
+
oIntlDateTimeFormatCache.get(sTimezone);
|
50
|
+
return true;
|
51
|
+
} catch (oError) {
|
52
|
+
return false;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
TimezoneUtils.convertToTimezone = function (oDate, sTargetTimezone) {
|
56
|
+
var oFormatParts = this._getParts(oDate, sTargetTimezone);
|
57
|
+
return TimezoneUtils._getDateFromParts(oFormatParts);
|
58
|
+
};
|
59
|
+
TimezoneUtils._getParts = function (oDate, sTargetTimezone) {
|
60
|
+
var sKey, oPart, oDateParts = Object.create(null), oIntlDate = oIntlDateTimeFormatCache.get(sTargetTimezone), oParts = oIntlDate.formatToParts(new Date(oDate.getTime()));
|
61
|
+
for (sKey in oParts) {
|
62
|
+
oPart = oParts[sKey];
|
63
|
+
if (oPart.type !== "literal") {
|
64
|
+
oDateParts[oPart.type] = oPart.value;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
return oDateParts;
|
68
|
+
};
|
69
|
+
TimezoneUtils._getDateFromParts = function (oParts) {
|
70
|
+
var oDate = new Date(0), iUTCYear = parseInt(oParts.year);
|
71
|
+
if (oParts.era === "B") {
|
72
|
+
iUTCYear = iUTCYear * -1 + 1;
|
73
|
+
}
|
74
|
+
oDate.setUTCFullYear(iUTCYear, parseInt(oParts.month) - 1, parseInt(oParts.day));
|
75
|
+
oDate.setUTCHours(parseInt(oParts.hour), parseInt(oParts.minute), parseInt(oParts.second), parseInt(oParts.fractionalSecond || 0));
|
76
|
+
return oDate;
|
77
|
+
};
|
78
|
+
TimezoneUtils.calculateOffset = function (oDate, sTimezoneSource) {
|
79
|
+
var oFirstGuess = this.convertToTimezone(oDate, sTimezoneSource), iInitialOffset = oDate.getTime() - oFirstGuess.getTime(), oDateSource = new Date(oDate.getTime() + iInitialOffset), oDateTarget = this.convertToTimezone(oDateSource, sTimezoneSource);
|
80
|
+
return (oDateSource.getTime() - oDateTarget.getTime()) / 1000;
|
81
|
+
};
|
82
|
+
TimezoneUtils.getLocalTimezone = function () {
|
83
|
+
if (sLocalTimezone) {
|
84
|
+
return sLocalTimezone;
|
85
|
+
}
|
86
|
+
sLocalTimezone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
87
|
+
return sLocalTimezone;
|
88
|
+
};
|
89
|
+
export default TimezoneUtils;
|
@@ -1,7 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
|
1
|
+
import { getLocaleData } from "@ui5/webcomponents-base/dist/asset-registries/LocaleData.js";
|
2
|
+
const loadResource = (moduleName) => {
|
3
|
+
const moduleFormat = moduleName.match(/sap\/ui\/core\/cldr\/(\w+)\.json/);
|
4
|
+
if (!moduleFormat) {
|
5
|
+
throw new Error(`Unknown module "${moduleName}"`);
|
6
|
+
}
|
7
|
+
const localeId = moduleFormat[1];
|
8
|
+
return getLocaleData(localeId);
|
9
|
+
};
|
3
10
|
const LoaderExtensions = {
|
4
|
-
|
11
|
+
loadResource,
|
5
12
|
};
|
6
|
-
|
7
13
|
export default LoaderExtensions;
|
14
|
+
//# sourceMappingURL=LoaderExtensions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LoaderExtensions.js","sourceRoot":"","sources":["../../../../src/sap/base/util/LoaderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;KAClD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACxB,YAAY;CACZ,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import { getLocaleData } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\n\nconst loadResource = (moduleName: string) => {\n\tconst moduleFormat = moduleName.match(/sap\\/ui\\/core\\/cldr\\/(\\w+)\\.json/);\n\tif (!moduleFormat) {\n\t\tthrow new Error(`Unknown module \"${moduleName}\"`);\n\t}\n\n\tconst localeId = moduleFormat[1];\n\treturn getLocaleData(localeId);\n};\n\nconst LoaderExtensions = {\n\tloadResource,\n};\n\nexport default LoaderExtensions;\n"]}
|
@@ -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,8 +1,10 @@
|
|
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';
|
5
|
+
function isFunction(obj) {
|
6
|
+
return typeof obj === 'function';
|
7
|
+
}
|
6
8
|
var Metadata = function (sClassName, oClassInfo) {
|
7
9
|
assert(typeof sClassName === 'string' && sClassName, 'Metadata: sClassName must be a non-empty string');
|
8
10
|
assert(typeof oClassInfo === 'object', 'Metadata: oClassInfo must be empty or an object');
|
@@ -14,7 +16,7 @@ var Metadata = function (sClassName, oClassInfo) {
|
|
14
16
|
oClassInfo.metadata.__version = 1;
|
15
17
|
}
|
16
18
|
oClassInfo.metadata.__version = oClassInfo.metadata.__version || 2;
|
17
|
-
if (
|
19
|
+
if (!isFunction(oClassInfo.constructor)) {
|
18
20
|
throw Error('constructor for class ' + sClassName + ' must have been declared before creating metadata for it');
|
19
21
|
}
|
20
22
|
this._sClassName = sClassName;
|
@@ -28,9 +30,17 @@ Metadata.prototype.extend = function (oClassInfo) {
|
|
28
30
|
Metadata.prototype.applySettings = function (oClassInfo) {
|
29
31
|
var that = this, oStaticInfo = oClassInfo.metadata, oPrototype;
|
30
32
|
if (oStaticInfo.baseType) {
|
31
|
-
var oParentClass
|
32
|
-
if (
|
33
|
-
|
33
|
+
var oParentClass;
|
34
|
+
if (isFunction(oStaticInfo.baseType)) {
|
35
|
+
oParentClass = oStaticInfo.baseType;
|
36
|
+
if (!isFunction(oParentClass.getMetadata)) {
|
37
|
+
throw new TypeError('baseType must be a UI5 class with a static getMetadata function');
|
38
|
+
}
|
39
|
+
} else {
|
40
|
+
oParentClass = ObjectPath.get(oStaticInfo.baseType);
|
41
|
+
if (!isFunction(oParentClass)) {
|
42
|
+
Log.fatal('base class \'' + oStaticInfo.baseType + '\' does not exist');
|
43
|
+
}
|
34
44
|
}
|
35
45
|
if (oParentClass.getMetadata) {
|
36
46
|
this._oParent = oParentClass.getMetadata();
|
@@ -112,7 +122,6 @@ Metadata.prototype.isInstanceOf = function (sInterface) {
|
|
112
122
|
}
|
113
123
|
return false;
|
114
124
|
};
|
115
|
-
var WRITABLE_IFF_PHANTOM = !!Device.browser.phantomJS;
|
116
125
|
Object.defineProperty(Metadata.prototype, '_mImplementedTypes', {
|
117
126
|
get: function () {
|
118
127
|
if (this === Metadata.prototype) {
|
@@ -128,7 +137,7 @@ Object.defineProperty(Metadata.prototype, '_mImplementedTypes', {
|
|
128
137
|
}
|
129
138
|
Object.defineProperty(this, '_mImplementedTypes', {
|
130
139
|
value: Object.freeze(result),
|
131
|
-
writable:
|
140
|
+
writable: false,
|
132
141
|
configurable: false
|
133
142
|
});
|
134
143
|
return result;
|
@@ -169,12 +178,12 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
169
178
|
sClassName = fnBaseClass;
|
170
179
|
fnBaseClass = null;
|
171
180
|
}
|
172
|
-
assert(!fnBaseClass ||
|
181
|
+
assert(!fnBaseClass || isFunction(fnBaseClass));
|
173
182
|
assert(typeof sClassName === 'string' && !!sClassName);
|
174
183
|
assert(!oClassInfo || typeof oClassInfo === 'object');
|
175
|
-
assert(!FNMetaImpl ||
|
184
|
+
assert(!FNMetaImpl || isFunction(FNMetaImpl));
|
176
185
|
FNMetaImpl = FNMetaImpl || Metadata;
|
177
|
-
if (
|
186
|
+
if (isFunction(FNMetaImpl.preprocessClassInfo)) {
|
178
187
|
oClassInfo = FNMetaImpl.preprocessClassInfo(oClassInfo);
|
179
188
|
}
|
180
189
|
oClassInfo = oClassInfo || {};
|
@@ -183,7 +192,7 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
183
192
|
oClassInfo.constructor = undefined;
|
184
193
|
}
|
185
194
|
var fnClass = oClassInfo.constructor;
|
186
|
-
assert(!fnClass ||
|
195
|
+
assert(!fnClass || isFunction(fnClass));
|
187
196
|
if (fnBaseClass) {
|
188
197
|
if (!fnClass) {
|
189
198
|
if (oClassInfo.metadata.deprecated) {
|
@@ -199,7 +208,7 @@ Metadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl
|
|
199
208
|
}
|
200
209
|
fnClass.prototype = Object.create(fnBaseClass.prototype);
|
201
210
|
fnClass.prototype.constructor = fnClass;
|
202
|
-
oClassInfo.metadata.baseType = fnBaseClass
|
211
|
+
oClassInfo.metadata.baseType = fnBaseClass;
|
203
212
|
} else {
|
204
213
|
fnClass = fnClass || function () {
|
205
214
|
};
|
@@ -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;
|
@@ -1,8 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Islamic: "Islamic",
|
4
|
-
Japanese: "Japanese",
|
5
|
-
Persian: "Persian",
|
6
|
-
Buddhist: "Buddhist"
|
7
|
-
};
|
8
|
-
export default CalendarType;
|
1
|
+
import CalendarType from '../../base/i18n/date/CalendarType.js';
|
2
|
+
export default CalendarType;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* OpenUI5 Configuration Shim
|
3
|
+
*/
|
4
|
+
declare const Configuration: {
|
5
|
+
getLanguage: () => string | undefined;
|
6
|
+
getCalendarType: () => import("@ui5/webcomponents-base/dist/types/CalendarType.js").default;
|
7
|
+
getSupportedLanguages: () => string[] | null;
|
8
|
+
getOriginInfo: () => void;
|
9
|
+
getFormatSettings: () => {
|
10
|
+
getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
|
11
|
+
getLegacyDateFormat: () => void;
|
12
|
+
getCustomLocaleData: () => void;
|
13
|
+
getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
|
14
|
+
};
|
15
|
+
getTimezone: () => string;
|
16
|
+
getCalendarWeekNumbering: () => string;
|
17
|
+
};
|
18
|
+
export default Configuration;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
|
2
|
+
import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
|
3
|
+
import { getTimezone as getConfigTimezone } from "@ui5/webcomponents-base/dist/config/Timezone.js";
|
4
|
+
import getDesigntimePropertyAsArray from "@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js";
|
5
|
+
// @ts-ignore
|
6
|
+
import TimezoneUtil from "./format/TimezoneUtil.js";
|
7
|
+
import FormatSettings from "./FormatSettings.js";
|
8
|
+
const emptyFn = () => { };
|
9
|
+
/**
|
10
|
+
* OpenUI5 Configuration Shim
|
11
|
+
*/
|
12
|
+
const Configuration = {
|
13
|
+
getLanguage,
|
14
|
+
getCalendarType,
|
15
|
+
getSupportedLanguages: () => getDesigntimePropertyAsArray("$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$"),
|
16
|
+
getOriginInfo: emptyFn,
|
17
|
+
getFormatSettings: () => FormatSettings,
|
18
|
+
getTimezone: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone(),
|
19
|
+
// Calculate calendar week numbering by active format locale
|
20
|
+
getCalendarWeekNumbering: () => "Default",
|
21
|
+
};
|
22
|
+
export default Configuration;
|
23
|
+
//# sourceMappingURL=Configuration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,4BAA4B,MAAM,mEAAmE,CAAC;AAC7G,aAAa;AACb,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,aAAa,GAAG;IACrB,WAAW;IACX,eAAe;IACf,qBAAqB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,2IAA2I,CAAC;IACtM,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;IACvC,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,IAAI,YAAY,CAAC,gBAAgB,EAAY;IACnF,4DAA4D;IAC5D,wBAAwB,EAAE,GAAG,EAAE,CAAC,SAAS;CACzC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport { getTimezone as getConfigTimezone } from \"@ui5/webcomponents-base/dist/config/Timezone.js\";\nimport getDesigntimePropertyAsArray from \"@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js\";\n// @ts-ignore\nimport TimezoneUtil from \"./format/TimezoneUtil.js\";\nimport FormatSettings from \"./FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Configuration Shim\n */\nconst Configuration = {\n\tgetLanguage,\n\tgetCalendarType,\n\tgetSupportedLanguages: () => getDesigntimePropertyAsArray(\"$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$\"),\n\tgetOriginInfo: emptyFn,\n\tgetFormatSettings: () => FormatSettings,\n\tgetTimezone: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone() as string,\n\t// Calculate calendar week numbering by active format locale\n\tgetCalendarWeekNumbering: () => \"Default\",\n};\n\nexport default Configuration;\n"]}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* OpenUI5 Core shim
|
3
|
+
*/
|
4
|
+
declare const Core: {
|
5
|
+
getConfiguration: () => {
|
6
|
+
getLanguage: () => string | undefined;
|
7
|
+
getCalendarType: () => import("@ui5/webcomponents-base/dist/types/CalendarType.js").default;
|
8
|
+
getSupportedLanguages: () => string[] | null;
|
9
|
+
getOriginInfo: () => void;
|
10
|
+
getFormatSettings: () => {
|
11
|
+
getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
|
12
|
+
getLegacyDateFormat: () => void;
|
13
|
+
getCustomLocaleData: () => void;
|
14
|
+
getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
|
15
|
+
};
|
16
|
+
getTimezone: () => string;
|
17
|
+
getCalendarWeekNumbering: () => string;
|
18
|
+
};
|
19
|
+
getLibraryResourceBundle: void;
|
20
|
+
getFormatSettings: () => {
|
21
|
+
getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
|
22
|
+
getLegacyDateFormat: () => void;
|
23
|
+
getCustomLocaleData: () => void;
|
24
|
+
getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
|
25
|
+
};
|
26
|
+
};
|
27
|
+
export default Core;
|
package/dist/sap/ui/core/Core.js
CHANGED
@@ -1,38 +1,13 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
|
4
|
-
import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
|
5
|
-
|
6
|
-
const emptyFn = () => {};
|
7
|
-
|
8
|
-
/**
|
9
|
-
* OpenUI5 FormatSettings shim
|
10
|
-
*/
|
11
|
-
const FormatSettings = {
|
12
|
-
getFormatLocale: getLocale,
|
13
|
-
getLegacyDateFormat: emptyFn,
|
14
|
-
getLegacyDateCalendarCustomizing: emptyFn,
|
15
|
-
getCustomLocaleData: emptyFn,
|
16
|
-
};
|
17
|
-
|
18
|
-
/**
|
19
|
-
* OpenUI5 Configuration Shim
|
20
|
-
*/
|
21
|
-
const Configuration = {
|
22
|
-
getLanguage,
|
23
|
-
getCalendarType,
|
24
|
-
getSupportedLanguages: () => getDesigntimePropertyAsArray("$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$"),
|
25
|
-
getOriginInfo: emptyFn,
|
26
|
-
getFormatSettings: () => FormatSettings,
|
27
|
-
};
|
28
|
-
|
1
|
+
import FormatSettings from "./FormatSettings.js";
|
2
|
+
import Configuration from "./Configuration.js";
|
3
|
+
const emptyFn = () => { };
|
29
4
|
/**
|
30
5
|
* OpenUI5 Core shim
|
31
6
|
*/
|
32
7
|
const Core = {
|
33
|
-
|
34
|
-
|
35
|
-
|
8
|
+
getConfiguration: () => Configuration,
|
9
|
+
getLibraryResourceBundle: emptyFn(),
|
10
|
+
getFormatSettings: () => FormatSettings,
|
36
11
|
};
|
37
|
-
|
38
12
|
export default Core;
|
13
|
+
//# sourceMappingURL=Core.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Core.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,IAAI,GAAG;IACZ,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;IACrC,wBAAwB,EAAE,OAAO,EAAE;IACnC,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;CACvC,CAAC;AAEF,eAAe,IAAI,CAAC","sourcesContent":["import FormatSettings from \"./FormatSettings.js\";\nimport Configuration from \"./Configuration.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Core shim\n */\nconst Core = {\n\tgetConfiguration: () => Configuration,\n\tgetLibraryResourceBundle: emptyFn(),\n\tgetFormatSettings: () => FormatSettings,\n};\n\nexport default Core;\n"]}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/**
|
2
|
+
* OpenUI5 FormatSettings shim
|
3
|
+
*/
|
4
|
+
declare const FormatSettings: {
|
5
|
+
getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale").default;
|
6
|
+
getLegacyDateFormat: () => void;
|
7
|
+
getCustomLocaleData: () => void;
|
8
|
+
getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats").default.getLegacyDateCalendarCustomizing;
|
9
|
+
};
|
10
|
+
export default FormatSettings;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
|
2
|
+
import { getLegacyDateCalendarCustomizing } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
|
3
|
+
const emptyFn = () => { };
|
4
|
+
/**
|
5
|
+
* OpenUI5 FormatSettings shim
|
6
|
+
*/
|
7
|
+
const FormatSettings = {
|
8
|
+
getFormatLocale: getLocale,
|
9
|
+
getLegacyDateFormat: emptyFn,
|
10
|
+
getCustomLocaleData: emptyFn,
|
11
|
+
getLegacyDateCalendarCustomizing,
|
12
|
+
};
|
13
|
+
export default FormatSettings;
|
14
|
+
//# sourceMappingURL=FormatSettings.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC;CAChC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getLegacyDateCalendarCustomizing } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 FormatSettings shim\n */\nconst FormatSettings = {\n\tgetFormatLocale: getLocale,\n\tgetLegacyDateFormat: emptyFn,\n\tgetCustomLocaleData: emptyFn,\n\tgetLegacyDateCalendarCustomizing,\n};\n\nexport default FormatSettings;\n"]}
|
@@ -1,120 +1,62 @@
|
|
1
|
-
import BaseObject from '../base/Object.js';
|
2
1
|
import assert from '../../base/assert.js';
|
3
|
-
|
2
|
+
import BaseObject from '../base/Object.js';
|
3
|
+
import Localization from '../../base/i18n/Localization.js';
|
4
|
+
import LanguageTag from '../../base/i18n/LanguageTag.js';
|
4
5
|
var Locale = BaseObject.extend('sap.ui.core.Locale', {
|
5
|
-
constructor: function (
|
6
|
+
constructor: function (vLocale) {
|
6
7
|
BaseObject.apply(this);
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
}
|
11
|
-
|
12
|
-
|
13
|
-
this.sScript = aResult[2] || null;
|
14
|
-
this.sRegion = aResult[3] || null;
|
15
|
-
this.sVariant = aResult[4] && aResult[4].slice(1) || null;
|
16
|
-
this.sExtension = aResult[5] && aResult[5].slice(1) || null;
|
17
|
-
this.sPrivateUse = aResult[6] || null;
|
18
|
-
if (this.sLanguage) {
|
19
|
-
this.sLanguage = this.sLanguage.toLowerCase();
|
20
|
-
}
|
21
|
-
if (this.sScript) {
|
22
|
-
this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {
|
23
|
-
return $.toUpperCase();
|
24
|
-
});
|
25
|
-
}
|
26
|
-
if (this.sRegion) {
|
27
|
-
this.sRegion = this.sRegion.toUpperCase();
|
8
|
+
if (vLocale instanceof LanguageTag) {
|
9
|
+
this.oLanguageTag = vLocale;
|
10
|
+
this.sLocaleId = this.oLanguageTag.toString();
|
11
|
+
} else {
|
12
|
+
this.oLanguageTag = new LanguageTag(vLocale);
|
13
|
+
this.sLocaleId = vLocale;
|
28
14
|
}
|
15
|
+
Object.assign(this, this.oLanguageTag);
|
16
|
+
this.sLanguage = this.language;
|
29
17
|
},
|
30
18
|
getLanguage: function () {
|
31
|
-
return this.
|
19
|
+
return this.language;
|
32
20
|
},
|
33
21
|
getScript: function () {
|
34
|
-
return this.
|
22
|
+
return this.script;
|
35
23
|
},
|
36
24
|
getRegion: function () {
|
37
|
-
return this.
|
25
|
+
return this.region;
|
38
26
|
},
|
39
27
|
getVariant: function () {
|
40
|
-
return this.
|
28
|
+
return this.variant;
|
41
29
|
},
|
42
30
|
getVariantSubtags: function () {
|
43
|
-
return this.
|
31
|
+
return this.variantSubtags;
|
44
32
|
},
|
45
33
|
getExtension: function () {
|
46
|
-
return this.
|
34
|
+
return this.extension;
|
47
35
|
},
|
48
36
|
getExtensionSubtags: function () {
|
49
|
-
return this.
|
37
|
+
return this.extensionSubtags;
|
50
38
|
},
|
51
39
|
getPrivateUse: function () {
|
52
|
-
return this.
|
40
|
+
return this.privateUse;
|
53
41
|
},
|
54
42
|
getPrivateUseSubtags: function () {
|
55
|
-
return this.
|
43
|
+
return this.privateUseSubtags;
|
56
44
|
},
|
57
45
|
hasPrivateUseSubtag: function (sSubtag) {
|
58
46
|
assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');
|
59
|
-
return this.
|
47
|
+
return this.privateUseSubtags.indexOf(sSubtag) >= 0;
|
60
48
|
},
|
61
49
|
toString: function () {
|
62
|
-
|
63
|
-
if (this.sScript) {
|
64
|
-
r.push(this.sScript);
|
65
|
-
}
|
66
|
-
if (this.sRegion) {
|
67
|
-
r.push(this.sRegion);
|
68
|
-
}
|
69
|
-
if (this.sVariant) {
|
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);
|
77
|
-
}
|
78
|
-
return r.join('-');
|
50
|
+
return this.oLanguageTag.toString();
|
79
51
|
},
|
80
52
|
getSAPLogonLanguage: function () {
|
81
|
-
|
82
|
-
if (sLanguage.indexOf('-') >= 0) {
|
83
|
-
sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
|
84
|
-
}
|
85
|
-
sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
86
|
-
if (sLanguage === 'zh') {
|
87
|
-
if (this.sScript === 'Hant' || !this.sScript && this.sRegion === 'TW') {
|
88
|
-
sLanguage = 'zf';
|
89
|
-
}
|
90
|
-
}
|
91
|
-
if (this.sPrivateUse && (m = /-(saptrc|sappsd)(?:-|$)/i.exec(this.sPrivateUse))) {
|
92
|
-
sLanguage = m[1].toLowerCase() === 'saptrc' ? '1Q' : '2Q';
|
93
|
-
}
|
94
|
-
return sLanguage.toUpperCase();
|
53
|
+
return Localization._getSAPLogonLanguage(this);
|
95
54
|
}
|
96
55
|
});
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
'in': 'id',
|
101
|
-
'sh': 'sr'
|
102
|
-
};
|
103
|
-
function getDesigntimePropertyAsArray(sValue) {
|
104
|
-
var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
|
105
|
-
return m && m[2] ? m[2].split(/,/) : null;
|
106
|
-
}
|
107
|
-
var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
|
108
|
-
Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,br,ca,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,nn,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
|
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$');
|
110
|
-
Locale._impliesRTL = function (vLanguage) {
|
111
|
-
var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
|
112
|
-
var sLanguage = oLocale.getLanguage() || '';
|
113
|
-
sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
|
114
|
-
var sRegion = oLocale.getRegion() || '';
|
115
|
-
if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {
|
116
|
-
return true;
|
56
|
+
Locale._getCoreLocale = function (oLocale) {
|
57
|
+
if (oLocale instanceof LanguageTag) {
|
58
|
+
oLocale = new Locale(oLocale);
|
117
59
|
}
|
118
|
-
return
|
60
|
+
return oLocale;
|
119
61
|
};
|
120
62
|
export default Locale;
|