@brightspace-ui/intl 3.13.1 → 3.14.0
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/README.md +1 -1
- package/lib/common.js +12 -0
- package/lib/dateTime.js +250 -249
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -276,7 +276,7 @@ Contributions are welcome, please submit a pull request!
|
|
|
276
276
|
|
|
277
277
|
> TL;DR: Commits prefixed with `fix:` and `feat:` will trigger patch and minor releases when merged to `main`. Read on for more details...
|
|
278
278
|
|
|
279
|
-
The [
|
|
279
|
+
The [semantic-release GitHub Action](https://github.com/BrightspaceUI/actions/tree/main/semantic-release) is called from the `release.yml` GitHub Action workflow to handle version changes and releasing.
|
|
280
280
|
|
|
281
281
|
### Version Changes
|
|
282
282
|
|
package/lib/common.js
CHANGED
|
@@ -88,6 +88,7 @@ export function validateFormatValue(value) {
|
|
|
88
88
|
class DocumentLocaleSettings {
|
|
89
89
|
|
|
90
90
|
constructor() {
|
|
91
|
+
this._cache = new Map();
|
|
91
92
|
this._htmlElem = window.document.getElementsByTagName('html')[0];
|
|
92
93
|
this._listeners = [];
|
|
93
94
|
this._overrides = {};
|
|
@@ -101,6 +102,7 @@ class DocumentLocaleSettings {
|
|
|
101
102
|
set fallbackLanguage(val) {
|
|
102
103
|
const normalized = this._normalize(val);
|
|
103
104
|
if (normalized === this._fallbackLanguage) return;
|
|
105
|
+
this._cache.clear();
|
|
104
106
|
this._fallbackLanguage = normalized;
|
|
105
107
|
this._listeners.forEach((cb) => cb());
|
|
106
108
|
}
|
|
@@ -109,6 +111,7 @@ class DocumentLocaleSettings {
|
|
|
109
111
|
set language(val) {
|
|
110
112
|
const normalized = this._normalize(val);
|
|
111
113
|
if (normalized === this._language) return;
|
|
114
|
+
this._cache.clear();
|
|
112
115
|
this._language = normalized;
|
|
113
116
|
this._listeners.forEach((cb) => cb());
|
|
114
117
|
}
|
|
@@ -123,6 +126,7 @@ class DocumentLocaleSettings {
|
|
|
123
126
|
delete val.date.formats.timeFormats;
|
|
124
127
|
}
|
|
125
128
|
}
|
|
129
|
+
this._cache.clear();
|
|
126
130
|
this._overrides = val;
|
|
127
131
|
this._listeners.forEach((cb) => cb());
|
|
128
132
|
}
|
|
@@ -131,6 +135,13 @@ class DocumentLocaleSettings {
|
|
|
131
135
|
this._listeners.push(cb);
|
|
132
136
|
}
|
|
133
137
|
|
|
138
|
+
getCacheItem(key, provider) {
|
|
139
|
+
if (!this._cache.has(key)) {
|
|
140
|
+
this._cache.set(key, provider());
|
|
141
|
+
}
|
|
142
|
+
return this._cache.get(key);
|
|
143
|
+
}
|
|
144
|
+
|
|
134
145
|
removeChangeListener(cb) {
|
|
135
146
|
const index = this._listeners.indexOf(cb);
|
|
136
147
|
if (index < 0) return;
|
|
@@ -138,6 +149,7 @@ class DocumentLocaleSettings {
|
|
|
138
149
|
}
|
|
139
150
|
|
|
140
151
|
reset() {
|
|
152
|
+
this._cache.clear();
|
|
141
153
|
this._language = this._languageInitial;
|
|
142
154
|
this._fallbackLanguage = null;
|
|
143
155
|
this.overrides = {};
|
package/lib/dateTime.js
CHANGED
|
@@ -691,266 +691,267 @@ export function convertUTCToLocalDateTime(date) {
|
|
|
691
691
|
}
|
|
692
692
|
|
|
693
693
|
export function getDateTimeDescriptor() {
|
|
694
|
-
|
|
695
|
-
const language = getLanguage();
|
|
696
694
|
const settings = getDocumentLocaleSettings();
|
|
695
|
+
return settings.getCacheItem('dateTimeDescriptor', () => {
|
|
697
696
|
|
|
698
|
-
|
|
699
|
-
|
|
697
|
+
const language = getLanguage();
|
|
698
|
+
const subtags = language.split('-');
|
|
699
|
+
const baseLanguage = subtags[0];
|
|
700
700
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
701
|
+
let hour24 = (hour24locales.indexOf(baseLanguage) > -1);
|
|
702
|
+
if (language === 'zh-tw') {
|
|
703
|
+
hour24 = false;
|
|
704
|
+
}
|
|
705
|
+
if (settings.overrides.date && settings.overrides.date.hour24 !== undefined) {
|
|
706
|
+
hour24 = settings.overrides.date.hour24;
|
|
707
|
+
}
|
|
708
708
|
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
709
|
+
const timeFormat = getTimeFormat(hour24, language, baseLanguage);
|
|
710
|
+
|
|
711
|
+
let dateFormats = ['dddd, MMMM d, yyyy', 'MMM d, yyyy', 'M/d/yyyy', 'MMMM yyyy', 'MMMM d', 'MMM d'];
|
|
712
|
+
const fullTimeFormat = (baseLanguage === 'zh' && language !== 'zh-tw') ? `ZZZ ${timeFormat}` : `${timeFormat} ZZZ`;
|
|
713
|
+
let dayPeriods = ['AM', 'PM'];
|
|
714
|
+
let months = [
|
|
715
|
+
['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
|
716
|
+
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
|
717
|
+
];
|
|
718
|
+
let days = [
|
|
719
|
+
['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
720
|
+
['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
721
|
+
['S', 'M', 'T', 'W', 'T', 'F', 'S']
|
|
722
|
+
];
|
|
723
|
+
let firstDayOfWeek = (mondayFirstDayLocales.indexOf(baseLanguage) > -1) ? 1 : 0;
|
|
724
|
+
let weekendStartDay = 6;
|
|
725
|
+
let weekendEndDay = 0;
|
|
726
|
+
|
|
727
|
+
switch (baseLanguage) {
|
|
728
|
+
case 'ar':
|
|
729
|
+
dateFormats = ['dddd, d MMMM, yyyy', 'dd MMMM, yyyy', 'dd/MM/yyyy', 'MMMM, yyyy', 'd MMMM', 'd MMM'];
|
|
730
|
+
dayPeriods = ['ص', 'م'];
|
|
731
|
+
months[0] = months[1] = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];
|
|
732
|
+
days = [
|
|
733
|
+
['الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
|
734
|
+
['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
|
|
735
|
+
['أ', 'إ', 'ث', 'أر', 'خ', 'ج', 'س']
|
|
736
|
+
];
|
|
737
|
+
firstDayOfWeek = 6;
|
|
738
|
+
weekendStartDay = 4;
|
|
739
|
+
weekendEndDay = 5;
|
|
740
|
+
break;
|
|
741
|
+
case 'cy':
|
|
742
|
+
dateFormats = ['dddd, d MMMM yyyy', 'dd MMMM yyyy', 'dd/MM/yyyy', 'MMMM yyyy', 'd MMMM', 'd MMM'];
|
|
743
|
+
months = [
|
|
744
|
+
['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'],
|
|
745
|
+
['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag']
|
|
746
|
+
];
|
|
747
|
+
days = [
|
|
748
|
+
['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],
|
|
749
|
+
['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],
|
|
750
|
+
['Su', 'Ll', 'Ma', 'Me', 'Ia', 'Gw', 'Sa']
|
|
751
|
+
];
|
|
752
|
+
break;
|
|
753
|
+
case 'da':
|
|
754
|
+
dateFormats = ['dddd \'den\' d. MMMM yyyy', 'd. MMM. yyyy', 'dd.MM.yyyy', 'MMMM yyyy', 'd. MMMM', 'd. MMM'];
|
|
755
|
+
months = [
|
|
756
|
+
['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'],
|
|
757
|
+
['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.']
|
|
758
|
+
];
|
|
759
|
+
days = [
|
|
760
|
+
['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
|
|
761
|
+
['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'],
|
|
762
|
+
['S', 'M', 'T', 'O', 'T', 'F', 'L']
|
|
763
|
+
];
|
|
764
|
+
break;
|
|
765
|
+
case 'de':
|
|
766
|
+
dateFormats = ['dddd d. MMMM yyyy', 'd. MMMM yyyy', 'dd.MM.yyyy', 'MMMM yyyy', 'd. MMMM', 'd. MMM'];
|
|
767
|
+
months = [
|
|
768
|
+
['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
|
|
769
|
+
['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.']
|
|
770
|
+
];
|
|
771
|
+
days = [
|
|
772
|
+
['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
|
|
773
|
+
['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
|
|
774
|
+
['S', 'M', 'D', 'M', 'D', 'F', 'S']
|
|
775
|
+
];
|
|
776
|
+
break;
|
|
777
|
+
case 'es':
|
|
778
|
+
dateFormats = ['dddd d\' de \'MMMM\' de \'yyyy', 'd\' de \'MMMM\' de \'yyyy', 'dd/MM/yyyy', 'MMMM yyyy', 'd\' de \'MMMM', 'd\' de \'MMM'];
|
|
779
|
+
dayPeriods = ['a. m.', 'p. m.'];
|
|
780
|
+
months = [
|
|
781
|
+
['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
|
|
782
|
+
['ene.', 'feb.', 'mar.', 'abr.', 'may.', 'jun.', 'jul.', 'ago.', 'sep.', 'oct.', 'nov.', 'dic.']
|
|
783
|
+
];
|
|
784
|
+
days = [
|
|
785
|
+
['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],
|
|
786
|
+
['dom.', 'lun.', 'mar.', 'mié.', 'jue.', 'vie.', 'sáb.'],
|
|
787
|
+
['D', 'L', 'M', 'M', 'J', 'V', 'S']
|
|
788
|
+
];
|
|
789
|
+
break;
|
|
790
|
+
case 'fr':
|
|
791
|
+
dateFormats = ['dddd d MMMM yyyy', 'd MMM yyyy', 'dd/MM/yyyy', 'MMMM yyyy', 'd MMMM', 'd MMM'];
|
|
792
|
+
months = [
|
|
793
|
+
['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
|
|
794
|
+
['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.']
|
|
795
|
+
];
|
|
796
|
+
days = [
|
|
797
|
+
['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
|
|
798
|
+
['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
|
|
799
|
+
['D', 'L', 'M', 'M', 'J', 'V', 'S']
|
|
800
|
+
];
|
|
801
|
+
break;
|
|
802
|
+
case 'hi':
|
|
803
|
+
dateFormats = ['dddd, d MMMM yyyy', 'd MMMM yyyy', 'dd-MM-yyyy', 'MMMM yyyy', 'd MMMM', 'd MMM'];
|
|
804
|
+
dayPeriods = ['पूर्वाह्न', 'अपराह्न'];
|
|
805
|
+
months = [
|
|
806
|
+
['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'],
|
|
807
|
+
['जन', 'फर', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अग', 'सितं', 'अक्टू', 'नवं', 'दिसं']
|
|
808
|
+
];
|
|
809
|
+
days = [
|
|
810
|
+
['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'],
|
|
811
|
+
['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
|
|
812
|
+
['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श']
|
|
813
|
+
];
|
|
814
|
+
break;
|
|
815
|
+
case 'ja':
|
|
816
|
+
dateFormats = ['yyyy年M月d日', 'yyyy年M月d日', 'yyyy/MM/dd', 'yyyy年M月', 'M月d日', 'M月d日'];
|
|
817
|
+
dayPeriods = ['午前', '午後'];
|
|
818
|
+
months[0] = months[1] = ['1 月', '2 月', '3 月', '4 月', '5 月', '6 月', '7 月', '8 月', '9 月', '10 月', '11 月', '12 月'];
|
|
819
|
+
days[0] = days[1] = days[2] = ['日', '月', '火', '水', '木', '金', '土'];
|
|
820
|
+
break;
|
|
821
|
+
case 'ko':
|
|
822
|
+
dateFormats = ['yyyy년 M월 d일 dddd', 'yyyy년 M월 d일', 'yyyy-MM-dd', 'yyyy년 M월', 'M월 d일', 'MMM d일'];
|
|
823
|
+
dayPeriods = ['오전', '오후'];
|
|
824
|
+
months[0] = months[1] = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'];
|
|
825
|
+
days[0] = ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'];
|
|
826
|
+
days[1] = days[2] = ['일', '월', '화', '수', '목', '금', '토'];
|
|
827
|
+
break;
|
|
828
|
+
case 'nl':
|
|
829
|
+
dateFormats = ['dddd d MMMM yyyy', 'd MMMM yyyy', 'dd-MM-yyyy', 'MMMM yyyy', 'd MMMM', 'd MMM'];
|
|
830
|
+
dayPeriods = ['a.m.', 'p.m.'];
|
|
831
|
+
months = [
|
|
832
|
+
['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
|
|
833
|
+
['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.']
|
|
834
|
+
];
|
|
835
|
+
days = [
|
|
836
|
+
['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
|
|
837
|
+
['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
|
|
838
|
+
['Z', 'M', 'D', 'W', 'D', 'V', 'Z']
|
|
839
|
+
];
|
|
840
|
+
break;
|
|
841
|
+
case 'pt':
|
|
842
|
+
dateFormats = ['dddd, d\' de \'MMMM\' de \'yyyy', 'd\' de \'MMMM\' de \'yyyy', 'dd/MM/yyyy', 'MMMM\' de \'yyyy', 'dd\' de \'MMMM', 'dd\' de \'MMM'];
|
|
843
|
+
months = [
|
|
844
|
+
['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
|
|
845
|
+
['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez']
|
|
846
|
+
];
|
|
847
|
+
days = [
|
|
848
|
+
['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'],
|
|
849
|
+
['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
|
|
850
|
+
['D', 'S', 'T', 'Q', 'Q', 'S', 'S']
|
|
851
|
+
];
|
|
852
|
+
break;
|
|
853
|
+
case 'sv':
|
|
854
|
+
dateFormats = ['dddd \'den\' d MMMM yyyy', 'd MMMM yyyy', 'yyyy-MM-dd', 'MMMM yyyy', 'dd MMMM', 'dd MMM'];
|
|
855
|
+
dayPeriods = ['fm', 'em'];
|
|
856
|
+
months = [
|
|
857
|
+
['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december'],
|
|
858
|
+
['jan.', 'feb.', 'mars', 'apr.', 'maj', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.']
|
|
859
|
+
];
|
|
860
|
+
days = [
|
|
861
|
+
['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'],
|
|
862
|
+
['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'],
|
|
863
|
+
['S', 'M', 'T', 'O', 'T', 'F', 'L']
|
|
864
|
+
];
|
|
865
|
+
break;
|
|
866
|
+
case 'tr':
|
|
867
|
+
dateFormats = ['dd MMMM yyyy dddd', 'dd MMMM yyyy', 'dd.MM.yyyy', 'MMMM yyyy', 'dd MMMM', 'dd MMM'];
|
|
868
|
+
dayPeriods = ['ÖÖ', 'ÖS'];
|
|
869
|
+
months = [
|
|
870
|
+
['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'],
|
|
871
|
+
['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Ek', 'Kas', 'Ara']
|
|
872
|
+
];
|
|
873
|
+
days = [
|
|
874
|
+
['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'],
|
|
875
|
+
['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'],
|
|
876
|
+
['P', 'P', 'S', 'Ç', 'P', 'C', 'C']
|
|
877
|
+
];
|
|
878
|
+
break;
|
|
879
|
+
case 'zh':
|
|
880
|
+
dateFormats = ['yyyy年M月d日', 'yyyy年M月d日', 'yyyy/M/d', 'yyyy年M月', 'M月d日', 'M月d日'];
|
|
881
|
+
dayPeriods = ['上午', '下午'];
|
|
882
|
+
months[0] = months[1] = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
|
|
883
|
+
days[0] = days[1] = ['週日', '週一', '週二', '週三', '週四', '週五', '週六'];
|
|
884
|
+
days[2] = ['日', '一', '二', '三', '四', '五', '六'];
|
|
885
|
+
break;
|
|
886
|
+
}
|
|
887
887
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
888
|
+
switch (language) {
|
|
889
|
+
case 'en-gb':
|
|
890
|
+
dateFormats = ['dddd, d MMMM yyyy', 'dd MMMM yyyy', 'dd/MM/yyyy', 'MMMM yyyy', 'd MMMM', 'd MMM'];
|
|
891
|
+
break;
|
|
892
|
+
case 'fr-ca':
|
|
893
|
+
dateFormats[1] = 'MMM d yyyy';
|
|
894
|
+
dateFormats[2] = 'yyyy-MM-dd';
|
|
895
|
+
dateFormats[4] = 'MMMM d';
|
|
896
|
+
dateFormats[5] = 'MMM d';
|
|
897
|
+
firstDayOfWeek = 0;
|
|
898
|
+
break;
|
|
899
|
+
case 'fr-on':
|
|
900
|
+
dateFormats[0] = 'dddd\' le \'d MMMM yyyy';
|
|
901
|
+
dateFormats[1] = 'MMM d yyyy';
|
|
902
|
+
dateFormats[2] = 'yyyy-MM-dd';
|
|
903
|
+
firstDayOfWeek = 0;
|
|
904
|
+
break;
|
|
905
|
+
case 'zh-tw':
|
|
906
|
+
days[0] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
|
|
907
|
+
break;
|
|
908
|
+
}
|
|
909
909
|
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
910
|
+
const descriptor = {
|
|
911
|
+
hour24: hour24,
|
|
912
|
+
formats: {
|
|
913
|
+
dateFormats: {
|
|
914
|
+
'full': dateFormats[0],
|
|
915
|
+
'medium': dateFormats[1],
|
|
916
|
+
'short': dateFormats[2],
|
|
917
|
+
'monthYear': dateFormats[3],
|
|
918
|
+
'monthDay': dateFormats[4],
|
|
919
|
+
'shortMonthDay': dateFormats[5],
|
|
920
|
+
'longDayOfWeek': 'dddd',
|
|
921
|
+
'shortDayOfWeek': 'ddd',
|
|
922
|
+
'longMonth': 'MMMM',
|
|
923
|
+
'shortMonth': 'MMM'
|
|
924
|
+
},
|
|
925
|
+
timeFormats: {
|
|
926
|
+
'full': fullTimeFormat,
|
|
927
|
+
'medium': timeFormat,
|
|
928
|
+
'short': timeFormat
|
|
929
|
+
}
|
|
924
930
|
},
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
931
|
+
calendar: {
|
|
932
|
+
firstDayOfWeek: firstDayOfWeek,
|
|
933
|
+
weekendStartDay: weekendStartDay,
|
|
934
|
+
weekendEndDay: weekendEndDay,
|
|
935
|
+
months: {
|
|
936
|
+
short: months[1],
|
|
937
|
+
long: months[0]
|
|
938
|
+
},
|
|
939
|
+
days: {
|
|
940
|
+
narrow: days[2],
|
|
941
|
+
short: days[1],
|
|
942
|
+
long: days[0]
|
|
943
|
+
},
|
|
944
|
+
dayPeriods: { am: dayPeriods[0], pm: dayPeriods[1] }
|
|
929
945
|
}
|
|
930
|
-
}
|
|
931
|
-
calendar: {
|
|
932
|
-
firstDayOfWeek: firstDayOfWeek,
|
|
933
|
-
weekendStartDay: weekendStartDay,
|
|
934
|
-
weekendEndDay: weekendEndDay,
|
|
935
|
-
months: {
|
|
936
|
-
short: months[1],
|
|
937
|
-
long: months[0]
|
|
938
|
-
},
|
|
939
|
-
days: {
|
|
940
|
-
narrow: days[2],
|
|
941
|
-
short: days[1],
|
|
942
|
-
long: days[0]
|
|
943
|
-
},
|
|
944
|
-
dayPeriods: { am: dayPeriods[0], pm: dayPeriods[1] }
|
|
945
|
-
}
|
|
946
|
-
};
|
|
946
|
+
};
|
|
947
947
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
948
|
+
if (settings.overrides.date) {
|
|
949
|
+
merge(descriptor, settings.overrides.date);
|
|
950
|
+
}
|
|
951
951
|
|
|
952
|
-
|
|
952
|
+
return descriptor;
|
|
953
953
|
|
|
954
|
+
});
|
|
954
955
|
}
|
|
955
956
|
|
|
956
957
|
export function formatTime(date, options) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/intl",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Internationalization APIs for number, date, time and file size formatting and parsing in D2L Brightspace.",
|
|
5
5
|
"main": "lib/number.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@babel/core": "^7",
|
|
40
40
|
"@babel/eslint-parser": "^7",
|
|
41
|
-
"@web/dev-server": "^0.
|
|
41
|
+
"@web/dev-server": "^0.3",
|
|
42
42
|
"chai": "^4",
|
|
43
|
-
"concurrently": "^
|
|
43
|
+
"concurrently": "^8",
|
|
44
44
|
"eslint": "^8",
|
|
45
|
-
"eslint-config-brightspace": "^0.
|
|
45
|
+
"eslint-config-brightspace": "^0.25",
|
|
46
46
|
"http-server": "^14.0",
|
|
47
47
|
"mocha": "^10",
|
|
48
48
|
"mocha-headless-chrome": "^4"
|