@wzrdev/ngx-datepicker 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This project is still under development and will be released soon.
4
4
 
5
- ![demo](src/assets/images/cover.png)
5
+ ![demo](https://raw.githubusercontent.com/antonypaquay/ngx-datepicker/refs/heads/develop/projects/ngx-datepicker/src/assets/images/cover.png?token=GHSAT0AAAAAADUF4RXUH35AEVIWGVLRECSK2MXKQIA)
6
6
 
7
7
  ### Compatibility
8
8
 
@@ -30,9 +30,14 @@ Add the styles to your angular.json file:
30
30
  The theme.min.css file contains the styles for the standard component. You can customize the styles by overriding the variables in your global styles.css file.
31
31
 
32
32
  ```css
33
+ /* Import Montserrat Alternates font */
34
+ @import url('https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
35
+
33
36
  :root {
34
37
  /* Datepicker overrides */
38
+ --ngx-datepicker-outline-color: theme('colors.blue.600');
35
39
  --ngx-datepicker-accent-color: theme('colors.slate.800');
40
+ --ngx-datepicker-accent-text-color: theme('colors.white');
36
41
  --ngx-datepicker-range-color: theme('colors.slate.300');
37
42
  }
38
43
  ```
@@ -102,4 +107,17 @@ It depends on what you need, you can use the date range with a combined field or
102
107
  There are two ways to use the date range picker:
103
108
 
104
109
  - using signals
105
- - using reactive forms
110
+ - using reactive forms (Not fully implemented yet)
111
+
112
+ ---
113
+ #### Using with signals:
114
+
115
+ ```html
116
+
117
+ <ngx-date-range-picker
118
+ label="Choose a date range"
119
+ [startDate]="startDate()"
120
+ [endDate]="endDate()"
121
+ (selectedDateRange)="onSelectDateRange($event)"
122
+ />
123
+ ```
@@ -344,23 +344,23 @@ class DatePickerWrapperComponent {
344
344
  this.hoverDate.emit(date);
345
345
  }
346
346
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DatePickerWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
347
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: DatePickerWrapperComponent, isStandalone: true, selector: "ngx-date-picker-wrapper", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, hoveredDate: { classPropertyName: "hoveredDate", publicName: "hoveredDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, openCalendar: { classPropertyName: "openCalendar", publicName: "openCalendar", isSignal: true, isRequired: false, transformFunction: null }, enableRange: { classPropertyName: "enableRange", publicName: "enableRange", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedDate: "selectedDate", selectedDateRange: "selectedDateRange", hoverDate: "hoverDate" }, ngImport: i0, template: "<div class=\"ngx:inline-block ngx:relative\">\n <div class=\"ngx:inline-flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:inline-block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:inline-flex ngx:w-auto ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n", dependencies: [{ kind: "component", type: CalendarComponent, selector: "ngx-calendar", inputs: ["startDate", "endDate", "minDate", "maxDate", "enableRange"], outputs: ["startDateChange", "endDateChange", "selectedDate", "selectedDateRange", "selectedDaysCount", "hoverDate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
347
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: DatePickerWrapperComponent, isStandalone: true, selector: "ngx-date-picker-wrapper", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, hoveredDate: { classPropertyName: "hoveredDate", publicName: "hoveredDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, openCalendar: { classPropertyName: "openCalendar", publicName: "openCalendar", isSignal: true, isRequired: false, transformFunction: null }, enableRange: { classPropertyName: "enableRange", publicName: "enableRange", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedDate: "selectedDate", selectedDateRange: "selectedDateRange", hoverDate: "hoverDate" }, ngImport: i0, template: "<div class=\"ngx:block ngx:relative\">\n <div class=\"ngx:flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:flex ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n", dependencies: [{ kind: "component", type: CalendarComponent, selector: "ngx-calendar", inputs: ["startDate", "endDate", "minDate", "maxDate", "enableRange"], outputs: ["startDateChange", "endDateChange", "selectedDate", "selectedDateRange", "selectedDaysCount", "hoverDate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
348
348
  }
349
349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DatePickerWrapperComponent, decorators: [{
350
350
  type: Component,
351
- args: [{ selector: 'ngx-date-picker-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CalendarComponent], template: "<div class=\"ngx:inline-block ngx:relative\">\n <div class=\"ngx:inline-flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:inline-block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:inline-flex ngx:w-auto ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n" }]
351
+ args: [{ selector: 'ngx-date-picker-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CalendarComponent], template: "<div class=\"ngx:block ngx:relative\">\n <div class=\"ngx:flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:flex ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n" }]
352
352
  }] });
353
353
 
354
354
  class InputDirective {
355
355
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
356
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: InputDirective, isStandalone: true, selector: "[ngxInput]", host: { classAttribute: "ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden" }, ngImport: i0 });
356
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: InputDirective, isStandalone: true, selector: "[ngxInput]", host: { classAttribute: "ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden" }, ngImport: i0 });
357
357
  }
358
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: InputDirective, decorators: [{
359
359
  type: Directive,
360
360
  args: [{
361
361
  selector: '[ngxInput]',
362
362
  host: {
363
- class: 'ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'
363
+ class: 'ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'
364
364
  }
365
365
  }]
366
366
  }] });
@@ -465,7 +465,7 @@ class DatepickerComponent extends WithControlValueAccessor(class {
465
465
  useExisting: forwardRef(() => DatepickerComponent),
466
466
  multi: true,
467
467
  },
468
- ], usesInheritance: true, ngImport: i0, template: "<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:inline-flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n", dependencies: [{ kind: "component", type: DatePickerWrapperComponent, selector: "ngx-date-picker-wrapper", inputs: ["date", "endDate", "hoveredDate", "minDate", "maxDate", "label", "openCalendar", "enableRange"], outputs: ["selectedDate", "selectedDateRange", "hoverDate"] }, { kind: "directive", type: InputDirective, selector: "[ngxInput]" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
468
+ ], usesInheritance: true, ngImport: i0, template: "<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n class=\"ngx:w-full\"\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n", dependencies: [{ kind: "component", type: DatePickerWrapperComponent, selector: "ngx-date-picker-wrapper", inputs: ["date", "endDate", "hoveredDate", "minDate", "maxDate", "label", "openCalendar", "enableRange"], outputs: ["selectedDate", "selectedDateRange", "hoverDate"] }, { kind: "directive", type: InputDirective, selector: "[ngxInput]" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
469
469
  }
470
470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DatepickerComponent, decorators: [{
471
471
  type: Component,
@@ -481,7 +481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
481
481
  useExisting: forwardRef(() => DatepickerComponent),
482
482
  multi: true,
483
483
  },
484
- ], template: "<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:inline-flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n" }]
484
+ ], template: "<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n class=\"ngx:w-full\"\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n" }]
485
485
  }], ctorParameters: () => [] });
486
486
 
487
487
  class DateRangePickerComponent {
@@ -534,14 +534,14 @@ class DateRangePickerComponent {
534
534
  }
535
535
  }
536
536
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
537
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: DateRangePickerComponent, isStandalone: true, selector: "ngx-date-range-picker", inputs: { startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, hoveredDate: { classPropertyName: "hoveredDate", publicName: "hoveredDate", isSignal: true, isRequired: false, transformFunction: null }, openCalendar: { classPropertyName: "openCalendar", publicName: "openCalendar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange", hoveredDate: "hoveredDateChange", openCalendar: "openCalendarChange", selectedDateRange: "selectedDateRange" }, host: { listeners: { "document:click": "onCloseCalendar($event)", "keydown.escape": "onEscape()" } }, ngImport: i0, template: "<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n", dependencies: [{ kind: "component", type: DatePickerWrapperComponent, selector: "ngx-date-picker-wrapper", inputs: ["date", "endDate", "hoveredDate", "minDate", "maxDate", "label", "openCalendar", "enableRange"], outputs: ["selectedDate", "selectedDateRange", "hoverDate"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
537
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: DateRangePickerComponent, isStandalone: true, selector: "ngx-date-range-picker", inputs: { startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, hoveredDate: { classPropertyName: "hoveredDate", publicName: "hoveredDate", isSignal: true, isRequired: false, transformFunction: null }, openCalendar: { classPropertyName: "openCalendar", publicName: "openCalendar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange", hoveredDate: "hoveredDateChange", openCalendar: "openCalendarChange", selectedDateRange: "selectedDateRange" }, host: { listeners: { "document:click": "onCloseCalendar($event)", "keydown.escape": "onEscape()" } }, ngImport: i0, template: "<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:w-full ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n", dependencies: [{ kind: "component", type: DatePickerWrapperComponent, selector: "ngx-date-picker-wrapper", inputs: ["date", "endDate", "hoveredDate", "minDate", "maxDate", "label", "openCalendar", "enableRange"], outputs: ["selectedDate", "selectedDateRange", "hoverDate"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
538
538
  }
539
539
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DateRangePickerComponent, decorators: [{
540
540
  type: Component,
541
541
  args: [{ selector: "ngx-date-range-picker", changeDetection: ChangeDetectionStrategy.OnPush, imports: [DatePickerWrapperComponent, DatePipe], host: {
542
542
  "(document:click)": "onCloseCalendar($event)",
543
543
  "(keydown.escape)": "onEscape()",
544
- }, template: "<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n" }]
544
+ }, template: "<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:w-full ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n" }]
545
545
  }] });
546
546
 
547
547
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"wzrdev-ngx-datepicker.mjs","sources":["../../../projects/ngx-datepicker/src/lib/locale/fr.ts","../../../projects/ngx-datepicker/src/lib/locale/en.ts","../../../projects/ngx-datepicker/src/lib/locale/locale.service.ts","../../../projects/ngx-datepicker/src/lib/utils/cn.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.service.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.html","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.ts","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.html","../../../projects/ngx-datepicker/src/lib/shared/directives/input.directive.ts","../../../projects/ngx-datepicker/src/lib/shared/mixins/with-control-value-accessor.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.html","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.html","../../../projects/ngx-datepicker/src/public-api.ts","../../../projects/ngx-datepicker/src/wzrdev-ngx-datepicker.ts"],"sourcesContent":["import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const FR_LOCALE: DatePickerLocale = {\n code: \"fr\",\n months: [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\",\n ],\n weekdays: [\"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\", \"Di\"],\n weekStartsOn: 1,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"fr-FR\"),\n};\n","import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const EN_LOCALE: DatePickerLocale = {\n code: \"en\",\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n weekdays: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n weekStartsOn: 0,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"en-US\"),\n};\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DatePickerLocale } from \"./locale.model\";\nimport { FR_LOCALE } from \"./fr\";\nimport { EN_LOCALE } from \"./en\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DatePickerLocaleService {\n private readonly locales: Record<string, DatePickerLocale> = {\n fr: FR_LOCALE,\n en: EN_LOCALE,\n };\n\n private locale$ = new BehaviorSubject<DatePickerLocale>(FR_LOCALE);\n\n public setLocale(code: string) {\n this.locale$.next(this.locales[code] ?? FR_LOCALE);\n }\n\n public get localeChanges$() {\n return this.locale$.asObservable();\n }\n\n public get current() {\n return this.locale$.value;\n }\n}\n","import { ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {},\n },\n});\n\nexport const cn = (...inputs: ClassValue[]) => {\n return customTwMerge(clsx(inputs));\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {}\n","import {\n Component,\n inject,\n output,\n input,\n linkedSignal, ChangeDetectionStrategy, computed, signal, model\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { cn } from '../utils/cn';\nimport { DatePipe } from '@angular/common';\nimport { DateRange } from '../shared/models/daterange';\nimport { CalendarService } from './calendar.service';\n\ninterface Day {\n date: Date | null;\n isToday: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n isInRange: boolean;\n}\n\n@Component({\n selector: \"ngx-calendar\",\n templateUrl: \"./calendar.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe],\n providers: [CalendarService],\n host: {\n \"(keydown)\": \"handleKeyDown($event)\"\n },\n})\nexport class CalendarComponent {\n public readonly locale = inject(DatePickerLocaleService);\n\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly hoveredDate = signal<Date | null>(null);\n public readonly enableRange = input<boolean>(false);\n\n public readonly selectedDate = output<Date>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly selectedDaysCount = output<number>();\n public readonly hoverDate = output<Date>();\n\n public readonly days = linkedSignal(() => {\n const startDate = this.startDate();\n const endDate = this.endDate();\n const displayDate = this.displayDate();\n\n const year = displayDate.getFullYear();\n const month = displayDate.getMonth();\n\n const today = new Date();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month + 1, 0);\n\n const days: Day[] = [];\n const firstDayOfWeek = (firstOfMonth.getDay() + 6) % 7;\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: null,\n isDisabled: true,\n isToday: false,\n isSelected: false,\n isInRange: false,\n });\n }\n\n for (let d = 1; d <= lastOfMonth.getDate(); d++) {\n const date = new Date(year, month, d);\n days.push({\n date,\n isDisabled: this.isDisabled(date),\n isToday: this.isSame(date, today),\n isSelected:\n this.isSame(date, startDate) ||\n this.isSame(date, endDate),\n isInRange: this.isInRange(date),\n });\n }\n\n while (days.length < 35) {\n days.push({\n date: null,\n isDisabled: true,\n isToday: false,\n isSelected: false,\n isInRange: false,\n });\n }\n\n return days;\n });\n\n public daysInRange = computed(() => {\n const days = this.days();\n return days.filter(day => day.isInRange);\n });\n\n public daysDisabled = computed(() => {\n const days = this.days();\n return days.filter(day => {\n return day.isDisabled && day.date !== null;\n });\n });\n\n public daysSelected = computed(() => {\n const days = this.days();\n return days.filter(day => day.isSelected);\n });\n\n public firstDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[0];\n });\n\n public latestDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[rangeDays.length - 1];\n });\n\n public latestDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[daysDisabled.length - 1];\n });\n\n public firstDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[0];\n });\n\n public readonly displayDate = linkedSignal(() => {\n const start = this.startDate();\n return start ?? new Date();\n });\n\n public readonly focusedDate = linkedSignal(() => {\n return new Date(this.displayDate());\n });\n\n protected readonly cn = cn;\n\n build() {\n // keep the focusedDate in the current month\n if (this.focusedDate().getMonth() !== this.displayDate().getMonth()) {\n this.focusedDate.set(new Date(this.displayDate().getFullYear(), this.displayDate().getMonth(), 1));\n }\n }\n\n public prevMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() - 1, prevState.getDate());\n })\n }\n\n public nextMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() + 1, prevState.getDate());\n })\n }\n\n public isSame(a?: Date | null, b?: Date | null): boolean {\n if (!a || !b) return false;\n return a.toDateString() === b.toDateString();\n }\n\n public isDisabled(date: Date): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n\n const current = normalize(date);\n\n if (minDate && current < normalize(minDate)) {\n return true;\n }\n\n return !!(maxDate && current > normalize(maxDate));\n\n\n }\n\n public isInRange(d: Date): boolean {\n const start = this.startDate();\n const end = this.endDate();\n const hover = this.hoveredDate();\n\n if (!start || !d) return false;\n if (start && end) return d >= start && d <= end;\n if (start && hover) {\n return d >= start && d <= hover;\n }\n\n return false;\n };\n\n public onDaySelect(date: Date | null): void {\n if (!date) return;\n\n const selectedDays = this.days().filter(day => day.isSelected);\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n\n if (this.enableRange()) {\n\n if (selectedDays.length === 2\n || startDate && date < startDate\n || endDate && endDate <= date\n || endDate && date <= endDate) {\n this.resetStartDate(date);\n }\n\n if (!startDate) {\n this.startDate.set(date);\n } else if (startDate && !endDate && startDate < date) {\n this.endDate.set(date);\n }\n\n } else {\n this.resetStartDate(date);\n }\n\n if (this.enableRange()) {\n this.selectedDateRange.emit({ startDate: this.startDate() ?? null, endDate: this.endDate() ?? null });\n } else {\n this.selectedDate.emit(date);\n }\n this.selectedDaysCount.emit(this.daysInRange().length);\n }\n\n public onDayMouseEnter(date: Date | null): void {\n if (!date) return;\n if (!this.enableRange() || (this.startDate() && this.endDate())) {\n return;\n }\n this.hoveredDate.set(date);\n }\n\n public handleKeyDown(event: KeyboardEvent): void {\n if (!this.focusedDate) return;\n\n const newDate = new Date(this.focusedDate());\n\n switch (event.key) {\n case \"ArrowRight\":\n newDate.setDate(newDate.getDate() + 1);\n break;\n case \"ArrowLeft\":\n newDate.setDate(newDate.getDate() - 1);\n break;\n case \"ArrowDown\":\n newDate.setDate(newDate.getDate() + 7);\n break;\n case \"ArrowUp\":\n newDate.setDate(newDate.getDate() - 7);\n break;\n case \"Enter\":\n case \" \":\n this.selectedDate.emit(this.focusedDate());\n event.preventDefault();\n return;\n default:\n return; // ignorer les autres touches\n }\n\n event.preventDefault();\n this.focusedDate.set(newDate);\n\n // si le focusedDate est hors du mois courant, changer le mois\n if (\n this.focusedDate().getMonth() !== this.displayDate().getMonth() ||\n this.focusedDate().getFullYear() !== this.displayDate().getFullYear()\n ) {\n this.displayDate.set(new Date(this.focusedDate().getFullYear(), this.focusedDate().getMonth(), 1));\n this.build();\n }\n }\n\n // Pour le template : savoir si la date est focusée pour appliquer style\n isFocused(date: Date) {\n return this.focusedDate && this.isSame(date, this.focusedDate());\n }\n\n private resetStartDate(date: Date): void {\n console.log('reset');\n this.startDate.set(date);\n this.endDate.set(null);\n this.hoveredDate.set(null);\n }\n}\n","<div\n class=\"ngx:w-65 ngx:bg-white ngx:rounded-md ngx:shadow-lg ngx:p-3\"\n id=\"calendar\"\n role=\"dialog\"\n aria-modal=\"true\">\n\n <div class=\"ngx:flex ngx:items-center ngx:mb-2\">\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"prevMonth()\" aria-label=\"Previous month\">‹\n </button>\n <p class=\"ngx:grow ngx:text-center ngx:font-medium ngx:text-inherit\">{{ displayDate() | date: 'MMMM yyyy' }}</p>\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"nextMonth()\" aria-label=\"Next month\">›\n </button>\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-0.5\">\n @for (wd of locale.current.weekdays; track $index) {\n <span class=\"ngx:text-center ngx:py-1 ngx:text-sm ngx:font-medium ngx:text-inherit\">{{ wd }}</span>\n }\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-y-0.5\">\n @for (day of days(); track $index) {\n <button\n [class]=\"cn(\n 'ngx:relative ngx:cursor-pointer ngx:py-1 ngx:overflow-hidden ngx:text-inherit',\n {\n 'ngx:rounded-full': daysInRange().length < 2 && !day.isDisabled,\n 'ngx:rounded-l-full': (firstDayDisabled() === day && day.date !== null) || (firstDayInRange() === day || daysSelected()[0] === day) && day.isSelected && !day.isDisabled,\n 'ngx:rounded-r-full': (latestDayDisabled() === day && day.date !== null) || (latestDayInRange() === day || daysSelected()[1] === day) && !day.isDisabled,\n 'ngx:border-y-2 ngx:border-dashed ngx:border-slate-100 ngx:cursor-auto': day.date === null,\n 'ngx:bg-slate-100 ngx:text-slate-400 ngx:cursor-not-allowed': day.isDisabled && day.date !== null,\n 'ngx:bg-(--ngx-datepicker-range-color)': day.isInRange && !day.isDisabled,\n 'ngx:before:rounded-full ngx:bg-(--ngx-datepicker-range-color) ngx:text-(--ngx-datepicker-accent-text-color) ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:bg-(--ngx-datepicker-accent-color)': day.isSelected && !day.isDisabled,\n 'ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:rounded-full ngx:before:border-2 ngx:before:border-(--ngx-datepicker-accent-color)': day.isToday,\n }\n )\"\n [attr.aria-selected]=\"isSame(day.date, startDate()) || isSame(day.date, endDate())\"\n [attr.aria-label]=\"day.date ? locale.current.format(day.date) : undefined\"\n [disabled]=\"day.isDisabled\"\n (click)=\"onDaySelect(day.date)\"\n (mouseenter)=\"onDayMouseEnter(day.date)\">\n @if (day.date) {\n <span class=\"ngx:relative ngx:z-10\">{{ day.date.getDate() }}</span>\n }\n </button>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { DateRange } from '../shared/models/daterange';\n\n@Component({\n selector: 'ngx-date-picker-wrapper',\n templateUrl: './date-picker-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CalendarComponent]\n})\nexport class DatePickerWrapperComponent {\n public readonly date = input<Date | null>();\n public readonly endDate = input<Date | null>();\n public readonly hoveredDate = input<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly label = input.required<string>();\n public readonly openCalendar = input<boolean>();\n public readonly enableRange = input.required<boolean>();\n\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly hoverDate = output<Date>();\n\n public onSelectDate(date: Date | null): void {\n this.selectedDate.emit(date);\n }\n\n public onSelectDateRange(date: DateRange): void {\n this.selectedDateRange.emit(date);\n }\n\n\n public onHoverDate(date: Date): void {\n this.hoverDate.emit(date);\n }\n}\n","<div class=\"ngx:inline-block ngx:relative\">\n <div class=\"ngx:inline-flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:inline-block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:inline-flex ngx:w-auto ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngxInput]',\n host: {\n class: 'ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'\n }\n})\nexport class InputDirective {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Constructor } from '../models/constructor';\n\nexport function WithControlValueAccessor<TValue, TBase extends Constructor>(Base: TBase) {\n return class extends Base implements ControlValueAccessor {\n public value!: TValue;\n public disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onChange = (_: TValue) => { /* empty */ };\n public onTouched = () => { /* empty */ };\n\n public writeValue(value: TValue) {\n this.value = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onInput(value: TValue) {\n this.value = value;\n this.onChange(value);\n }\n\n public onBlur() {\n this.onTouched();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, effect, ElementRef, forwardRef, inject, input, InputSignal,\n model,\n ModelSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { InputDirective } from '../shared/directives/input.directive';\nimport { DatePipe } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { WithControlValueAccessor } from '../shared/mixins/with-control-value-accessor';\nimport { DateRange } from '../shared/models/daterange';\n\ninterface DatepickerOption {\n id: InputSignal<string | undefined>;\n date: ModelSignal<Date | null | undefined>;\n openCalendar: ModelSignal<boolean>;\n selectedDate: OutputEmitterRef<Date | null>;\n}\n\n@Component({\n selector: 'ngx-datepicker',\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePickerWrapperComponent,\n InputDirective,\n DatePipe\n ],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent extends WithControlValueAccessor<Date, new () => object>(class {}) implements DatepickerOption {\n public readonly id = model<string>();\n public readonly date = model<Date | null>();\n public readonly dateTo = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly range = input<boolean>(false);\n public readonly isRangeEnd = input<boolean>(false);\n public readonly label = input.required<string>();\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n\n constructor() {\n super();\n effect(() => {\n const date = this.date();\n const dateTo = this.dateTo();\n\n if (date) {\n this.updateFormControl(this.isRangeEnd() && dateTo ? dateTo : date);\n }\n });\n }\n\n public onSelectedDateChange(date: Date | null): void {\n if (date) {\n this.updateDate(date);\n }\n if (this.range()) {\n return;\n }\n this.openCalendar.set(false);\n }\n\n public onSelectedDateRangeChange(dateRange: DateRange): void {\n this.selectedDateRange.emit(dateRange);\n if (dateRange.startDate !== null && dateRange.endDate !== null) {\n this.openCalendar.set(false);\n }\n }\n\n public onInputChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n const date = new Date(target.value);\n this.updateDate(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onClickOutside(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.openCalendar.set(false);\n }\n }\n\n private updateDate(date: Date): void {\n this.date.set(date);\n this.selectedDate.emit(date);\n this.updateFormControl(date);\n }\n\n private updateFormControl(value: Date): void {\n this.value = value;\n this.onChange(value);\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:inline-flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n","import {\n ChangeDetectionStrategy,\n Component, ElementRef,\n inject, input,\n model,\n output,\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { DatePipe } from '@angular/common';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\n@Component({\n selector: \"ngx-date-range-picker\",\n templateUrl: \"./date-range-picker.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePickerWrapperComponent, DatePipe],\n host: {\n \"(document:click)\": \"onCloseCalendar($event)\",\n \"(keydown.escape)\": \"onEscape()\",\n },\n})\nexport class DateRangePickerComponent {\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly label = input.required<string>();\n public readonly hoveredDate = model<Date | null>(null);\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n private readonly locale = inject(DatePickerLocaleService);\n\n public close() {\n this.openCalendar.set(false);\n this.hoveredDate.set(null);\n }\n\n public onEscape() {\n this.close();\n }\n\n public onSelectedDateChange(date: DateRange): void {\n this.updateDateRange(date);\n }\n\n public onHoverDateChange(date: Date): void {\n this.hoveredDate.set(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onCloseCalendar(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.close();\n }\n }\n\n private updateDateRange(date: DateRange): void {\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n if (!startDate || endDate) {\n\n this.startDate.set(date.startDate);\n this.endDate.set(null);\n\n } else if (date.startDate && date.startDate >= startDate) {\n this.endDate.set(date.endDate);\n this.selectedDateRange.emit({ startDate, endDate: this.endDate() ?? null })\n this.close();\n } else {\n this.startDate.set(date.startDate);\n }\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n","/*\n * Public API Surface of ngx-datepicker\n */\n\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/date-range-picker/date-range-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["currentYear"],"mappings":"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"}
1
+ {"version":3,"file":"wzrdev-ngx-datepicker.mjs","sources":["../../../projects/ngx-datepicker/src/lib/locale/fr.ts","../../../projects/ngx-datepicker/src/lib/locale/en.ts","../../../projects/ngx-datepicker/src/lib/locale/locale.service.ts","../../../projects/ngx-datepicker/src/lib/utils/cn.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.service.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.html","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.ts","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.html","../../../projects/ngx-datepicker/src/lib/shared/directives/input.directive.ts","../../../projects/ngx-datepicker/src/lib/shared/mixins/with-control-value-accessor.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.html","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.html","../../../projects/ngx-datepicker/src/public-api.ts","../../../projects/ngx-datepicker/src/wzrdev-ngx-datepicker.ts"],"sourcesContent":["import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const FR_LOCALE: DatePickerLocale = {\n code: \"fr\",\n months: [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\",\n ],\n weekdays: [\"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\", \"Di\"],\n weekStartsOn: 1,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"fr-FR\"),\n};\n","import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const EN_LOCALE: DatePickerLocale = {\n code: \"en\",\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n weekdays: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n weekStartsOn: 0,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"en-US\"),\n};\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DatePickerLocale } from \"./locale.model\";\nimport { FR_LOCALE } from \"./fr\";\nimport { EN_LOCALE } from \"./en\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DatePickerLocaleService {\n private readonly locales: Record<string, DatePickerLocale> = {\n fr: FR_LOCALE,\n en: EN_LOCALE,\n };\n\n private locale$ = new BehaviorSubject<DatePickerLocale>(FR_LOCALE);\n\n public setLocale(code: string) {\n this.locale$.next(this.locales[code] ?? FR_LOCALE);\n }\n\n public get localeChanges$() {\n return this.locale$.asObservable();\n }\n\n public get current() {\n return this.locale$.value;\n }\n}\n","import { ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {},\n },\n});\n\nexport const cn = (...inputs: ClassValue[]) => {\n return customTwMerge(clsx(inputs));\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {}\n","import {\n Component,\n inject,\n output,\n input,\n linkedSignal, ChangeDetectionStrategy, computed, signal, model\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { cn } from '../utils/cn';\nimport { DatePipe } from '@angular/common';\nimport { DateRange } from '../shared/models/daterange';\nimport { CalendarService } from './calendar.service';\n\ninterface Day {\n date: Date | null;\n isToday: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n isInRange: boolean;\n}\n\n@Component({\n selector: \"ngx-calendar\",\n templateUrl: \"./calendar.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe],\n providers: [CalendarService],\n host: {\n \"(keydown)\": \"handleKeyDown($event)\"\n },\n})\nexport class CalendarComponent {\n public readonly locale = inject(DatePickerLocaleService);\n\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly hoveredDate = signal<Date | null>(null);\n public readonly enableRange = input<boolean>(false);\n\n public readonly selectedDate = output<Date>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly selectedDaysCount = output<number>();\n public readonly hoverDate = output<Date>();\n\n public readonly days = linkedSignal(() => {\n const startDate = this.startDate();\n const endDate = this.endDate();\n const displayDate = this.displayDate();\n\n const year = displayDate.getFullYear();\n const month = displayDate.getMonth();\n\n const today = new Date();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month + 1, 0);\n\n const days: Day[] = [];\n const firstDayOfWeek = (firstOfMonth.getDay() + 6) % 7;\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: null,\n isDisabled: true,\n isToday: false,\n isSelected: false,\n isInRange: false,\n });\n }\n\n for (let d = 1; d <= lastOfMonth.getDate(); d++) {\n const date = new Date(year, month, d);\n days.push({\n date,\n isDisabled: this.isDisabled(date),\n isToday: this.isSame(date, today),\n isSelected:\n this.isSame(date, startDate) ||\n this.isSame(date, endDate),\n isInRange: this.isInRange(date),\n });\n }\n\n while (days.length < 35) {\n days.push({\n date: null,\n isDisabled: true,\n isToday: false,\n isSelected: false,\n isInRange: false,\n });\n }\n\n return days;\n });\n\n public daysInRange = computed(() => {\n const days = this.days();\n return days.filter(day => day.isInRange);\n });\n\n public daysDisabled = computed(() => {\n const days = this.days();\n return days.filter(day => {\n return day.isDisabled && day.date !== null;\n });\n });\n\n public daysSelected = computed(() => {\n const days = this.days();\n return days.filter(day => day.isSelected);\n });\n\n public firstDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[0];\n });\n\n public latestDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[rangeDays.length - 1];\n });\n\n public latestDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[daysDisabled.length - 1];\n });\n\n public firstDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[0];\n });\n\n public readonly displayDate = linkedSignal(() => {\n const start = this.startDate();\n return start ?? new Date();\n });\n\n public readonly focusedDate = linkedSignal(() => {\n return new Date(this.displayDate());\n });\n\n protected readonly cn = cn;\n\n build() {\n // keep the focusedDate in the current month\n if (this.focusedDate().getMonth() !== this.displayDate().getMonth()) {\n this.focusedDate.set(new Date(this.displayDate().getFullYear(), this.displayDate().getMonth(), 1));\n }\n }\n\n public prevMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() - 1, prevState.getDate());\n })\n }\n\n public nextMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() + 1, prevState.getDate());\n })\n }\n\n public isSame(a?: Date | null, b?: Date | null): boolean {\n if (!a || !b) return false;\n return a.toDateString() === b.toDateString();\n }\n\n public isDisabled(date: Date): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n\n const current = normalize(date);\n\n if (minDate && current < normalize(minDate)) {\n return true;\n }\n\n return !!(maxDate && current > normalize(maxDate));\n\n\n }\n\n public isInRange(d: Date): boolean {\n const start = this.startDate();\n const end = this.endDate();\n const hover = this.hoveredDate();\n\n if (!start || !d) return false;\n if (start && end) return d >= start && d <= end;\n if (start && hover) {\n return d >= start && d <= hover;\n }\n\n return false;\n };\n\n public onDaySelect(date: Date | null): void {\n if (!date) return;\n\n const selectedDays = this.days().filter(day => day.isSelected);\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n\n if (this.enableRange()) {\n\n if (selectedDays.length === 2\n || startDate && date < startDate\n || endDate && endDate <= date\n || endDate && date <= endDate) {\n this.resetStartDate(date);\n }\n\n if (!startDate) {\n this.startDate.set(date);\n } else if (startDate && !endDate && startDate < date) {\n this.endDate.set(date);\n }\n\n } else {\n this.resetStartDate(date);\n }\n\n if (this.enableRange()) {\n this.selectedDateRange.emit({ startDate: this.startDate() ?? null, endDate: this.endDate() ?? null });\n } else {\n this.selectedDate.emit(date);\n }\n this.selectedDaysCount.emit(this.daysInRange().length);\n }\n\n public onDayMouseEnter(date: Date | null): void {\n if (!date) return;\n if (!this.enableRange() || (this.startDate() && this.endDate())) {\n return;\n }\n this.hoveredDate.set(date);\n }\n\n public handleKeyDown(event: KeyboardEvent): void {\n if (!this.focusedDate) return;\n\n const newDate = new Date(this.focusedDate());\n\n switch (event.key) {\n case \"ArrowRight\":\n newDate.setDate(newDate.getDate() + 1);\n break;\n case \"ArrowLeft\":\n newDate.setDate(newDate.getDate() - 1);\n break;\n case \"ArrowDown\":\n newDate.setDate(newDate.getDate() + 7);\n break;\n case \"ArrowUp\":\n newDate.setDate(newDate.getDate() - 7);\n break;\n case \"Enter\":\n case \" \":\n this.selectedDate.emit(this.focusedDate());\n event.preventDefault();\n return;\n default:\n return; // ignorer les autres touches\n }\n\n event.preventDefault();\n this.focusedDate.set(newDate);\n\n // si le focusedDate est hors du mois courant, changer le mois\n if (\n this.focusedDate().getMonth() !== this.displayDate().getMonth() ||\n this.focusedDate().getFullYear() !== this.displayDate().getFullYear()\n ) {\n this.displayDate.set(new Date(this.focusedDate().getFullYear(), this.focusedDate().getMonth(), 1));\n this.build();\n }\n }\n\n // Pour le template : savoir si la date est focusée pour appliquer style\n isFocused(date: Date) {\n return this.focusedDate && this.isSame(date, this.focusedDate());\n }\n\n private resetStartDate(date: Date): void {\n console.log('reset');\n this.startDate.set(date);\n this.endDate.set(null);\n this.hoveredDate.set(null);\n }\n}\n","<div\n class=\"ngx:w-65 ngx:bg-white ngx:rounded-md ngx:shadow-lg ngx:p-3\"\n id=\"calendar\"\n role=\"dialog\"\n aria-modal=\"true\">\n\n <div class=\"ngx:flex ngx:items-center ngx:mb-2\">\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"prevMonth()\" aria-label=\"Previous month\">‹\n </button>\n <p class=\"ngx:grow ngx:text-center ngx:font-medium ngx:text-inherit\">{{ displayDate() | date: 'MMMM yyyy' }}</p>\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"nextMonth()\" aria-label=\"Next month\">›\n </button>\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-0.5\">\n @for (wd of locale.current.weekdays; track $index) {\n <span class=\"ngx:text-center ngx:py-1 ngx:text-sm ngx:font-medium ngx:text-inherit\">{{ wd }}</span>\n }\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-y-0.5\">\n @for (day of days(); track $index) {\n <button\n [class]=\"cn(\n 'ngx:relative ngx:cursor-pointer ngx:py-1 ngx:overflow-hidden ngx:text-inherit',\n {\n 'ngx:rounded-full': daysInRange().length < 2 && !day.isDisabled,\n 'ngx:rounded-l-full': (firstDayDisabled() === day && day.date !== null) || (firstDayInRange() === day || daysSelected()[0] === day) && day.isSelected && !day.isDisabled,\n 'ngx:rounded-r-full': (latestDayDisabled() === day && day.date !== null) || (latestDayInRange() === day || daysSelected()[1] === day) && !day.isDisabled,\n 'ngx:border-y-2 ngx:border-dashed ngx:border-slate-100 ngx:cursor-auto': day.date === null,\n 'ngx:bg-slate-100 ngx:text-slate-400 ngx:cursor-not-allowed': day.isDisabled && day.date !== null,\n 'ngx:bg-(--ngx-datepicker-range-color)': day.isInRange && !day.isDisabled,\n 'ngx:before:rounded-full ngx:bg-(--ngx-datepicker-range-color) ngx:text-(--ngx-datepicker-accent-text-color) ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:bg-(--ngx-datepicker-accent-color)': day.isSelected && !day.isDisabled,\n 'ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:rounded-full ngx:before:border-2 ngx:before:border-(--ngx-datepicker-accent-color)': day.isToday,\n }\n )\"\n [attr.aria-selected]=\"isSame(day.date, startDate()) || isSame(day.date, endDate())\"\n [attr.aria-label]=\"day.date ? locale.current.format(day.date) : undefined\"\n [disabled]=\"day.isDisabled\"\n (click)=\"onDaySelect(day.date)\"\n (mouseenter)=\"onDayMouseEnter(day.date)\">\n @if (day.date) {\n <span class=\"ngx:relative ngx:z-10\">{{ day.date.getDate() }}</span>\n }\n </button>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { DateRange } from '../shared/models/daterange';\n\n@Component({\n selector: 'ngx-date-picker-wrapper',\n templateUrl: './date-picker-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CalendarComponent]\n})\nexport class DatePickerWrapperComponent {\n public readonly date = input<Date | null>();\n public readonly endDate = input<Date | null>();\n public readonly hoveredDate = input<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly label = input.required<string>();\n public readonly openCalendar = input<boolean>();\n public readonly enableRange = input.required<boolean>();\n\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly hoverDate = output<Date>();\n\n public onSelectDate(date: Date | null): void {\n this.selectedDate.emit(date);\n }\n\n public onSelectDateRange(date: DateRange): void {\n this.selectedDateRange.emit(date);\n }\n\n\n public onHoverDate(date: Date): void {\n this.hoverDate.emit(date);\n }\n}\n","<div class=\"ngx:block ngx:relative\">\n <div class=\"ngx:flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:flex ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngxInput]',\n host: {\n class: 'ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'\n }\n})\nexport class InputDirective {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Constructor } from '../models/constructor';\n\nexport function WithControlValueAccessor<TValue, TBase extends Constructor>(Base: TBase) {\n return class extends Base implements ControlValueAccessor {\n public value!: TValue;\n public disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onChange = (_: TValue) => { /* empty */ };\n public onTouched = () => { /* empty */ };\n\n public writeValue(value: TValue) {\n this.value = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onInput(value: TValue) {\n this.value = value;\n this.onChange(value);\n }\n\n public onBlur() {\n this.onTouched();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, effect, ElementRef, forwardRef, inject, input, InputSignal,\n model,\n ModelSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { InputDirective } from '../shared/directives/input.directive';\nimport { DatePipe } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { WithControlValueAccessor } from '../shared/mixins/with-control-value-accessor';\nimport { DateRange } from '../shared/models/daterange';\n\ninterface DatepickerOption {\n id: InputSignal<string | undefined>;\n date: ModelSignal<Date | null | undefined>;\n openCalendar: ModelSignal<boolean>;\n selectedDate: OutputEmitterRef<Date | null>;\n}\n\n@Component({\n selector: 'ngx-datepicker',\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePickerWrapperComponent,\n InputDirective,\n DatePipe\n ],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent extends WithControlValueAccessor<Date, new () => object>(class {}) implements DatepickerOption {\n public readonly id = model<string>();\n public readonly date = model<Date | null>();\n public readonly dateTo = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly range = input<boolean>(false);\n public readonly isRangeEnd = input<boolean>(false);\n public readonly label = input.required<string>();\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n\n constructor() {\n super();\n effect(() => {\n const date = this.date();\n const dateTo = this.dateTo();\n\n if (date) {\n this.updateFormControl(this.isRangeEnd() && dateTo ? dateTo : date);\n }\n });\n }\n\n public onSelectedDateChange(date: Date | null): void {\n if (date) {\n this.updateDate(date);\n }\n if (this.range()) {\n return;\n }\n this.openCalendar.set(false);\n }\n\n public onSelectedDateRangeChange(dateRange: DateRange): void {\n this.selectedDateRange.emit(dateRange);\n if (dateRange.startDate !== null && dateRange.endDate !== null) {\n this.openCalendar.set(false);\n }\n }\n\n public onInputChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n const date = new Date(target.value);\n this.updateDate(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onClickOutside(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.openCalendar.set(false);\n }\n }\n\n private updateDate(date: Date): void {\n this.date.set(date);\n this.selectedDate.emit(date);\n this.updateFormControl(date);\n }\n\n private updateFormControl(value: Date): void {\n this.value = value;\n this.onChange(value);\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n class=\"ngx:w-full\"\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n","import {\n ChangeDetectionStrategy,\n Component, ElementRef,\n inject, input,\n model,\n output,\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { DatePipe } from '@angular/common';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\n@Component({\n selector: \"ngx-date-range-picker\",\n templateUrl: \"./date-range-picker.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePickerWrapperComponent, DatePipe],\n host: {\n \"(document:click)\": \"onCloseCalendar($event)\",\n \"(keydown.escape)\": \"onEscape()\",\n },\n})\nexport class DateRangePickerComponent {\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly label = input.required<string>();\n public readonly hoveredDate = model<Date | null>(null);\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n private readonly locale = inject(DatePickerLocaleService);\n\n public close() {\n this.openCalendar.set(false);\n this.hoveredDate.set(null);\n }\n\n public onEscape() {\n this.close();\n }\n\n public onSelectedDateChange(date: DateRange): void {\n this.updateDateRange(date);\n }\n\n public onHoverDateChange(date: Date): void {\n this.hoveredDate.set(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onCloseCalendar(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.close();\n }\n }\n\n private updateDateRange(date: DateRange): void {\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n if (!startDate || endDate) {\n\n this.startDate.set(date.startDate);\n this.endDate.set(null);\n\n } else if (date.startDate && date.startDate >= startDate) {\n this.endDate.set(date.endDate);\n this.selectedDateRange.emit({ startDate, endDate: this.endDate() ?? null })\n this.close();\n } else {\n this.startDate.set(date.startDate);\n }\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:w-full ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n","/*\n * Public API Surface of ngx-datepicker\n */\n\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/date-range-picker/date-range-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["currentYear"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wzrdev/ngx-datepicker",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-text-shadow-color:initial;--tw-text-shadow-alpha:100%;--tw-content:""}}}@layer theme{:root,:host{--ngx-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--ngx-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ngx-color-slate-100:oklch(96.8% .007 247.896);--ngx-color-slate-200:oklch(92.9% .013 255.508);--ngx-color-slate-400:oklch(70.4% .04 256.788);--ngx-color-slate-900:oklch(20.8% .042 265.755);--ngx-color-white:#fff;--ngx-spacing:.25rem;--ngx-text-xs:.75rem;--ngx-text-xs--line-height:calc(1/.75);--ngx-text-sm:.875rem;--ngx-text-sm--line-height:calc(1.25/.875);--ngx-text-4xl:2.25rem;--ngx-text-4xl--line-height:calc(2.5/2.25);--ngx-font-weight-medium:500;--ngx-font-weight-semibold:600;--ngx-font-weight-bold:700;--ngx-radius-md:.375rem;--ngx-default-font-family:var(--ngx-font-sans);--ngx-default-mono-font-family:var(--ngx-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ngx-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ngx-default-font-feature-settings,normal);font-variation-settings:var(--ngx-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ngx-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ngx-default-mono-font-feature-settings,normal);font-variation-settings:var(--ngx-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ngx\:absolute{position:absolute}.ngx\:relative{position:relative}.ngx\:top-full{top:100%}.ngx\:left-0{left:calc(var(--ngx-spacing)*0)}.ngx\:z-10{z-index:10}.ngx\:z-100{z-index:100}.ngx\:m-0{margin:calc(var(--ngx-spacing)*0)}.ngx\:mx-auto{margin-inline:auto}.ngx\:my-2{margin-block:calc(var(--ngx-spacing)*2)}.ngx\:mt-1{margin-top:calc(var(--ngx-spacing)*1)}.ngx\:mt-2{margin-top:calc(var(--ngx-spacing)*2)}.ngx\:mt-4{margin-top:calc(var(--ngx-spacing)*4)}.ngx\:mt-10{margin-top:calc(var(--ngx-spacing)*10)}.ngx\:mb-1{margin-bottom:calc(var(--ngx-spacing)*1)}.ngx\:mb-2{margin-bottom:calc(var(--ngx-spacing)*2)}.ngx\:flex{display:flex}.ngx\:grid{display:grid}.ngx\:hidden{display:none}.ngx\:inline-block{display:inline-block}.ngx\:inline-flex{display:inline-flex}.ngx\:h-5{height:calc(var(--ngx-spacing)*5)}.ngx\:h-10{height:calc(var(--ngx-spacing)*10)}.ngx\:h-full{height:100%}.ngx\:w-5{width:calc(var(--ngx-spacing)*5)}.ngx\:w-10{width:calc(var(--ngx-spacing)*10)}.ngx\:w-65{width:calc(var(--ngx-spacing)*65)}.ngx\:w-auto{width:auto}.ngx\:w-full{width:100%}.ngx\:max-w-22\.5{max-width:calc(var(--ngx-spacing)*22.5)}.ngx\:max-w-300{max-width:calc(var(--ngx-spacing)*300)}.ngx\:max-w-\[114px\]{max-width:114px}.ngx\:min-w-54{min-width:calc(var(--ngx-spacing)*54)}.ngx\:grow{flex-grow:1}.ngx\:cursor-auto{cursor:auto}.ngx\:cursor-not-allowed{cursor:not-allowed}.ngx\:cursor-pointer{cursor:pointer}.ngx\:appearance-none{appearance:none}.ngx\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.ngx\:flex-col{flex-direction:column}.ngx\:items-center{align-items:center}.ngx\:items-stretch{align-items:stretch}.ngx\:justify-center{justify-content:center}.ngx\:gap-0\.5{gap:calc(var(--ngx-spacing)*.5)}.ngx\:gap-4{gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-x-1{column-gap:calc(var(--ngx-spacing)*1)}.ngx\:gap-x-2{column-gap:calc(var(--ngx-spacing)*2)}.ngx\:gap-x-4{column-gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-y-0\.5{row-gap:calc(var(--ngx-spacing)*.5)}.ngx\:overflow-hidden{overflow:hidden}.ngx\:rounded-full{border-radius:3.40282e38px}.ngx\:rounded-md{border-radius:var(--ngx-radius-md)}.ngx\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.ngx\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.ngx\:border{border-style:var(--tw-border-style);border-width:1px}.ngx\:border-0{border-style:var(--tw-border-style);border-width:0}.ngx\:border-y-2{border-block-style:var(--tw-border-style);border-block-width:2px}.ngx\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ngx\:border-dashed{--tw-border-style:dashed;border-style:dashed}.ngx\:border-slate-100{border-color:var(--ngx-color-slate-100)}.ngx\:border-slate-200{border-color:var(--ngx-color-slate-200)}.ngx\:bg-\(--ngx-datepicker-range-color\){background-color:var(--ngx-datepicker-range-color)}.ngx\:bg-slate-100{background-color:var(--ngx-color-slate-100)}.ngx\:bg-white{background-color:var(--ngx-color-white)}.ngx\:p-0{padding:calc(var(--ngx-spacing)*0)}.ngx\:p-3{padding:calc(var(--ngx-spacing)*3)}.ngx\:p-4{padding:calc(var(--ngx-spacing)*4)}.ngx\:px-4{padding-inline:calc(var(--ngx-spacing)*4)}.ngx\:px-5{padding-inline:calc(var(--ngx-spacing)*5)}.ngx\:py-1{padding-block:calc(var(--ngx-spacing)*1)}.ngx\:py-3{padding-block:calc(var(--ngx-spacing)*3)}.ngx\:py-10{padding-block:calc(var(--ngx-spacing)*10)}.ngx\:pb-2{padding-bottom:calc(var(--ngx-spacing)*2)}.ngx\:pl-4{padding-left:calc(var(--ngx-spacing)*4)}.ngx\:text-center{text-align:center}.ngx\:text-left{text-align:left}.ngx\:text-4xl{font-size:var(--ngx-text-4xl);line-height:var(--tw-leading,var(--ngx-text-4xl--line-height))}.ngx\:text-sm{font-size:var(--ngx-text-sm);line-height:var(--tw-leading,var(--ngx-text-sm--line-height))}.ngx\:text-xs{font-size:var(--ngx-text-xs);line-height:var(--tw-leading,var(--ngx-text-xs--line-height))}.ngx\:font-bold{--tw-font-weight:var(--ngx-font-weight-bold);font-weight:var(--ngx-font-weight-bold)}.ngx\:font-medium{--tw-font-weight:var(--ngx-font-weight-medium);font-weight:var(--ngx-font-weight-medium)}.ngx\:font-semibold{--tw-font-weight:var(--ngx-font-weight-semibold);font-weight:var(--ngx-font-weight-semibold)}.ngx\:text-\(--ngx-datepicker-accent-text-color\){color:var(--ngx-datepicker-accent-text-color)}.ngx\:text-inherit{color:inherit}.ngx\:text-slate-400{color:var(--ngx-color-slate-400)}.ngx\:text-slate-900{color:var(--ngx-color-slate-900)}.ngx\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:outline-0{outline-style:var(--tw-outline-style);outline-width:0}.ngx\:outline-none{--tw-outline-style:none;outline-style:none}.ngx\:text-shadow-slate-900{--tw-text-shadow-color:var(--ngx-color-slate-900)}@supports (color:color-mix(in lab, red, red)){.ngx\:text-shadow-slate-900{--tw-text-shadow-color:color-mix(in oklab,var(--ngx-color-slate-900)var(--tw-text-shadow-alpha),transparent)}}.ngx\:before\:absolute:before{content:var(--tw-content);position:absolute}.ngx\:before\:top-0:before{content:var(--tw-content);top:calc(var(--ngx-spacing)*0)}.ngx\:before\:left-0:before{content:var(--tw-content);left:calc(var(--ngx-spacing)*0)}.ngx\:before\:z-1:before{content:var(--tw-content);z-index:1}.ngx\:before\:block:before{content:var(--tw-content);display:block}.ngx\:before\:h-full:before{content:var(--tw-content);height:100%}.ngx\:before\:w-full:before{content:var(--tw-content);width:100%}.ngx\:before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.ngx\:before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.ngx\:before\:border-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);border-color:var(--ngx-datepicker-accent-color)}.ngx\:before\:bg-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);background-color:var(--ngx-datepicker-accent-color)}.ngx\:focus-within\:shadow:focus-within{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.ngx\:focus-within\:outline-\(--ngx-datepicker-outline-color\):focus-within{outline-color:var(--ngx-datepicker-outline-color)}@media (hover:hover){.ngx\:hover\:bg-slate-100:hover{background-color:var(--ngx-color-slate-100)}.ngx\:hover\:bg-slate-200:hover{background-color:var(--ngx-color-slate-200)}}.ngx\:focus\:bg-slate-100:focus{background-color:var(--ngx-color-slate-100)}.ngx\:focus\:bg-slate-200:focus{background-color:var(--ngx-color-slate-200)}.ngx\:\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}}.gh-dark-code{color:#c9d1d9;background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.gh-dark-code pre{flex-direction:column;gap:6px;margin:0;display:flex}.gh-dark-code span{color:#79c0ff}.gh-dark-code strong{color:#ffa657;font-weight:600}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat Alternates,Arial,sans-serif}:root{--ngx-datepicker-outline-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-text-color:#fff;--ngx-datepicker-range-color:oklch(88.2% .059 254.128)}input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0}input[type=date]{appearance:none;min-width:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-text-shadow-color{syntax:"*";inherits:false}@property --tw-text-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
2
+ @import "https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-text-shadow-color:initial;--tw-text-shadow-alpha:100%;--tw-content:""}}}@layer theme{:root,:host{--ngx-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--ngx-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ngx-color-slate-100:oklch(96.8% .007 247.896);--ngx-color-slate-200:oklch(92.9% .013 255.508);--ngx-color-slate-400:oklch(70.4% .04 256.788);--ngx-color-slate-900:oklch(20.8% .042 265.755);--ngx-color-white:#fff;--ngx-spacing:.25rem;--ngx-text-xs:.75rem;--ngx-text-xs--line-height:calc(1/.75);--ngx-text-sm:.875rem;--ngx-text-sm--line-height:calc(1.25/.875);--ngx-text-4xl:2.25rem;--ngx-text-4xl--line-height:calc(2.5/2.25);--ngx-font-weight-medium:500;--ngx-font-weight-semibold:600;--ngx-font-weight-bold:700;--ngx-radius-md:.375rem;--ngx-default-font-family:var(--ngx-font-sans);--ngx-default-mono-font-family:var(--ngx-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ngx-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ngx-default-font-feature-settings,normal);font-variation-settings:var(--ngx-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ngx-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ngx-default-mono-font-feature-settings,normal);font-variation-settings:var(--ngx-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ngx\:absolute{position:absolute}.ngx\:relative{position:relative}.ngx\:top-full{top:100%}.ngx\:left-0{left:calc(var(--ngx-spacing)*0)}.ngx\:z-10{z-index:10}.ngx\:z-100{z-index:100}.ngx\:m-0{margin:calc(var(--ngx-spacing)*0)}.ngx\:mx-auto{margin-inline:auto}.ngx\:my-2{margin-block:calc(var(--ngx-spacing)*2)}.ngx\:mt-1{margin-top:calc(var(--ngx-spacing)*1)}.ngx\:mt-2{margin-top:calc(var(--ngx-spacing)*2)}.ngx\:mt-4{margin-top:calc(var(--ngx-spacing)*4)}.ngx\:mt-10{margin-top:calc(var(--ngx-spacing)*10)}.ngx\:mb-1{margin-bottom:calc(var(--ngx-spacing)*1)}.ngx\:mb-2{margin-bottom:calc(var(--ngx-spacing)*2)}.ngx\:block{display:block}.ngx\:flex{display:flex}.ngx\:grid{display:grid}.ngx\:hidden{display:none}.ngx\:inline-block{display:inline-block}.ngx\:h-5{height:calc(var(--ngx-spacing)*5)}.ngx\:h-10{height:calc(var(--ngx-spacing)*10)}.ngx\:h-full{height:100%}.ngx\:w-5{width:calc(var(--ngx-spacing)*5)}.ngx\:w-10{width:calc(var(--ngx-spacing)*10)}.ngx\:w-65{width:calc(var(--ngx-spacing)*65)}.ngx\:w-auto{width:auto}.ngx\:w-full{width:100%}.ngx\:max-w-22\.5{max-width:calc(var(--ngx-spacing)*22.5)}.ngx\:max-w-300{max-width:calc(var(--ngx-spacing)*300)}.ngx\:min-w-54{min-width:calc(var(--ngx-spacing)*54)}.ngx\:grow{flex-grow:1}.ngx\:cursor-auto{cursor:auto}.ngx\:cursor-not-allowed{cursor:not-allowed}.ngx\:cursor-pointer{cursor:pointer}.ngx\:appearance-none{appearance:none}.ngx\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.ngx\:flex-col{flex-direction:column}.ngx\:items-center{align-items:center}.ngx\:items-stretch{align-items:stretch}.ngx\:justify-center{justify-content:center}.ngx\:gap-0\.5{gap:calc(var(--ngx-spacing)*.5)}.ngx\:gap-4{gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-x-1{column-gap:calc(var(--ngx-spacing)*1)}.ngx\:gap-x-2{column-gap:calc(var(--ngx-spacing)*2)}.ngx\:gap-x-4{column-gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-y-0\.5{row-gap:calc(var(--ngx-spacing)*.5)}.ngx\:overflow-hidden{overflow:hidden}.ngx\:rounded-full{border-radius:3.40282e38px}.ngx\:rounded-md{border-radius:var(--ngx-radius-md)}.ngx\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.ngx\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.ngx\:border{border-style:var(--tw-border-style);border-width:1px}.ngx\:border-0{border-style:var(--tw-border-style);border-width:0}.ngx\:border-y-2{border-block-style:var(--tw-border-style);border-block-width:2px}.ngx\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ngx\:border-dashed{--tw-border-style:dashed;border-style:dashed}.ngx\:border-slate-100{border-color:var(--ngx-color-slate-100)}.ngx\:border-slate-200{border-color:var(--ngx-color-slate-200)}.ngx\:bg-\(--ngx-datepicker-range-color\){background-color:var(--ngx-datepicker-range-color)}.ngx\:bg-slate-100{background-color:var(--ngx-color-slate-100)}.ngx\:bg-white{background-color:var(--ngx-color-white)}.ngx\:p-0{padding:calc(var(--ngx-spacing)*0)}.ngx\:p-3{padding:calc(var(--ngx-spacing)*3)}.ngx\:p-4{padding:calc(var(--ngx-spacing)*4)}.ngx\:px-4{padding-inline:calc(var(--ngx-spacing)*4)}.ngx\:px-5{padding-inline:calc(var(--ngx-spacing)*5)}.ngx\:py-1{padding-block:calc(var(--ngx-spacing)*1)}.ngx\:py-3{padding-block:calc(var(--ngx-spacing)*3)}.ngx\:py-10{padding-block:calc(var(--ngx-spacing)*10)}.ngx\:pb-2{padding-bottom:calc(var(--ngx-spacing)*2)}.ngx\:pl-4{padding-left:calc(var(--ngx-spacing)*4)}.ngx\:text-center{text-align:center}.ngx\:text-left{text-align:left}.ngx\:text-4xl{font-size:var(--ngx-text-4xl);line-height:var(--tw-leading,var(--ngx-text-4xl--line-height))}.ngx\:text-sm{font-size:var(--ngx-text-sm);line-height:var(--tw-leading,var(--ngx-text-sm--line-height))}.ngx\:text-xs{font-size:var(--ngx-text-xs);line-height:var(--tw-leading,var(--ngx-text-xs--line-height))}.ngx\:font-bold{--tw-font-weight:var(--ngx-font-weight-bold);font-weight:var(--ngx-font-weight-bold)}.ngx\:font-medium{--tw-font-weight:var(--ngx-font-weight-medium);font-weight:var(--ngx-font-weight-medium)}.ngx\:font-semibold{--tw-font-weight:var(--ngx-font-weight-semibold);font-weight:var(--ngx-font-weight-semibold)}.ngx\:text-\(--ngx-datepicker-accent-text-color\){color:var(--ngx-datepicker-accent-text-color)}.ngx\:text-inherit{color:inherit}.ngx\:text-slate-400{color:var(--ngx-color-slate-400)}.ngx\:text-slate-900{color:var(--ngx-color-slate-900)}.ngx\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:outline-0{outline-style:var(--tw-outline-style);outline-width:0}.ngx\:outline-none{--tw-outline-style:none;outline-style:none}.ngx\:text-shadow-slate-900{--tw-text-shadow-color:var(--ngx-color-slate-900)}@supports (color:color-mix(in lab, red, red)){.ngx\:text-shadow-slate-900{--tw-text-shadow-color:color-mix(in oklab,var(--ngx-color-slate-900)var(--tw-text-shadow-alpha),transparent)}}.ngx\:before\:absolute:before{content:var(--tw-content);position:absolute}.ngx\:before\:top-0:before{content:var(--tw-content);top:calc(var(--ngx-spacing)*0)}.ngx\:before\:left-0:before{content:var(--tw-content);left:calc(var(--ngx-spacing)*0)}.ngx\:before\:z-1:before{content:var(--tw-content);z-index:1}.ngx\:before\:block:before{content:var(--tw-content);display:block}.ngx\:before\:h-full:before{content:var(--tw-content);height:100%}.ngx\:before\:w-full:before{content:var(--tw-content);width:100%}.ngx\:before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.ngx\:before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.ngx\:before\:border-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);border-color:var(--ngx-datepicker-accent-color)}.ngx\:before\:bg-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);background-color:var(--ngx-datepicker-accent-color)}.ngx\:focus-within\:shadow:focus-within{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.ngx\:focus-within\:outline-\(--ngx-datepicker-outline-color\):focus-within{outline-color:var(--ngx-datepicker-outline-color)}@media (hover:hover){.ngx\:hover\:bg-slate-100:hover{background-color:var(--ngx-color-slate-100)}.ngx\:hover\:bg-slate-200:hover{background-color:var(--ngx-color-slate-200)}}.ngx\:focus\:bg-slate-100:focus{background-color:var(--ngx-color-slate-100)}.ngx\:focus\:bg-slate-200:focus{background-color:var(--ngx-color-slate-200)}.ngx\:\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}}.gh-dark-code{color:#c9d1d9;background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.gh-dark-code pre{flex-direction:column;gap:6px;margin:0;display:flex}.gh-dark-code span{color:#79c0ff}.gh-dark-code strong{color:#ffa657;font-weight:600}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat Alternates,Arial,sans-serif}:root{--ngx-datepicker-outline-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-text-color:#fff;--ngx-datepicker-range-color:oklch(88.2% .059 254.128)}input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0}input[type=date]{appearance:none;min-width:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-text-shadow-color{syntax:"*";inherits:false}@property --tw-text-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-content{syntax:"*";inherits:false;initial-value:""}