@luftborn/custom-elements 2.8.2 → 2.8.3

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.
@@ -0,0 +1,188 @@
1
+ export function GetWeekdays(language: string = 'en', type: 'short' | 'abbreviated' | 'wide'= 'wide') : string[] {
2
+ language = supportedLanguages.includes(language) ? language : 'en';
3
+ return weekdays[language][type];
4
+ }
5
+
6
+ export function GetMonths(language: string = 'en', type: 'abbreviated' | 'wide' = 'wide') : string[]{
7
+ language = supportedLanguages.includes(language) ? language : 'en';
8
+ return months[language][type];
9
+ }
10
+
11
+ const supportedLanguages = ['en', 'sv', 'de', 'fr', 'it', 'es', 'cs', 'pt', 'pl', 'nl', 'no', 'da', 'el', 'fi', 'is', 'et', 'lv', 'lt', 'hu'];
12
+
13
+ const weekdays = {
14
+ 'en': {
15
+ 'short': ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
16
+ 'abbreviated': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
17
+ 'wide': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
18
+ },
19
+ 'sv': {
20
+ 'short': ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
21
+ 'abbreviated': ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'],
22
+ 'wide': ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag']
23
+ },
24
+ 'de': {
25
+ 'short': ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
26
+ 'abbreviated': ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
27
+ 'wide': ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']
28
+ },
29
+ 'fr': {
30
+ 'short': ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
31
+ 'abbreviated': ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
32
+ 'wide': ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
33
+ },
34
+ 'it': {
35
+ 'short': ['do', 'lu', 'ma', 'me', 'gi', 've', 'sa'],
36
+ 'abbreviated': ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
37
+ 'wide': ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato']
38
+ },
39
+ 'es': {
40
+ 'short': ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'],
41
+ 'abbreviated': ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],
42
+ 'wide': ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']
43
+ },
44
+ 'cs': {
45
+ 'short': ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
46
+ 'abbreviated': ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
47
+ 'wide': ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota']
48
+ },
49
+ 'pt': {
50
+ 'short': ['do', '2ª', '3ª', '4ª', '5ª', '6ª', 'sá'],
51
+ 'abbreviated': ['dom', '2ª', '3ª', '4ª', '5ª', '6ª', 'sáb'],
52
+ 'wide': ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado']
53
+ },
54
+ 'pl': {
55
+ 'short': ['nd', 'pn', 'wt', 'śr', 'cz', 'pt', 'so'],
56
+ 'abbreviated': ['nd', 'pn', 'wt', 'śr', 'cz', 'pt', 'so'],
57
+ 'wide': ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']
58
+ },
59
+ 'nl': {
60
+ 'short': ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
61
+ 'abbreviated': ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
62
+ 'wide': ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']
63
+ },
64
+ 'no': {
65
+ 'short': ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
66
+ 'abbreviated': ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
67
+ 'wide': ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']
68
+ },
69
+ 'da': {
70
+ 'short': ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
71
+ 'abbreviated': ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
72
+ 'wide': ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']
73
+ },
74
+ 'el': {
75
+ 'short': ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σα'],
76
+ 'abbreviated': ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', 'Σάβ'],
77
+ 'wide': ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο']
78
+ },
79
+ 'fi': {
80
+ 'short': ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
81
+ 'abbreviated': ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
82
+ 'wide': ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai']
83
+ },
84
+ 'is': {
85
+ 'short': ['su', 'má', 'þr', 'mi', 'fi', 'fö', 'la'],
86
+ 'abbreviated': ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'],
87
+ 'wide': ['sunnudagur', 'mánudagur', 'þriðjudagur', 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur']
88
+ },
89
+ 'et': {
90
+ 'short': ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
91
+ 'abbreviated': ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
92
+ 'wide': ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev']
93
+ },
94
+ 'lv': {
95
+ 'short': ['Sv', 'P', 'O', 'T', 'C', 'Pk', 'Se'],
96
+ 'abbreviated': ['Sv', 'P', 'O', 'T', 'C', 'Pk', 'Se'],
97
+ 'wide': ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena']
98
+ },
99
+ 'lt': {
100
+ 'short': ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'],
101
+ 'abbreviated': ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'],
102
+ 'wide': ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis']
103
+ },
104
+ 'hu': {
105
+ 'short': ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
106
+ 'abbreviated': ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
107
+ 'wide': ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat']
108
+ },
109
+ };
110
+
111
+ const months = {
112
+ 'en': {
113
+ 'abbreviated': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
114
+ 'wide': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
115
+ },
116
+ 'sv': {
117
+ 'abbreviated': ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
118
+ 'wide': ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december']
119
+ },
120
+ 'de': {
121
+ 'abbreviated': ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
122
+ 'wide': ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
123
+ },
124
+ 'fr': {
125
+ 'abbreviated': ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
126
+ 'wide': ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']
127
+ },
128
+ 'it': {
129
+ 'abbreviated': ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
130
+ 'wide': ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre']
131
+ },
132
+ 'es': {
133
+ 'abbreviated': ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
134
+ 'wide': ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre']
135
+ },
136
+ 'pt': {
137
+ 'abbreviated': ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],
138
+ 'wide': ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']
139
+ },
140
+ 'cs': {
141
+ 'abbreviated': ['led', 'úno', 'bře', 'dub', 'kvě', 'čer', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],
142
+ 'wide': ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec']
143
+ },
144
+ 'pl': {
145
+ 'abbreviated': ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],
146
+ 'wide': ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień']
147
+ },
148
+ 'nl': {
149
+ 'abbreviated': ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
150
+ 'wide': ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']
151
+ },
152
+ 'no': {
153
+ 'abbreviated': ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
154
+ 'wide': ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']
155
+ },
156
+ 'da': {
157
+ 'abbreviated': ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
158
+ 'wide': ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december']
159
+ },
160
+ 'el': {
161
+ 'abbreviated': ['Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', 'Ιούν', 'Ιούλ', 'Αύγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'],
162
+ 'wide': ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος']
163
+ },
164
+ 'fi': {
165
+ 'abbreviated': ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'lok', 'marras', 'joulu'],
166
+ 'wide': ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu']
167
+ },
168
+ 'is': {
169
+ 'abbreviated': ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', 'sep', 'okt', 'nóv', 'des'],
170
+ 'wide': ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember']
171
+ },
172
+ 'et': {
173
+ 'abbreviated': ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'],
174
+ 'wide': ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember']
175
+ },
176
+ 'lv': {
177
+ 'abbreviated': ['jan', 'feb', 'mar', 'apr', 'mai', 'jūn', 'jūl', 'aug', 'sep', 'okt', 'nov', 'dec'],
178
+ 'wide': ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris']
179
+ },
180
+ 'lt': {
181
+ 'abbreviated': ['sau', 'vas', 'kov', 'bal', 'geg', 'bir', 'lie', 'rugp', 'rugs', 'spal', 'lapkr', 'gruod'],
182
+ 'wide': ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis']
183
+ },
184
+ 'hu': {
185
+ 'abbreviated': ['jan', 'feb', 'már', 'ápr', 'máj', 'jún', 'júl', 'aug', 'szept', 'okt', 'nov', 'dec'],
186
+ 'wide': ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december']
187
+ },
188
+ };
@@ -50,6 +50,8 @@ export class CustomFormatDateFieldElement extends CustomInputElement {
50
50
  date: HTMLInputElement;
51
51
  dateWrapper: HTMLElement;
52
52
  pickerTrigger: HTMLElement;
53
+ language: string;
54
+ datePicker: CustomDatepicker;
53
55
 
54
56
  constructor() {
55
57
  super();
@@ -89,6 +91,7 @@ export class CustomFormatDateFieldElement extends CustomInputElement {
89
91
  this.date.setAttribute('min', this.min);
90
92
  }
91
93
 
94
+ this.language = this.attributes.getNamedItem('language')?.value || 'en';
92
95
  this.initCustomPicker();
93
96
  }
94
97
 
@@ -105,12 +108,26 @@ export class CustomFormatDateFieldElement extends CustomInputElement {
105
108
  );
106
109
  }
107
110
 
111
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void {
112
+ this.attributeChanged(name, oldValue, newValue);
113
+ }
114
+
115
+ private attributeChanged(name: string, oldValue: string, newValue: string): void {
116
+ switch (name) {
117
+ case 'language':
118
+ this.language = newValue;
119
+ this.initCustomPicker();
120
+ break;
121
+ }
122
+ }
123
+
108
124
  initCustomPicker() {
109
- new CustomDatepicker({
125
+ this.datePicker = new CustomDatepicker({
110
126
  input: this.date,
111
127
  dateFormat: this.dateFormat,
112
128
  otherTriggers: [this.pickerTrigger],
113
129
  parentElement: this,
130
+ language: this.language,
114
131
  })
115
132
  }
116
133
  }