@ui5/webcomponents-localization 0.0.0-dc3ccac50 → 0.0.0-dcd8e5389
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 -1
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +369 -0
- package/README.md +5 -6
- package/{src/Assets-static.js → dist/Assets-static.d.ts} +0 -1
- package/dist/Assets-static.js +1 -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 -201
- package/dist/dates/CalendarDate.js.map +1 -0
- package/dist/dates/ExtremeDates.d.ts +5 -0
- package/dist/dates/ExtremeDates.js +25 -35
- 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 +10 -9
- package/dist/dates/getRoundedTimestamp.js.map +1 -0
- package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
- package/dist/dates/getTodayUTCTimestamp.js +3 -3
- package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
- package/dist/dates/modifyDateBy.d.ts +13 -0
- package/dist/dates/modifyDateBy.js +27 -29
- 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 +2816 -5906
- package/dist/generated/assets/cldr/ar_EG.json +2816 -5906
- package/dist/generated/assets/cldr/ar_SA.json +2815 -5906
- package/dist/generated/assets/cldr/bg.json +2733 -4979
- package/dist/generated/assets/cldr/ca.json +2680 -4996
- package/dist/generated/assets/cldr/cs.json +2716 -5498
- package/dist/generated/assets/cldr/cy.json +2797 -5884
- package/dist/generated/assets/cldr/da.json +2597 -4888
- package/dist/generated/assets/cldr/de.json +2614 -4916
- package/dist/generated/assets/cldr/de_AT.json +2614 -4917
- package/dist/generated/assets/cldr/de_CH.json +2614 -4915
- package/dist/generated/assets/cldr/el.json +2595 -4883
- package/dist/generated/assets/cldr/el_CY.json +2595 -4883
- package/dist/generated/assets/cldr/en.json +2583 -4971
- package/dist/generated/assets/cldr/en_AU.json +2592 -4962
- package/dist/generated/assets/cldr/en_GB.json +2584 -4971
- package/dist/generated/assets/cldr/en_HK.json +2593 -4977
- package/dist/generated/assets/cldr/en_IE.json +2584 -4971
- package/dist/generated/assets/cldr/en_IN.json +2588 -4972
- package/dist/generated/assets/cldr/en_NZ.json +2584 -4971
- package/dist/generated/assets/cldr/en_PG.json +2584 -4972
- package/dist/generated/assets/cldr/en_SG.json +2588 -4973
- package/dist/generated/assets/cldr/en_ZA.json +2584 -4972
- package/dist/generated/assets/cldr/es.json +2640 -4912
- package/dist/generated/assets/cldr/es_AR.json +2645 -4914
- package/dist/generated/assets/cldr/es_BO.json +2645 -4913
- package/dist/generated/assets/cldr/es_CL.json +2645 -4914
- package/dist/generated/assets/cldr/es_CO.json +2644 -4913
- package/dist/generated/assets/cldr/es_MX.json +2645 -4915
- package/dist/generated/assets/cldr/es_PE.json +2645 -4913
- package/dist/generated/assets/cldr/es_UY.json +2645 -4915
- package/dist/generated/assets/cldr/es_VE.json +2645 -4914
- package/dist/generated/assets/cldr/et.json +2599 -4967
- package/dist/generated/assets/cldr/fa.json +2618 -4883
- package/dist/generated/assets/cldr/fi.json +2726 -5008
- package/dist/generated/assets/cldr/fr.json +2590 -4979
- package/dist/generated/assets/cldr/fr_BE.json +2590 -4979
- package/dist/generated/assets/cldr/fr_CA.json +2605 -4973
- package/dist/generated/assets/cldr/fr_CH.json +2607 -4997
- package/dist/generated/assets/cldr/fr_LU.json +2590 -4979
- package/dist/generated/assets/cldr/he.json +2711 -5378
- package/dist/generated/assets/cldr/hi.json +2602 -4829
- package/dist/generated/assets/cldr/hr.json +2652 -4919
- package/dist/generated/assets/cldr/hu.json +2598 -4856
- package/dist/generated/assets/cldr/id.json +2544 -4658
- package/dist/generated/assets/cldr/it.json +2590 -4950
- package/dist/generated/assets/cldr/it_CH.json +2590 -4950
- package/dist/generated/assets/cldr/ja.json +2663 -4830
- package/dist/generated/assets/cldr/kk.json +2589 -4725
- package/dist/generated/assets/cldr/ko.json +2641 -4738
- package/dist/generated/assets/cldr/lt.json +2720 -5481
- package/dist/generated/assets/cldr/lv.json +2644 -5112
- package/dist/generated/assets/cldr/ms.json +2538 -4515
- package/dist/generated/assets/cldr/nb.json +2621 -4977
- package/dist/generated/assets/cldr/nl.json +2601 -4884
- package/dist/generated/assets/cldr/nl_BE.json +2601 -4884
- package/dist/generated/assets/cldr/pl.json +2723 -5176
- package/dist/generated/assets/cldr/pt.json +2607 -4805
- package/dist/generated/assets/cldr/pt_PT.json +2658 -4940
- package/dist/generated/assets/cldr/ro.json +2645 -5090
- package/dist/generated/assets/cldr/ru.json +2704 -5407
- package/dist/generated/assets/cldr/ru_UA.json +2704 -5407
- package/dist/generated/assets/cldr/sk.json +2726 -5370
- package/dist/generated/assets/cldr/sl.json +2688 -5340
- package/dist/generated/assets/cldr/sr.json +2663 -5126
- package/dist/generated/assets/cldr/sr_Latn.json +2666 -5127
- package/dist/generated/assets/cldr/sv.json +2631 -5011
- package/dist/generated/assets/cldr/th.json +2635 -4797
- package/dist/generated/assets/cldr/tr.json +2612 -4979
- package/dist/generated/assets/cldr/uk.json +2684 -5353
- package/dist/generated/assets/cldr/vi.json +2555 -4673
- package/dist/generated/assets/cldr/zh_CN.json +2555 -4632
- package/dist/generated/assets/cldr/zh_HK.json +2563 -4640
- package/dist/generated/assets/cldr/zh_SG.json +2562 -4640
- package/dist/generated/assets/cldr/zh_TW.json +2587 -4728
- package/dist/generated/json-imports/LocaleData-static.js +2 -1
- package/dist/generated/json-imports/LocaleData.js +2 -1
- package/dist/getCachedLocaleDataInstance.d.ts +4 -0
- package/dist/getCachedLocaleDataInstance.js +6 -9
- 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 -29
- package/dist/sap/base/assert.js +5 -6
- package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
- package/dist/sap/base/util/LoaderExtensions.js +9 -12
- package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
- package/dist/sap/ui/core/Configuration.d.ts +17 -0
- package/dist/sap/ui/core/Configuration.js +21 -0
- package/dist/sap/ui/core/Configuration.js.map +1 -0
- package/dist/sap/ui/core/Core.d.ts +26 -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 +13 -0
- package/dist/sap/ui/core/LocaleData.js +180 -25
- package/dist/sap/ui/core/date/Buddhist.js +0 -6
- package/dist/sap/ui/core/date/CalendarUtils.js +36 -0
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +7 -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 +84 -26
- package/dist/sap/ui/core/format/DateFormat.js +786 -477
- package/dist/sap/ui/core/format/TimezoneUtil.js +89 -0
- package/{package-scripts.js → package-scripts.cjs} +7 -10
- package/package.json +7 -5
- package/tsconfig.json +14 -0
- package/used-modules.txt +5 -1
- package/hash.txt +0 -1
- package/src/Assets.js +0 -2
- package/src/DateFormat.js +0 -3
- package/src/LocaleData.js +0 -3
- package/src/dates/CalendarDate.js +0 -223
- package/src/dates/ExtremeDates.js +0 -39
- package/src/dates/calculateWeekNumber.js +0 -51
- package/src/dates/getRoundedTimestamp.js +0 -14
- package/src/dates/getTodayUTCTimestamp.js +0 -9
- package/src/dates/modifyDateBy.js +0 -42
- package/src/getCachedLocaleDataInstance.js +0 -13
- package/src/locale/getLocaleData.js +0 -27
- package/src/sap/base/util/LoaderExtensions.js +0 -17
- 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
@@ -5,11 +5,24 @@ import CalendarType from './CalendarType.js';
|
|
5
5
|
import Locale from './Locale.js';
|
6
6
|
import assert from '../../base/assert.js';
|
7
7
|
import LoaderExtensions from '../../base/util/LoaderExtensions.js';
|
8
|
+
import Configuration from './Configuration.js';
|
9
|
+
var rEIgnoreCase = /e/i, mLegacyUnit2CurrentUnit = {
|
10
|
+
'acceleration-meter-per-second-squared': 'acceleration-meter-per-square-second',
|
11
|
+
'concentr-milligram-per-deciliter': 'concentr-milligram-ofglucose-per-deciliter',
|
12
|
+
'concentr-part-per-million': 'concentr-permillion',
|
13
|
+
'consumption-liter-per-100kilometers': 'consumption-liter-per-100-kilometer',
|
14
|
+
'pressure-millimeter-of-mercury': 'pressure-millimeter-ofhg',
|
15
|
+
'pressure-pound-per-square-inch': 'pressure-pound-force-per-square-inch',
|
16
|
+
'pressure-inch-hg': 'pressure-inch-ofhg',
|
17
|
+
'torque-pound-foot': 'torque-pound-force-foot'
|
18
|
+
}, rNumberInScientificNotation = /^([+-]?)((\d+)(?:\.(\d+))?)[eE]([+-]?\d+)$/, rTrailingZeroes = /0+$/;
|
8
19
|
var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
9
20
|
constructor: function (oLocale) {
|
10
21
|
this.oLocale = oLocale;
|
11
22
|
BaseObject.apply(this);
|
12
|
-
|
23
|
+
var oDataLoaded = getData(oLocale);
|
24
|
+
this.mData = oDataLoaded.mData;
|
25
|
+
this.sCLDRLocaleId = oDataLoaded.sCLDRLocaleId;
|
13
26
|
},
|
14
27
|
_get: function () {
|
15
28
|
return this._getDeep(this.mData, arguments);
|
@@ -95,6 +108,56 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
95
108
|
assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');
|
96
109
|
return this._get(getCLDRCalendarName(sCalendarType), 'dateFormats', sStyle);
|
97
110
|
},
|
111
|
+
getFlexibleDayPeriods: function (sWidth, sCalendarType) {
|
112
|
+
return this._get(getCLDRCalendarName(sCalendarType), 'flexibleDayPeriods', 'format', sWidth);
|
113
|
+
},
|
114
|
+
getFlexibleDayPeriodsStandAlone: function (sWidth, sCalendarType) {
|
115
|
+
return this._get(getCLDRCalendarName(sCalendarType), 'flexibleDayPeriods', 'stand-alone', sWidth);
|
116
|
+
},
|
117
|
+
getFlexibleDayPeriodOfTime: function (iHour, iMinute) {
|
118
|
+
var iAbsoluteMinutes, oDayPeriodRules, sPeriodMatch;
|
119
|
+
iAbsoluteMinutes = (iHour * 60 + iMinute) % 1440;
|
120
|
+
oDayPeriodRules = this._get('dayPeriodRules');
|
121
|
+
function parseToAbsoluteMinutes(sValue) {
|
122
|
+
var aSplit = sValue.split(':'), sHour = aSplit[0], sMinute = aSplit[1];
|
123
|
+
return parseInt(sHour) * 60 + parseInt(sMinute);
|
124
|
+
}
|
125
|
+
sPeriodMatch = Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
|
126
|
+
var oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
|
127
|
+
return oDayPeriodRule['_at'] && parseToAbsoluteMinutes(oDayPeriodRule['_at']) === iAbsoluteMinutes;
|
128
|
+
});
|
129
|
+
if (sPeriodMatch) {
|
130
|
+
return sPeriodMatch;
|
131
|
+
}
|
132
|
+
return Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
|
133
|
+
var iEndValue, aIntervals, iStartValue, oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
|
134
|
+
if (oDayPeriodRule['_at']) {
|
135
|
+
return false;
|
136
|
+
}
|
137
|
+
iStartValue = parseToAbsoluteMinutes(oDayPeriodRule['_from']);
|
138
|
+
iEndValue = parseToAbsoluteMinutes(oDayPeriodRule['_before']);
|
139
|
+
if (iStartValue > iEndValue) {
|
140
|
+
aIntervals = [
|
141
|
+
{
|
142
|
+
start: iStartValue,
|
143
|
+
end: 1440
|
144
|
+
},
|
145
|
+
{
|
146
|
+
start: 0,
|
147
|
+
end: iEndValue
|
148
|
+
}
|
149
|
+
];
|
150
|
+
} else {
|
151
|
+
aIntervals = [{
|
152
|
+
start: iStartValue,
|
153
|
+
end: iEndValue
|
154
|
+
}];
|
155
|
+
}
|
156
|
+
return aIntervals.some(function (oInterval) {
|
157
|
+
return oInterval.start <= iAbsoluteMinutes && oInterval.end > iAbsoluteMinutes;
|
158
|
+
});
|
159
|
+
});
|
160
|
+
},
|
98
161
|
getTimePattern: function (sStyle, sCalendarType) {
|
99
162
|
assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');
|
100
163
|
return this._get(getCLDRCalendarName(sCalendarType), 'timeFormats', sStyle);
|
@@ -109,6 +172,24 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
109
172
|
var sDateTimePattern = this.getDateTimePattern(sDateStyle, sCalendarType), sDatePattern = this.getDatePattern(sDateStyle, sCalendarType), sTimePattern = this.getTimePattern(sTimeStyle, sCalendarType);
|
110
173
|
return sDateTimePattern.replace('{0}', sTimePattern).replace('{1}', sDatePattern);
|
111
174
|
},
|
175
|
+
getCombinedDateTimeWithTimezonePattern: function (sDateStyle, sTimeStyle, sCalendarType) {
|
176
|
+
return this.applyTimezonePattern(this.getCombinedDateTimePattern(sDateStyle, sTimeStyle, sCalendarType));
|
177
|
+
},
|
178
|
+
applyTimezonePattern: function (sPattern) {
|
179
|
+
var aPatterns = [sPattern];
|
180
|
+
var aMissingTokens = [{
|
181
|
+
group: 'Timezone',
|
182
|
+
length: 2,
|
183
|
+
field: 'zone',
|
184
|
+
symbol: 'V'
|
185
|
+
}];
|
186
|
+
this._appendItems(aPatterns, aMissingTokens);
|
187
|
+
return aPatterns[0];
|
188
|
+
},
|
189
|
+
getTimezoneTranslations: function () {
|
190
|
+
this.mTimezoneTranslations = this.mTimezoneTranslations || _resolveTimezoneTranslationStructure(this._get('timezoneNames'));
|
191
|
+
return Object.assign({}, this.mTimezoneTranslations);
|
192
|
+
},
|
112
193
|
getCustomDateTimePattern: function (sSkeleton, sCalendarType) {
|
113
194
|
var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');
|
114
195
|
return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType);
|
@@ -571,11 +652,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
571
652
|
oTimeEntry = oScale[sEntry];
|
572
653
|
iSign = sEntry.substr(18) === 'past' ? -1 : 1;
|
573
654
|
aPluralCategories.forEach(function (sKey) {
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
655
|
+
var sPattern = oTimeEntry['relativeTimePattern-count-' + sKey];
|
656
|
+
if (sPattern) {
|
657
|
+
aPatterns.push({
|
658
|
+
scale: sScale,
|
659
|
+
sign: iSign,
|
660
|
+
pattern: sPattern
|
661
|
+
});
|
662
|
+
}
|
579
663
|
});
|
580
664
|
}
|
581
665
|
}
|
@@ -698,7 +782,11 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
698
782
|
return this.getUnitFormat(sUnit);
|
699
783
|
},
|
700
784
|
getUnitFormat: function (sUnit) {
|
701
|
-
|
785
|
+
var oResult = this._get('units', 'short', sUnit);
|
786
|
+
if (!oResult && mLegacyUnit2CurrentUnit[sUnit]) {
|
787
|
+
oResult = this._get('units', 'short', mLegacyUnit2CurrentUnit[sUnit]);
|
788
|
+
}
|
789
|
+
return oResult;
|
702
790
|
},
|
703
791
|
getUnitFormats: function () {
|
704
792
|
return this._getMerged('units', 'short');
|
@@ -727,10 +815,10 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
727
815
|
return oMessageBundle.getText(sKey, iWeekNumber);
|
728
816
|
},
|
729
817
|
firstDayStartsFirstWeek: function () {
|
730
|
-
return this.
|
818
|
+
return this.oLocale.getLanguage() === 'en' && this.oLocale.getRegion() === 'US';
|
731
819
|
},
|
732
820
|
getPreferredCalendarType: function () {
|
733
|
-
var
|
821
|
+
var sCalendarName, sType, i, aCalendars = this._get('calendarPreference') || [];
|
734
822
|
for (i = 0; i < aCalendars.length; i++) {
|
735
823
|
sCalendarName = aCalendars[i].split('-')[0];
|
736
824
|
for (sType in CalendarType) {
|
@@ -763,14 +851,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
763
851
|
fnTest = this._parsePluralRule(oPlurals[sCategory]);
|
764
852
|
this._pluralTest[sCategory] = fnTest;
|
765
853
|
}
|
766
|
-
if (fnTest(sNumber)) {
|
854
|
+
if (fnTest(sNumber).bMatch) {
|
767
855
|
return sCategory;
|
768
856
|
}
|
769
857
|
}
|
770
858
|
return 'other';
|
771
859
|
},
|
772
860
|
_parsePluralRule: function (sRule) {
|
773
|
-
var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', RANGE = '..', SEP = ',';
|
861
|
+
var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', OPD_C = 'c', OPD_E = 'e', RANGE = '..', SEP = ',';
|
774
862
|
var i = 0, aTokens;
|
775
863
|
aTokens = sRule.split(' ');
|
776
864
|
function accept(sToken) {
|
@@ -864,6 +952,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
864
952
|
return function (o) {
|
865
953
|
return o.w;
|
866
954
|
};
|
955
|
+
} else if (accept(OPD_C)) {
|
956
|
+
return function (o) {
|
957
|
+
return o.c;
|
958
|
+
};
|
959
|
+
} else if (accept(OPD_E)) {
|
960
|
+
return function (o) {
|
961
|
+
return o.c;
|
962
|
+
};
|
867
963
|
} else {
|
868
964
|
throw new Error('Unknown operand: ' + consume());
|
869
965
|
}
|
@@ -891,28 +987,57 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
891
987
|
throw new Error('Not completely parsed');
|
892
988
|
}
|
893
989
|
return function (sValue) {
|
894
|
-
var iDotPos
|
990
|
+
var iDotPos, iExponent, sFraction, sFractionNoZeros, sInteger, o, iExponentPos = sValue.search(rEIgnoreCase);
|
991
|
+
iExponent = iExponentPos < 0 ? 0 : parseInt(sValue.slice(iExponentPos + 1));
|
992
|
+
sValue = LocaleData.convertToDecimal(sValue);
|
993
|
+
iDotPos = sValue.indexOf('.');
|
895
994
|
if (iDotPos === -1) {
|
896
|
-
|
995
|
+
sInteger = sValue;
|
897
996
|
sFraction = '';
|
898
997
|
sFractionNoZeros = '';
|
899
998
|
} else {
|
900
|
-
|
901
|
-
sFraction = sValue.
|
902
|
-
sFractionNoZeros = sFraction.replace(
|
999
|
+
sInteger = sValue.slice(0, iDotPos);
|
1000
|
+
sFraction = sValue.slice(iDotPos + 1);
|
1001
|
+
sFractionNoZeros = sFraction.replace(rTrailingZeroes, '');
|
903
1002
|
}
|
904
1003
|
o = {
|
905
1004
|
n: parseFloat(sValue),
|
906
|
-
i: parseInt(
|
1005
|
+
i: parseInt(sInteger),
|
907
1006
|
v: sFraction.length,
|
908
1007
|
w: sFractionNoZeros.length,
|
909
|
-
f: parseInt(sFraction),
|
910
|
-
t: parseInt(sFractionNoZeros)
|
1008
|
+
f: sFraction === '' ? 0 : parseInt(sFraction),
|
1009
|
+
t: sFractionNoZeros === '' ? 0 : parseInt(sFractionNoZeros),
|
1010
|
+
c: iExponent
|
1011
|
+
};
|
1012
|
+
return {
|
1013
|
+
bMatch: fnOr(o),
|
1014
|
+
oOperands: o
|
911
1015
|
};
|
912
|
-
return fnOr(o);
|
913
1016
|
};
|
914
1017
|
}
|
915
1018
|
});
|
1019
|
+
LocaleData.convertToDecimal = function (vValue) {
|
1020
|
+
var iIntegerLength, iExponent, iFractionLength, bNegative, iNewIntegerLength, aResult, sValue = String(vValue);
|
1021
|
+
if (!sValue.includes('e') && !sValue.includes('E')) {
|
1022
|
+
return sValue;
|
1023
|
+
}
|
1024
|
+
aResult = sValue.match(rNumberInScientificNotation);
|
1025
|
+
bNegative = aResult[1] === '-';
|
1026
|
+
sValue = aResult[2].replace('.', '');
|
1027
|
+
iIntegerLength = aResult[3] ? aResult[3].length : 0;
|
1028
|
+
iFractionLength = aResult[4] ? aResult[4].length : 0;
|
1029
|
+
iExponent = parseInt(aResult[5]);
|
1030
|
+
iNewIntegerLength = iIntegerLength + iExponent;
|
1031
|
+
if (iExponent > 0) {
|
1032
|
+
sValue = iExponent < iFractionLength ? sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = sValue.padEnd(iNewIntegerLength, '0');
|
1033
|
+
} else {
|
1034
|
+
sValue = -iExponent < iIntegerLength ? sValue = sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = '0.' + sValue.padStart(iFractionLength - iExponent, '0');
|
1035
|
+
}
|
1036
|
+
if (bNegative) {
|
1037
|
+
sValue = '-' + sValue;
|
1038
|
+
}
|
1039
|
+
return sValue;
|
1040
|
+
};
|
916
1041
|
var mCLDRSymbolGroups = {
|
917
1042
|
'Era': {
|
918
1043
|
field: 'era',
|
@@ -1155,9 +1280,29 @@ var M_SUPPORTED_LOCALES = function () {
|
|
1155
1280
|
return result;
|
1156
1281
|
}();
|
1157
1282
|
var mLocaleDatas = {};
|
1283
|
+
function _resolveTimezoneTranslationStructure(oNode, sKey, oResult, aParentTranslations) {
|
1284
|
+
aParentTranslations = aParentTranslations ? aParentTranslations.slice() : [];
|
1285
|
+
oResult = oResult || {};
|
1286
|
+
sKey = sKey || '';
|
1287
|
+
Object.keys(oNode).forEach(function (sChildKey) {
|
1288
|
+
var vChildNode = oNode[sChildKey];
|
1289
|
+
if (typeof vChildNode === 'object') {
|
1290
|
+
var aParentTranslationForChild = aParentTranslations.slice();
|
1291
|
+
var sParent = vChildNode['_parent'];
|
1292
|
+
if (sParent) {
|
1293
|
+
aParentTranslationForChild.push(sParent);
|
1294
|
+
}
|
1295
|
+
_resolveTimezoneTranslationStructure(vChildNode, sKey + sChildKey + '/', oResult, aParentTranslationForChild);
|
1296
|
+
} else if (typeof vChildNode === 'string' && sChildKey !== '_parent') {
|
1297
|
+
var sParents = aParentTranslations.length ? aParentTranslations.join(', ') + ', ' : '';
|
1298
|
+
oResult[sKey + sChildKey] = sParents + vChildNode;
|
1299
|
+
}
|
1300
|
+
});
|
1301
|
+
return oResult;
|
1302
|
+
}
|
1158
1303
|
function getCLDRCalendarName(sCalendarType) {
|
1159
1304
|
if (!sCalendarType) {
|
1160
|
-
sCalendarType =
|
1305
|
+
sCalendarType = Configuration.getCalendarType();
|
1161
1306
|
}
|
1162
1307
|
return 'ca-' + sCalendarType.toLowerCase();
|
1163
1308
|
}
|
@@ -1176,7 +1321,7 @@ function getData(oLocale) {
|
|
1176
1321
|
obj[name] = fallbackValue;
|
1177
1322
|
} else if (value === null) {
|
1178
1323
|
delete obj[name];
|
1179
|
-
} else if (typeof value === 'object' && typeof fallbackValue === 'object') {
|
1324
|
+
} else if (typeof value === 'object' && typeof fallbackValue === 'object' && !Array.isArray(value)) {
|
1180
1325
|
merge(value, fallbackValue);
|
1181
1326
|
}
|
1182
1327
|
}
|
@@ -1210,19 +1355,29 @@ function getData(oLocale) {
|
|
1210
1355
|
sLanguage = 'sr_Latn';
|
1211
1356
|
}
|
1212
1357
|
var sId = sLanguage + '_' + sRegion;
|
1358
|
+
var sCLDRLocaleId = sId;
|
1213
1359
|
if (sLanguage && sRegion) {
|
1214
1360
|
mData = getOrLoad(sId);
|
1215
1361
|
}
|
1216
1362
|
if (!mData && sLanguage) {
|
1217
1363
|
mData = getOrLoad(sLanguage);
|
1364
|
+
sCLDRLocaleId = sLanguage;
|
1365
|
+
}
|
1366
|
+
if (!mData) {
|
1367
|
+
mData = getOrLoad('en');
|
1368
|
+
sCLDRLocaleId = 'en';
|
1218
1369
|
}
|
1219
|
-
mLocaleDatas[sId] = mData
|
1220
|
-
|
1370
|
+
mLocaleDatas[sId] = mData;
|
1371
|
+
sCLDRLocaleId = sCLDRLocaleId.replace(/_/g, '-');
|
1372
|
+
return {
|
1373
|
+
mData: mData,
|
1374
|
+
sCLDRLocaleId: sCLDRLocaleId
|
1375
|
+
};
|
1221
1376
|
}
|
1222
1377
|
var CustomLocaleData = LocaleData.extend('sap.ui.core.CustomLocaleData', {
|
1223
1378
|
constructor: function (oLocale) {
|
1224
1379
|
LocaleData.apply(this, arguments);
|
1225
|
-
this.mCustomData =
|
1380
|
+
this.mCustomData = Configuration.getFormatSettings().getCustomLocaleData();
|
1226
1381
|
},
|
1227
1382
|
_get: function () {
|
1228
1383
|
var aArguments = Array.prototype.slice.call(arguments), sCalendar, sKey;
|
@@ -117,11 +117,5 @@ Buddhist.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {
|
|
117
117
|
}
|
118
118
|
return this._setUTCBuddhist(oBuddhist);
|
119
119
|
};
|
120
|
-
Buddhist.prototype.getWeek = function () {
|
121
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
|
122
|
-
};
|
123
|
-
Buddhist.prototype.getUTCWeek = function () {
|
124
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
|
125
|
-
};
|
126
120
|
_Calendars.set(CalendarType.Buddhist, Buddhist);
|
127
121
|
export default Buddhist;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import CalendarWeekNumbering from './CalendarWeekNumbering.js';
|
2
|
+
import Configuration from '../Configuration.js';
|
3
|
+
import LocaleData from '../LocaleData.js';
|
4
|
+
var mWeekNumberingConfiguration = {
|
5
|
+
ISO_8601: {
|
6
|
+
firstDayOfWeek: 1,
|
7
|
+
minimalDaysInFirstWeek: 4
|
8
|
+
},
|
9
|
+
MiddleEastern: {
|
10
|
+
firstDayOfWeek: 6,
|
11
|
+
minimalDaysInFirstWeek: 1
|
12
|
+
},
|
13
|
+
WesternTraditional: {
|
14
|
+
firstDayOfWeek: 0,
|
15
|
+
minimalDaysInFirstWeek: 1
|
16
|
+
}
|
17
|
+
};
|
18
|
+
var CalendarUtils = {
|
19
|
+
getWeekConfigurationValues: function (sCalendarWeekNumbering, oLocale) {
|
20
|
+
var oLocaleData;
|
21
|
+
if (mWeekNumberingConfiguration.hasOwnProperty(sCalendarWeekNumbering)) {
|
22
|
+
return mWeekNumberingConfiguration[sCalendarWeekNumbering];
|
23
|
+
}
|
24
|
+
sCalendarWeekNumbering = sCalendarWeekNumbering || CalendarWeekNumbering.Default;
|
25
|
+
if (sCalendarWeekNumbering === CalendarWeekNumbering.Default) {
|
26
|
+
oLocale = oLocale || Configuration.getFormatSettings().getFormatLocale();
|
27
|
+
oLocaleData = LocaleData.getInstance(oLocale);
|
28
|
+
return {
|
29
|
+
firstDayOfWeek: oLocaleData.getFirstDayOfWeek(),
|
30
|
+
minimalDaysInFirstWeek: oLocaleData.getMinimalDaysInFirstWeek()
|
31
|
+
};
|
32
|
+
}
|
33
|
+
return undefined;
|
34
|
+
}
|
35
|
+
};
|
36
|
+
export default CalendarUtils;
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import Core from '../Core.js';
|
2
1
|
import UniversalDate from './UniversalDate.js';
|
3
2
|
import CalendarType from '../CalendarType.js';
|
4
3
|
import Log from '../../../base/Log.js';
|
5
4
|
import _Calendars from './_Calendars.js';
|
5
|
+
import Configuration from '../Configuration.js';
|
6
6
|
var Islamic = UniversalDate.extend('sap.ui.core.date.Islamic', {
|
7
7
|
constructor: function () {
|
8
8
|
var aArgs = arguments;
|
@@ -102,9 +102,9 @@ function toGregorianArguments(aArgs) {
|
|
102
102
|
function initCustomizationMap() {
|
103
103
|
var sDateFormat, oCustomizationJSON;
|
104
104
|
oCustomizationMap = {};
|
105
|
-
sDateFormat =
|
105
|
+
sDateFormat = Configuration.getFormatSettings().getLegacyDateFormat();
|
106
106
|
sDateFormat = _isSupportedIslamicCalendarType(sDateFormat) ? sDateFormat : 'A';
|
107
|
-
oCustomizationJSON =
|
107
|
+
oCustomizationJSON = Configuration.getFormatSettings().getLegacyDateCalendarCustomizing();
|
108
108
|
oCustomizationJSON = oCustomizationJSON || [];
|
109
109
|
if (!oCustomizationJSON.length) {
|
110
110
|
Log.warning('No calendar customizations.');
|
@@ -152,11 +152,11 @@ Japanese.prototype.setUTCEra = function (iEra, iYear, iMonth, iDay) {
|
|
152
152
|
}
|
153
153
|
return this._setUTCJapanese(oJapanese);
|
154
154
|
};
|
155
|
-
Japanese.prototype.getWeek = function () {
|
156
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
|
155
|
+
Japanese.prototype.getWeek = function (oLocale, vCalendarWeekNumbering) {
|
156
|
+
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate(), oLocale, vCalendarWeekNumbering);
|
157
157
|
};
|
158
|
-
Japanese.prototype.getUTCWeek = function () {
|
159
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
|
158
|
+
Japanese.prototype.getUTCWeek = function (oLocale, vCalendarWeekNumbering) {
|
159
|
+
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate(), oLocale, vCalendarWeekNumbering);
|
160
160
|
};
|
161
161
|
_Calendars.set(CalendarType.Japanese, Japanese);
|
162
162
|
export default Japanese;
|