mis-crystal-design-system 18.1.2-signal → 18.1.2
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/button/button.component.d.ts +0 -2
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +4 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +9 -5
- package/esm2022/button/button.component.mjs +7 -15
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/chip/chip.component.mjs +4 -4
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +17 -10
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +87 -32
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +6 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +316 -141
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +4 -4
- package/esm2022/fab/fab.component.mjs +4 -4
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +28 -27
- package/esm2022/input/directives/input/input.directive.mjs +28 -10
- package/esm2022/input/mis-input.component.mjs +19 -13
- package/esm2022/loader/loader.component.mjs +13 -7
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +10 -5
- package/esm2022/phone-input/phone-input.component.mjs +4 -4
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +24 -20
- package/esm2022/switch/switch.component.mjs +2 -4
- package/esm2022/table/sub-table/sub-table.component.mjs +18 -5
- package/esm2022/table/table.component.mjs +184 -95
- package/esm2022/table/table.module.mjs +7 -5
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-button.mjs +6 -14
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +101 -39
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +320 -142
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +27 -26
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +45 -21
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +12 -6
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +9 -4
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +23 -19
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +1 -3
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +205 -102
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/filter/filter-panel/filter-panel.component.d.ts +1 -1
- package/input/directives/input/input.directive.d.ts +3 -4
- package/input/mis-input.component.d.ts +3 -6
- package/input/mis-input.component.scss +11 -4
- package/loader/loader.component.d.ts +7 -1
- package/package.json +17 -17
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -2
- package/table/table.component.d.ts +12 -1
- package/table/table.module.d.ts +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, signal, computed, Component, Inject, HostListener, input, output, Injector, Directive, Self, Optional, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, signal, computed, effect, Component, Inject, HostListener, input, output, Injector, Directive, Self, Optional, NgModule } from '@angular/core';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import timezone from 'dayjs/plugin/timezone';
|
|
5
5
|
import utc from 'dayjs/plugin/utc';
|
|
@@ -102,7 +102,7 @@ function TzDrpContainerComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
102
102
|
let tmp_1_0;
|
|
103
103
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
104
104
|
i0.ɵɵadvance();
|
|
105
|
-
i0.ɵɵproperty("ngForOf", (tmp_1_0 = ctx_r3.data == null ? null :
|
|
105
|
+
i0.ɵɵproperty("ngForOf", (tmp_1_0 = (tmp_1_0 = ctx_r3.data()) == null ? null : tmp_1_0.dpConfig == null ? null : tmp_1_0.dpConfig.ranges) !== null && tmp_1_0 !== undefined ? tmp_1_0 : i0.ɵɵpureFunction0(2, _c1));
|
|
106
106
|
i0.ɵɵadvance(2);
|
|
107
107
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r3.selectedItemLabel() === "Custom Range"));
|
|
108
108
|
} }
|
|
@@ -252,9 +252,62 @@ dayjs.extend(customParseFormat);
|
|
|
252
252
|
dayjs.extend(isSameOrAfter);
|
|
253
253
|
dayjs.extend(isSameOrBefore);
|
|
254
254
|
class TzDrpContainerComponent {
|
|
255
|
-
|
|
255
|
+
/**
|
|
256
|
+
* Parse date string using configured format with fallback
|
|
257
|
+
*/
|
|
258
|
+
parseDateWithMultipleFormats(dateString) {
|
|
259
|
+
if (!dateString || dateString === 'Invalid Date' || dateString === 'undefined' || dateString === 'null') {
|
|
260
|
+
return dayjs('invalid');
|
|
261
|
+
}
|
|
262
|
+
// First try the configured format
|
|
263
|
+
const configuredFormat = this.data().dpConfig?.format;
|
|
264
|
+
if (configuredFormat) {
|
|
265
|
+
try {
|
|
266
|
+
const parsed = dayjs(dateString, configuredFormat);
|
|
267
|
+
if (parsed.isValid()) {
|
|
268
|
+
return parsed;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
// Continue to fallback formats
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Fallback to common formats if configured format fails
|
|
276
|
+
const fallbackFormats = [
|
|
277
|
+
'DD/MMM/YYYY',
|
|
278
|
+
'DD/MM/YYYY',
|
|
279
|
+
'DD-MMM-YYYY',
|
|
280
|
+
'DD-MM-YYYY',
|
|
281
|
+
'YYYY-MM-DD'
|
|
282
|
+
];
|
|
283
|
+
for (const format of fallbackFormats) {
|
|
284
|
+
try {
|
|
285
|
+
const parsed = dayjs(dateString, format);
|
|
286
|
+
if (parsed.isValid()) {
|
|
287
|
+
return parsed;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
// Continue to next format
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// If all formats fail, try parsing without format (let dayjs guess)
|
|
295
|
+
try {
|
|
296
|
+
const parsed = dayjs(dateString);
|
|
297
|
+
if (parsed.isValid()) {
|
|
298
|
+
return parsed;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
console.warn('Failed to parse date with any format:', dateString, error);
|
|
303
|
+
}
|
|
304
|
+
return dayjs('invalid');
|
|
305
|
+
}
|
|
306
|
+
constructor(injectedData, toast) {
|
|
307
|
+
this.injectedData = injectedData;
|
|
256
308
|
this.toast = toast;
|
|
257
309
|
this.CUSTOM_RANGE_LABEL = "Custom Range";
|
|
310
|
+
this.data = signal(this.injectedData);
|
|
258
311
|
this.dayjsInstance = (...args) => {
|
|
259
312
|
return dayjs(...args);
|
|
260
313
|
};
|
|
@@ -289,17 +342,23 @@ class TzDrpContainerComponent {
|
|
|
289
342
|
this.currentMonthNumber = computed(() => this.currentMonthNumberSignal());
|
|
290
343
|
this.currentMonth = computed(() => this.currentMonthSignal());
|
|
291
344
|
this.currentYearNumber = computed(() => this.currentYearNumberSignal());
|
|
292
|
-
this.currentMonthDates = computed(() => this.currentMonthDatesSignal());
|
|
293
345
|
this.nextMonthNumber = computed(() => this.nextMonthNumberSignal());
|
|
294
346
|
this.nextMonth = computed(() => this.nextMonthSignal());
|
|
295
347
|
this.nextYearNumber = computed(() => this.nextYearNumberSignal());
|
|
296
|
-
this.nextMonthDates = computed(() => this.nextMonthDatesSignal());
|
|
297
348
|
this.isPreviousMonthDisabled = computed(() => this.isPreviousMonthDisabledSignal());
|
|
298
349
|
this.isNextMonthDisabled = computed(() => this.isNextMonthDisabledSignal());
|
|
299
350
|
this.selectionStarted = computed(() => this.selectionStartedSignal());
|
|
300
351
|
this.localSelectedDates = computed(() => this.localSelectedDatesSignal());
|
|
301
352
|
this.isDatesValid = computed(() => this.isDatesValidSignal());
|
|
302
353
|
this.selectedItemLabel = computed(() => this.selectedItemLabelSignal());
|
|
354
|
+
this.currentMonthDates = computed(() => {
|
|
355
|
+
// Dependencies: currentMonthNumberSignal, currentYearNumberSignal, localSelectedDatesSignal
|
|
356
|
+
return this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal());
|
|
357
|
+
});
|
|
358
|
+
this.nextMonthDates = computed(() => {
|
|
359
|
+
// Dependencies: nextMonthNumberSignal, nextYearNumberSignal, localSelectedDatesSignal
|
|
360
|
+
return this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal());
|
|
361
|
+
});
|
|
303
362
|
// Time functionality computed properties
|
|
304
363
|
this.startHour = computed(() => this.startHourSignal());
|
|
305
364
|
this.startMinute = computed(() => this.startMinuteSignal());
|
|
@@ -309,21 +368,21 @@ class TzDrpContainerComponent {
|
|
|
309
368
|
this.endAmPm = computed(() => this.endAmPmSignal());
|
|
310
369
|
this.startHour24 = computed(() => this.startHour24Signal());
|
|
311
370
|
this.endHour24 = computed(() => this.endHour24Signal());
|
|
312
|
-
this.data =
|
|
313
|
-
this.localSelectedDatesSignal.set(this.data.dates);
|
|
371
|
+
this.data = signal(this.injectedData);
|
|
372
|
+
this.localSelectedDatesSignal.set(this.data().dates);
|
|
314
373
|
this.isDatesValidSignal.set(false);
|
|
315
|
-
if (this.data.dates.startDate && this.data.dates.endDate) {
|
|
374
|
+
if (this.data().dates.startDate && this.data().dates.endDate) {
|
|
316
375
|
this.isDatesValidSignal.set(true);
|
|
317
376
|
}
|
|
318
377
|
// Initialize selectedItemLabel from data.selectedRangeLabel if available
|
|
319
|
-
if (this.data.selectedRangeLabel) {
|
|
320
|
-
this.selectedItemLabelSignal.set(this.data.selectedRangeLabel);
|
|
378
|
+
if (this.data().selectedRangeLabel) {
|
|
379
|
+
this.selectedItemLabelSignal.set(this.data().selectedRangeLabel);
|
|
321
380
|
}
|
|
322
381
|
// Initialize dayjsInstance with timezone handling
|
|
323
|
-
if (this.data?.dpConfig?.timezone) {
|
|
382
|
+
if (this.data()?.dpConfig?.timezone) {
|
|
324
383
|
this.dayjsInstance = (...args) => {
|
|
325
384
|
try {
|
|
326
|
-
return dayjs.tz(args[0], args[1] || 'DD/MM/YYYY', this.data.dpConfig.timezone);
|
|
385
|
+
return dayjs.tz(args[0], args[1] || 'DD/MM/YYYY', this.data().dpConfig.timezone);
|
|
327
386
|
}
|
|
328
387
|
catch (error) {
|
|
329
388
|
console.warn('Error parsing date with timezone:', error, 'args:', args);
|
|
@@ -342,18 +401,42 @@ class TzDrpContainerComponent {
|
|
|
342
401
|
label: `${day[0]}${day.slice(1).toLowerCase()}`,
|
|
343
402
|
isCurrentDay: this.dayjsInstance().day() === index
|
|
344
403
|
})));
|
|
345
|
-
if (!this.data?.dpConfig?.format) {
|
|
346
|
-
this.data.dpConfig = {
|
|
347
|
-
...this.data.dpConfig,
|
|
404
|
+
if (!this.data()?.dpConfig?.format) {
|
|
405
|
+
this.data().dpConfig = {
|
|
406
|
+
...this.data().dpConfig,
|
|
348
407
|
format: DATE_FORMAT
|
|
349
408
|
};
|
|
350
409
|
}
|
|
410
|
+
// Effect to update calendar when dates change - AFTER setting initial data
|
|
411
|
+
effect(() => {
|
|
412
|
+
const localSelectedDates = this.localSelectedDatesSignal();
|
|
413
|
+
let selectedStartDate;
|
|
414
|
+
if (localSelectedDates?.startDate) {
|
|
415
|
+
selectedStartDate = this.parseDateWithMultipleFormats(localSelectedDates.startDate);
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
selectedStartDate = dayjs('invalid');
|
|
419
|
+
}
|
|
420
|
+
if (selectedStartDate.isValid()) {
|
|
421
|
+
this.currentYearNumberSignal.set(selectedStartDate.year());
|
|
422
|
+
this.nextYearNumberSignal.set(selectedStartDate.add(1, "month").year());
|
|
423
|
+
this.currentMonthNumberSignal.set(selectedStartDate.get("month"));
|
|
424
|
+
this.nextMonthNumberSignal.set(selectedStartDate.add(1, "month").month());
|
|
425
|
+
const selectedEndDate = localSelectedDates?.endDate ? this.parseDateWithMultipleFormats(localSelectedDates.endDate) : null;
|
|
426
|
+
if (selectedEndDate && selectedEndDate.isValid() && selectedEndDate.isAfter(selectedStartDate, 'month')) {
|
|
427
|
+
this.nextMonthNumberSignal.set(selectedEndDate.month());
|
|
428
|
+
this.nextYearNumberSignal.set(selectedEndDate.year());
|
|
429
|
+
}
|
|
430
|
+
// Update calendar dates to reflect the selected dates
|
|
431
|
+
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
432
|
+
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
433
|
+
}
|
|
434
|
+
}, { allowSignalWrites: true });
|
|
351
435
|
}
|
|
352
436
|
ngOnInit() {
|
|
353
|
-
this.currentDateInstance();
|
|
354
437
|
this.calculateMinMaxDays();
|
|
355
438
|
this.initializeTimeValues();
|
|
356
|
-
if (this.data?.showPrevMonth && !this.isPreviousMonthDisabled) {
|
|
439
|
+
if (this.data()?.showPrevMonth && !this.isPreviousMonthDisabled) {
|
|
357
440
|
this.navigateMonth('PREVIOUS');
|
|
358
441
|
}
|
|
359
442
|
}
|
|
@@ -363,53 +446,13 @@ class TzDrpContainerComponent {
|
|
|
363
446
|
closeOnEsc() {
|
|
364
447
|
this.cancelDatePicker();
|
|
365
448
|
}
|
|
366
|
-
currentDateInstance() {
|
|
367
|
-
if (!this.localSelectedDatesSignal()?.startDate) {
|
|
368
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
369
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
372
|
-
// Extract date part for parsing (handle both date-only and datetime formats)
|
|
373
|
-
const startDateString = this.localSelectedDatesSignal()?.startDate?.split(' ')[0] || this.localSelectedDatesSignal()?.startDate;
|
|
374
|
-
const endDateString = this.localSelectedDatesSignal()?.endDate?.split(' ')[0] || this.localSelectedDatesSignal()?.endDate;
|
|
375
|
-
// Validate date strings before parsing
|
|
376
|
-
if (!startDateString || startDateString === 'Invalid Date' || startDateString === 'undefined' || startDateString === 'null') {
|
|
377
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
378
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
379
|
-
return;
|
|
380
|
-
}
|
|
381
|
-
const selectedStartDate = this.dayjsInstance(startDateString, 'DD/MM/YYYY');
|
|
382
|
-
const selectedEndDate = endDateString ? this.dayjsInstance(endDateString, 'DD/MM/YYYY') : null;
|
|
383
|
-
if (selectedStartDate.isValid()) {
|
|
384
|
-
this.currentYearNumberSignal.set(selectedStartDate.year());
|
|
385
|
-
this.nextYearNumberSignal.set(selectedStartDate.add(1, "month").year());
|
|
386
|
-
this.currentMonthNumberSignal.set(selectedStartDate.get("month"));
|
|
387
|
-
this.nextMonthNumberSignal.set(selectedStartDate.add(1, "month").month());
|
|
388
|
-
if (this.currentMonthNumberSignal() === -1) {
|
|
389
|
-
this.currentMonthNumberSignal.set(11);
|
|
390
|
-
}
|
|
391
|
-
if (this.nextMonthNumberSignal() === -1) {
|
|
392
|
-
this.nextMonthNumberSignal.set(11);
|
|
393
|
-
}
|
|
394
|
-
this.currentMonthSignal.set(getMonth(this.currentMonthNumberSignal()));
|
|
395
|
-
this.nextMonthSignal.set(getMonth(this.nextMonthNumberSignal()));
|
|
396
|
-
}
|
|
397
|
-
// If we have an end date, use it to determine the next month
|
|
398
|
-
if (selectedEndDate && selectedEndDate.isValid() && selectedEndDate.isAfter(selectedStartDate, 'month')) {
|
|
399
|
-
this.nextMonthNumberSignal.set(selectedEndDate.month());
|
|
400
|
-
this.nextYearNumberSignal.set(selectedEndDate.year());
|
|
401
|
-
this.nextMonthSignal.set(getMonth(this.nextMonthNumberSignal()));
|
|
402
|
-
}
|
|
403
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
404
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
405
|
-
}
|
|
406
449
|
calculateMinMaxDays() {
|
|
407
450
|
const currentInstance = this.dayjsInstance().year(this.currentYearNumberSignal()).month(this.currentMonthNumberSignal());
|
|
408
|
-
const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');
|
|
451
|
+
const minDate = !!this.data().dpConfig.minDate ? this.dayjsInstance(this.data().dpConfig.minDate, this.data().dpConfig.format) : dayjs('invalid');
|
|
409
452
|
if (minDate.isValid()) {
|
|
410
453
|
this.isPreviousMonthDisabledSignal.set(minDate.isSameOrAfter(currentInstance, "month"));
|
|
411
454
|
}
|
|
412
|
-
const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');
|
|
455
|
+
const maxDate = !!this.data().dpConfig.maxDate ? this.dayjsInstance(this.data().dpConfig.maxDate, this.data().dpConfig.format) : dayjs('invalid');
|
|
413
456
|
if (maxDate.isValid()) {
|
|
414
457
|
this.isNextMonthDisabledSignal.set(maxDate.isSameOrBefore(currentInstance, "month"));
|
|
415
458
|
}
|
|
@@ -450,30 +493,29 @@ class TzDrpContainerComponent {
|
|
|
450
493
|
const daysInMonth = dayjs().year(currentYearNumber).month(month).daysInMonth();
|
|
451
494
|
for (let currentDate = 1; currentDate <= daysInMonth; currentDate++) {
|
|
452
495
|
const date = dayjs().year(currentYearNumber).month(month).date(currentDate);
|
|
453
|
-
const dateString = date.format(this.data.dpConfig.format);
|
|
454
|
-
let isDisabledDay = this.data.datesDisabled.some(d => d === dateString);
|
|
496
|
+
const dateString = date.format(this.data().dpConfig.format);
|
|
497
|
+
let isDisabledDay = this.data().datesDisabled.some(d => d === dateString);
|
|
455
498
|
// Parse min/max dates safely - try date-only format first, then full format
|
|
456
499
|
let minDate = null;
|
|
457
500
|
let maxDate = null;
|
|
458
|
-
if (this.data.dpConfig.minDate) {
|
|
501
|
+
if (this.data().dpConfig.minDate) {
|
|
459
502
|
try {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
minDate = dayjs(minDateStr, 'DD/MM/YYYY');
|
|
503
|
+
const minDateStr = this.data().dpConfig.minDate.split(' ')[0];
|
|
504
|
+
minDate = this.parseDateWithMultipleFormats(minDateStr);
|
|
463
505
|
if (!minDate.isValid()) {
|
|
464
|
-
minDate = dayjs(this.data.dpConfig.minDate, this.data.dpConfig.format);
|
|
506
|
+
minDate = dayjs(this.data().dpConfig.minDate, this.data().dpConfig.format);
|
|
465
507
|
}
|
|
466
508
|
}
|
|
467
509
|
catch (error) {
|
|
468
510
|
console.warn('Error parsing min date:', error);
|
|
469
511
|
}
|
|
470
512
|
}
|
|
471
|
-
if (this.data.dpConfig.maxDate) {
|
|
513
|
+
if (this.data().dpConfig.maxDate) {
|
|
472
514
|
try {
|
|
473
|
-
const maxDateStr = this.data.dpConfig.maxDate.split(' ')[0];
|
|
474
|
-
maxDate =
|
|
515
|
+
const maxDateStr = this.data().dpConfig.maxDate.split(' ')[0];
|
|
516
|
+
maxDate = this.parseDateWithMultipleFormats(maxDateStr);
|
|
475
517
|
if (!maxDate.isValid()) {
|
|
476
|
-
maxDate = dayjs(this.data.dpConfig.maxDate, this.data.dpConfig.format);
|
|
518
|
+
maxDate = dayjs(this.data().dpConfig.maxDate, this.data().dpConfig.format);
|
|
477
519
|
}
|
|
478
520
|
}
|
|
479
521
|
catch (error) {
|
|
@@ -486,32 +528,63 @@ class TzDrpContainerComponent {
|
|
|
486
528
|
if (!isDisabledDay && maxDate && maxDate.isValid()) {
|
|
487
529
|
isDisabledDay = maxDate.isBefore(date, "day");
|
|
488
530
|
}
|
|
489
|
-
if (this.data?.dpConfig?.maxAllowedRange > 0 &&
|
|
531
|
+
if (this.data()?.dpConfig?.maxAllowedRange > 0 &&
|
|
490
532
|
!isDisabledDay &&
|
|
491
533
|
(this.localSelectedDatesSignal()?.startDate ?? false) && (!(this.localSelectedDatesSignal().endDate ?? false))) {
|
|
492
|
-
const startDate =
|
|
493
|
-
const maxEndDate = startDate.clone().add(this.data.dpConfig.maxAllowedRange - 1, 'days');
|
|
534
|
+
const startDate = this.parseDateWithMultipleFormats(this.localSelectedDatesSignal()?.startDate).startOf('day');
|
|
535
|
+
const maxEndDate = startDate.clone().add(this.data().dpConfig.maxAllowedRange - 1, 'days');
|
|
494
536
|
isDisabledDay = date.isAfter(maxEndDate, 'day');
|
|
495
537
|
}
|
|
496
|
-
const isCurrentDay = this.dayjsInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data.dpConfig.format) ===
|
|
497
|
-
this.dayjsInstance().format(this.data.dpConfig.format);
|
|
538
|
+
const isCurrentDay = this.dayjsInstance().year(currentYearNumber).month(month).date(currentDate).format(this.data().dpConfig.format) ===
|
|
539
|
+
this.dayjsInstance().format(this.data().dpConfig.format);
|
|
498
540
|
// Extract date part for comparison (handle both date-only and datetime formats)
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
//
|
|
502
|
-
|
|
541
|
+
let startDateString = this.localSelectedDatesSignal()?.startDate;
|
|
542
|
+
let endDateString = this.localSelectedDatesSignal()?.endDate;
|
|
543
|
+
// Only extract date part if the format contains time components
|
|
544
|
+
if (this.data().dpConfig.format.includes('HH') || this.data().dpConfig.format.includes('mm') || this.data().dpConfig.format.includes('A')) {
|
|
545
|
+
// For datetime formats, we need to extract just the date part
|
|
546
|
+
// Try to parse the full string and then format it as date-only for comparison
|
|
547
|
+
if (startDateString) {
|
|
548
|
+
const parsedStart = this.parseDateWithMultipleFormats(startDateString);
|
|
549
|
+
if (parsedStart.isValid()) {
|
|
550
|
+
// Extract date part by finding the time boundary - handle spaces in date part
|
|
551
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
552
|
+
if (timeStartMatch) {
|
|
553
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
554
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
555
|
+
startDateString = parsedStart.format(dateOnlyFormat);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (endDateString) {
|
|
560
|
+
const parsedEnd = this.parseDateWithMultipleFormats(endDateString);
|
|
561
|
+
if (parsedEnd.isValid()) {
|
|
562
|
+
// Extract date part by finding the time boundary - handle spaces in date part
|
|
563
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
564
|
+
if (timeStartMatch) {
|
|
565
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
566
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
567
|
+
endDateString = parsedEnd.format(dateOnlyFormat);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
// Parse the selected dates to get proper dayjs instances for comparison
|
|
573
|
+
const startDateParsed = startDateString ? this.parseDateWithMultipleFormats(startDateString) : null;
|
|
574
|
+
const endDateParsed = endDateString ? this.parseDateWithMultipleFormats(endDateString) : null;
|
|
503
575
|
const isSelectedStartDay = !isDisabledDay &&
|
|
504
|
-
|
|
505
|
-
|
|
576
|
+
startDateParsed &&
|
|
577
|
+
startDateParsed.isValid() &&
|
|
578
|
+
date.isSame(startDateParsed, 'day');
|
|
506
579
|
const isSelectedEndDay = !isDisabledDay &&
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
const
|
|
512
|
-
const
|
|
513
|
-
const
|
|
514
|
-
|
|
580
|
+
endDateParsed &&
|
|
581
|
+
endDateParsed.isValid() &&
|
|
582
|
+
date.isSame(endDateParsed, 'day');
|
|
583
|
+
// For range calculation, use the already parsed dates
|
|
584
|
+
const isAfterSelectedStartDate = startDateParsed ? this.dayjsInstance(date).isAfter(startDateParsed, "day") : false;
|
|
585
|
+
const isBeforeSelectedEndDate = endDateParsed ? this.dayjsInstance(date).isBefore(endDateParsed, "day") : false;
|
|
586
|
+
const inRangeDay = startDateParsed && endDateParsed &&
|
|
587
|
+
startDateParsed.isValid() && endDateParsed.isValid() &&
|
|
515
588
|
isAfterSelectedStartDate &&
|
|
516
589
|
isBeforeSelectedEndDate;
|
|
517
590
|
dates.push({
|
|
@@ -521,7 +594,7 @@ class TzDrpContainerComponent {
|
|
|
521
594
|
isSelectedStartDay,
|
|
522
595
|
isSelectedEndDay,
|
|
523
596
|
inRangeDay,
|
|
524
|
-
toastMessage: this.data.messages.find(q => date.format(this.data.dpConfig.format) === q.date)?.message || "",
|
|
597
|
+
toastMessage: this.data().messages.find(q => date.format(this.data().dpConfig.format) === q.date)?.message || "",
|
|
525
598
|
isDisabledDay
|
|
526
599
|
});
|
|
527
600
|
}
|
|
@@ -531,64 +604,135 @@ class TzDrpContainerComponent {
|
|
|
531
604
|
return dates;
|
|
532
605
|
}
|
|
533
606
|
selectDay(from, day) {
|
|
534
|
-
if (day.date <= 0)
|
|
607
|
+
if (day.date <= 0)
|
|
535
608
|
return;
|
|
536
|
-
}
|
|
537
609
|
if (!day.isDisabledDay) {
|
|
538
610
|
this.selectedItemLabelSignal.set(this.CUSTOM_RANGE_LABEL);
|
|
539
|
-
if (this.
|
|
611
|
+
if (this.selectionStartedSignal()) {
|
|
540
612
|
const dayjsDay = dayjs()
|
|
541
613
|
.year(from === "LEFT" ? this.currentYearNumberSignal() : this.nextYearNumberSignal())
|
|
542
614
|
.month(from === "LEFT" ? this.currentMonthNumberSignal() : this.nextMonthNumberSignal())
|
|
543
615
|
.date(day.date);
|
|
544
616
|
// Extract date part from existing start date for comparison
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
617
|
+
let startDateString = this.localSelectedDatesSignal().startDate;
|
|
618
|
+
// Only extract date part if the format contains time components
|
|
619
|
+
if (this.data().dpConfig.format.includes('HH') || this.data().dpConfig.format.includes('mm') || this.data().dpConfig.format.includes('A')) {
|
|
620
|
+
// For datetime formats, we need to extract just the date part
|
|
621
|
+
// Try to parse the full string and then format it as date-only for comparison
|
|
622
|
+
if (startDateString) {
|
|
623
|
+
const parsedStart = this.parseDateWithMultipleFormats(startDateString);
|
|
624
|
+
if (parsedStart.isValid()) {
|
|
625
|
+
// Extract date part by finding the time boundary - handle spaces in date part
|
|
626
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
627
|
+
if (timeStartMatch) {
|
|
628
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
629
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
630
|
+
startDateString = parsedStart.format(dateOnlyFormat);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
}
|
|
559
634
|
}
|
|
635
|
+
const startDate = startDateString ? this.parseDateWithMultipleFormats(startDateString) : null;
|
|
560
636
|
// If the selected date is before the start date, make it the new start date
|
|
561
637
|
if (startDate && dayjsDay.isBefore(startDate, "day")) {
|
|
638
|
+
let formattedDate = dayjsDay.format(this.data().dpConfig.format);
|
|
639
|
+
// If time is enabled, append current time to the date
|
|
640
|
+
if (this.data().dpConfig.enableTime === true) {
|
|
641
|
+
const now = dayjs();
|
|
642
|
+
// Extract date part from the configured format - handle spaces in date part
|
|
643
|
+
// Look for the pattern where time starts (HH, mm, ss, A, a)
|
|
644
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
645
|
+
if (timeStartMatch) {
|
|
646
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
647
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
648
|
+
const timeOnlyFormat = this.data().dpConfig.format.substring(timeStartIndex + timeStartMatch[1].length);
|
|
649
|
+
const dateString = dayjsDay.format(dateOnlyFormat);
|
|
650
|
+
const timeString = now.format(timeOnlyFormat);
|
|
651
|
+
formattedDate = dateString + timeStartMatch[1] + timeString;
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
// Fallback if no time pattern found
|
|
655
|
+
formattedDate = dayjsDay.format(this.data().dpConfig.format);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
562
658
|
this.localSelectedDatesSignal.set({
|
|
563
|
-
startDate:
|
|
659
|
+
startDate: formattedDate,
|
|
564
660
|
endDate: null,
|
|
565
661
|
selectedRangeLabel: this.CUSTOM_RANGE_LABEL
|
|
566
662
|
});
|
|
567
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.
|
|
568
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.
|
|
663
|
+
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
664
|
+
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
569
665
|
return;
|
|
570
666
|
}
|
|
571
667
|
this.selectionStartedSignal.set(false);
|
|
668
|
+
let formattedEndDate = dayjsDay.format(this.data().dpConfig.format);
|
|
669
|
+
// If time is enabled, append current time to the date
|
|
670
|
+
if (this.data().dpConfig.enableTime === true) {
|
|
671
|
+
const now = dayjs();
|
|
672
|
+
// Extract date part from the configured format - handle spaces in date part
|
|
673
|
+
// Look for the pattern where time starts (HH, mm, ss, A, a)
|
|
674
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
675
|
+
if (timeStartMatch) {
|
|
676
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
677
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
678
|
+
const timeOnlyFormat = this.data().dpConfig.format.substring(timeStartIndex + timeStartMatch[1].length);
|
|
679
|
+
const dateString = dayjsDay.format(dateOnlyFormat);
|
|
680
|
+
const timeString = now.format(timeOnlyFormat);
|
|
681
|
+
formattedEndDate = dateString + timeStartMatch[1] + timeString;
|
|
682
|
+
}
|
|
683
|
+
else {
|
|
684
|
+
// Fallback if no time pattern found
|
|
685
|
+
formattedEndDate = dayjsDay.format(this.data().dpConfig.format);
|
|
686
|
+
}
|
|
687
|
+
}
|
|
572
688
|
this.localSelectedDatesSignal.set({
|
|
573
689
|
...this.localSelectedDatesSignal(),
|
|
574
|
-
endDate:
|
|
690
|
+
endDate: formattedEndDate,
|
|
575
691
|
selectedRangeLabel: this.CUSTOM_RANGE_LABEL
|
|
576
692
|
});
|
|
577
693
|
}
|
|
578
694
|
else {
|
|
579
695
|
this.selectionStartedSignal.set(true);
|
|
696
|
+
let formattedStartDate = dayjs()
|
|
697
|
+
.year(from === "LEFT" ? this.currentYearNumberSignal() : this.nextYearNumberSignal())
|
|
698
|
+
.month(from === "LEFT" ? this.currentMonthNumberSignal() : this.nextMonthNumberSignal())
|
|
699
|
+
.date(day.date)
|
|
700
|
+
.format(this.data().dpConfig.format);
|
|
701
|
+
// If time is enabled, append current time to the date
|
|
702
|
+
if (this.data().dpConfig.enableTime === true) {
|
|
703
|
+
const now = dayjs();
|
|
704
|
+
// Extract date part from the configured format - handle spaces in date part
|
|
705
|
+
// Look for the pattern where time starts (HH, mm, ss, A, a)
|
|
706
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
707
|
+
if (timeStartMatch) {
|
|
708
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
709
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
710
|
+
const timeOnlyFormat = this.data().dpConfig.format.substring(timeStartIndex + timeStartMatch[1].length);
|
|
711
|
+
const dateString = dayjs()
|
|
712
|
+
.year(from === "LEFT" ? this.currentYearNumberSignal() : this.nextYearNumberSignal())
|
|
713
|
+
.month(from === "LEFT" ? this.currentMonthNumberSignal() : this.nextMonthNumberSignal())
|
|
714
|
+
.date(day.date)
|
|
715
|
+
.format(dateOnlyFormat);
|
|
716
|
+
const timeString = now.format(timeOnlyFormat);
|
|
717
|
+
formattedStartDate = dateString + timeStartMatch[1] + timeString;
|
|
718
|
+
}
|
|
719
|
+
else {
|
|
720
|
+
// Fallback if no time pattern found
|
|
721
|
+
formattedStartDate = dayjs()
|
|
722
|
+
.year(from === "LEFT" ? this.currentYearNumberSignal() : this.nextYearNumberSignal())
|
|
723
|
+
.month(from === "LEFT" ? this.currentMonthNumberSignal() : this.nextMonthNumberSignal())
|
|
724
|
+
.date(day.date)
|
|
725
|
+
.format(this.data().dpConfig.format);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
580
728
|
this.localSelectedDatesSignal.set({
|
|
581
|
-
startDate:
|
|
582
|
-
.year(from === "LEFT" ? this.currentYearNumberSignal() : this.nextYearNumberSignal())
|
|
583
|
-
.month(from === "LEFT" ? this.currentMonthNumberSignal() : this.nextMonthNumberSignal())
|
|
584
|
-
.date(day.date)
|
|
585
|
-
.format(this.data.dpConfig.format),
|
|
729
|
+
startDate: formattedStartDate,
|
|
586
730
|
endDate: null,
|
|
587
731
|
selectedRangeLabel: this.CUSTOM_RANGE_LABEL
|
|
588
732
|
});
|
|
589
733
|
}
|
|
590
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.
|
|
591
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.
|
|
734
|
+
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
735
|
+
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
592
736
|
this.isDatesValidSignal.set(false);
|
|
593
737
|
if (this.localSelectedDatesSignal().startDate && this.localSelectedDatesSignal().endDate) {
|
|
594
738
|
this.isDatesValidSignal.set(true);
|
|
@@ -603,11 +747,11 @@ class TzDrpContainerComponent {
|
|
|
603
747
|
return;
|
|
604
748
|
let startDate = this.dayjsInstance(item.value[0]);
|
|
605
749
|
let endDate = this.dayjsInstance(item.value[1]);
|
|
606
|
-
const startDateStr = startDate.format(this.data.dpConfig.format);
|
|
607
|
-
const endDateStr = endDate.format(this.data.dpConfig.format);
|
|
608
|
-
const isAnyDateDisabled = this.data.datesDisabled.some((date) => this.dayjsInstance(date, this.data.dpConfig.format).isBetween(startDateStr, endDateStr, null, '[]'));
|
|
609
|
-
const minDate = !!this.data.dpConfig.minDate ? this.dayjsInstance(this.data.dpConfig.minDate, this.data.dpConfig.format) : dayjs('invalid');
|
|
610
|
-
const maxDate = !!this.data.dpConfig.maxDate ? this.dayjsInstance(this.data.dpConfig.maxDate, this.data.dpConfig.format) : dayjs('invalid');
|
|
750
|
+
const startDateStr = startDate.format(this.data().dpConfig.format);
|
|
751
|
+
const endDateStr = endDate.format(this.data().dpConfig.format);
|
|
752
|
+
const isAnyDateDisabled = this.data().datesDisabled.some((date) => this.dayjsInstance(date, this.data().dpConfig.format).isBetween(startDateStr, endDateStr, null, '[]'));
|
|
753
|
+
const minDate = !!this.data().dpConfig.minDate ? this.dayjsInstance(this.data().dpConfig.minDate, this.data().dpConfig.format) : dayjs('invalid');
|
|
754
|
+
const maxDate = !!this.data().dpConfig.maxDate ? this.dayjsInstance(this.data().dpConfig.maxDate, this.data().dpConfig.format) : dayjs('invalid');
|
|
611
755
|
const isWithinLimits = (!minDate.isValid() || !startDate.isBefore(minDate, "day")) &&
|
|
612
756
|
(!maxDate.isValid() || !endDate.isAfter(maxDate, "day"));
|
|
613
757
|
if (!isWithinLimits || isAnyDateDisabled) {
|
|
@@ -630,10 +774,10 @@ class TzDrpContainerComponent {
|
|
|
630
774
|
endDate: endDateStr,
|
|
631
775
|
selectedRangeLabel: item.label
|
|
632
776
|
});
|
|
633
|
-
this.currentMonthSignal.set(getMonth(this.
|
|
634
|
-
this.nextMonthSignal.set(getMonth(this.
|
|
635
|
-
this.currentMonthDatesSignal.set(this.generateDates(this.
|
|
636
|
-
this.nextMonthDatesSignal.set(this.generateDates(this.
|
|
777
|
+
this.currentMonthSignal.set(getMonth(this.currentMonthNumberSignal()));
|
|
778
|
+
this.nextMonthSignal.set(getMonth(this.nextMonthNumberSignal()));
|
|
779
|
+
this.currentMonthDatesSignal.set(this.generateDates(this.currentMonthNumberSignal(), this.currentYearNumberSignal()));
|
|
780
|
+
this.nextMonthDatesSignal.set(this.generateDates(this.nextMonthNumberSignal(), this.nextYearNumberSignal()));
|
|
637
781
|
this.isDatesValidSignal.set(!!(this.localSelectedDatesSignal().startDate && this.localSelectedDatesSignal().endDate));
|
|
638
782
|
}
|
|
639
783
|
resetRange() {
|
|
@@ -650,7 +794,7 @@ class TzDrpContainerComponent {
|
|
|
650
794
|
}
|
|
651
795
|
applyDates() {
|
|
652
796
|
// If time is enabled, append time to the dates before applying
|
|
653
|
-
if (this.data.dpConfig.enableTime === true) {
|
|
797
|
+
if (this.data().dpConfig.enableTime === true) {
|
|
654
798
|
let startTime;
|
|
655
799
|
let endTime;
|
|
656
800
|
if (this.is12HourFormat()) {
|
|
@@ -662,21 +806,51 @@ class TzDrpContainerComponent {
|
|
|
662
806
|
endTime = this.formatTime(this.endHour24(), this.endMinute(), '');
|
|
663
807
|
}
|
|
664
808
|
// Extract only the date part (before any existing time) and append the selected time
|
|
665
|
-
const
|
|
666
|
-
|
|
809
|
+
const localDates = this.localSelectedDatesSignal();
|
|
810
|
+
let startDateOnly = localDates.startDate;
|
|
811
|
+
let endDateOnly = localDates.endDate;
|
|
812
|
+
// Only extract date part if the format contains time components
|
|
813
|
+
if (this.data().dpConfig.format.includes('HH') || this.data().dpConfig.format.includes('mm') || this.data().dpConfig.format.includes('A')) {
|
|
814
|
+
// For datetime formats, we need to extract just the date part
|
|
815
|
+
// Try to parse the full string and then format it as date-only for comparison
|
|
816
|
+
if (startDateOnly) {
|
|
817
|
+
const parsedStart = this.parseDateWithMultipleFormats(startDateOnly);
|
|
818
|
+
if (parsedStart.isValid()) {
|
|
819
|
+
// Extract date part by finding the time boundary - handle spaces in date part
|
|
820
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
821
|
+
if (timeStartMatch) {
|
|
822
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
823
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
824
|
+
startDateOnly = parsedStart.format(dateOnlyFormat);
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
if (endDateOnly) {
|
|
829
|
+
const parsedEnd = this.parseDateWithMultipleFormats(endDateOnly);
|
|
830
|
+
if (parsedEnd.isValid()) {
|
|
831
|
+
// Extract date part by finding the time boundary - handle spaces in date part
|
|
832
|
+
const timeStartMatch = this.data().dpConfig.format.match(/(\s+)(HH|mm|ss|A|a)/);
|
|
833
|
+
if (timeStartMatch) {
|
|
834
|
+
const timeStartIndex = this.data().dpConfig.format.indexOf(timeStartMatch[0]);
|
|
835
|
+
const dateOnlyFormat = this.data().dpConfig.format.substring(0, timeStartIndex);
|
|
836
|
+
endDateOnly = parsedEnd.format(dateOnlyFormat);
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
}
|
|
667
841
|
const startDateWithTime = startDateOnly + ' ' + startTime;
|
|
668
842
|
const endDateWithTime = endDateOnly + ' ' + endTime;
|
|
669
|
-
this.data.dateChange({
|
|
843
|
+
this.data().dateChange({
|
|
670
844
|
startDate: startDateWithTime,
|
|
671
845
|
endDate: endDateWithTime
|
|
672
846
|
});
|
|
673
847
|
}
|
|
674
848
|
else {
|
|
675
|
-
this.data.dateChange(this.localSelectedDatesSignal());
|
|
849
|
+
this.data().dateChange(this.localSelectedDatesSignal());
|
|
676
850
|
}
|
|
677
851
|
}
|
|
678
852
|
cancelDatePicker() {
|
|
679
|
-
this.data.close();
|
|
853
|
+
this.data().close();
|
|
680
854
|
}
|
|
681
855
|
// Time-related methods
|
|
682
856
|
onStartHourInput() {
|
|
@@ -735,7 +909,7 @@ class TzDrpContainerComponent {
|
|
|
735
909
|
return minute;
|
|
736
910
|
}
|
|
737
911
|
is12HourFormat() {
|
|
738
|
-
return this.data.dpConfig.format.includes('A') || this.data.dpConfig.format.includes('a');
|
|
912
|
+
return this.data().dpConfig.format.includes('A') || this.data().dpConfig.format.includes('a');
|
|
739
913
|
}
|
|
740
914
|
formatTime(hour, minute, amPm) {
|
|
741
915
|
if (this.is12HourFormat()) {
|
|
@@ -750,7 +924,7 @@ class TzDrpContainerComponent {
|
|
|
750
924
|
// Initialize time values from existing selected dates if they contain time
|
|
751
925
|
let startTimeInitialized = false;
|
|
752
926
|
let endTimeInitialized = false;
|
|
753
|
-
if (this.data.dpConfig.enableTime && this.localSelectedDatesSignal().startDate) {
|
|
927
|
+
if (this.data().dpConfig.enableTime && this.localSelectedDatesSignal().startDate && typeof this.localSelectedDatesSignal().startDate === 'string') {
|
|
754
928
|
const startDateParts = this.localSelectedDatesSignal().startDate.split(' ');
|
|
755
929
|
if (startDateParts.length > 1) {
|
|
756
930
|
const timePart = startDateParts.slice(1).join(' '); // Handle multiple spaces
|
|
@@ -758,7 +932,7 @@ class TzDrpContainerComponent {
|
|
|
758
932
|
startTimeInitialized = true;
|
|
759
933
|
}
|
|
760
934
|
}
|
|
761
|
-
if (this.data.dpConfig.enableTime && this.localSelectedDatesSignal().endDate) {
|
|
935
|
+
if (this.data().dpConfig.enableTime && this.localSelectedDatesSignal().endDate && typeof this.localSelectedDatesSignal().endDate === 'string') {
|
|
762
936
|
const endDateParts = this.localSelectedDatesSignal().endDate.split(' ');
|
|
763
937
|
if (endDateParts.length > 1) {
|
|
764
938
|
const timePart = endDateParts.slice(1).join(' '); // Handle multiple spaces
|
|
@@ -767,7 +941,7 @@ class TzDrpContainerComponent {
|
|
|
767
941
|
}
|
|
768
942
|
}
|
|
769
943
|
// If no existing time found, set current time as default
|
|
770
|
-
if (this.data.dpConfig.enableTime) {
|
|
944
|
+
if (this.data().dpConfig.enableTime) {
|
|
771
945
|
if (!startTimeInitialized) {
|
|
772
946
|
this.setCurrentTimeAsDefault(true);
|
|
773
947
|
}
|
|
@@ -994,9 +1168,10 @@ class TzDrpContainerComponent {
|
|
|
994
1168
|
i0.ɵɵtext(38, "Apply");
|
|
995
1169
|
i0.ɵɵelementEnd()()();
|
|
996
1170
|
} if (rf & 2) {
|
|
1171
|
+
let tmp_1_0;
|
|
997
1172
|
i0.ɵɵproperty("cdkTrapFocusAutoCapture", true);
|
|
998
1173
|
i0.ɵɵadvance(3);
|
|
999
|
-
i0.ɵɵproperty("ngIf", (ctx.data == null ? null :
|
|
1174
|
+
i0.ɵɵproperty("ngIf", ((tmp_1_0 = ctx.data()) == null ? null : tmp_1_0.dpConfig == null ? null : tmp_1_0.dpConfig.ranges == null ? null : tmp_1_0.dpConfig.ranges.length) > 0);
|
|
1000
1175
|
i0.ɵɵadvance(3);
|
|
1001
1176
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c0, ctx.isPreviousMonthDisabled()));
|
|
1002
1177
|
i0.ɵɵadvance(4);
|
|
@@ -1016,14 +1191,14 @@ class TzDrpContainerComponent {
|
|
|
1016
1191
|
i0.ɵɵadvance(2);
|
|
1017
1192
|
i0.ɵɵproperty("ngForOf", ctx.nextMonthDates());
|
|
1018
1193
|
i0.ɵɵadvance();
|
|
1019
|
-
i0.ɵɵproperty("ngIf", ctx.data.dpConfig.enableTime === true);
|
|
1194
|
+
i0.ɵɵproperty("ngIf", ctx.data().dpConfig.enableTime === true);
|
|
1020
1195
|
i0.ɵɵadvance(4);
|
|
1021
1196
|
i0.ɵɵproperty("disabled", !ctx.isDatesValid());
|
|
1022
1197
|
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.ButtonDirective, i5.CdkTrapFocus], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container[_ngcontent-%COMP%]{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%]{max-width:100vw;border:none}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%]{display:flex;gap:24px;padding:16px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__ranges[_ngcontent-%COMP%]{display:flex;flex-direction:column}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .mis-btn[_ngcontent-%COMP%]{background:none;outline:none;border:none;cursor:pointer;border-radius:4px;vertical-align:middle;text-align:center;box-sizing:border-box;display:flex;align-items:center;text-decoration:none;justify-content:center;padding:10px 16px;font-size:16px;line-height:24px;background-color:transparent;color:var(--brand-primary, #0937B2)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .active-range[_ngcontent-%COMP%]{background-color:var(--brand-primary-lightest, #CBDDFB)}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%]{flex-direction:column;align-items:center;position:fixed;bottom:0;left:0;background-color:#fff;width:100%;max-height:68vh;overflow-y:auto;border-radius:30px;gap:24px;padding:10% 0 30%;box-shadow:0 -4px 8px 10000px #0000001f;scrollbar-width:none;-ms-overflow-style:none}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__left[_ngcontent-%COMP%], .daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__right[_ngcontent-%COMP%]{display:flex;flex-direction:column}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__left[_ngcontent-%COMP%], .daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__right[_ngcontent-%COMP%]{width:90%}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%]{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:10%}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin:0 auto;font-size:4vw}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon.disabled-month[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:nth-child(1){transform:rotate(180deg)}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]{width:7%}}@media only screen and (min-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .mobile_view[_ngcontent-%COMP%]{display:none}}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .pc_view[_ngcontent-%COMP%]{display:none}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%]{height:100%;width:252px}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%]{width:100%}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%]{width:100%;display:flex;padding-bottom:10px}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%]{width:36px;height:18px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%]{margin:0 auto}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:3vw}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]{width:36px;height:36px;display:flex;align-items:center;justify-content:center}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]{flex:0 0 14.2857142857%;width:14.2857142857%;height:14.2857142857%;aspect-ratio:1}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]{cursor:default}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]:hover{background-color:transparent}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-start-day):not(.selected-end-day) > span[_ngcontent-%COMP%]{color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:3.4vw}}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.selected-day[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.disabled-day[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-same-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:50%!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-same-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .in-range-day[_ngcontent-%COMP%]:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%]{border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;background-color:#f8f9fa;display:flex;gap:24px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{flex:1}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0 0 8px;font-size:14px;font-weight:600;color:#333}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]{width:60px;padding:8px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:14px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b233}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .time-input.hour-input[_ngcontent-%COMP%], .daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .time-input.minute-input[_ngcontent-%COMP%]{width:50px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .time-separator[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#666}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%]{padding:7.1px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;font-size:14px;cursor:pointer}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__time[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .time-inputs[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--brand-primary, #0937B2)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;gap:24px}@media only screen and (max-width: 900px){.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%]{justify-content:space-evenly;padding:2% 0;background-color:var(--bg-primary, #FFFFFF);position:fixed;bottom:0;left:0;width:100%;height:8vh;border-top:2px solid var(--text-disabled, #C8CDD3)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] #mobile-footer-btn[_ngcontent-%COMP%]{width:36%;font-size:3.8vw}}"] }); }
|
|
1023
1198
|
}
|
|
1024
1199
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TzDrpContainerComponent, [{
|
|
1025
1200
|
type: Component,
|
|
1026
|
-
args: [{ selector: "mis-tz-drp", template: "<div class=\"daterangepicker-container\" aria-label=\"date range picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div class=\"daterangepicker-container__view\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div *ngIf=\"data?.dpConfig?.ranges?.length > 0\" class=\"daterangepicker-container__ranges\">\n <div *ngFor=\"let item of data?.dpConfig?.ranges ?? []\" >\n <button\n [ngClass]=\"{'active-range' : selectedItemLabel() === item.label}\"\n (click)=\"selectRange(item)\"\n class=\"mis-btn\"\n >\n {{ item.label }}\n </button>\n </div>\n <div> <button class=\"mis-btn\" [ngClass]=\"{'active-range' : selectedItemLabel() === 'Custom Range'}\" (click)=\"resetRange()\">Custom Range</button> </div>\n </div>\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n tabindex=\"0\"\n (click)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n (keyup.enter)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n aria-label=\"Previous Month\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth() }} {{ currentYearNumber() }} </span>\n <div></div>\n <!-- Button visible in mobile view -->\n <div\n class=\"daterangepicker-container__arrow__icon mobile_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n aria-label=\"Next Month\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\" \n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of currentMonthDates()\"\n (click)=\"selectDay('LEFT', day)\"\n (keyup.enter)=\"selectDay('LEFT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth(), currentYearNumber())\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth() }} {{ nextYearNumber() }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon pc_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates()\"\n (click)=\"selectDay('RIGHT', day)\"\n (keyup.enter)=\"selectDay('RIGHT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, nextMonth(), nextYearNumber())\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Time Selection Section -->\n <div class=\"daterangepicker-container__time\" *ngIf=\"data.dpConfig.enableTime === true\">\n <div class=\"time-section\">\n <h4>From</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? startHour() : startHour24()\" \n (ngModelChange)=\"is12HourFormat() ? startHourSignal.set($event) : startHour24Signal.set($event); onStartHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [ngModel]=\"startMinute()\" (ngModelChange)=\"startMinuteSignal.set($event)\" \n (input)=\"onStartMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [ngModel]=\"startAmPm()\" (ngModelChange)=\"startAmPmSignal.set($event)\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n \n <div class=\"time-section\">\n <h4>To</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? endHour() : endHour24()\" \n (ngModelChange)=\"is12HourFormat() ? endHourSignal.set($event) : endHour24Signal.set($event); onEndHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [ngModel]=\"endMinute()\" (ngModelChange)=\"endMinuteSignal.set($event)\" \n (input)=\"onEndMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [ngModel]=\"endAmPm()\" (ngModelChange)=\"endAmPmSignal.set($event)\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n </div>\n \n <div class=\"daterangepicker__footer\">\n <button mis-button type=\"none\" id='mobile-footer-btn' (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button type=\"primary\" id=\"mobile-footer-btn\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid()\">Apply</button>\n </div>\n</div>", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}@media only screen and (max-width: 900px){.daterangepicker-container{max-width:100vw;border:none}}.daterangepicker-container .daterangepicker-container__view{display:flex;gap:24px;padding:16px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__ranges{display:flex;flex-direction:column}.daterangepicker-container .daterangepicker-container__view .mis-btn{background:none;outline:none;border:none;cursor:pointer;border-radius:4px;vertical-align:middle;text-align:center;box-sizing:border-box;display:flex;align-items:center;text-decoration:none;justify-content:center;padding:10px 16px;font-size:16px;line-height:24px;background-color:transparent;color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker-container__view .active-range{background-color:var(--brand-primary-lightest, #CBDDFB)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view{flex-direction:column;align-items:center;position:fixed;bottom:0;left:0;background-color:#fff;width:100%;max-height:68vh;overflow-y:auto;border-radius:30px;gap:24px;padding:10% 0 30%;box-shadow:0 -4px 8px 10000px #0000001f;scrollbar-width:none;-ms-overflow-style:none}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__view::-webkit-scrollbar{display:none}}.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{display:flex;flex-direction:column}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{width:90%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:10%}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{margin:0 auto;font-size:4vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{width:7%}}@media only screen and (min-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .mobile_view{display:none}}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .pc_view{display:none}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{height:100%;width:252px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{width:100%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{width:36px;height:18px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{margin:0 auto}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:3vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-wrap:wrap}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{width:36px;height:36px;display:flex;align-items:center;justify-content:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{flex:0 0 14.2857142857%;width:14.2857142857%;height:14.2857142857%;aspect-ratio:1}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day{cursor:default}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day:hover{background-color:transparent}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day>span{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day)>span{color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:3.4vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.selected-day{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.disabled-day{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-same-day{background-color:var(--brand-primary, #0937B2);border-radius:50%!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-same-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .in-range-day:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__time{border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;background-color:#f8f9fa;display:flex;gap:24px}.daterangepicker-container .daterangepicker-container__time .time-section{flex:1}.daterangepicker-container .daterangepicker-container__time .time-section h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#333}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs{display:flex;align-items:center;gap:8px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input{width:60px;padding:8px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:14px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b233}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input.hour-input,.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input.minute-input{width:50px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-separator{font-size:16px;font-weight:600;color:#666}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .am-pm-selector{padding:7.1px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;font-size:14px;cursor:pointer}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .am-pm-selector:focus{outline:none;border-color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker__footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;gap:24px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker__footer{justify-content:space-evenly;padding:2% 0;background-color:var(--bg-primary, #FFFFFF);position:fixed;bottom:0;left:0;width:100%;height:8vh;border-top:2px solid var(--text-disabled, #C8CDD3)}.daterangepicker-container .daterangepicker__footer #mobile-footer-btn{width:36%;font-size:3.8vw}}\n"] }]
|
|
1201
|
+
args: [{ selector: "mis-tz-drp", template: "<div class=\"daterangepicker-container\" aria-label=\"date range picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div class=\"daterangepicker-container__view\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div *ngIf=\"data()?.dpConfig?.ranges?.length > 0\" class=\"daterangepicker-container__ranges\">\n <div *ngFor=\"let item of data()?.dpConfig?.ranges ?? []\" >\n <button\n [ngClass]=\"{'active-range' : selectedItemLabel() === item.label}\"\n (click)=\"selectRange(item)\"\n class=\"mis-btn\"\n >\n {{ item.label }}\n </button>\n </div>\n <div> <button class=\"mis-btn\" [ngClass]=\"{'active-range' : selectedItemLabel() === 'Custom Range'}\" (click)=\"resetRange()\">Custom Range</button> </div>\n </div>\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n tabindex=\"0\"\n (click)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n (keyup.enter)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n aria-label=\"Previous Month\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth() }} {{ currentYearNumber() }} </span>\n <div></div>\n <!-- Button visible in mobile view -->\n <div\n class=\"daterangepicker-container__arrow__icon mobile_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n aria-label=\"Next Month\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\" \n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of currentMonthDates()\"\n (click)=\"selectDay('LEFT', day)\"\n (keyup.enter)=\"selectDay('LEFT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth(), currentYearNumber())\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth() }} {{ nextYearNumber() }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon pc_view\"\n tabindex=\"0\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n (keyup.enter)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-same-day': day.isSelectedStartDay && day.isSelectedEndDay,\n 'selected-start-day': day.isSelectedStartDay,\n 'selected-end-day': day.isSelectedEndDay,\n 'disabled-day': day.isDisabledDay,\n 'in-range-day': day.inRangeDay,\n 'is-valid-date': day.date > 0 && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates()\"\n (click)=\"selectDay('RIGHT', day)\"\n (keyup.enter)=\"selectDay('RIGHT', day)\"\n >\n <span *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [attr.aria-label]=\"retractDayMonth(day.date, nextMonth(), nextYearNumber())\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Time Selection Section -->\n <div class=\"daterangepicker-container__time\" *ngIf=\"data().dpConfig.enableTime === true\">\n <div class=\"time-section\">\n <h4>From</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? startHour() : startHour24()\" \n (ngModelChange)=\"is12HourFormat() ? startHourSignal.set($event) : startHour24Signal.set($event); onStartHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [ngModel]=\"startMinute()\" (ngModelChange)=\"startMinuteSignal.set($event)\" \n (input)=\"onStartMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [ngModel]=\"startAmPm()\" (ngModelChange)=\"startAmPmSignal.set($event)\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n \n <div class=\"time-section\">\n <h4>To</h4>\n <div class=\"time-inputs\">\n <input \n type=\"number\" \n [ngModel]=\"is12HourFormat() ? endHour() : endHour24()\" \n (ngModelChange)=\"is12HourFormat() ? endHourSignal.set($event) : endHour24Signal.set($event); onEndHourInput()\"\n [min]=\"is12HourFormat() ? 1 : 0\" \n [max]=\"is12HourFormat() ? 12 : 23\" \n step=\"1\"\n class=\"time-input hour-input\"\n placeholder=\"HH\">\n <span class=\"time-separator\">:</span>\n <input \n type=\"number\" \n [ngModel]=\"endMinute()\" (ngModelChange)=\"endMinuteSignal.set($event)\" \n (input)=\"onEndMinuteInput()\"\n min=\"0\" \n max=\"59\" \n step=\"1\"\n class=\"time-input minute-input\"\n placeholder=\"MM\">\n <select \n [ngModel]=\"endAmPm()\" (ngModelChange)=\"endAmPmSignal.set($event)\" \n class=\"am-pm-selector\"\n *ngIf=\"is12HourFormat()\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n </div>\n \n <div class=\"daterangepicker__footer\">\n <button mis-button type=\"none\" id='mobile-footer-btn' (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button type=\"primary\" id=\"mobile-footer-btn\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid()\">Apply</button>\n </div>\n</div>", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}@media only screen and (max-width: 900px){.daterangepicker-container{max-width:100vw;border:none}}.daterangepicker-container .daterangepicker-container__view{display:flex;gap:24px;padding:16px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__ranges{display:flex;flex-direction:column}.daterangepicker-container .daterangepicker-container__view .mis-btn{background:none;outline:none;border:none;cursor:pointer;border-radius:4px;vertical-align:middle;text-align:center;box-sizing:border-box;display:flex;align-items:center;text-decoration:none;justify-content:center;padding:10px 16px;font-size:16px;line-height:24px;background-color:transparent;color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker-container__view .active-range{background-color:var(--brand-primary-lightest, #CBDDFB)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view{flex-direction:column;align-items:center;position:fixed;bottom:0;left:0;background-color:#fff;width:100%;max-height:68vh;overflow-y:auto;border-radius:30px;gap:24px;padding:10% 0 30%;box-shadow:0 -4px 8px 10000px #0000001f;scrollbar-width:none;-ms-overflow-style:none}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__view::-webkit-scrollbar{display:none}}.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{display:flex;flex-direction:column}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{width:90%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:10%}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{margin:0 auto;font-size:4vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{width:7%}}@media only screen and (min-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .mobile_view{display:none}}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .pc_view{display:none}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{height:100%;width:252px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{width:100%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{width:36px;height:18px;text-align:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{margin:0 auto}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:3vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-wrap:wrap}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-direction:row;flex-wrap:wrap;flex:0 0 14.2857142857%}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{width:36px;height:36px;display:flex;align-items:center;justify-content:center}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{flex:0 0 14.2857142857%;width:14.2857142857%;height:14.2857142857%;aspect-ratio:1}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day{cursor:default}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day:hover{background-color:transparent}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day>span{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day)>span{color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:3.4vw}}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.selected-day{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.disabled-day{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-same-day{background-color:var(--brand-primary, #0937B2);border-radius:50%!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-same-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day>span{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .in-range-day:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__time{border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;background-color:#f8f9fa;display:flex;gap:24px}.daterangepicker-container .daterangepicker-container__time .time-section{flex:1}.daterangepicker-container .daterangepicker-container__time .time-section h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#333}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs{display:flex;align-items:center;gap:8px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input{width:60px;padding:8px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:14px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b233}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input.hour-input,.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-input.minute-input{width:50px}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .time-separator{font-size:16px;font-weight:600;color:#666}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .am-pm-selector{padding:7.1px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;font-size:14px;cursor:pointer}.daterangepicker-container .daterangepicker-container__time .time-section .time-inputs .am-pm-selector:focus{outline:none;border-color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker__footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;gap:24px}@media only screen and (max-width: 900px){.daterangepicker-container .daterangepicker__footer{justify-content:space-evenly;padding:2% 0;background-color:var(--bg-primary, #FFFFFF);position:fixed;bottom:0;left:0;width:100%;height:8vh;border-top:2px solid var(--text-disabled, #C8CDD3)}.daterangepicker-container .daterangepicker__footer #mobile-footer-btn{width:36%;font-size:3.8vw}}\n"] }]
|
|
1027
1202
|
}], () => [{ type: undefined, decorators: [{
|
|
1028
1203
|
type: Inject,
|
|
1029
1204
|
args: [CONTAINER_DATA]
|
|
@@ -1099,16 +1274,19 @@ class TzDaterangepickerDirective {
|
|
|
1099
1274
|
backdropClass: "cdk-overlay-transparent-backdrop"
|
|
1100
1275
|
});
|
|
1101
1276
|
this.overlayRef = this.overlay.create(config);
|
|
1277
|
+
// Get current values at the time of opening
|
|
1278
|
+
const currentSelectedDates = this.selectedDates();
|
|
1279
|
+
const currentSelectedRangeLabel = this.selectedRangeLabel();
|
|
1102
1280
|
const tempRef = new ComponentPortal(TzDrpContainerComponent, this.viewContainerRef, Injector.create({
|
|
1103
1281
|
providers: [
|
|
1104
1282
|
{
|
|
1105
1283
|
provide: CONTAINER_DATA,
|
|
1106
1284
|
useValue: {
|
|
1107
1285
|
messages: this.dateMessages(),
|
|
1108
|
-
dates:
|
|
1286
|
+
dates: currentSelectedDates,
|
|
1109
1287
|
dpConfig: this.dpConfig(),
|
|
1110
1288
|
datesDisabled: this.datesDisabled(),
|
|
1111
|
-
selectedRangeLabel:
|
|
1289
|
+
selectedRangeLabel: currentSelectedRangeLabel,
|
|
1112
1290
|
dateChange: this.applyDate.bind(this),
|
|
1113
1291
|
close: this.close.bind(this)
|
|
1114
1292
|
}
|