@luftborn/custom-elements 2.8.2 → 2.8.4
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/demo/index.js +301 -81
- package/demo/index.min.js +300 -80
- package/demo/index.min.js.map +1 -1
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.d.ts +4 -0
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.js +16 -8
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.js.map +1 -1
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.d.ts +1 -1
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.js +6 -3
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.js.map +1 -1
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.d.ts +2 -0
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.js +194 -0
- package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.js.map +1 -0
- package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.d.ts +5 -0
- package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.js +15 -1
- package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.js.map +1 -1
- package/package.json +1 -1
- package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.ts +20 -9
- package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.ts +6 -3
- package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.ts +188 -0
- package/src/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.ts +18 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CustomDatepickerStyles } from "./CustomDatepickerStyles";
|
|
2
|
-
import {
|
|
2
|
+
import { defaultDateFormat, formatDate, isMobileDevice, supportedDateFormats } from "./CustomDatepickerUtils";
|
|
3
|
+
import { GetMonths, GetWeekdays } from "./DatepickerTranslations";
|
|
3
4
|
|
|
4
5
|
type CustomDatepickerOptions = {
|
|
5
6
|
input: HTMLInputElement;
|
|
6
7
|
dateFormat: string;
|
|
8
|
+
language?: string;
|
|
7
9
|
otherTriggers?: HTMLElement[];
|
|
8
10
|
parentElement?: ShadowRoot | HTMLElement;
|
|
9
11
|
}
|
|
@@ -33,6 +35,10 @@ export default class CustomDatepicker {
|
|
|
33
35
|
private lastDayOfMonth: Date;
|
|
34
36
|
private firstDay: number;
|
|
35
37
|
private lastDay: number;
|
|
38
|
+
private language: string;
|
|
39
|
+
|
|
40
|
+
private months: string[] = [];
|
|
41
|
+
private daysOfWeek: string[] = [];
|
|
36
42
|
|
|
37
43
|
private dateFormat: string;
|
|
38
44
|
|
|
@@ -54,6 +60,10 @@ export default class CustomDatepicker {
|
|
|
54
60
|
this.firstDay = this.firstDayOfMonth.getDay();
|
|
55
61
|
this.lastDay = this.lastDayOfMonth.getDate();
|
|
56
62
|
|
|
63
|
+
this.language = options.language || 'en';
|
|
64
|
+
this.months = GetMonths(this.language);
|
|
65
|
+
this.daysOfWeek = GetWeekdays(options.language, 'short');
|
|
66
|
+
|
|
57
67
|
this.createDatePickerElements();
|
|
58
68
|
this.renderCalendar();
|
|
59
69
|
this.initSelectMonthYear();
|
|
@@ -143,11 +153,12 @@ export default class CustomDatepicker {
|
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
private renderCalendar() {
|
|
146
|
-
|
|
156
|
+
const monthName = this.months[this.currentMonth];
|
|
157
|
+
this.monthYear.innerHTML = monthName.charAt(0).toUpperCase() + monthName.slice(1) + ' ' + this.currentYear;
|
|
147
158
|
this.weekdays.innerHTML = '';
|
|
148
|
-
for (let i = 0; i < daysOfWeek.length; i++) {
|
|
159
|
+
for (let i = 0; i < this.daysOfWeek.length; i++) {
|
|
149
160
|
let span = document.createElement('span');
|
|
150
|
-
span.innerHTML = daysOfWeek[i];
|
|
161
|
+
span.innerHTML = this.daysOfWeek[i];
|
|
151
162
|
this.weekdays.appendChild(span);
|
|
152
163
|
}
|
|
153
164
|
this.days.innerHTML = '';
|
|
@@ -191,7 +202,7 @@ export default class CustomDatepicker {
|
|
|
191
202
|
}
|
|
192
203
|
span.classList.add('selected-day');
|
|
193
204
|
|
|
194
|
-
const formattedDate = formatDate(this.selectedDate, this.dateFormat);
|
|
205
|
+
const formattedDate = formatDate(this.selectedDate, this.dateFormat, this.language);
|
|
195
206
|
this.input.value = formattedDate;
|
|
196
207
|
|
|
197
208
|
this.showPicker(false);
|
|
@@ -211,13 +222,13 @@ export default class CustomDatepicker {
|
|
|
211
222
|
this.selectMonthYear.innerHTML = '';
|
|
212
223
|
let monthsContainer = document.createElement('div');
|
|
213
224
|
monthsContainer.classList.add('months');
|
|
214
|
-
for (let i = 0; i < months.length; i++) {
|
|
225
|
+
for (let i = 0; i < this.months.length; i++) {
|
|
215
226
|
let span = document.createElement('span');
|
|
216
|
-
span.innerHTML = months[i].substring(0, 3);
|
|
227
|
+
span.innerHTML = this.months[i].substring(0, 3);
|
|
217
228
|
span.classList.add('select-month');
|
|
218
229
|
monthsContainer.appendChild(span);
|
|
219
230
|
span.onclick = () => {
|
|
220
|
-
this.selectedMonth = months.findIndex(month => month.substring(0, 3) === span.innerHTML);
|
|
231
|
+
this.selectedMonth = this.months.findIndex(month => month.substring(0, 3) === span.innerHTML);
|
|
221
232
|
let moveMonthSteps = (this.selectedYear - this.currentYear) * 12 + this.selectedMonth - this.currentMonth;
|
|
222
233
|
this.moveMonth(moveMonthSteps);
|
|
223
234
|
this.hideSelectMonthYear();
|
|
@@ -320,7 +331,7 @@ export default class CustomDatepicker {
|
|
|
320
331
|
}
|
|
321
332
|
|
|
322
333
|
private setDateForToday() {
|
|
323
|
-
this.input.value = formatDate(this.selectedDate, this.dateFormat);
|
|
334
|
+
this.input.value = formatDate(this.selectedDate, this.dateFormat, this.language);
|
|
324
335
|
this.showPicker(false);
|
|
325
336
|
}
|
|
326
337
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { GetMonths } from "./DatepickerTranslations";
|
|
2
|
+
|
|
1
3
|
export const months: string[] = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
2
4
|
export const daysOfWeek: string[] = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
|
|
3
5
|
|
|
@@ -16,11 +18,12 @@ export const supportedDateFormats = [
|
|
|
16
18
|
'dd/mm/yy',
|
|
17
19
|
];
|
|
18
20
|
|
|
19
|
-
export function formatDate(date: Date, dateFormat: string): string {
|
|
21
|
+
export function formatDate(date: Date, dateFormat: string, language:string = 'en'): string {
|
|
20
22
|
const year = date.getFullYear();
|
|
21
23
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
22
24
|
const day = date.getDate().toString().padStart(2, '0');
|
|
23
|
-
const monthName = date.
|
|
25
|
+
const monthName = GetMonths(language)[date.getMonth()];
|
|
26
|
+
const capitalizedMonthName = monthName.charAt(0).toUpperCase() + monthName.slice(1);
|
|
24
27
|
|
|
25
28
|
const dateFormats = {
|
|
26
29
|
'ddmmyyyy': `${day}${month}${year}`,
|
|
@@ -31,7 +34,7 @@ export function formatDate(date: Date, dateFormat: string): string {
|
|
|
31
34
|
'mm-dd-yyyy': `${month}-${day}-${year}`,
|
|
32
35
|
'yyyy-mm-dd': `${year}-${month}-${day}`,
|
|
33
36
|
'yyyy-dd-mm': `${year}-${day}-${month}`,
|
|
34
|
-
'Month dd, yyyy': `${
|
|
37
|
+
'Month dd, yyyy': `${capitalizedMonthName} ${day}, ${year}`,
|
|
35
38
|
'mm/dd/yy': `${month}/${day}/${year.toString().slice(-2)}`,
|
|
36
39
|
'dd/mm/yy': `${day}/${month}/${year.toString().slice(-2)}`,
|
|
37
40
|
}
|
|
@@ -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
|
}
|