ng-primitives 0.42.0 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dialog/dialog-trigger/dialog-trigger.d.ts +0 -4
  2. package/fesm2022/ng-primitives-a11y.mjs +3 -3
  3. package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
  4. package/fesm2022/ng-primitives-accordion.mjs +12 -12
  5. package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
  6. package/fesm2022/ng-primitives-autofill.mjs +3 -3
  7. package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
  8. package/fesm2022/ng-primitives-avatar.mjs +9 -9
  9. package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/ng-primitives-button.mjs +3 -3
  11. package/fesm2022/ng-primitives-button.mjs.map +1 -1
  12. package/fesm2022/ng-primitives-checkbox.mjs +3 -3
  13. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  14. package/fesm2022/ng-primitives-common.mjs +3 -3
  15. package/fesm2022/ng-primitives-common.mjs.map +1 -1
  16. package/fesm2022/ng-primitives-date-picker.mjs +27 -27
  17. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
  18. package/fesm2022/ng-primitives-dialog.mjs +19 -23
  19. package/fesm2022/ng-primitives-dialog.mjs.map +1 -1
  20. package/fesm2022/ng-primitives-file-upload.mjs +6 -6
  21. package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
  22. package/fesm2022/ng-primitives-focus-trap.mjs +3 -3
  23. package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
  24. package/fesm2022/ng-primitives-form-field.mjs +15 -15
  25. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  26. package/fesm2022/ng-primitives-input.mjs +3 -3
  27. package/fesm2022/ng-primitives-input.mjs.map +1 -1
  28. package/fesm2022/ng-primitives-interactions.mjs +15 -15
  29. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  30. package/fesm2022/ng-primitives-internal.mjs +12 -12
  31. package/fesm2022/ng-primitives-internal.mjs.map +1 -1
  32. package/fesm2022/ng-primitives-listbox.mjs +12 -12
  33. package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
  34. package/fesm2022/ng-primitives-menu.mjs +12 -12
  35. package/fesm2022/ng-primitives-menu.mjs.map +1 -1
  36. package/fesm2022/ng-primitives-meter.mjs +15 -15
  37. package/fesm2022/ng-primitives-meter.mjs.map +1 -1
  38. package/fesm2022/ng-primitives-pagination.mjs +18 -18
  39. package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
  40. package/fesm2022/ng-primitives-popover.mjs +6 -6
  41. package/fesm2022/ng-primitives-popover.mjs.map +1 -1
  42. package/fesm2022/ng-primitives-progress.mjs +15 -15
  43. package/fesm2022/ng-primitives-progress.mjs.map +1 -1
  44. package/fesm2022/ng-primitives-radio.mjs +9 -9
  45. package/fesm2022/ng-primitives-radio.mjs.map +1 -1
  46. package/fesm2022/ng-primitives-resize.mjs +10 -3
  47. package/fesm2022/ng-primitives-resize.mjs.map +1 -1
  48. package/fesm2022/ng-primitives-roving-focus.mjs +6 -6
  49. package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
  50. package/fesm2022/ng-primitives-search.mjs +6 -6
  51. package/fesm2022/ng-primitives-search.mjs.map +1 -1
  52. package/fesm2022/ng-primitives-select.mjs +3 -3
  53. package/fesm2022/ng-primitives-select.mjs.map +1 -1
  54. package/fesm2022/ng-primitives-separator.mjs +3 -3
  55. package/fesm2022/ng-primitives-separator.mjs.map +1 -1
  56. package/fesm2022/ng-primitives-slider.mjs +12 -12
  57. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  58. package/fesm2022/ng-primitives-switch.mjs +6 -6
  59. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  60. package/fesm2022/ng-primitives-tabs.mjs +20 -14
  61. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  62. package/fesm2022/ng-primitives-textarea.mjs +3 -3
  63. package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
  64. package/fesm2022/ng-primitives-toast.mjs +3 -3
  65. package/fesm2022/ng-primitives-toast.mjs.map +1 -1
  66. package/fesm2022/ng-primitives-toggle-group.mjs +6 -6
  67. package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
  68. package/fesm2022/ng-primitives-toggle.mjs +3 -3
  69. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  70. package/fesm2022/ng-primitives-toolbar.mjs +3 -3
  71. package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
  72. package/fesm2022/ng-primitives-tooltip.mjs +6 -6
  73. package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
  74. package/focus-trap/focus-trap/focus-trap-state.d.ts +2 -2
  75. package/listbox/listbox/listbox-state.d.ts +2 -2
  76. package/meter/meter/meter-state.d.ts +3 -3
  77. package/meter/meter-indicator/meter-indicator.d.ts +3 -3
  78. package/meter/meter-label/meter-label.d.ts +3 -3
  79. package/package.json +13 -13
  80. package/pagination/pagination/pagination-state.d.ts +2 -2
  81. package/pagination/pagination-first/pagination-first.d.ts +2 -2
  82. package/pagination/pagination-next/pagination-next.d.ts +2 -2
  83. package/pagination/pagination-previous/pagination-previous.d.ts +2 -2
  84. package/progress/progress/progress-state.d.ts +3 -3
  85. package/progress/progress-indicator/progress-indicator.d.ts +3 -3
  86. package/progress/progress-label/progress-label.d.ts +3 -3
  87. package/progress/progress-track/progress-track.d.ts +3 -3
  88. package/progress/progress-value/progress-value.d.ts +3 -3
  89. package/roving-focus/roving-focus-group/roving-focus-group-state.d.ts +6 -6
  90. package/schematics/ng-generate/schema.d.ts +2 -1
  91. package/schematics/ng-generate/schema.json +1 -0
  92. package/schematics/ng-generate/templates/popover/popover-trigger.__fileSuffix@dasherize__.ts.template +39 -0
  93. package/schematics/ng-generate/templates/popover/popover.__fileSuffix@dasherize__.ts.template +59 -0
  94. package/slider/slider/slider-state.d.ts +4 -4
  95. package/slider/slider-range/slider-range.d.ts +4 -4
  96. package/slider/slider-thumb/slider-thumb.d.ts +4 -4
  97. package/slider/slider-track/slider-track.d.ts +4 -4
  98. package/tabs/tab-button/tab-button.d.ts +14 -13
  99. package/tabs/tab-list/tab-list.d.ts +6 -6
  100. package/tabs/tab-panel/tab-panel.d.ts +6 -6
  101. package/tabs/tabset/tabset-state.d.ts +6 -6
  102. package/toggle-group/toggle-group/toggle-group-state.d.ts +6 -6
  103. package/toolbar/toolbar/toolbar-state.d.ts +6 -6
@@ -88,10 +88,10 @@ class NgpDatePickerCellRender {
88
88
  ngOnDestroy() {
89
89
  this.viewRefs.forEach(viewRef => viewRef.destroy());
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerCellRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
92
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerCellRender, isStandalone: true, selector: "[ngpDatePickerCellRender]", providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }], exportAs: ["ngpDatePickerCellRender"], ngImport: i0 }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerCellRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerCellRender, isStandalone: true, selector: "[ngpDatePickerCellRender]", providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }], exportAs: ["ngpDatePickerCellRender"], ngImport: i0 }); }
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerCellRender, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerCellRender, decorators: [{
95
95
  type: Directive,
96
96
  args: [{
97
97
  selector: '[ngpDatePickerCellRender]',
@@ -142,10 +142,10 @@ class NgpDatePickerCell {
142
142
  */
143
143
  this.labelId = computed(() => this.datePicker.label()?.id());
144
144
  }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerCell, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
146
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.8", type: NgpDatePickerCell, isStandalone: true, selector: "[ngpDatePickerCell]", host: { attributes: { "role": "gridcell" }, properties: { "attr.data-selected": "datePickerButton()?.selected() ? \"\" : null", "attr.aria-selected": "datePickerButton()?.selected()", "attr.aria-disabled": "datePickerButton()?.disabled()", "attr.data-disabled": "datePickerButton()?.disabled() ? \"\" : null", "attr.aria-labelledby": "labelId()" } }, queries: [{ propertyName: "datePickerButton", first: true, predicate: NgpDatePickerDateButtonToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePickerCell"], ngImport: i0 }); }
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerCell, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
146
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.11", type: NgpDatePickerCell, isStandalone: true, selector: "[ngpDatePickerCell]", host: { attributes: { "role": "gridcell" }, properties: { "attr.data-selected": "datePickerButton()?.selected() ? \"\" : null", "attr.aria-selected": "datePickerButton()?.selected()", "attr.aria-disabled": "datePickerButton()?.disabled()", "attr.data-disabled": "datePickerButton()?.disabled() ? \"\" : null", "attr.aria-labelledby": "labelId()" } }, queries: [{ propertyName: "datePickerButton", first: true, predicate: NgpDatePickerDateButtonToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePickerCell"], ngImport: i0 }); }
147
147
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerCell, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerCell, decorators: [{
149
149
  type: Directive,
150
150
  args: [{
151
151
  selector: '[ngpDatePickerCell]',
@@ -377,10 +377,10 @@ class NgpDatePickerDateButton {
377
377
  getDirection() {
378
378
  return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';
379
379
  }
380
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerDateButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
381
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerDateButton, isStandalone: true, selector: "[ngpDatePickerDateButton]", host: { listeners: { "click": "select()", "keydown.enter": "select($event)", "keydown.space": "select($event)", "keydown.arrowLeft": "focusPrevious($event)", "keydown.arrowRight": "focusNext($event)", "keydown.arrowUp": "focusAbove($event)", "keydown.arrowDown": "focusBelow($event)", "keydown.home": "focusFirst($event)", "keydown.end": "focusLast($event)", "keydown.pageUp": "focusPreviousMonth($event)", "keydown.pageDown": "focusNextMonth($event)" }, properties: { "attr.role": "!isButton ? \"button\" : null", "attr.tabindex": "focused() ? 0 : -1", "attr.data-selected": "selected() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.data-outside-month": "outside() ? \"\" : null", "attr.data-today": "today() ? \"\" : null" } }, providers: [{ provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton }], exportAs: ["ngpDatePickerDateButton"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerDateButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
381
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerDateButton, isStandalone: true, selector: "[ngpDatePickerDateButton]", host: { listeners: { "click": "select()", "keydown.enter": "select($event)", "keydown.space": "select($event)", "keydown.arrowLeft": "focusPrevious($event)", "keydown.arrowRight": "focusNext($event)", "keydown.arrowUp": "focusAbove($event)", "keydown.arrowDown": "focusBelow($event)", "keydown.home": "focusFirst($event)", "keydown.end": "focusLast($event)", "keydown.pageUp": "focusPreviousMonth($event)", "keydown.pageDown": "focusNextMonth($event)" }, properties: { "attr.role": "!isButton ? \"button\" : null", "attr.tabindex": "focused() ? 0 : -1", "attr.data-selected": "selected() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.data-outside-month": "outside() ? \"\" : null", "attr.data-today": "today() ? \"\" : null" } }, providers: [{ provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton }], exportAs: ["ngpDatePickerDateButton"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
382
382
  }
383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerDateButton, decorators: [{
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerDateButton, decorators: [{
384
384
  type: Directive,
385
385
  args: [{
386
386
  selector: '[ngpDatePickerDateButton]',
@@ -446,10 +446,10 @@ class NgpDatePickerGrid {
446
446
  */
447
447
  this.labelId = computed(() => this.state().label()?.id());
448
448
  }
449
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerGrid, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
450
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerGrid, isStandalone: true, selector: "[ngpDatePickerGrid]", host: { attributes: { "role": "grid" }, properties: { "attr.aria-labelledby": "labelId()", "attr.data-disabled": "state().disabled() ? \"\" : null" } }, exportAs: ["ngpDatePickerGrid"], ngImport: i0 }); }
449
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerGrid, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
450
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerGrid, isStandalone: true, selector: "[ngpDatePickerGrid]", host: { attributes: { "role": "grid" }, properties: { "attr.aria-labelledby": "labelId()", "attr.data-disabled": "state().disabled() ? \"\" : null" } }, exportAs: ["ngpDatePickerGrid"], ngImport: i0 }); }
451
451
  }
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerGrid, decorators: [{
452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerGrid, decorators: [{
453
453
  type: Directive,
454
454
  args: [{
455
455
  selector: '[ngpDatePickerGrid]',
@@ -490,10 +490,10 @@ class NgpDatePickerLabel {
490
490
  alias: 'aria-live',
491
491
  });
492
492
  }
493
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
494
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDatePickerLabel, isStandalone: true, selector: "[ngpDatePickerLabel]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "aria-live", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()", "attr.aria-live": "ariaLive()", "attr.data-disabled": "state().disabled() ? \"\" : null" } }, providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }], exportAs: ["ngpDatePickerLabel"], ngImport: i0 }); }
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
494
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDatePickerLabel, isStandalone: true, selector: "[ngpDatePickerLabel]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLive: { classPropertyName: "ariaLive", publicName: "aria-live", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()", "attr.aria-live": "ariaLive()", "attr.data-disabled": "state().disabled() ? \"\" : null" } }, providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }], exportAs: ["ngpDatePickerLabel"], ngImport: i0 }); }
495
495
  }
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerLabel, decorators: [{
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerLabel, decorators: [{
497
497
  type: Directive,
498
498
  args: [{
499
499
  selector: '[ngpDatePickerLabel]',
@@ -574,10 +574,10 @@ class NgpDatePickerNextMonth {
574
574
  });
575
575
  this.datePicker.setFocusedDate(date, 'mouse', 'forward');
576
576
  }
577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerNextMonth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
578
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerNextMonth, isStandalone: true, selector: "[ngpDatePickerNextMonth]", host: { listeners: { "click": "navigateToNextMonth()" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.disabled": "isButton && disabled() ? true : null", "attr.type": "isButton ? \"button\" : null" } }, exportAs: ["ngpDatePickerNextMonth"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerNextMonth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
578
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerNextMonth, isStandalone: true, selector: "[ngpDatePickerNextMonth]", host: { listeners: { "click": "navigateToNextMonth()" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.disabled": "isButton && disabled() ? true : null", "attr.type": "isButton ? \"button\" : null" } }, exportAs: ["ngpDatePickerNextMonth"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
579
579
  }
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerNextMonth, decorators: [{
580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerNextMonth, decorators: [{
581
581
  type: Directive,
582
582
  args: [{
583
583
  selector: '[ngpDatePickerNextMonth]',
@@ -663,10 +663,10 @@ class NgpDatePickerPreviousMonth {
663
663
  });
664
664
  this.datePicker.setFocusedDate(date, 'mouse', 'backward');
665
665
  }
666
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerPreviousMonth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
667
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerPreviousMonth, isStandalone: true, selector: "[ngpDatePickerPreviousMonth]", host: { listeners: { "click": "navigateToPreviouMonth()" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.disabled": "isButton && disabled() ? true : null", "attr.type": "isButton ? \"button\" : null" } }, exportAs: ["ngpDatePickerPreviousMonth"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
666
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerPreviousMonth, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
667
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerPreviousMonth, isStandalone: true, selector: "[ngpDatePickerPreviousMonth]", host: { listeners: { "click": "navigateToPreviouMonth()" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled()", "attr.disabled": "isButton && disabled() ? true : null", "attr.type": "isButton ? \"button\" : null" } }, exportAs: ["ngpDatePickerPreviousMonth"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
668
668
  }
669
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerPreviousMonth, decorators: [{
669
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerPreviousMonth, decorators: [{
670
670
  type: Directive,
671
671
  args: [{
672
672
  selector: '[ngpDatePickerPreviousMonth]',
@@ -778,10 +778,10 @@ class NgpDatePickerRowRender {
778
778
  viewRef.destroy();
779
779
  }
780
780
  }
781
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerRowRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
782
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: NgpDatePickerRowRender, isStandalone: true, selector: "[ngpDatePickerRowRender]", providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }], exportAs: ["ngpDatePickerRowRender"], ngImport: i0 }); }
781
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerRowRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
782
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: NgpDatePickerRowRender, isStandalone: true, selector: "[ngpDatePickerRowRender]", providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }], exportAs: ["ngpDatePickerRowRender"], ngImport: i0 }); }
783
783
  }
784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePickerRowRender, decorators: [{
784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePickerRowRender, decorators: [{
785
785
  type: Directive,
786
786
  args: [{
787
787
  selector: '[ngpDatePickerRowRender]',
@@ -919,10 +919,10 @@ class NgpDatePicker {
919
919
  unregisterButton(button) {
920
920
  this.buttons.update(buttons => buttons.filter(b => b !== button));
921
921
  }
922
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
923
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.8", type: NgpDatePicker, isStandalone: true, selector: "[ngpDatePicker]", inputs: { min: { classPropertyName: "min", publicName: "ngpDatePickerMin", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "ngpDatePickerMax", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpDatePickerDisabled", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "ngpDatePickerDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "ngpDatePickerDate", isSignal: true, isRequired: false, transformFunction: null }, focusedDate: { classPropertyName: "focusedDate", publicName: "ngpDatePickerFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateChange: "ngpDatePickerDateChange", focusedDateChange: "ngpDatePickerFocusedDateChange" }, host: { properties: { "attr.data-disabled": "state.disabled() ? \"\" : null" } }, providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()], queries: [{ propertyName: "label", first: true, predicate: NgpDatePickerLabelToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePicker"], ngImport: i0 }); }
922
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
923
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.11", type: NgpDatePicker, isStandalone: true, selector: "[ngpDatePicker]", inputs: { min: { classPropertyName: "min", publicName: "ngpDatePickerMin", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "ngpDatePickerMax", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpDatePickerDisabled", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "ngpDatePickerDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "ngpDatePickerDate", isSignal: true, isRequired: false, transformFunction: null }, focusedDate: { classPropertyName: "focusedDate", publicName: "ngpDatePickerFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateChange: "ngpDatePickerDateChange", focusedDateChange: "ngpDatePickerFocusedDateChange" }, host: { properties: { "attr.data-disabled": "state.disabled() ? \"\" : null" } }, providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()], queries: [{ propertyName: "label", first: true, predicate: NgpDatePickerLabelToken, descendants: true, isSignal: true }], exportAs: ["ngpDatePicker"], ngImport: i0 }); }
924
924
  }
925
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDatePicker, decorators: [{
925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDatePicker, decorators: [{
926
926
  type: Directive,
927
927
  args: [{
928
928
  selector: '[ngpDatePicker]',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-date-picker.mjs","sources":["../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell/date-picker-cell.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-state.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-grid/date-picker-grid.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-next-month/date-picker-next-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-previous-month/date-picker-previous-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker.ts","../../../../packages/ng-primitives/date-picker/src/ng-primitives-date-picker.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerRowRender } from './date-picker-row-render';\n\nexport const NgpDatePickerRowRenderToken = new InjectionToken<NgpDatePickerRowRender<unknown>>(\n 'NgpDatePickerRowRenderToken',\n);\n\n/**\n * Inject the DatePickerRowRender directive instance\n */\nexport function injectDatePickerRowRender<T>(): NgpDatePickerRowRender<T> {\n return inject(NgpDatePickerRowRenderToken) as NgpDatePickerRowRender<T>;\n}\n\nexport const NgpDatePickerWeekToken = new InjectionToken<unknown[]>('NgpDatePickerWeekToken');\n\n/**\n * Inject current week days\n */\nexport function injectDatePickerWeek<T>(): T[] {\n return inject(NgpDatePickerWeekToken) as T[];\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerCellRender } from './date-picker-cell-render';\n\nexport const NgpDatePickerCellRenderToken = new InjectionToken<NgpDatePickerCellRender<unknown>>(\n 'NgpDatePickerCellRenderToken',\n);\n\n/**\n * Inject the DatePickerCell directive instance\n */\nexport function injectDatePickerCellRender<T>(): NgpDatePickerCellRender<T> {\n return inject(NgpDatePickerCellRenderToken) as NgpDatePickerCellRender<T>;\n}\n\nexport const NgpDatePickerCellDateToken = new InjectionToken<unknown>('NgpDatePickerCellDateToken');\n\n/**\n * Inject current cell date\n */\nexport function injectDatePickerCellDate<T>(): T {\n return inject(NgpDatePickerCellDateToken) as T;\n}\n","import {\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDatePickerWeek } from '../date-picker-row-render/date-picker-row-render-token';\nimport {\n NgpDatePickerCellDateToken,\n NgpDatePickerCellRenderToken,\n} from './date-picker-cell-render-token';\n\n/**\n * A structural directive that renders a cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCellRender]',\n exportAs: 'ngpDatePickerCellRender',\n providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }],\n})\nexport class NgpDatePickerCellRender<T> implements OnDestroy {\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the dates in the week.\n */\n private readonly dates = injectDatePickerWeek<T>();\n\n /**\n * Store the view refs for the dates.\n */\n private readonly viewRefs: EmbeddedViewRef<NgpDatePickerCellContext<T>>[] = [];\n\n // Make sure the template checker knows the type of the context with which the\n // template of this directive will be rendered\n static ngTemplateContextGuard<T>(\n _: NgpDatePickerCellRender<T>,\n context: unknown,\n ): context is NgpDatePickerCellContext<T> {\n return true;\n }\n\n constructor() {\n this.renderDates();\n }\n\n /**\n * Render the dates in the week.\n */\n private renderDates(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n\n for (const date of this.dates) {\n const viewRef = this.viewContainerRef.createEmbeddedView(\n this.templateRef,\n {\n $implicit: date,\n },\n {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerCellDateToken, useValue: date }],\n }),\n },\n );\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the view refs.\n */\n ngOnDestroy(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n }\n}\n\ninterface NgpDatePickerCellContext<T> {\n $implicit: T;\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerDateButton } from './date-picker-date-button';\n\nexport const NgpDatePickerDateButtonToken = new InjectionToken<NgpDatePickerDateButton<unknown>>(\n 'NgpDatePickerDateButtonToken',\n);\n\n/**\n * Inject the DatePickerDateButton directive instance\n */\nexport function injectDatePickerDateButton<T>(): NgpDatePickerDateButton<T> {\n return inject(NgpDatePickerDateButtonToken) as NgpDatePickerDateButton<T>;\n}\n","import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerToken = new InjectionToken<NgpDatePicker<unknown>>('NgpDatePickerToken');\n\n/**\n * Inject the DatePicker directive instance\n */\nexport function injectDatePicker<T>(): NgpDatePicker<T> {\n return inject(NgpDatePickerToken) as NgpDatePicker<T>;\n}\n\n/**\n * Provide the DatePicker directive instance\n */\nexport function provideDatePicker<T>(datePicker: Type<NgpDatePicker<T>>): ExistingProvider {\n return { provide: NgpDatePickerToken, useExisting: datePicker };\n}\n","import { computed, contentChild, Directive } from '@angular/core';\nimport { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button-token';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCell]',\n exportAs: 'ngpDatePickerCell',\n host: {\n role: 'gridcell',\n '[attr.data-selected]': 'datePickerButton()?.selected() ? \"\" : null',\n '[attr.aria-selected]': 'datePickerButton()?.selected()',\n '[attr.aria-disabled]': 'datePickerButton()?.disabled()',\n '[attr.data-disabled]': 'datePickerButton()?.disabled() ? \"\" : null',\n '[attr.aria-labelledby]': 'labelId()',\n },\n})\nexport class NgpDatePickerCell {\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker();\n\n /**\n * Access the child date picker date button.\n */\n protected readonly datePickerButton = contentChild(NgpDatePickerDateButtonToken, {\n descendants: true,\n });\n\n /**\n * Access the label id.\n */\n protected readonly labelId = computed(() => this.datePicker.label()?.id());\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n InjectedState,\n} from 'ng-primitives/state';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerStateToken = createStateToken<NgpDatePicker<unknown>>('DatePicker');\nexport const provideDatePickerState = createStateProvider(NgpDatePickerStateToken);\nexport const injectDatePickerState = createStateInjector(NgpDatePickerStateToken) as <\n T,\n>() => InjectedState<NgpDatePicker<T>>;\nexport const datePickerState = createState(NgpDatePickerStateToken);\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, HostListener, inject, OnDestroy } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerCellDate } from '../date-picker-cell-render/date-picker-cell-render-token';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerDateButtonToken } from './date-picker-date-button-token';\n\n/**\n * A button that represents a date in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerDateButton]',\n exportAs: 'ngpDatePickerDateButton',\n providers: [{ provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton }],\n host: {\n '[attr.role]': '!isButton ? \"button\" : null',\n '[attr.tabindex]': 'focused() ? 0 : -1',\n '[attr.data-selected]': 'selected() ? \"\" : null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-outside-month]': 'outside() ? \"\" : null',\n '[attr.data-today]': 'today() ? \"\" : null',\n },\n hostDirectives: [NgpButton],\n})\nexport class NgpDatePickerDateButton<T> implements OnDestroy {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * The date this cell represents.\n */\n private readonly date = injectDatePickerCellDate<T>();\n\n /**\n * Determine if this is the focused date.\n */\n protected readonly focused = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this is the selected date.\n * @internal\n */\n readonly selected = computed(() => {\n const selected = this.state().date();\n return selected && this.dateAdapter.isSameDay(this.date, selected);\n });\n\n /**\n * Determine if this date is outside the current month.\n */\n protected readonly outside = computed(\n () => !this.dateAdapter.isSameMonth(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this date is today.\n */\n protected readonly today = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.dateAdapter.now()),\n );\n\n /**\n * Determine if this date is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n const min = this.state().min();\n const max = this.state().max();\n\n if (this.state().disabled() || this.state().dateDisabled()(this.date)) {\n return true;\n }\n\n if (min && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), min) < 0) {\n return true;\n }\n\n if (max && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), max) > 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Determine if the element is a button.\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n constructor() {\n this.datePicker.registerButton(this);\n syncButton({ disabled: this.disabled });\n }\n\n ngOnDestroy(): void {\n this.datePicker.unregisterButton(this);\n }\n\n /**\n * When the button is clicked, select the date.\n */\n @HostListener('click')\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n protected select(event?: KeyboardEvent): void {\n // if the button is disabled, or is already selected, do nothing.\n if (this.disabled() || this.selected()) {\n return;\n }\n\n // because this may not be a button, we should stop the event from firing twice due to\n // us listening to both the click and the keydown.enter event.\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.state().date.set(this.date);\n this.state().dateChange.emit(this.date);\n this.datePicker.setFocusedDate(this.date, 'mouse', 'forward');\n }\n\n /**\n * Focus if this is the current focused date.\n * @internal\n */\n focus(): void {\n if (this.dateAdapter.isSameDay(this.date, this.state().focusedDate())) {\n this.focusMonitor.focusVia(this.elementRef, 'keyboard');\n }\n }\n\n /**\n * Focus the previous cell.\n */\n @HostListener('keydown.arrowLeft', ['$event'])\n protected focusPrevious(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n } else {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n }\n }\n\n /**\n * Focus the next cell.\n */\n @HostListener('keydown.arrowRight', ['$event'])\n protected focusNext(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n } else {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n }\n }\n\n /**\n * Focus the above cell.\n */\n @HostListener('keydown.arrowUp', ['$event'])\n protected focusAbove(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.subtract(this.state().focusedDate(), { days: 7 }), 'backward');\n }\n\n /**\n * Focus the below cell.\n */\n @HostListener('keydown.arrowDown', ['$event'])\n protected focusBelow(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 7 }), 'forward');\n }\n\n /**\n * Focus the first date of the month.\n */\n @HostListener('keydown.home', ['$event'])\n protected focusFirst(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.startOfMonth(this.state().focusedDate()), 'forward');\n }\n\n /**\n * Focus the last date of the month.\n */\n @HostListener('keydown.end', ['$event'])\n protected focusLast(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.endOfMonth(this.state().focusedDate()), 'backward');\n }\n\n /**\n * Focus the same date in the previous month.\n */\n @HostListener('keydown.pageUp', ['$event'])\n protected focusPreviousMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let previousMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n previousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);\n\n // if we are on a date that does not exist in the previous month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'forward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(previousMonthTarget, { day: date }), 'forward');\n }\n }\n\n /**\n * Focus the same date in the next month.\n */\n @HostListener('keydown.pageDown', ['$event'])\n protected focusNextMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let nextMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n nextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);\n\n // if we are on a date that does not exist in the next month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'backward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(nextMonthTarget, { day: date }), 'backward');\n }\n }\n\n private focusDate(date: T, direction: 'forward' | 'backward'): void {\n this.datePicker.setFocusedDate(date, 'keyboard', direction);\n }\n\n /**\n * Get the direction of the element.\n */\n private getDirection(): 'ltr' | 'rtl' {\n return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\n\n/**\n * The grid that contains the days of the month.\n */\n@Directive({\n selector: '[ngpDatePickerGrid]',\n exportAs: 'ngpDatePickerGrid',\n host: {\n role: 'grid',\n '[attr.aria-labelledby]': 'labelId()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerGrid<T> {\n /**\n * Access the date picker state.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Determine the id for the label.\n */\n protected readonly labelId = computed(() => this.state().label()?.id());\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerLabel } from './date-picker-label';\n\nexport const NgpDatePickerLabelToken = new InjectionToken<NgpDatePickerLabel<unknown>>(\n 'NgpDatePickerLabelToken',\n);\n\n/**\n * Inject the DatePickerLabel directive instance\n */\nexport function injectDatePickerLabel<T>(): NgpDatePickerLabel<T> {\n return inject(NgpDatePickerLabelToken) as NgpDatePickerLabel<T>;\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { NgpDatePickerLabelToken } from './date-picker-label-token';\n\n/**\n * The label that displays the current month and year typically in the header of the date picker. This will be announced by screen readers when the date changes.\n */\n@Directive({\n selector: '[ngpDatePickerLabel]',\n exportAs: 'ngpDatePickerLabel',\n providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }],\n host: {\n '[id]': 'id()',\n '[attr.aria-live]': 'ariaLive()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerLabel<T> {\n /**\n * Access the date picker.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Define a unique id for the label.\n */\n readonly id = input(uniqueId('ngp-date-picker-label'));\n\n /**\n * Define the aria live attribute.\n */\n readonly ariaLive = input('polite', {\n alias: 'aria-live',\n });\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the next month.\n */\n@Directive({\n selector: '[ngpDatePickerNextMonth]',\n exportAs: 'ngpDatePickerNextMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerNextMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const maxDate = this.state().max();\n const lastDay = this.dateAdapter.set(this.dateAdapter.endOfMonth(this.state().focusedDate()), {\n hour: 23,\n minute: 59,\n second: 59,\n millisecond: 999,\n });\n\n // if there is a max date and it is equal to or before the last day of the month, disable it.\n if (maxDate && this.dateAdapter.compare(maxDate, lastDay) <= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the next month.\n */\n @HostListener('click')\n protected navigateToNextMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the next month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.add(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'forward');\n }\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the previous month.\n */\n@Directive({\n selector: '[ngpDatePickerPreviousMonth]',\n exportAs: 'ngpDatePickerPreviousMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerPreviousMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const minDate = this.state().min();\n\n // if the next month is out of bounds, disable it.\n const firstDay = this.dateAdapter.set(\n this.dateAdapter.startOfMonth(this.state().focusedDate()),\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n );\n\n // if there is a min date and it is equal to or after the first day of the month, disable it.\n if (minDate && this.dateAdapter.compare(minDate, firstDay) >= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the previous month.\n */\n @HostListener('click')\n protected navigateToPreviouMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the previous month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.subtract(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'backward');\n }\n}\n","import {\n computed,\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { onChange } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport {\n NgpDatePickerRowRenderToken,\n NgpDatePickerWeekToken,\n} from './date-picker-row-render-token';\n\n/**\n * A structural directive that renders a row of weekdays in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerRowRender]',\n exportAs: 'ngpDatePickerRowRender',\n providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }],\n})\nexport class NgpDatePickerRowRender<T> implements OnDestroy {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Get all the days to display, this is the days of the current month\n * and the days of the previous and next month to fill the grid.\n */\n protected readonly days = computed(() => {\n const month = this.state().focusedDate();\n const days: T[] = [];\n\n // Get the first and last day of the month.\n let firstDay = this.dateAdapter.startOfMonth(month);\n let lastDay = this.dateAdapter.endOfMonth(month);\n\n // find the first and last day of visible in the grid.\n firstDay = this.dateAdapter.subtract(firstDay, {\n days: this.dateAdapter.getDay(firstDay),\n });\n lastDay = this.dateAdapter.add(lastDay, {\n days: 6 - this.dateAdapter.getDay(lastDay),\n });\n\n // collect all the days to display.\n while (firstDay <= lastDay) {\n days.push(firstDay);\n firstDay = this.dateAdapter.add(firstDay, { days: 1 });\n }\n\n return days;\n });\n\n // get the weeks to display.\n protected readonly weeks = computed(() => {\n const days = this.days();\n const weeks = [];\n\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return weeks;\n });\n\n /**\n * Store the embedded view refs of each rendered row.\n */\n private readonly viewRefs: EmbeddedViewRef<void>[] = [];\n\n constructor() {\n // re-render the rows when the month changes.\n onChange(this.state().focusedDate, (date, previousDate) => {\n if (!date || !previousDate || !this.dateAdapter.isSameMonth(date, previousDate)) {\n this.renderRows();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyRows();\n }\n\n /**\n * Render the row.\n */\n private renderRows(): void {\n const weeks = this.weeks();\n\n // clear the view container.\n this.destroyRows();\n\n // render the weeks.\n for (const week of weeks) {\n const viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, null, {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerWeekToken, useValue: week }],\n }),\n });\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the row.\n */\n private destroyRows(): void {\n for (const viewRef of this.viewRefs) {\n viewRef.destroy();\n }\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n contentChild,\n Directive,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport type { NgpDatePickerDateButton } from '../date-picker-date-button/date-picker-date-button';\nimport { NgpDatePickerLabelToken } from '../date-picker-label/date-picker-label-token';\nimport { datePickerState, provideDatePickerState } from './date-picker-state';\nimport { provideDatePicker } from './date-picker-token';\n\n/**\n * The outermost container for the date picker.\n */\n@Directive({\n selector: '[ngpDatePicker]',\n exportAs: 'ngpDatePicker',\n providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePicker<T> {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * The minimum date that can be selected.\n */\n readonly min = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMin',\n });\n\n /**\n * The maximum date that can be selected.\n */\n readonly max = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMax',\n });\n\n /**\n * Determine if the date picker is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpDatePickerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * A function that is called to determine if a specific date should be disabled.\n */\n readonly dateDisabled = input<(date: T) => boolean>(() => false, {\n alias: 'ngpDatePickerDateDisabled',\n });\n\n /**\n * The selected value.\n */\n readonly date = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerDate',\n });\n\n /**\n * Emit when the date changes.\n */\n readonly dateChange = output<T | undefined>({\n alias: 'ngpDatePickerDateChange',\n });\n\n /**\n * The focused value.\n */\n readonly focusedDate = input<T>(this.dateAdapter.now(), {\n alias: 'ngpDatePickerFocusedDate',\n });\n\n /**\n * Emit when the focused date changes.\n */\n readonly focusedDateChange = output<T>({\n alias: 'ngpDatePickerFocusedDateChange',\n });\n\n /**\n * Detect the label element.\n * @internal\n */\n readonly label = contentChild(NgpDatePickerLabelToken, { descendants: true });\n\n /**\n * Access all the date picker buttons\n */\n private readonly buttons = signal<NgpDatePickerDateButton<T>[]>([]);\n\n /**\n * The date picker state.\n */\n protected readonly state = datePickerState<NgpDatePicker<T>>(this);\n\n /**\n * Set the focused date.\n * @param date The date to focus.\n * @internal\n */\n setFocusedDate(date: T, origin: FocusOrigin = 'mouse', direction: 'forward' | 'backward'): void {\n if (this.state.disabled()) {\n return;\n }\n\n const min = this.state.min();\n const max = this.state.max();\n\n if (min && this.dateAdapter.isBefore(date, min)) {\n date = min;\n }\n\n if (max && this.dateAdapter.isAfter(date, max)) {\n date = max;\n }\n\n // if the date is disabled, find the next available date in the specified direction.\n if (this.state.dateDisabled()(date)) {\n let nextDate = this.dateAdapter.add(date, { days: direction === 'forward' ? 1 : -1 });\n\n while (\n this.state.dateDisabled()(nextDate) ||\n (min && this.dateAdapter.isBefore(nextDate, min)) ||\n (max && this.dateAdapter.isAfter(nextDate, max))\n ) {\n nextDate = this.dateAdapter.add(nextDate, { days: direction === 'forward' ? 1 : -1 });\n }\n\n date = nextDate;\n }\n\n this.state.focusedDate.set(date);\n this.focusedDateChange.emit(date);\n\n if (origin === 'keyboard') {\n afterNextRender(\n {\n write: () => this.buttons().forEach(button => button.focus()),\n },\n {\n injector: this.injector,\n },\n );\n }\n }\n\n /**\n * Register a date button.\n * @param button The date button to register.\n * @internal\n */\n registerButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => [...buttons, button]);\n }\n\n /**\n * Unregister a date button.\n * @param button The date button to unregister.\n * @internal\n */\n unregisterButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => buttons.filter(b => b !== button));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-date-picker.mjs","sources":["../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell/date-picker-cell.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-state.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-grid/date-picker-grid.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-next-month/date-picker-next-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-previous-month/date-picker-previous-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker.ts","../../../../packages/ng-primitives/date-picker/src/ng-primitives-date-picker.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerRowRender } from './date-picker-row-render';\n\nexport const NgpDatePickerRowRenderToken = new InjectionToken<NgpDatePickerRowRender<unknown>>(\n 'NgpDatePickerRowRenderToken',\n);\n\n/**\n * Inject the DatePickerRowRender directive instance\n */\nexport function injectDatePickerRowRender<T>(): NgpDatePickerRowRender<T> {\n return inject(NgpDatePickerRowRenderToken) as NgpDatePickerRowRender<T>;\n}\n\nexport const NgpDatePickerWeekToken = new InjectionToken<unknown[]>('NgpDatePickerWeekToken');\n\n/**\n * Inject current week days\n */\nexport function injectDatePickerWeek<T>(): T[] {\n return inject(NgpDatePickerWeekToken) as T[];\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerCellRender } from './date-picker-cell-render';\n\nexport const NgpDatePickerCellRenderToken = new InjectionToken<NgpDatePickerCellRender<unknown>>(\n 'NgpDatePickerCellRenderToken',\n);\n\n/**\n * Inject the DatePickerCell directive instance\n */\nexport function injectDatePickerCellRender<T>(): NgpDatePickerCellRender<T> {\n return inject(NgpDatePickerCellRenderToken) as NgpDatePickerCellRender<T>;\n}\n\nexport const NgpDatePickerCellDateToken = new InjectionToken<unknown>('NgpDatePickerCellDateToken');\n\n/**\n * Inject current cell date\n */\nexport function injectDatePickerCellDate<T>(): T {\n return inject(NgpDatePickerCellDateToken) as T;\n}\n","import {\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDatePickerWeek } from '../date-picker-row-render/date-picker-row-render-token';\nimport {\n NgpDatePickerCellDateToken,\n NgpDatePickerCellRenderToken,\n} from './date-picker-cell-render-token';\n\n/**\n * A structural directive that renders a cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCellRender]',\n exportAs: 'ngpDatePickerCellRender',\n providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }],\n})\nexport class NgpDatePickerCellRender<T> implements OnDestroy {\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the dates in the week.\n */\n private readonly dates = injectDatePickerWeek<T>();\n\n /**\n * Store the view refs for the dates.\n */\n private readonly viewRefs: EmbeddedViewRef<NgpDatePickerCellContext<T>>[] = [];\n\n // Make sure the template checker knows the type of the context with which the\n // template of this directive will be rendered\n static ngTemplateContextGuard<T>(\n _: NgpDatePickerCellRender<T>,\n context: unknown,\n ): context is NgpDatePickerCellContext<T> {\n return true;\n }\n\n constructor() {\n this.renderDates();\n }\n\n /**\n * Render the dates in the week.\n */\n private renderDates(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n\n for (const date of this.dates) {\n const viewRef = this.viewContainerRef.createEmbeddedView(\n this.templateRef,\n {\n $implicit: date,\n },\n {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerCellDateToken, useValue: date }],\n }),\n },\n );\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the view refs.\n */\n ngOnDestroy(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n }\n}\n\ninterface NgpDatePickerCellContext<T> {\n $implicit: T;\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerDateButton } from './date-picker-date-button';\n\nexport const NgpDatePickerDateButtonToken = new InjectionToken<NgpDatePickerDateButton<unknown>>(\n 'NgpDatePickerDateButtonToken',\n);\n\n/**\n * Inject the DatePickerDateButton directive instance\n */\nexport function injectDatePickerDateButton<T>(): NgpDatePickerDateButton<T> {\n return inject(NgpDatePickerDateButtonToken) as NgpDatePickerDateButton<T>;\n}\n","import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerToken = new InjectionToken<NgpDatePicker<unknown>>('NgpDatePickerToken');\n\n/**\n * Inject the DatePicker directive instance\n */\nexport function injectDatePicker<T>(): NgpDatePicker<T> {\n return inject(NgpDatePickerToken) as NgpDatePicker<T>;\n}\n\n/**\n * Provide the DatePicker directive instance\n */\nexport function provideDatePicker<T>(datePicker: Type<NgpDatePicker<T>>): ExistingProvider {\n return { provide: NgpDatePickerToken, useExisting: datePicker };\n}\n","import { computed, contentChild, Directive } from '@angular/core';\nimport { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button-token';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCell]',\n exportAs: 'ngpDatePickerCell',\n host: {\n role: 'gridcell',\n '[attr.data-selected]': 'datePickerButton()?.selected() ? \"\" : null',\n '[attr.aria-selected]': 'datePickerButton()?.selected()',\n '[attr.aria-disabled]': 'datePickerButton()?.disabled()',\n '[attr.data-disabled]': 'datePickerButton()?.disabled() ? \"\" : null',\n '[attr.aria-labelledby]': 'labelId()',\n },\n})\nexport class NgpDatePickerCell {\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker();\n\n /**\n * Access the child date picker date button.\n */\n protected readonly datePickerButton = contentChild(NgpDatePickerDateButtonToken, {\n descendants: true,\n });\n\n /**\n * Access the label id.\n */\n protected readonly labelId = computed(() => this.datePicker.label()?.id());\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n InjectedState,\n} from 'ng-primitives/state';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerStateToken = createStateToken<NgpDatePicker<unknown>>('DatePicker');\nexport const provideDatePickerState = createStateProvider(NgpDatePickerStateToken);\nexport const injectDatePickerState = createStateInjector(NgpDatePickerStateToken) as <\n T,\n>() => InjectedState<NgpDatePicker<T>>;\nexport const datePickerState = createState(NgpDatePickerStateToken);\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, HostListener, inject, OnDestroy } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerCellDate } from '../date-picker-cell-render/date-picker-cell-render-token';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerDateButtonToken } from './date-picker-date-button-token';\n\n/**\n * A button that represents a date in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerDateButton]',\n exportAs: 'ngpDatePickerDateButton',\n providers: [{ provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton }],\n host: {\n '[attr.role]': '!isButton ? \"button\" : null',\n '[attr.tabindex]': 'focused() ? 0 : -1',\n '[attr.data-selected]': 'selected() ? \"\" : null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-outside-month]': 'outside() ? \"\" : null',\n '[attr.data-today]': 'today() ? \"\" : null',\n },\n hostDirectives: [NgpButton],\n})\nexport class NgpDatePickerDateButton<T> implements OnDestroy {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * The date this cell represents.\n */\n private readonly date = injectDatePickerCellDate<T>();\n\n /**\n * Determine if this is the focused date.\n */\n protected readonly focused = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this is the selected date.\n * @internal\n */\n readonly selected = computed(() => {\n const selected = this.state().date();\n return selected && this.dateAdapter.isSameDay(this.date, selected);\n });\n\n /**\n * Determine if this date is outside the current month.\n */\n protected readonly outside = computed(\n () => !this.dateAdapter.isSameMonth(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this date is today.\n */\n protected readonly today = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.dateAdapter.now()),\n );\n\n /**\n * Determine if this date is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n const min = this.state().min();\n const max = this.state().max();\n\n if (this.state().disabled() || this.state().dateDisabled()(this.date)) {\n return true;\n }\n\n if (min && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), min) < 0) {\n return true;\n }\n\n if (max && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), max) > 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Determine if the element is a button.\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n constructor() {\n this.datePicker.registerButton(this);\n syncButton({ disabled: this.disabled });\n }\n\n ngOnDestroy(): void {\n this.datePicker.unregisterButton(this);\n }\n\n /**\n * When the button is clicked, select the date.\n */\n @HostListener('click')\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n protected select(event?: KeyboardEvent): void {\n // if the button is disabled, or is already selected, do nothing.\n if (this.disabled() || this.selected()) {\n return;\n }\n\n // because this may not be a button, we should stop the event from firing twice due to\n // us listening to both the click and the keydown.enter event.\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.state().date.set(this.date);\n this.state().dateChange.emit(this.date);\n this.datePicker.setFocusedDate(this.date, 'mouse', 'forward');\n }\n\n /**\n * Focus if this is the current focused date.\n * @internal\n */\n focus(): void {\n if (this.dateAdapter.isSameDay(this.date, this.state().focusedDate())) {\n this.focusMonitor.focusVia(this.elementRef, 'keyboard');\n }\n }\n\n /**\n * Focus the previous cell.\n */\n @HostListener('keydown.arrowLeft', ['$event'])\n protected focusPrevious(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n } else {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n }\n }\n\n /**\n * Focus the next cell.\n */\n @HostListener('keydown.arrowRight', ['$event'])\n protected focusNext(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n } else {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n }\n }\n\n /**\n * Focus the above cell.\n */\n @HostListener('keydown.arrowUp', ['$event'])\n protected focusAbove(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.subtract(this.state().focusedDate(), { days: 7 }), 'backward');\n }\n\n /**\n * Focus the below cell.\n */\n @HostListener('keydown.arrowDown', ['$event'])\n protected focusBelow(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 7 }), 'forward');\n }\n\n /**\n * Focus the first date of the month.\n */\n @HostListener('keydown.home', ['$event'])\n protected focusFirst(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.startOfMonth(this.state().focusedDate()), 'forward');\n }\n\n /**\n * Focus the last date of the month.\n */\n @HostListener('keydown.end', ['$event'])\n protected focusLast(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.endOfMonth(this.state().focusedDate()), 'backward');\n }\n\n /**\n * Focus the same date in the previous month.\n */\n @HostListener('keydown.pageUp', ['$event'])\n protected focusPreviousMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let previousMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n previousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);\n\n // if we are on a date that does not exist in the previous month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'forward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(previousMonthTarget, { day: date }), 'forward');\n }\n }\n\n /**\n * Focus the same date in the next month.\n */\n @HostListener('keydown.pageDown', ['$event'])\n protected focusNextMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let nextMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n nextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);\n\n // if we are on a date that does not exist in the next month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'backward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(nextMonthTarget, { day: date }), 'backward');\n }\n }\n\n private focusDate(date: T, direction: 'forward' | 'backward'): void {\n this.datePicker.setFocusedDate(date, 'keyboard', direction);\n }\n\n /**\n * Get the direction of the element.\n */\n private getDirection(): 'ltr' | 'rtl' {\n return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\n\n/**\n * The grid that contains the days of the month.\n */\n@Directive({\n selector: '[ngpDatePickerGrid]',\n exportAs: 'ngpDatePickerGrid',\n host: {\n role: 'grid',\n '[attr.aria-labelledby]': 'labelId()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerGrid<T> {\n /**\n * Access the date picker state.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Determine the id for the label.\n */\n protected readonly labelId = computed(() => this.state().label()?.id());\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerLabel } from './date-picker-label';\n\nexport const NgpDatePickerLabelToken = new InjectionToken<NgpDatePickerLabel<unknown>>(\n 'NgpDatePickerLabelToken',\n);\n\n/**\n * Inject the DatePickerLabel directive instance\n */\nexport function injectDatePickerLabel<T>(): NgpDatePickerLabel<T> {\n return inject(NgpDatePickerLabelToken) as NgpDatePickerLabel<T>;\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { NgpDatePickerLabelToken } from './date-picker-label-token';\n\n/**\n * The label that displays the current month and year typically in the header of the date picker. This will be announced by screen readers when the date changes.\n */\n@Directive({\n selector: '[ngpDatePickerLabel]',\n exportAs: 'ngpDatePickerLabel',\n providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }],\n host: {\n '[id]': 'id()',\n '[attr.aria-live]': 'ariaLive()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerLabel<T> {\n /**\n * Access the date picker.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Define a unique id for the label.\n */\n readonly id = input(uniqueId('ngp-date-picker-label'));\n\n /**\n * Define the aria live attribute.\n */\n readonly ariaLive = input('polite', {\n alias: 'aria-live',\n });\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the next month.\n */\n@Directive({\n selector: '[ngpDatePickerNextMonth]',\n exportAs: 'ngpDatePickerNextMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerNextMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const maxDate = this.state().max();\n const lastDay = this.dateAdapter.set(this.dateAdapter.endOfMonth(this.state().focusedDate()), {\n hour: 23,\n minute: 59,\n second: 59,\n millisecond: 999,\n });\n\n // if there is a max date and it is equal to or before the last day of the month, disable it.\n if (maxDate && this.dateAdapter.compare(maxDate, lastDay) <= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the next month.\n */\n @HostListener('click')\n protected navigateToNextMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the next month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.add(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'forward');\n }\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the previous month.\n */\n@Directive({\n selector: '[ngpDatePickerPreviousMonth]',\n exportAs: 'ngpDatePickerPreviousMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerPreviousMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const minDate = this.state().min();\n\n // if the next month is out of bounds, disable it.\n const firstDay = this.dateAdapter.set(\n this.dateAdapter.startOfMonth(this.state().focusedDate()),\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n );\n\n // if there is a min date and it is equal to or after the first day of the month, disable it.\n if (minDate && this.dateAdapter.compare(minDate, firstDay) >= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the previous month.\n */\n @HostListener('click')\n protected navigateToPreviouMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the previous month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.subtract(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'backward');\n }\n}\n","import {\n computed,\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { onChange } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport {\n NgpDatePickerRowRenderToken,\n NgpDatePickerWeekToken,\n} from './date-picker-row-render-token';\n\n/**\n * A structural directive that renders a row of weekdays in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerRowRender]',\n exportAs: 'ngpDatePickerRowRender',\n providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }],\n})\nexport class NgpDatePickerRowRender<T> implements OnDestroy {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Get all the days to display, this is the days of the current month\n * and the days of the previous and next month to fill the grid.\n */\n protected readonly days = computed(() => {\n const month = this.state().focusedDate();\n const days: T[] = [];\n\n // Get the first and last day of the month.\n let firstDay = this.dateAdapter.startOfMonth(month);\n let lastDay = this.dateAdapter.endOfMonth(month);\n\n // find the first and last day of visible in the grid.\n firstDay = this.dateAdapter.subtract(firstDay, {\n days: this.dateAdapter.getDay(firstDay),\n });\n lastDay = this.dateAdapter.add(lastDay, {\n days: 6 - this.dateAdapter.getDay(lastDay),\n });\n\n // collect all the days to display.\n while (firstDay <= lastDay) {\n days.push(firstDay);\n firstDay = this.dateAdapter.add(firstDay, { days: 1 });\n }\n\n return days;\n });\n\n // get the weeks to display.\n protected readonly weeks = computed(() => {\n const days = this.days();\n const weeks = [];\n\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return weeks;\n });\n\n /**\n * Store the embedded view refs of each rendered row.\n */\n private readonly viewRefs: EmbeddedViewRef<void>[] = [];\n\n constructor() {\n // re-render the rows when the month changes.\n onChange(this.state().focusedDate, (date, previousDate) => {\n if (!date || !previousDate || !this.dateAdapter.isSameMonth(date, previousDate)) {\n this.renderRows();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyRows();\n }\n\n /**\n * Render the row.\n */\n private renderRows(): void {\n const weeks = this.weeks();\n\n // clear the view container.\n this.destroyRows();\n\n // render the weeks.\n for (const week of weeks) {\n const viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, null, {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerWeekToken, useValue: week }],\n }),\n });\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the row.\n */\n private destroyRows(): void {\n for (const viewRef of this.viewRefs) {\n viewRef.destroy();\n }\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n contentChild,\n Directive,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport type { NgpDatePickerDateButton } from '../date-picker-date-button/date-picker-date-button';\nimport { NgpDatePickerLabelToken } from '../date-picker-label/date-picker-label-token';\nimport { datePickerState, provideDatePickerState } from './date-picker-state';\nimport { provideDatePicker } from './date-picker-token';\n\n/**\n * The outermost container for the date picker.\n */\n@Directive({\n selector: '[ngpDatePicker]',\n exportAs: 'ngpDatePicker',\n providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePicker<T> {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * The minimum date that can be selected.\n */\n readonly min = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMin',\n });\n\n /**\n * The maximum date that can be selected.\n */\n readonly max = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMax',\n });\n\n /**\n * Determine if the date picker is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpDatePickerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * A function that is called to determine if a specific date should be disabled.\n */\n readonly dateDisabled = input<(date: T) => boolean>(() => false, {\n alias: 'ngpDatePickerDateDisabled',\n });\n\n /**\n * The selected value.\n */\n readonly date = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerDate',\n });\n\n /**\n * Emit when the date changes.\n */\n readonly dateChange = output<T | undefined>({\n alias: 'ngpDatePickerDateChange',\n });\n\n /**\n * The focused value.\n */\n readonly focusedDate = input<T>(this.dateAdapter.now(), {\n alias: 'ngpDatePickerFocusedDate',\n });\n\n /**\n * Emit when the focused date changes.\n */\n readonly focusedDateChange = output<T>({\n alias: 'ngpDatePickerFocusedDateChange',\n });\n\n /**\n * Detect the label element.\n * @internal\n */\n readonly label = contentChild(NgpDatePickerLabelToken, { descendants: true });\n\n /**\n * Access all the date picker buttons\n */\n private readonly buttons = signal<NgpDatePickerDateButton<T>[]>([]);\n\n /**\n * The date picker state.\n */\n protected readonly state = datePickerState<NgpDatePicker<T>>(this);\n\n /**\n * Set the focused date.\n * @param date The date to focus.\n * @internal\n */\n setFocusedDate(date: T, origin: FocusOrigin = 'mouse', direction: 'forward' | 'backward'): void {\n if (this.state.disabled()) {\n return;\n }\n\n const min = this.state.min();\n const max = this.state.max();\n\n if (min && this.dateAdapter.isBefore(date, min)) {\n date = min;\n }\n\n if (max && this.dateAdapter.isAfter(date, max)) {\n date = max;\n }\n\n // if the date is disabled, find the next available date in the specified direction.\n if (this.state.dateDisabled()(date)) {\n let nextDate = this.dateAdapter.add(date, { days: direction === 'forward' ? 1 : -1 });\n\n while (\n this.state.dateDisabled()(nextDate) ||\n (min && this.dateAdapter.isBefore(nextDate, min)) ||\n (max && this.dateAdapter.isAfter(nextDate, max))\n ) {\n nextDate = this.dateAdapter.add(nextDate, { days: direction === 'forward' ? 1 : -1 });\n }\n\n date = nextDate;\n }\n\n this.state.focusedDate.set(date);\n this.focusedDateChange.emit(date);\n\n if (origin === 'keyboard') {\n afterNextRender(\n {\n write: () => this.buttons().forEach(button => button.focus()),\n },\n {\n injector: this.injector,\n },\n );\n }\n }\n\n /**\n * Register a date button.\n * @param button The date button to register.\n * @internal\n */\n registerButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => [...buttons, button]);\n }\n\n /**\n * Unregister a date button.\n * @param button The date button to unregister.\n * @internal\n */\n unregisterButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => buttons.filter(b => b !== button));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, input, Directive, booleanAttribute, HostListener, ApplicationRef, ViewContainerRef, isDevMode, TemplateRef, Injector, Injectable, ElementRef, signal } from '@angular/core';
2
+ import { InjectionToken, inject, input, Directive, booleanAttribute, HostListener, ApplicationRef, ViewContainerRef, isDevMode, TemplateRef, Injector, Injectable, signal } from '@angular/core';
3
3
  import { uniqueId, onChange } from 'ng-primitives/utils';
4
4
  import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
5
5
  import * as i1 from 'ng-primitives/internal';
@@ -76,10 +76,10 @@ class NgpDialogDescription {
76
76
  ngOnDestroy() {
77
77
  this.dialog().removeDescribedBy(this.id());
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDialogDescription, isStandalone: true, selector: "[ngpDialogDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogDescription"], ngImport: i0 }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDialogDescription, isStandalone: true, selector: "[ngpDialogDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogDescription"], ngImport: i0 }); }
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogDescription, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogDescription, decorators: [{
83
83
  type: Directive,
84
84
  args: [{
85
85
  selector: '[ngpDialogDescription]',
@@ -163,10 +163,10 @@ class NgpDialogOverlay {
163
163
  this.dialogRef.close();
164
164
  }
165
165
  }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
167
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDialogOverlay, isStandalone: true, selector: "[ngpDialogOverlay]", inputs: { closeOnClick: { classPropertyName: "closeOnClick", publicName: "ngpDialogOverlayCloseOnClick", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "close()" } }, exportAs: ["ngpDialogOverlay"], hostDirectives: [{ directive: i1.NgpExitAnimation }], ngImport: i0 }); }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
167
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDialogOverlay, isStandalone: true, selector: "[ngpDialogOverlay]", inputs: { closeOnClick: { classPropertyName: "closeOnClick", publicName: "ngpDialogOverlayCloseOnClick", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "close()" } }, exportAs: ["ngpDialogOverlay"], hostDirectives: [{ directive: i1.NgpExitAnimation }], ngImport: i0 }); }
168
168
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogOverlay, decorators: [{
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogOverlay, decorators: [{
170
170
  type: Directive,
171
171
  args: [{
172
172
  selector: '[ngpDialogOverlay]',
@@ -196,10 +196,10 @@ class NgpDialogTitle {
196
196
  ngOnDestroy() {
197
197
  this.dialog().removeLabelledBy(this.id());
198
198
  }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
200
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDialogTitle, isStandalone: true, selector: "[ngpDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogTitle"], ngImport: i0 }); }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDialogTitle, isStandalone: true, selector: "[ngpDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogTitle"], ngImport: i0 }); }
201
201
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogTitle, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogTitle, decorators: [{
203
203
  type: Directive,
204
204
  args: [{
205
205
  selector: '[ngpDialogTitle]',
@@ -401,10 +401,10 @@ class NgpDialogManager {
401
401
  const parent = this.parentDialogManager;
402
402
  return parent ? parent.getAfterAllClosed() : this.afterAllClosedAtThisLevel;
403
403
  }
404
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
405
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogManager, providedIn: 'root' }); }
404
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
405
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogManager, providedIn: 'root' }); }
406
406
  }
407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogManager, decorators: [{
407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogManager, decorators: [{
408
408
  type: Injectable,
409
409
  args: [{
410
410
  providedIn: 'root',
@@ -428,10 +428,6 @@ class NgpDialogTrigger {
428
428
  constructor() {
429
429
  /** Access the dialog manager. */
430
430
  this.dialogManager = inject(NgpDialogManager);
431
- /** Access the focus monitor. */
432
- this.focusMonitor = inject(FocusMonitor);
433
- /** Access the element ref. */
434
- this.elementRef = inject(ElementRef);
435
431
  /** The template to launch. */
436
432
  this.template = input.required({
437
433
  alias: 'ngpDialogTrigger',
@@ -446,10 +442,10 @@ class NgpDialogTrigger {
446
442
  this.dialogRef = this.dialogManager.open(this.template());
447
443
  this.dialogRef.closed.subscribe(() => (this.dialogRef = null));
448
444
  }
449
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
450
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, exportAs: ["ngpDialogTrigger"], ngImport: i0 }); }
445
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
446
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, exportAs: ["ngpDialogTrigger"], ngImport: i0 }); }
451
447
  }
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialogTrigger, decorators: [{
448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialogTrigger, decorators: [{
453
449
  type: Directive,
454
450
  args: [{
455
451
  selector: '[ngpDialogTrigger]',
@@ -510,10 +506,10 @@ class NgpDialog {
510
506
  removeDescribedBy(id) {
511
507
  this.describedBy.update(ids => ids.filter(i => i !== id));
512
508
  }
513
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialog, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
514
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: NgpDialog, isStandalone: true, selector: "[ngpDialog]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "ngpDialogRole", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "ngpDialogModal", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "onClick($event)" }, properties: { "id": "state.id()", "attr.role": "state.role()", "attr.aria-modal": "state.modal()", "attr.aria-labelledby": "labelledBy().join(\" \")", "attr.aria-describedby": "describedBy().join(\" \")" } }, providers: [provideDialogState()], exportAs: ["ngpDialog"], hostDirectives: [{ directive: i1$1.NgpFocusTrap }, { directive: i1.NgpExitAnimation }], ngImport: i0 }); }
509
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialog, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
510
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: NgpDialog, isStandalone: true, selector: "[ngpDialog]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "ngpDialogRole", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "ngpDialogModal", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "onClick($event)" }, properties: { "id": "state.id()", "attr.role": "state.role()", "attr.aria-modal": "state.modal()", "attr.aria-labelledby": "labelledBy().join(\" \")", "attr.aria-describedby": "describedBy().join(\" \")" } }, providers: [provideDialogState()], exportAs: ["ngpDialog"], hostDirectives: [{ directive: i1$1.NgpFocusTrap }, { directive: i1.NgpExitAnimation }], ngImport: i0 }); }
515
511
  }
516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: NgpDialog, decorators: [{
512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: NgpDialog, decorators: [{
517
513
  type: Directive,
518
514
  args: [{
519
515
  selector: '[ngpDialog]',