@luftborn/custom-elements 2.8.1 → 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.
Files changed (24) hide show
  1. package/demo/index.js +680 -2852
  2. package/demo/index.min.js +679 -2851
  3. package/demo/index.min.js.map +1 -1
  4. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.d.ts +48 -0
  5. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.js +333 -0
  6. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.js.map +1 -0
  7. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerStyles.d.ts +1 -0
  8. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerStyles.js +5 -0
  9. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerStyles.js.map +1 -0
  10. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.d.ts +6 -0
  11. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.js +45 -0
  12. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.js.map +1 -0
  13. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.d.ts +2 -0
  14. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.js +194 -0
  15. package/dist/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.js.map +1 -0
  16. package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.d.ts +7 -6
  17. package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.js +27 -59
  18. package/dist/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.js.map +1 -1
  19. package/package.json +2 -6
  20. package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.ts +363 -0
  21. package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerStyles.ts +101 -0
  22. package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.ts +44 -0
  23. package/src/elements/CustomFormatDateFieldElement/CustomDatepicker/DatepickerTranslations.ts +188 -0
  24. package/src/elements/CustomFormatDateFieldElement/CustomFormatDateFieldElement.ts +30 -67
@@ -0,0 +1,48 @@
1
+ declare type CustomDatepickerOptions = {
2
+ input: HTMLInputElement;
3
+ dateFormat: string;
4
+ language?: string;
5
+ otherTriggers?: HTMLElement[];
6
+ parentElement?: ShadowRoot | HTMLElement;
7
+ };
8
+ export default class CustomDatepicker {
9
+ private input;
10
+ private otherTriggers;
11
+ private parentElement;
12
+ private datepicker;
13
+ private header;
14
+ private monthYear;
15
+ private selectNextMonth;
16
+ private selectPrevMonth;
17
+ private weekdays;
18
+ private days;
19
+ private selectMonthYear;
20
+ private selectDate;
21
+ private currentDate;
22
+ private currentMonth;
23
+ private currentYear;
24
+ private selectedDate;
25
+ private selectedMonth;
26
+ private selectedYear;
27
+ private selectedDay;
28
+ private firstDayOfMonth;
29
+ private lastDayOfMonth;
30
+ private firstDay;
31
+ private lastDay;
32
+ private months;
33
+ private daysOfWeek;
34
+ private dateFormat;
35
+ constructor(options: CustomDatepickerOptions);
36
+ private createDatePickerElements;
37
+ private applyStyles;
38
+ private moveMonth;
39
+ private renderCalendar;
40
+ private initSelectMonthYear;
41
+ private toggleSelectMonthYear;
42
+ private hideSelectMonthYear;
43
+ private showPicker;
44
+ private positionPicker;
45
+ private setDateForToday;
46
+ private addEventListeners;
47
+ }
48
+ export {};
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var CustomDatepickerStyles_1 = require("./CustomDatepickerStyles");
4
+ var CustomDatepickerUtils_1 = require("./CustomDatepickerUtils");
5
+ var DatepickerTranslations_1 = require("./DatepickerTranslations");
6
+ var CustomDatepicker = /** @class */ (function () {
7
+ function CustomDatepicker(options) {
8
+ this.months = [];
9
+ this.daysOfWeek = [];
10
+ this.input = options.input;
11
+ this.dateFormat = CustomDatepickerUtils_1.supportedDateFormats.includes(options.dateFormat) ? options.dateFormat : CustomDatepickerUtils_1.defaultDateFormat;
12
+ this.otherTriggers = options.otherTriggers || [];
13
+ this.parentElement = options.parentElement;
14
+ this.currentDate = new Date();
15
+ this.currentMonth = this.currentDate.getMonth();
16
+ this.currentYear = this.currentDate.getFullYear();
17
+ this.selectedDate = new Date();
18
+ this.selectedMonth = this.selectedDate.getMonth();
19
+ this.selectedYear = this.selectedDate.getFullYear();
20
+ this.selectedDay = this.selectedDate.getDate();
21
+ this.firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1);
22
+ this.lastDayOfMonth = new Date(this.currentYear, this.currentMonth + 1, 0);
23
+ this.firstDay = this.firstDayOfMonth.getDay();
24
+ this.lastDay = this.lastDayOfMonth.getDate();
25
+ this.months = (0, DatepickerTranslations_1.GetMonths)(options.language);
26
+ this.daysOfWeek = (0, DatepickerTranslations_1.GetWeekdays)(options.language, 'short');
27
+ this.createDatePickerElements();
28
+ this.renderCalendar();
29
+ this.initSelectMonthYear();
30
+ this.addEventListeners();
31
+ }
32
+ CustomDatepicker.prototype.createDatePickerElements = function () {
33
+ var _this = this;
34
+ this.datepicker = document.createElement('div');
35
+ this.datepicker.classList.add('datepicker');
36
+ this.header = document.createElement('div');
37
+ this.header.classList.add('header');
38
+ this.monthYear = document.createElement('span');
39
+ this.monthYear.classList.add('month-year');
40
+ this.monthYear.onclick = function () { return _this.toggleSelectMonthYear(); };
41
+ this.selectNextMonth = document.createElement('span');
42
+ this.selectNextMonth.classList.add('next-month');
43
+ this.selectNextMonth.innerHTML = '▶';
44
+ this.selectNextMonth.onclick = function () { return _this.moveMonth(1); };
45
+ this.selectPrevMonth = document.createElement('span');
46
+ this.selectPrevMonth.classList.add('prev-month');
47
+ this.selectPrevMonth.innerHTML = '◀';
48
+ this.selectPrevMonth.onclick = function () { return _this.moveMonth(-1); };
49
+ this.header.appendChild(this.selectPrevMonth);
50
+ this.header.appendChild(this.monthYear);
51
+ this.header.appendChild(this.selectNextMonth);
52
+ this.weekdays = document.createElement('div');
53
+ this.weekdays.classList.add('weekdays');
54
+ this.days = document.createElement('div');
55
+ this.days.classList.add('days');
56
+ this.selectMonthYear = document.createElement('div');
57
+ this.selectMonthYear.classList.add('select-month-year');
58
+ this.selectDate = document.createElement('div');
59
+ this.selectDate.classList.add('select-date');
60
+ this.datepicker.appendChild(this.header);
61
+ this.datepicker.appendChild(this.selectDate);
62
+ this.selectDate.appendChild(this.weekdays);
63
+ this.selectDate.appendChild(this.days);
64
+ this.datepicker.appendChild(this.selectMonthYear);
65
+ var actions = document.createElement('div');
66
+ actions.classList.add('actions');
67
+ this.selectDate.appendChild(actions);
68
+ var cancel = document.createElement('input');
69
+ cancel.type = 'reset';
70
+ cancel.value = 'Cancel';
71
+ cancel.onclick = function () { return _this.showPicker(false); };
72
+ actions.appendChild(cancel);
73
+ var today = document.createElement('input');
74
+ today.type = 'reset';
75
+ today.value = 'Today';
76
+ today.onclick = function () { return _this.setDateForToday(); };
77
+ actions.appendChild(today);
78
+ if (this.input.parentElement) {
79
+ this.input.parentElement.appendChild(this.datepicker);
80
+ }
81
+ else {
82
+ document.body.appendChild(this.datepicker);
83
+ }
84
+ this.applyStyles();
85
+ };
86
+ CustomDatepicker.prototype.applyStyles = function () {
87
+ var style = document.createElement('style');
88
+ style.innerHTML = CustomDatepickerStyles_1.CustomDatepickerStyles;
89
+ this.datepicker.appendChild(style);
90
+ };
91
+ CustomDatepicker.prototype.moveMonth = function (steps) {
92
+ var newMonth = this.currentMonth + steps;
93
+ var newYear = this.currentYear;
94
+ if (newMonth < 0) {
95
+ newYear = this.currentYear + Math.floor(newMonth / 12);
96
+ newMonth = 12 + (newMonth % 12);
97
+ }
98
+ else if (newMonth > 11) {
99
+ newYear = this.currentYear + Math.floor(newMonth / 12);
100
+ newMonth = newMonth % 12;
101
+ }
102
+ this.currentMonth = newMonth;
103
+ this.currentYear = newYear;
104
+ this.firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1);
105
+ this.lastDayOfMonth = new Date(this.currentYear, this.currentMonth + 1, 0);
106
+ this.firstDay = this.firstDayOfMonth.getDay();
107
+ this.lastDay = this.lastDayOfMonth.getDate();
108
+ this.renderCalendar();
109
+ };
110
+ CustomDatepicker.prototype.renderCalendar = function () {
111
+ var _this = this;
112
+ this.monthYear.innerHTML = this.months[this.currentMonth] + ' ' + this.currentYear;
113
+ this.weekdays.innerHTML = '';
114
+ for (var i = 0; i < this.daysOfWeek.length; i++) {
115
+ var span = document.createElement('span');
116
+ span.innerHTML = this.daysOfWeek[i];
117
+ this.weekdays.appendChild(span);
118
+ }
119
+ this.days.innerHTML = '';
120
+ var _loop_1 = function (i) {
121
+ var span = document.createElement('span');
122
+ if (i < this_1.firstDay) {
123
+ span.classList.add('day-of-previous-month');
124
+ span.style.color = '#ccc';
125
+ var currentDate = new Date(this_1.currentYear, this_1.currentMonth, 0);
126
+ span.innerHTML = (currentDate.getDate() - this_1.firstDay + i + 1).toString();
127
+ }
128
+ else if (i < this_1.lastDay + this_1.firstDay) {
129
+ span.classList.add('day-of-current-month');
130
+ span.innerHTML = (i - this_1.firstDay + 1).toString();
131
+ if (i - this_1.firstDay + 1 === this_1.selectedDay && this_1.currentMonth === this_1.selectedMonth && this_1.currentYear === this_1.selectedYear) {
132
+ span.classList.add('selected-day');
133
+ }
134
+ }
135
+ else {
136
+ span.classList.add('day-of-next-month');
137
+ span.style.color = '#ccc';
138
+ span.innerHTML = (i - this_1.lastDay - this_1.firstDay + 1).toString();
139
+ }
140
+ span.onclick = function () {
141
+ var moveMonthSteps = 0;
142
+ _this.selectedDay = parseInt(span.innerHTML);
143
+ if (span.classList.contains('day-of-previous-month')) {
144
+ _this.selectedMonth = _this.currentMonth - 1;
145
+ _this.selectedYear = _this.currentYear;
146
+ moveMonthSteps = -1;
147
+ }
148
+ else if (span.classList.contains('day-of-current-month')) {
149
+ _this.selectedMonth = _this.currentMonth;
150
+ _this.selectedYear = _this.currentYear;
151
+ }
152
+ else {
153
+ _this.selectedMonth = _this.currentMonth + 1;
154
+ _this.selectedYear = _this.currentYear;
155
+ moveMonthSteps = 1;
156
+ }
157
+ _this.selectedDate = new Date(_this.selectedYear, _this.selectedMonth, _this.selectedDay);
158
+ var selectedDayElement = _this.days.querySelector('.selected-day');
159
+ if (selectedDayElement) {
160
+ selectedDayElement.classList.remove('selected-day');
161
+ }
162
+ span.classList.add('selected-day');
163
+ var formattedDate = (0, CustomDatepickerUtils_1.formatDate)(_this.selectedDate, _this.dateFormat);
164
+ _this.input.value = formattedDate;
165
+ _this.showPicker(false);
166
+ };
167
+ this_1.days.appendChild(span);
168
+ };
169
+ var this_1 = this;
170
+ for (var i = 0; i < 42; i++) {
171
+ _loop_1(i);
172
+ }
173
+ this.positionPicker();
174
+ };
175
+ CustomDatepicker.prototype.initSelectMonthYear = function () {
176
+ var _this = this;
177
+ this.selectMonthYear.style.display = 'none';
178
+ this.selectMonthYear.style.height = '200px';
179
+ if ((0, CustomDatepickerUtils_1.isMobileDevice)()) {
180
+ this.selectMonthYear.style.height = '300px';
181
+ }
182
+ this.selectMonthYear.innerHTML = '';
183
+ var monthsContainer = document.createElement('div');
184
+ monthsContainer.classList.add('months');
185
+ var _loop_2 = function (i) {
186
+ var span = document.createElement('span');
187
+ span.innerHTML = this_2.months[i].substring(0, 3);
188
+ span.classList.add('select-month');
189
+ monthsContainer.appendChild(span);
190
+ span.onclick = function () {
191
+ _this.selectedMonth = _this.months.findIndex(function (month) { return month.substring(0, 3) === span.innerHTML; });
192
+ var moveMonthSteps = (_this.selectedYear - _this.currentYear) * 12 + _this.selectedMonth - _this.currentMonth;
193
+ _this.moveMonth(moveMonthSteps);
194
+ _this.hideSelectMonthYear();
195
+ };
196
+ };
197
+ var this_2 = this;
198
+ for (var i = 0; i < this.months.length; i++) {
199
+ _loop_2(i);
200
+ }
201
+ for (var i = this.currentYear - 100; i < this.currentYear + 100; i++) {
202
+ var year = document.createElement('div');
203
+ year.classList.add('year');
204
+ year.innerHTML = i.toString();
205
+ this.selectMonthYear.appendChild(year);
206
+ if (i === this.currentYear) {
207
+ year.appendChild(monthsContainer);
208
+ }
209
+ }
210
+ var years = this.selectMonthYear.querySelectorAll('.year');
211
+ var tempSelectedYear = this.selectedYear;
212
+ var _loop_3 = function (i) {
213
+ years[i].addEventListener('click', function () {
214
+ var year = parseInt(years[i].innerHTML);
215
+ if (year === tempSelectedYear) {
216
+ return;
217
+ }
218
+ else {
219
+ tempSelectedYear = year;
220
+ _this.selectedYear = year;
221
+ var monthsContainers = _this.selectMonthYear.querySelectorAll('.months');
222
+ for (var i_1 = 0; i_1 < monthsContainers.length; i_1++) {
223
+ monthsContainers[i_1].remove();
224
+ }
225
+ years[i].appendChild(monthsContainer);
226
+ }
227
+ });
228
+ };
229
+ for (var i = 0; i < years.length; i++) {
230
+ _loop_3(i);
231
+ }
232
+ };
233
+ CustomDatepicker.prototype.toggleSelectMonthYear = function () {
234
+ if (this.selectMonthYear.style.display === 'none') {
235
+ this.selectDate.style.display = 'none';
236
+ this.selectMonthYear.style.display = 'block';
237
+ this.header.style.color = '#ccc';
238
+ var years = this.selectMonthYear.querySelectorAll('.year');
239
+ for (var i = 0; i < years.length; i++) {
240
+ if (years[i].querySelector('.months')) {
241
+ years[i].scrollIntoView();
242
+ break;
243
+ }
244
+ }
245
+ }
246
+ else {
247
+ this.hideSelectMonthYear();
248
+ }
249
+ };
250
+ CustomDatepicker.prototype.hideSelectMonthYear = function () {
251
+ this.selectDate.style.display = 'block';
252
+ this.selectMonthYear.style.display = 'none';
253
+ this.header.style.color = '#000';
254
+ };
255
+ CustomDatepicker.prototype.showPicker = function (showpicker) {
256
+ if (showpicker === void 0) { showpicker = true; }
257
+ if (showpicker) {
258
+ this.positionPicker();
259
+ this.datepicker.style.display = 'block';
260
+ }
261
+ else {
262
+ this.datepicker.style.display = 'none';
263
+ this.hideSelectMonthYear();
264
+ return;
265
+ }
266
+ };
267
+ CustomDatepicker.prototype.positionPicker = function () {
268
+ this.datepicker.style.position = 'fixed';
269
+ var datepickerHeight = 250;
270
+ if ((0, CustomDatepickerUtils_1.isMobileDevice)()) {
271
+ this.datepicker.style.height = '400px';
272
+ this.datepicker.style.top = '50%';
273
+ this.datepicker.style.left = '50%';
274
+ this.datepicker.style.transform = 'translate(-50%, -50%)';
275
+ this.datepicker.style.width = '90%';
276
+ this.datepicker.style.maxWidth = '300px';
277
+ this.datepicker.style.fontSize = '16px';
278
+ this.datepicker.style.padding = '30px';
279
+ this.header.style.marginBottom = '20px';
280
+ var weekdaysSpans = this.weekdays.querySelectorAll('span');
281
+ var daysSpans = this.days.querySelectorAll('span');
282
+ weekdaysSpans.forEach(function (span) { return span.style.marginBottom = '10px'; });
283
+ daysSpans.forEach(function (span) { return span.style.marginBottom = '10px'; });
284
+ }
285
+ else {
286
+ this.datepicker.style.height = datepickerHeight + 'px';
287
+ var dateInputRect = this.input.getBoundingClientRect();
288
+ datepickerHeight += 20;
289
+ if (window.innerHeight - dateInputRect.bottom < datepickerHeight) {
290
+ this.datepicker.style.top = 'auto';
291
+ this.datepicker.style.bottom = window.innerHeight - dateInputRect.top + 'px';
292
+ }
293
+ else {
294
+ this.datepicker.style.bottom = 'auto';
295
+ this.datepicker.style.top = dateInputRect.bottom + 'px';
296
+ }
297
+ this.datepicker.style.left = dateInputRect.left + 'px';
298
+ }
299
+ };
300
+ CustomDatepicker.prototype.setDateForToday = function () {
301
+ this.input.value = (0, CustomDatepickerUtils_1.formatDate)(this.selectedDate, this.dateFormat);
302
+ this.showPicker(false);
303
+ };
304
+ CustomDatepicker.prototype.addEventListeners = function () {
305
+ var _this = this;
306
+ this.input.addEventListener('click', function () { return _this.showPicker(true); });
307
+ this.input.addEventListener('focus', function () { return _this.showPicker(true); });
308
+ this.input.addEventListener('change', function () {
309
+ var date = new Date(_this.input.value);
310
+ if (date.toString() !== 'Invalid Date') {
311
+ _this.selectedDate = date;
312
+ _this.selectedMonth = date.getMonth();
313
+ _this.selectedYear = date.getFullYear();
314
+ _this.selectedDay = date.getDate();
315
+ _this.renderCalendar();
316
+ }
317
+ });
318
+ this.otherTriggers.forEach(function (trigger) {
319
+ trigger.addEventListener('click', function () { return _this.showPicker(true); });
320
+ });
321
+ document.onclick = function (event) {
322
+ var elementsToNeglect = [_this.input, _this.datepicker, _this.monthYear, _this.weekdays, _this.days, _this.header, _this.selectMonthYear];
323
+ var element = event.target;
324
+ var isNeglected = elementsToNeglect.includes(element) || elementsToNeglect.includes(element.parentElement) || (element).classList.contains('select-month') || element === _this.parentElement;
325
+ if (!isNeglected) {
326
+ _this.showPicker(false);
327
+ }
328
+ };
329
+ };
330
+ return CustomDatepicker;
331
+ }());
332
+ exports.default = CustomDatepicker;
333
+ //# sourceMappingURL=CustomDatepicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomDatepicker.js","sourceRoot":"","sources":["../../../../src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepicker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const CustomDatepickerStyles = "\n .datepicker {\n position: fixed;\n background-color: #fff;\n display: none;\n width: 200px;\n border: 1px solid #ccc;\n border-radius: 5px;\n padding: 10px;\n margin: 0 auto;\n box-shadow: 0 0 10px 0 #ccc;\n font: 12px Arial, sans-serif;\n }\n\n .header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 10px;\n }\n .weekdays {\n display: flex;\n justify-content: space-between;\n }\n .weekdays span {\n width: 14.28%;\n text-align: center;\n padding: 5px 0;\n }\n .days {\n display: flex;\n flex-wrap: wrap;\n }\n .days span {\n width: 14.28%;\n text-align: center;\n padding: 5px 0;\n }\n .days span:hover {\n background-color: #B2d5ff;\n cursor: pointer;\n }\n .days span.today {\n border: 1px solid #000;\n }\n .days span.selected-day {\n background-color: #0075ff;\n color: #fff;\n }\n .prev-month, .next-month {\n cursor: pointer;\n }\n .month-year {\n font-weight: bold;\n }\n .month-year:hover {\n cursor: pointer;\n }\n .select-month-year {\n display: none;\n width: 100%;\n overflow-y: auto;\n }\n .select-month-year .year {\n text-align: center;\n background-color: #f0f0f0;\n border-bottom: 1px solid #3f3d3d;\n padding: 5px 0;\n cursor: pointer;\n }\n .select-month-year .year .months {\n display: flex;\n flex-wrap: wrap;\n }\n .select-month-year .year .months span {\n width: 25%;\n text-align: center;\n padding: 10px 0;\n background-color: #fff;\n }\n .select-month-year .year .months span:hover {\n background-color: #B2d5ff;\n cursor: pointer;\n }\n .actions {\n display: flex;\n justify-content: space-between;\n margin-top: 10px;\n }\n .actions input {\n color: #0075ff;\n border: none;\n background-color: transparent;\n padding: 5px;\n border: 1px solid transparent;\n }\n .actions input:hover {\n background-color: #B2d5ff;\n border-color: #000;\n }\n";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomDatepickerStyles = void 0;
4
+ exports.CustomDatepickerStyles = "\n .datepicker {\n position: fixed;\n background-color: #fff;\n display: none;\n width: 200px;\n border: 1px solid #ccc;\n border-radius: 5px;\n padding: 10px;\n margin: 0 auto;\n box-shadow: 0 0 10px 0 #ccc;\n font: 12px Arial, sans-serif;\n }\n\n .header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 10px;\n }\n .weekdays {\n display: flex;\n justify-content: space-between;\n }\n .weekdays span {\n width: 14.28%;\n text-align: center;\n padding: 5px 0;\n }\n .days {\n display: flex;\n flex-wrap: wrap;\n }\n .days span {\n width: 14.28%;\n text-align: center;\n padding: 5px 0;\n }\n .days span:hover {\n background-color: #B2d5ff;\n cursor: pointer;\n }\n .days span.today {\n border: 1px solid #000;\n }\n .days span.selected-day {\n background-color: #0075ff;\n color: #fff;\n }\n .prev-month, .next-month {\n cursor: pointer;\n }\n .month-year {\n font-weight: bold;\n }\n .month-year:hover {\n cursor: pointer;\n }\n .select-month-year {\n display: none;\n width: 100%;\n overflow-y: auto;\n }\n .select-month-year .year {\n text-align: center;\n background-color: #f0f0f0;\n border-bottom: 1px solid #3f3d3d;\n padding: 5px 0;\n cursor: pointer;\n }\n .select-month-year .year .months {\n display: flex;\n flex-wrap: wrap;\n }\n .select-month-year .year .months span {\n width: 25%;\n text-align: center;\n padding: 10px 0;\n background-color: #fff;\n }\n .select-month-year .year .months span:hover {\n background-color: #B2d5ff;\n cursor: pointer;\n }\n .actions {\n display: flex;\n justify-content: space-between;\n margin-top: 10px;\n }\n .actions input {\n color: #0075ff;\n border: none;\n background-color: transparent;\n padding: 5px;\n border: 1px solid transparent;\n }\n .actions input:hover {\n background-color: #B2d5ff;\n border-color: #000;\n }\n";
5
+ //# sourceMappingURL=CustomDatepickerStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomDatepickerStyles.js","sourceRoot":"","sources":["../../../../src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerStyles.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,6yEAoGrC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const months: string[];
2
+ export declare const daysOfWeek: string[];
3
+ export declare const defaultDateFormat = "yyyy-mm-dd";
4
+ export declare const supportedDateFormats: string[];
5
+ export declare function formatDate(date: Date, dateFormat: string): string;
6
+ export declare function isMobileDevice(): boolean;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMobileDevice = exports.formatDate = exports.supportedDateFormats = exports.defaultDateFormat = exports.daysOfWeek = exports.months = void 0;
4
+ exports.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
5
+ exports.daysOfWeek = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
6
+ exports.defaultDateFormat = 'yyyy-mm-dd';
7
+ exports.supportedDateFormats = [
8
+ 'ddmmyyyy',
9
+ 'mmddyyyy',
10
+ 'dd/mm/yyyy',
11
+ 'mm/dd/yyyy',
12
+ 'dd-mm-yyyy',
13
+ 'mm-dd-yyyy',
14
+ 'yyyy-mm-dd',
15
+ 'yyyy-dd-mm',
16
+ 'Month dd, yyyy',
17
+ 'mm/dd/yy',
18
+ 'dd/mm/yy',
19
+ ];
20
+ function formatDate(date, dateFormat) {
21
+ var year = date.getFullYear();
22
+ var month = (date.getMonth() + 1).toString().padStart(2, '0');
23
+ var day = date.getDate().toString().padStart(2, '0');
24
+ var monthName = date.toLocaleString('default', { month: 'long' });
25
+ var dateFormats = {
26
+ 'ddmmyyyy': "" + day + month + year,
27
+ 'mmddyyyy': "" + month + day + year,
28
+ 'dd/mm/yyyy': day + "/" + month + "/" + year,
29
+ 'mm/dd/yyyy': month + "/" + day + "/" + year,
30
+ 'dd-mm-yyyy': day + "-" + month + "-" + year,
31
+ 'mm-dd-yyyy': month + "-" + day + "-" + year,
32
+ 'yyyy-mm-dd': year + "-" + month + "-" + day,
33
+ 'yyyy-dd-mm': year + "-" + day + "-" + month,
34
+ 'Month dd, yyyy': monthName + " " + day + ", " + year,
35
+ 'mm/dd/yy': month + "/" + day + "/" + year.toString().slice(-2),
36
+ 'dd/mm/yy': day + "/" + month + "/" + year.toString().slice(-2),
37
+ };
38
+ return dateFormats[dateFormat];
39
+ }
40
+ exports.formatDate = formatDate;
41
+ function isMobileDevice() {
42
+ return /Android|webOS|iPhone|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth < 480;
43
+ }
44
+ exports.isMobileDevice = isMobileDevice;
45
+ //# sourceMappingURL=CustomDatepickerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomDatepickerUtils.js","sourceRoot":"","sources":["../../../../src/elements/CustomFormatDateFieldElement/CustomDatepicker/CustomDatepickerUtils.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAa,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC9I,QAAA,UAAU,GAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAElE,QAAA,iBAAiB,GAAG,YAAY,CAAC;AACjC,QAAA,oBAAoB,GAAG;IAChC,UAAU;IACV,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,UAAU;IACV,UAAU;CACb,CAAC;AAEF,SAAgB,UAAU,CAAC,IAAU,EAAE,UAAkB;IACrD,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,IAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,IAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpE,IAAM,WAAW,GAAG;QAChB,UAAU,EAAE,KAAG,GAAG,GAAG,KAAK,GAAG,IAAM;QACnC,UAAU,EAAE,KAAG,KAAK,GAAG,GAAG,GAAG,IAAM;QACnC,YAAY,EAAK,GAAG,SAAI,KAAK,SAAI,IAAM;QACvC,YAAY,EAAK,KAAK,SAAI,GAAG,SAAI,IAAM;QACvC,YAAY,EAAK,GAAG,SAAI,KAAK,SAAI,IAAM;QACvC,YAAY,EAAK,KAAK,SAAI,GAAG,SAAI,IAAM;QACvC,YAAY,EAAK,IAAI,SAAI,KAAK,SAAI,GAAK;QACvC,YAAY,EAAK,IAAI,SAAI,GAAG,SAAI,KAAO;QACvC,gBAAgB,EAAK,SAAS,SAAI,GAAG,UAAK,IAAM;QAChD,UAAU,EAAK,KAAK,SAAI,GAAG,SAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAG;QAC1D,UAAU,EAAK,GAAG,SAAI,KAAK,SAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAG;KAC7D,CAAA;IAED,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AArBD,gCAqBC;AAED,SAAgB,cAAc;IAC1B,OAAO,sDAAsD,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;AACvH,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,2 @@
1
+ export declare function GetWeekdays(language?: string, type?: 'short' | 'abbreviated' | 'wide'): string[];
2
+ export declare function GetMonths(language?: string, type?: 'abbreviated' | 'wide'): string[];