@ngstarter-ui/components 21.0.24 → 21.0.25

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/ai/component-registry.json +13 -4
  2. package/fesm2022/ngstarter-ui-components-avatar.mjs +3 -3
  3. package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -1
  4. package/fesm2022/ngstarter-ui-components-badge.mjs +1 -2
  5. package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -1
  6. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +0 -2
  7. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -1
  8. package/fesm2022/ngstarter-ui-components-button-toggle.mjs +1 -1
  9. package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -1
  10. package/fesm2022/ngstarter-ui-components-button.mjs +2 -2
  11. package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -1
  12. package/fesm2022/ngstarter-ui-components-calendar.mjs +1 -1
  13. package/fesm2022/ngstarter-ui-components-calendar.mjs.map +1 -1
  14. package/fesm2022/ngstarter-ui-components-card-overlay.mjs +0 -1
  15. package/fesm2022/ngstarter-ui-components-card-overlay.mjs.map +1 -1
  16. package/fesm2022/ngstarter-ui-components-card.mjs +7 -12
  17. package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -1
  18. package/fesm2022/ngstarter-ui-components-carousel.mjs +0 -3
  19. package/fesm2022/ngstarter-ui-components-carousel.mjs.map +1 -1
  20. package/fesm2022/ngstarter-ui-components-chips.mjs +13 -16
  21. package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
  22. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +4 -1
  23. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -1
  24. package/fesm2022/ngstarter-ui-components-command-bar.mjs +2 -2
  25. package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -1
  26. package/fesm2022/ngstarter-ui-components-comment-editor.mjs +4 -16
  27. package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
  28. package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Czb0bvcr.mjs → ngstarter-ui-components-content-editor-code-block.component-CKrOhA7h.mjs} +2 -2
  29. package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Czb0bvcr.mjs.map → ngstarter-ui-components-content-editor-code-block.component-CKrOhA7h.mjs.map} +1 -1
  30. package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-c8Pq0Jdq.mjs → ngstarter-ui-components-content-editor-embed-block-zSApBzF3.mjs} +2 -2
  31. package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-c8Pq0Jdq.mjs.map → ngstarter-ui-components-content-editor-embed-block-zSApBzF3.mjs.map} +1 -1
  32. package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-CT5g3MLZ.mjs → ngstarter-ui-components-content-editor-heading-block.component-Dv8d0nCy.mjs} +2 -2
  33. package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-CT5g3MLZ.mjs.map → ngstarter-ui-components-content-editor-heading-block.component-Dv8d0nCy.mjs.map} +1 -1
  34. package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-Cp_Yo7zI.mjs → ngstarter-ui-components-content-editor-image-block.component-g-H7a5Z_.mjs} +2 -2
  35. package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-Cp_Yo7zI.mjs.map → ngstarter-ui-components-content-editor-image-block.component-g-H7a5Z_.mjs.map} +1 -1
  36. package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-BvineUWy.mjs → ngstarter-ui-components-content-editor-list-block.component-PgqisgxY.mjs} +2 -2
  37. package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-BvineUWy.mjs.map → ngstarter-ui-components-content-editor-list-block.component-PgqisgxY.mjs.map} +1 -1
  38. package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-4_TqxgpH.mjs → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-BuMm25ea.mjs} +12 -13
  39. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-BuMm25ea.mjs.map +1 -0
  40. package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-sH44U1I8.mjs → ngstarter-ui-components-content-editor-paragraph-block.component-DS_6CzuA.mjs} +2 -2
  41. package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-sH44U1I8.mjs.map → ngstarter-ui-components-content-editor-paragraph-block.component-DS_6CzuA.mjs.map} +1 -1
  42. package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-CA3KoZ-u.mjs → ngstarter-ui-components-content-editor-quote-block.component-Df92Nqvp.mjs} +2 -2
  43. package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-CA3KoZ-u.mjs.map → ngstarter-ui-components-content-editor-quote-block.component-Df92Nqvp.mjs.map} +1 -1
  44. package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-GTZiYUjU.mjs → ngstarter-ui-components-content-editor-table-block.component-D4rdPkGz.mjs} +2 -2
  45. package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-GTZiYUjU.mjs.map → ngstarter-ui-components-content-editor-table-block.component-D4rdPkGz.mjs.map} +1 -1
  46. package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-CzMZ1s6C.mjs → ngstarter-ui-components-content-editor-video-block.component-DqS9Lhp_.mjs} +2 -2
  47. package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-CzMZ1s6C.mjs.map → ngstarter-ui-components-content-editor-video-block.component-DqS9Lhp_.mjs.map} +1 -1
  48. package/fesm2022/ngstarter-ui-components-content-editor.mjs +1 -1
  49. package/fesm2022/ngstarter-ui-components-core.mjs +0 -9
  50. package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -1
  51. package/fesm2022/ngstarter-ui-components-country-select.mjs +11 -11
  52. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
  53. package/fesm2022/ngstarter-ui-components-data-view.mjs +0 -3
  54. package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -1
  55. package/fesm2022/ngstarter-ui-components-datepicker.mjs +21 -17
  56. package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
  57. package/fesm2022/ngstarter-ui-components-dialog.mjs +0 -1
  58. package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -1
  59. package/fesm2022/ngstarter-ui-components-empty-state.mjs +6 -6
  60. package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
  61. package/fesm2022/ngstarter-ui-components-expansion.mjs +6 -6
  62. package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -1
  63. package/fesm2022/ngstarter-ui-components-filter-builder.mjs +0 -3
  64. package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -1
  65. package/fesm2022/ngstarter-ui-components-form-field.mjs +4 -4
  66. package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -1
  67. package/fesm2022/{ngstarter-ui-components-form-renderer-autocomplete-many-field-BLhfO1zC.mjs → ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs} +2 -2
  68. package/fesm2022/{ngstarter-ui-components-form-renderer-autocomplete-many-field-BLhfO1zC.mjs.map → ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs.map} +1 -1
  69. package/fesm2022/{ngstarter-ui-components-form-renderer-datepicker-field-DRSVe0gK.mjs → ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs} +2 -2
  70. package/fesm2022/{ngstarter-ui-components-form-renderer-datepicker-field-DRSVe0gK.mjs.map → ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs.map} +1 -1
  71. package/fesm2022/{ngstarter-ui-components-form-renderer-input-field-DpGLKZjz.mjs → ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs} +2 -2
  72. package/fesm2022/{ngstarter-ui-components-form-renderer-input-field-DpGLKZjz.mjs.map → ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs.map} +1 -1
  73. package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs → ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs} +2 -2
  74. package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs.map} +1 -1
  75. package/fesm2022/{ngstarter-ui-components-form-renderer-select-field-CCbpYyZo.mjs → ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs} +2 -2
  76. package/fesm2022/{ngstarter-ui-components-form-renderer-select-field-CCbpYyZo.mjs.map → ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs.map} +1 -1
  77. package/fesm2022/{ngstarter-ui-components-form-renderer-textarea-field-D89GlMDO.mjs → ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs} +2 -2
  78. package/fesm2022/{ngstarter-ui-components-form-renderer-textarea-field-D89GlMDO.mjs.map → ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs.map} +1 -1
  79. package/fesm2022/{ngstarter-ui-components-form-renderer-timezone-field-C9wz7zPg.mjs → ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs} +2 -2
  80. package/fesm2022/{ngstarter-ui-components-form-renderer-timezone-field-C9wz7zPg.mjs.map → ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs.map} +1 -1
  81. package/fesm2022/ngstarter-ui-components-form-renderer.mjs +9 -9
  82. package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +1 -1
  83. package/fesm2022/ngstarter-ui-components-guided-tour.mjs +4 -5
  84. package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -1
  85. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs +2 -2
  86. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs.map +1 -1
  87. package/fesm2022/ngstarter-ui-components-icon.mjs +1 -1
  88. package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -1
  89. package/fesm2022/ngstarter-ui-components-image-designer.mjs +1 -1
  90. package/fesm2022/ngstarter-ui-components-image-designer.mjs.map +1 -1
  91. package/fesm2022/ngstarter-ui-components-marquee.mjs +78 -8
  92. package/fesm2022/ngstarter-ui-components-marquee.mjs.map +1 -1
  93. package/fesm2022/ngstarter-ui-components-notifications.mjs +4 -5
  94. package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
  95. package/package.json +1 -1
  96. package/types/ngstarter-ui-components-card.d.ts +1 -1
  97. package/types/ngstarter-ui-components-chips.d.ts +2 -2
  98. package/types/ngstarter-ui-components-datepicker.d.ts +6 -6
  99. package/types/ngstarter-ui-components-expansion.d.ts +2 -2
  100. package/types/ngstarter-ui-components-form-field.d.ts +2 -2
  101. package/types/ngstarter-ui-components-guided-tour.d.ts +1 -1
  102. package/types/ngstarter-ui-components-marquee.d.ts +19 -11
  103. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-4_TqxgpH.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-datepicker.mjs","sources":["../../../projects/components/datepicker/src/core/datetime/date-adapter.ts","../../../projects/components/datepicker/src/datepicker-intl.ts","../../../projects/components/datepicker/src/core/datetime/date-range.ts","../../../projects/components/datepicker/src/calendar/month-view/month-view.ts","../../../projects/components/datepicker/src/calendar/month-view/month-view.html","../../../projects/components/datepicker/src/calendar/year-view/year-view.ts","../../../projects/components/datepicker/src/calendar/year-view/year-view.html","../../../projects/components/datepicker/src/calendar/multi-year-view/multi-year-view.ts","../../../projects/components/datepicker/src/calendar/multi-year-view/multi-year-view.html","../../../projects/components/datepicker/src/calendar/calendar/calendar.ts","../../../projects/components/datepicker/src/calendar/calendar/calendar.html","../../../projects/components/datepicker/src/datepicker/datepicker-actions.ts","../../../projects/components/datepicker/src/datepicker/datepicker.ts","../../../projects/components/datepicker/src/datepicker/datepicker.html","../../../projects/components/datepicker/src/datepicker/datepicker-directives.ts","../../../projects/components/datepicker/src/date-range-picker/date-range-picker.ts","../../../projects/components/datepicker/src/date-range-picker/date-range-picker.html","../../../projects/components/datepicker/src/datepicker-input/datepicker-input.ts","../../../projects/components/datepicker/src/datepicker-input/date-range-input/date-range-input.ts","../../../projects/components/datepicker/src/datepicker-input/date-range-input/date-range-input.html","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle-icon.ts","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle.ts","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle.html","../../../projects/components/datepicker/src/core/datetime/native-date-adapter.ts","../../../projects/components/datepicker/src/core/datetime/index.ts","../../../projects/components/datepicker/ngstarter-ui-components-datepicker.ts"],"sourcesContent":["import { Signal, computed, inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** Injection token for the DateAdapter's locale. */\nexport const MAT_DATE_LOCALE = new InjectionToken<string>('MAT_DATE_LOCALE');\n\n/** Injection token for the DateAdapter's formats. */\nexport const MAT_DATE_FORMATS = new InjectionToken<any>('MAT_DATE_FORMATS');\n\nexport abstract class DateAdapter<D> {\n protected _localeChanges = new Subject<void>();\n readonly localeChanges: Subject<void> = this._localeChanges;\n\n abstract getYear(date: D): number;\n abstract getMonth(date: D): number;\n abstract getDate(date: D): number;\n abstract getDayOfWeek(date: D): number;\n abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];\n abstract getDateNames(): string[];\n abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];\n abstract getYearName(date: D): string;\n abstract getFirstDayOfWeek(): number;\n abstract getNumDaysInMonth(date: D): number;\n abstract clone(date: D): D;\n abstract createDate(year: number, month: number, date: number): D;\n abstract today(): D;\n abstract parse(value: any, parseFormat: any): D | null;\n abstract format(date: D, displayFormat: any): string;\n abstract addCalendarYears(date: D, years: number): D;\n abstract addCalendarMonths(date: D, months: number): D;\n abstract addCalendarDays(date: D, days: number): D;\n abstract toIso8601(date: D): string;\n abstract isDateInstance(obj: any): obj is D;\n abstract isValid(date: D): boolean;\n abstract invalid(): D;\n\n setLocale(locale: string) {\n this.locale = locale;\n this._localeChanges.next();\n }\n\n protected locale: string = inject(LOCALE_ID);\n\n compareDate(first: D, second: D): number {\n return (\n this.getYear(first) - this.getYear(second) ||\n this.getMonth(first) - this.getMonth(second) ||\n this.getDate(first) - this.getDate(second)\n );\n }\n\n sameDate(first: D | null, second: D | null): boolean {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDate(first, second);\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n clampDate(date: D, min?: D | null, max?: D | null): D {\n if (min && this.compareDate(date, min) < 0) {\n return min;\n }\n if (max && this.compareDate(date, max) > 0) {\n return max;\n }\n return date;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class DatepickerIntl {\n readonly changes: Subject<void> = new Subject<void>();\n\n calendarLabel = 'Calendar';\n openCalendarLabel = 'Open calendar';\n prevMonthLabel = 'Previous month';\n nextMonthLabel = 'Next month';\n prevYearLabel = 'Previous year';\n nextYearLabel = 'Next year';\n prevMultiYearLabel = 'Previous 24 years';\n nextMultiYearLabel = 'Next 24 years';\n switchToMonthViewLabel = 'Choose date';\n switchToMultiYearViewLabel = 'Choose month and year';\n}\n","export class DateRange<D> {\n constructor(\n /** The start date of the range. */\n readonly start: D | null,\n /** The end date of the range. */\n readonly end: D | null\n ) {}\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n signal,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { DateRange } from '../../core/datetime/date-range';\n\n@Component({\n selector: 'ngs-month-view',\n templateUrl: './month-view.html',\n styleUrl: './month-view.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-month-view',\n '(mouseleave)': 'handleHover(null)'\n },\n})\nexport class MonthView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | DateRange<D> | null>(null);\n readonly minDate = input<D | null>(null);\n readonly maxDate = input<D | null>(null);\n readonly rangePreviewDate = input<D | null>(null);\n readonly sharedRangePreview = input<boolean>(false);\n\n readonly selectedChange = output<D>();\n readonly rangePreviewDateChange = output<D | null>();\n\n readonly _hoveredDate = signal<D | null>(null);\n readonly hoveredDate = this._hoveredDate;\n\n readonly weekdays = computed(() => {\n return this._dateAdapter.getDayOfWeekNames('short');\n });\n\n readonly weeks = computed(() => {\n const activeDate = this.activeDate();\n const hoveredDate = this.sharedRangePreview()\n ? this.rangePreviewDate()\n : this._hoveredDate();\n const firstDayOfMonth = this._dateAdapter.createDate(\n this._dateAdapter.getYear(activeDate),\n this._dateAdapter.getMonth(activeDate),\n 1\n );\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(activeDate);\n const firstDayOfWeek = this._dateAdapter.getDayOfWeek(firstDayOfMonth);\n\n const weeks: {\n date: D | null;\n label: string;\n selected: boolean;\n current: boolean;\n inRange: boolean;\n rangeStart: boolean;\n rangeEnd: boolean;\n }[][] = [];\n let currentWeek: any[] = [];\n\n // Offset for the first week\n for (let i = 0; i < firstDayOfWeek; i++) {\n currentWeek.push({ date: null, label: '', selected: false, current: false, inRange: false, rangeStart: false, rangeEnd: false });\n }\n\n const today = this._dateAdapter.today();\n const selected = this.selected();\n\n for (let i = 1; i <= daysInMonth; i++) {\n const date = this._dateAdapter.createDate(\n this._dateAdapter.getYear(activeDate),\n this._dateAdapter.getMonth(activeDate),\n i\n );\n\n let isSelected = false;\n let inRange = false;\n let rangeStart = false;\n let rangeEnd = false;\n\n if (selected instanceof DateRange) {\n if (selected.start && selected.end) {\n inRange = this._dateAdapter.compareDate(date, selected.start) >= 0 &&\n this._dateAdapter.compareDate(date, selected.end) <= 0;\n rangeStart = this._dateAdapter.sameDate(date, selected.start);\n rangeEnd = this._dateAdapter.sameDate(date, selected.end);\n } else if (selected.start) {\n isSelected = this._dateAdapter.sameDate(date, selected.start);\n rangeStart = isSelected;\n\n if (hoveredDate) {\n const comparison = this._dateAdapter.compareDate(date, selected.start);\n const hoverComparison = this._dateAdapter.compareDate(date, hoveredDate);\n\n if (this._dateAdapter.compareDate(hoveredDate, selected.start) >= 0) {\n inRange = comparison >= 0 && hoverComparison <= 0;\n rangeEnd = this._dateAdapter.sameDate(date, hoveredDate);\n } else {\n inRange = comparison <= 0 && hoverComparison >= 0;\n rangeStart = this._dateAdapter.sameDate(date, hoveredDate);\n rangeEnd = isSelected;\n }\n }\n } else if (selected.end) {\n isSelected = this._dateAdapter.sameDate(date, selected.end);\n rangeEnd = isSelected;\n }\n } else {\n isSelected = this._dateAdapter.sameDate(date, selected);\n }\n\n currentWeek.push({\n date,\n label: i.toString(),\n selected: isSelected,\n current: this._dateAdapter.sameDate(date, today),\n inRange,\n rangeStart,\n rangeEnd\n });\n\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push({ date: null, label: '', selected: false, current: false, inRange: false, rangeStart: false, rangeEnd: false });\n }\n weeks.push(currentWeek);\n }\n\n return weeks;\n });\n\n selectDate(date: D | null) {\n if (date) {\n this.selectedChange.emit(date);\n }\n }\n\n handleHover(date: D | null) {\n this._hoveredDate.set(date);\n this.rangePreviewDateChange.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <thead class=\"ngs-calendar-table-header\">\n <tr>\n @for (day of weekdays(); track $index) {\n <th scope=\"col\">{{ day }}</th>\n }\n </tr>\n </thead>\n <tbody class=\"ngs-calendar-table-body\">\n @for (week of weeks(); track $index) {\n @if (week[0].date || week[6].date) {\n <tr>\n @for (day of week; track $index) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"day.selected\"\n [class.ngs-calendar-cell-today]=\"day.current\"\n [class.ngs-calendar-cell-empty]=\"!day.date\"\n [class.ngs-calendar-cell-in-range]=\"day.inRange\"\n [class.ngs-calendar-cell-range-start]=\"day.rangeStart\"\n [class.ngs-calendar-cell-range-end]=\"day.rangeEnd\"\n (click)=\"selectDate(day.date)\"\n (mouseenter)=\"handleHover(day.date)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ day.label }}\n </div>\n </td>\n }\n </tr>\n }\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\n\n@Component({\n selector: 'ngs-year-view',\n standalone: true,\n templateUrl: './year-view.html',\n styleUrl: './year-view.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-year-view',\n },\n})\nexport class YearView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | null>(null);\n\n readonly monthSelected = output<D>();\n\n readonly months = computed(() => {\n const activeDate = this.activeDate();\n const monthNames = this._dateAdapter.getMonthNames('short');\n const today = this._dateAdapter.today();\n const currentYear = this._dateAdapter.getYear(activeDate);\n const selectedYear = this.selected() ? this._dateAdapter.getYear(this.selected()!) : null;\n const selectedMonth = this.selected() ? this._dateAdapter.getMonth(this.selected()!) : null;\n const todayYear = this._dateAdapter.getYear(today);\n const todayMonth = this._dateAdapter.getMonth(today);\n\n const months: { index: number; label: string; selected: boolean; current: boolean }[][] = [];\n let currentRow: any[] = [];\n\n for (let i = 0; i < 12; i++) {\n currentRow.push({\n index: i,\n label: monthNames[i],\n selected: currentYear === selectedYear && i === selectedMonth,\n current: currentYear === todayYear && i === todayMonth,\n });\n\n if (currentRow.length === 4) {\n months.push(currentRow);\n currentRow = [];\n }\n }\n\n return months;\n });\n\n selectMonth(month: number) {\n const date = this._dateAdapter.createDate(\n this._dateAdapter.getYear(this.activeDate()),\n month,\n 1\n );\n this.monthSelected.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <tbody class=\"ngs-calendar-table-body\">\n @for (row of months(); track row) {\n <tr>\n @for (month of row; track month.index) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"month.selected\"\n [class.ngs-calendar-cell-today]=\"month.current\"\n (click)=\"selectMonth(month.index)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ month.label }}\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\n\nconst YEARS_PER_ROW = 4;\nconst YEARS_PER_PAGE = 24;\n\n@Component({\n selector: 'ngs-multi-year-view',\n standalone: true,\n templateUrl: './multi-year-view.html',\n styleUrl: './multi-year-view.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-multi-year-view',\n },\n})\nexport class MultiYearView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | null>(null);\n\n readonly yearSelected = output<D>();\n\n readonly years = computed(() => {\n const activeDate = this.activeDate();\n const today = this._dateAdapter.today();\n const currentYear = this._dateAdapter.getYear(activeDate);\n const selectedYear = this.selected() ? this._dateAdapter.getYear(this.selected()!) : null;\n const todayYear = this._dateAdapter.getYear(today);\n\n const startYear = Math.floor(currentYear / YEARS_PER_PAGE) * YEARS_PER_PAGE;\n\n const years: { value: number; label: string; selected: boolean; current: boolean }[][] = [];\n let currentRow: any[] = [];\n\n for (let i = 0; i < YEARS_PER_PAGE; i++) {\n const yearValue = startYear + i;\n const date = this._dateAdapter.createDate(yearValue, 0, 1);\n\n currentRow.push({\n value: yearValue,\n label: this._dateAdapter.getYearName(date),\n selected: yearValue === selectedYear,\n current: yearValue === todayYear,\n });\n\n if (currentRow.length === YEARS_PER_ROW) {\n years.push(currentRow);\n currentRow = [];\n }\n }\n\n return years;\n });\n\n selectYear(year: number) {\n const date = this._dateAdapter.createDate(year, 0, 1);\n this.yearSelected.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <tbody class=\"ngs-calendar-table-body\">\n @for (row of years(); track row) {\n <tr>\n @for (year of row; track year.label) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"year.selected\"\n [class.ngs-calendar-cell-today]=\"year.current\"\n (click)=\"selectYear(year.value)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ year.label }}\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n signal,\n computed,\n inject,\n Type,\n effect,\n numberAttribute,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { DatepickerIntl } from '../../datepicker-intl';\nimport { MonthView } from '../month-view/month-view';\nimport { DateRange } from '../../core/datetime/date-range';\nimport { YearView } from '../year-view/year-view';\nimport { MultiYearView } from '../multi-year-view/multi-year-view';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { NgComponentOutlet } from '@angular/common';\n\n@Component({\n selector: 'ngs-calendar',\n standalone: true,\n imports: [MonthView, YearView, MultiYearView, Button, Icon, NgComponentOutlet],\n templateUrl: './calendar.html',\n styleUrl: './calendar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'ngsCalendar',\n host: {\n 'class': 'ngs-calendar',\n '[class.ngs-calendar-multiple-months]':\n 'currentView() === \"month\" && visibleCalendars() === 2',\n },\n})\nexport class Calendar<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n private _intl = inject(DatepickerIntl);\n\n readonly startAt = input<D | null>(null);\n readonly selected = input<D | DateRange<D> | null>(null);\n readonly minDate = input<D | null>(null);\n readonly maxDate = input<D | null>(null);\n readonly headerComponent = input<Type<any> | null>(null);\n readonly visibleCalendars = input<1 | 2, unknown>(1, {\n transform: value => numberAttribute(value, 1) === 2 ? 2 : 1,\n });\n\n readonly selectedChange = output<D>();\n readonly yearSelected = output<D>();\n readonly monthSelected = output<D>();\n\n activeDate = signal<D>(this.startAt() || this._dateAdapter.today());\n readonly _rangePreviewDate = signal<D | null>(null);\n\n constructor() {\n effect(() => {\n const selected = this.selected();\n if (selected instanceof DateRange) {\n if (selected.start) {\n this.activeDate.set(selected.start);\n }\n } else if (selected) {\n this.activeDate.set(selected as D);\n }\n });\n effect(() => {\n const startAt = this.startAt();\n\n if (startAt) {\n this.activeDate.set(startAt);\n }\n });\n }\n currentView = signal<'month' | 'year' | 'multi-year'>('month');\n\n readonly _selectedDate = computed(() => {\n const selected = this.selected();\n\n if (selected instanceof DateRange) {\n return selected.start;\n }\n\n return selected;\n });\n\n readonly periodButtonText = computed(() => {\n const activeDate = this.activeDate();\n const visibleCalendars = this.visibleCalendars();\n\n if (!activeDate || !this._dateAdapter.isValid(activeDate)) {\n return '';\n }\n\n if (this.currentView() === 'month') {\n if (visibleCalendars === 2) {\n const endDate = this._dateAdapter.addCalendarMonths(activeDate, 1);\n const startLabel = this._dateAdapter.format(activeDate, { month: 'long', year: 'numeric' });\n const endLabel = this._dateAdapter.format(endDate, { month: 'long', year: 'numeric' });\n\n return `${startLabel} - ${endLabel}`;\n }\n\n return this._dateAdapter.format(activeDate, { month: 'long', year: 'numeric' });\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.getYearName(activeDate);\n }\n if (this.currentView() === 'multi-year') {\n const currentYear = this._dateAdapter.getYear(activeDate);\n const startYear = Math.floor(currentYear / 24) * 24;\n const endYear = startYear + 23;\n const startDate = this._dateAdapter.createDate(startYear, 0, 1);\n const endDate = this._dateAdapter.createDate(endYear, 0, 1);\n return `${this._dateAdapter.getYearName(startDate)} - ${this._dateAdapter.getYearName(endDate)}`;\n }\n return '';\n });\n\n readonly _monthViewActiveDates = computed(() => {\n const activeDate = this.activeDate();\n const count = this.visibleCalendars();\n\n return Array.from({ length: count }, (_, index) =>\n this._dateAdapter.addCalendarMonths(activeDate, index)\n );\n });\n\n prevPage() {\n this.activeDate.update(date => {\n if (this.currentView() === 'month') {\n return this._dateAdapter.addCalendarMonths(date, -1);\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.addCalendarYears(date, -1);\n }\n if (this.currentView() === 'multi-year') {\n return this._dateAdapter.addCalendarYears(date, -24);\n }\n return date;\n });\n }\n\n nextPage() {\n this.activeDate.update(date => {\n if (this.currentView() === 'month') {\n return this._dateAdapter.addCalendarMonths(date, 1);\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.addCalendarYears(date, 1);\n }\n if (this.currentView() === 'multi-year') {\n return this._dateAdapter.addCalendarYears(date, 24);\n }\n return date;\n });\n }\n\n toggleView() {\n this.currentView.update(view => {\n if (view === 'month') {\n return 'multi-year';\n }\n if (view === 'year') {\n return 'multi-year';\n }\n return 'month';\n });\n }\n\n _monthSelectedInYearView(date: D) {\n this.activeDate.set(date);\n this.currentView.set('month');\n this.monthSelected.emit(date);\n }\n\n _yearSelectedInMultiYearView(date: D) {\n this.activeDate.set(date);\n this.currentView.set('year');\n this.yearSelected.emit(date);\n }\n\n _trackMonth(index: number, date: D) {\n return `${this._dateAdapter.getYear(date)}-${this._dateAdapter.getMonth(date)}-${index}`;\n }\n}\n","@if (headerComponent()) {\n <ng-container *ngComponentOutlet=\"headerComponent()\" />\n} @else {\n <div class=\"ngs-calendar-header\">\n <button type=\"button\" (click)=\"toggleView()\" class=\"ngs-calendar-period-button\">\n {{ periodButtonText() }}\n </button>\n <div class=\"ngs-calendar-header-actions\">\n <button type=\"button\" ngsIconButton (click)=\"prevPage()\" class=\"ngs-calendar-previous-button\">\n <ngs-icon name=\"fluent:chevron-left-24-regular\" />\n </button>\n <button type=\"button\" ngsIconButton (click)=\"nextPage()\" class=\"ngs-calendar-next-button\">\n <ngs-icon name=\"fluent:chevron-right-24-regular\" />\n </button>\n </div>\n </div>\n}\n\n<div class=\"ngs-calendar-content\" [class.ngs-calendar-content-multiple]=\"currentView() === 'month' && visibleCalendars() === 2\">\n @if (currentView() === 'month') {\n @for (monthActiveDate of _monthViewActiveDates(); track _trackMonth($index, monthActiveDate)) {\n <ngs-month-view [activeDate]=\"monthActiveDate\"\n [selected]=\"selected()\"\n [rangePreviewDate]=\"_rangePreviewDate()\"\n [sharedRangePreview]=\"true\"\n (rangePreviewDateChange)=\"_rangePreviewDate.set($event)\"\n (selectedChange)=\"selectedChange.emit($event)\"\n />\n }\n } @else if (currentView() === 'year') {\n <ngs-year-view [activeDate]=\"activeDate()\"\n [selected]=\"_selectedDate()\"\n (monthSelected)=\"_monthSelectedInYearView($event)\"\n />\n } @else if (currentView() === 'multi-year') {\n <ngs-multi-year-view [activeDate]=\"activeDate()\"\n [selected]=\"_selectedDate()\"\n (yearSelected)=\"_yearSelectedInMultiYearView($event)\"\n />\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-datepicker-actions',\n standalone: true,\n template: `\n <div class=\"ngs-datepicker-actions\">\n <ng-content />\n </div>\n `,\n styles: `\n .ngs-datepicker-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n border-top: 1px solid var(--ngs-datepicker-divider-color, rgba(0, 0, 0, 0.12));\n }\n `\n})\nexport class DatepickerActions {}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n signal,\n inject,\n viewChild,\n TemplateRef,\n OnDestroy,\n Type,\n contentChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Calendar } from '../calendar/calendar/calendar';\nimport { DatepickerActions } from './datepicker-actions';\nimport { DatepickerPreset } from '../core/datetime/datepicker-preset';\nimport { DateRange } from '../core/datetime/date-range';\n\n@Component({\n selector: 'ngs-datepicker',\n exportAs: 'ngsDatepicker',\n imports: [\n OverlayModule,\n Calendar\n ],\n templateUrl: './datepicker.html',\n styleUrl: './datepicker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'ngs-datepicker'\n }\n})\nexport class Datepicker<D> implements OnDestroy {\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n\n readonly _portalTemplate = viewChild.required<TemplateRef<any>>('portal');\n readonly actions = contentChild(DatepickerActions);\n\n startAt = input<D | null>(null);\n calendarHeaderComponent = input<Type<any> | null>(null);\n quickPresets = input<DatepickerPreset<D>[]>([]);\n showQuickPresets = input<boolean>(false);\n\n _datepickerInput!: any;\n _selected = signal<D | null>(null);\n _isAbove = signal(false);\n\n private _overlayRef: OverlayRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n _registerInput(input: any) {\n this._datepickerInput = input;\n input._valueChange.subscribe((value: any) => this._selected.set(value));\n }\n\n open() {\n if (this._overlayRef || !this._datepickerInput) return;\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._datepickerInput.getConnectedOverlayOrigin())\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n ]);\n\n strategy.positionChanges.subscribe(change => {\n this._isAbove.set(change.connectionPair.overlayY === 'bottom');\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n this._overlayRef.backdropClick().subscribe(() => this.close());\n\n const portal = new TemplatePortal(this._portalTemplate()!, this._viewContainerRef);\n this._overlayRef.attach(portal);\n }\n\n close() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n _select(date: D) {\n this._selected.set(date);\n\n if (!this.actions()) {\n this.apply();\n }\n }\n\n _selectPreset(preset: DatepickerPreset<D>) {\n const value = preset.value;\n if (value instanceof DateRange) {\n // For single datepicker we don't expect DateRange, but if it happens, we take start\n this._selected.set(value.start as D);\n } else {\n this._selected.set(value as D);\n }\n\n if (!this.actions()) {\n this.apply();\n }\n }\n\n apply() {\n const date = this._selected();\n\n if (this._datepickerInput && date) {\n this._datepickerInput.writeValue(date);\n this._datepickerInput._onChange(date);\n }\n this.close();\n }\n}\n","<ng-template #portal>\n <div class=\"ngs-datepicker-content\" [class.ngs-datepicker-above]=\"_isAbove()\" [class.ngs-datepicker-below]=\"!_isAbove()\">\n <div class=\"ngs-datepicker-inner-container\">\n @if (showQuickPresets() && quickPresets().length > 0) {\n <div class=\"ngs-datepicker-presets\">\n @for (preset of quickPresets(); track preset.label) {\n <button type=\"button\" class=\"ngs-datepicker-preset\" (click)=\"_selectPreset(preset)\">\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <ngs-calendar\n [startAt]=\"startAt()\"\n [selected]=\"_selected()\"\n [headerComponent]=\"calendarHeaderComponent()\"\n (selectedChange)=\"_select($event)\"\n />\n </div>\n\n @if (actions()) {\n <ng-content select=\"ngs-datepicker-actions\"/>\n }\n </div>\n</ng-template>\n","import { Directive, inject, forwardRef } from '@angular/core';\nimport { Datepicker } from './datepicker';\n\n@Directive({\n selector: '[ngsDatepickerApply]',\n standalone: true,\n host: {\n '(click)': '_datepicker.apply()'\n }\n})\nexport class DatepickerApply {\n _datepicker = inject(forwardRef(() => Datepicker));\n}\n\n@Directive({\n selector: '[ngsDatepickerCancel]',\n standalone: true,\n host: {\n '(click)': '_datepicker.close()'\n }\n})\nexport class DatepickerCancel {\n _datepicker = inject(forwardRef(() => Datepicker));\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n signal,\n inject,\n viewChild,\n TemplateRef,\n OnDestroy,\n Type,\n contentChild,\n ViewContainerRef,\n computed,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Calendar } from '../calendar/calendar/calendar';\nimport { DateAdapter } from '../core/datetime/date-adapter';\nimport { DateRange } from '../core/datetime/date-range';\nimport { DatepickerActions } from '../datepicker/datepicker-actions';\nimport { DatepickerPreset } from '../core/datetime/datepicker-preset';\n\n@Component({\n selector: 'ngs-date-range-picker',\n exportAs: 'ngsDateRangePicker',\n imports: [\n OverlayModule,\n Calendar\n ],\n templateUrl: './date-range-picker.html',\n styleUrl: './date-range-picker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-date-range-picker',\n }\n})\nexport class DateRangePicker<D> implements OnDestroy {\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly startAt = input<D | null>(null);\n readonly calendarHeaderComponent = input<Type<any> | null>(null);\n readonly quickPresets = input<DatepickerPreset<D>[] | null>(null);\n readonly showQuickPresets = input<boolean>(false);\n readonly calendarCount = input<1 | 2, unknown>(1, {\n transform: value => numberAttribute(value, 1) === 2 ? 2 : 1,\n });\n readonly extended = input(false, { transform: booleanAttribute });\n readonly _portalTemplate = viewChild.required<TemplateRef<any>>('portal');\n readonly actions = contentChild(DatepickerActions);\n\n _datepickerInput!: any; // Will be DateRangeInput\n _selectedRange = signal<DateRange<D>>(new DateRange<D>(null, null));\n _isAbove = signal(false);\n\n readonly _visibleCalendars = computed(() => this.extended() ? 2 : this.calendarCount());\n\n readonly _effectivePresets = computed(() => {\n const userPresets = this.quickPresets();\n if (userPresets) {\n return userPresets;\n }\n\n const today = this._dateAdapter.today();\n return [\n {\n label: 'Today',\n value: new DateRange(today, today)\n },\n {\n label: 'Last 7 Days',\n value: new DateRange(this._dateAdapter.addCalendarDays(today, -6), today)\n },\n {\n label: 'Last 30 Days',\n value: new DateRange(this._dateAdapter.addCalendarDays(today, -29), today)\n },\n {\n label: 'This Month',\n value: () => {\n const year = this._dateAdapter.getYear(today);\n const month = this._dateAdapter.getMonth(today);\n const start = this._dateAdapter.createDate(year, month, 1);\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(start);\n const end = this._dateAdapter.createDate(year, month, daysInMonth);\n return new DateRange(start, end);\n }\n }\n ].map(p => ({\n ...p,\n value: typeof p.value === 'function' ? p.value() : p.value\n })) as DatepickerPreset<D>[];\n });\n\n private _overlayRef: OverlayRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n _registerInput(input: any) {\n this._datepickerInput = input;\n // Assuming input will provide the range\n }\n\n open() {\n if (this._overlayRef || !this._datepickerInput) return;\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._datepickerInput.getConnectedOverlayOrigin())\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n ]);\n\n strategy.positionChanges.subscribe(change => {\n this._isAbove.set(change.connectionPair.overlayY === 'bottom');\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n this._overlayRef.backdropClick().subscribe(() => this.close());\n\n const portal = new TemplatePortal(this._portalTemplate()!, this._viewContainerRef);\n this._overlayRef.attach(portal);\n }\n\n close() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n _select(date: D) {\n const currentRange = this._selectedRange();\n let newRange: DateRange<D>;\n\n if (!currentRange.start || (currentRange.start && currentRange.end)) {\n newRange = new DateRange<D>(date, null);\n } else {\n if (this._dateAdapter.compareDate(date, currentRange.start) < 0) {\n newRange = new DateRange<D>(date, currentRange.start);\n } else {\n newRange = new DateRange<D>(currentRange.start, date);\n }\n }\n\n this._updateSelectedRange(newRange);\n }\n\n _selectPreset(preset: DatepickerPreset<D>) {\n const value = preset.value;\n if (value instanceof DateRange) {\n this._updateSelectedRange(value);\n } else if (value) {\n this._updateSelectedRange(new DateRange<D>(value, null));\n } else {\n this._updateSelectedRange(new DateRange<D>(null, null));\n }\n }\n\n private _updateSelectedRange(newRange: DateRange<D>) {\n this._selectedRange.set(newRange);\n\n if (this._datepickerInput) {\n this._datepickerInput._rangeUpdated(newRange);\n }\n\n if (!this.actions()) {\n if (newRange.start && newRange.end) {\n this.close();\n }\n }\n }\n\n apply() {\n const range = this._selectedRange();\n\n if (this._datepickerInput && range.start && range.end) {\n this._datepickerInput._rangeUpdated(range);\n }\n this.close();\n }\n}\n","<ng-template #portal>\n <div class=\"ngs-datepicker-content\" [class.ngs-datepicker-above]=\"_isAbove()\" [class.ngs-datepicker-below]=\"!_isAbove()\">\n <div class=\"ngs-datepicker-inner-container\">\n @if (showQuickPresets() && _effectivePresets().length > 0) {\n <div class=\"ngs-datepicker-presets\">\n @for (preset of _effectivePresets(); track preset.label) {\n <button type=\"button\" class=\"ngs-datepicker-preset\" (click)=\"_selectPreset(preset)\">\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <ngs-calendar [startAt]=\"startAt()\"\n [selected]=\"_selectedRange()\"\n [headerComponent]=\"calendarHeaderComponent()\"\n [visibleCalendars]=\"_visibleCalendars()\"\n (selectedChange)=\"_select($event)\"\n />\n </div>\n\n @if (actions()) {\n <ng-content select=\"ngs-datepicker-actions\" />\n }\n </div>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n untracked,\n effect,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateAdapter } from '../core/datetime/date-adapter';\nimport { Subject } from 'rxjs';\nimport type { Datepicker } from '../datepicker/datepicker';\nimport { FormField } from '@ngstarter-ui/components/form-field';\n\n@Directive({\n selector: 'input[ngsDatepicker]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerInput),\n multi: true,\n },\n ],\n host: {\n 'class': 'ngs-datepicker-input',\n '(input)': '_onInput($any($event).target.value)',\n '(blur)': '_onTouched()',\n },\n})\nexport class DatepickerInput<D> implements ControlValueAccessor, OnDestroy, OnInit {\n private _elementRef = inject(ElementRef);\n private _formField = inject(FormField, { optional: true });\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly ngsDatepicker = input.required<Datepicker<D>>();\n\n _value: D | null = null;\n _onChange: (value: any) => void = () => {};\n _onTouched: () => void = () => {};\n\n readonly _valueChange = new Subject<D | null>();\n\n constructor() {\n effect(() => {\n const picker = this.ngsDatepicker();\n untracked(() => {\n if (picker) {\n picker._registerInput(this);\n }\n });\n });\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy() {\n this._valueChange.complete();\n }\n\n writeValue(value: D | null): void {\n this._value = value;\n this._formatValue(value);\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._elementRef.nativeElement.disabled = isDisabled;\n }\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._value = date;\n this._onChange(date);\n this._valueChange.next(date);\n }\n\n private _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = (value && this._dateAdapter.isDateInstance(value) && this._dateAdapter.isValid(value))\n ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' })\n : '';\n }\n\n getConnectedOverlayOrigin(): ElementRef {\n if (this._formField) {\n return this._formField.container() as ElementRef;\n }\n\n return this._elementRef;\n }\n}\n","import {\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n untracked,\n effect,\n OnDestroy,\n OnInit,\n contentChild,\n ChangeDetectionStrategy,\n forwardRef,\n signal,\n computed,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { Subject } from 'rxjs';\nimport type { DateRangePicker } from '../../date-range-picker/date-range-picker';\nimport { DateRange } from '../../core/datetime/date-range';\nimport { FormField } from '@ngstarter-ui/components/form-field';\nimport { FormFieldControl } from '@ngstarter-ui/components/form-field';\n\n@Directive({\n selector: 'input[ngsStartDate]',\n host: {\n 'class': 'ngs-date-range-input-start',\n '(input)': '_onInput($any($event).target.value)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class StartDate<D> {\n private _elementRef = inject(ElementRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n _rangeInput!: DateRangeInput<D>;\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._rangeInput._startUpdated(date);\n this._rangeInput._inputUpdated();\n }\n\n _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = value ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' }) : '';\n this._rangeInput._inputUpdated();\n }\n\n _onFocus() {\n this._rangeInput._handleFocus();\n }\n\n _onBlur() {\n this._rangeInput._handleBlur();\n }\n\n isEmpty() {\n return !this._elementRef.nativeElement.value;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n\n@Directive({\n selector: 'input[ngsEndDate]',\n host: {\n 'class': 'ngs-date-range-input-end',\n '(input)': '_onInput($any($event).target.value)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class EndDate<D> {\n private _elementRef = inject(ElementRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n _rangeInput!: DateRangeInput<D>;\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._rangeInput._endUpdated(date);\n this._rangeInput._inputUpdated();\n }\n\n _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = value ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' }) : '';\n this._rangeInput._inputUpdated();\n }\n\n _onFocus() {\n this._rangeInput._handleFocus();\n }\n\n _onBlur() {\n this._rangeInput._handleBlur();\n }\n\n isEmpty() {\n return !this._elementRef.nativeElement.value;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n\n@Component({\n selector: 'ngs-date-range-input',\n standalone: true,\n templateUrl: './date-range-input.html',\n styleUrl: './date-range-input.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-date-range-input',\n '[attr.id]': 'id',\n '[class.ngs-date-range-input-floating]': 'shouldLabelFloat',\n '(click)': 'focus()',\n },\n providers: [\n {\n provide: FormFieldControl,\n useExisting: forwardRef(() => DateRangeInput)\n }\n ]\n})\nexport class DateRangeInput<D> implements OnDestroy, OnInit, FormFieldControl<DateRange<D>> {\n private _elementRef = inject(ElementRef);\n private _formField = inject(FormField, { optional: true });\n readonly rangePicker = input.required<DateRangePicker<D>>();\n readonly separator = input<string>('–');\n readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n _startInput = contentChild(StartDate);\n _endInput = contentChild(EndDate);\n\n _value: DateRange<D> | null = null;\n\n get value() {\n return this._value;\n }\n\n private _focused = signal(false);\n get focused(): boolean {\n return this._focused();\n }\n\n private _empty = computed(() => {\n this._inputStateChanges();\n const startInput = this._startInput();\n const endInput = this._endInput();\n return (!this._value || (!this._value.start && !this._value.end)) &&\n (!startInput || startInput.isEmpty()) &&\n (!endInput || endInput.isEmpty());\n });\n get empty(): boolean {\n return this._empty();\n }\n\n private _shouldLabelFloat = computed(() => {\n return this.focused || !this.empty;\n });\n get shouldLabelFloat(): boolean {\n return this._shouldLabelFloat();\n }\n\n readonly stateChanges = new Subject<void>();\n private _inputStateChanges = signal(0);\n id = `ngs-date-range-input-${nextUniqueId++}`;\n placeholder = '';\n required = false;\n disabled = false;\n errorState = false;\n\n constructor() {\n effect(() => {\n const picker = this.rangePicker();\n untracked(() => {\n if (picker) {\n picker._registerInput(this);\n }\n });\n });\n\n effect(() => {\n const start = this._startInput();\n if (start) {\n start._rangeInput = this;\n }\n });\n\n effect(() => {\n const end = this._endInput();\n if (end) {\n end._rangeInput = this;\n }\n });\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n _startUpdated(date: D | null) {\n this._value = new DateRange<D>(date, this._value?.end || null);\n this.rangePicker()._selectedRange.set(this._value);\n this.stateChanges.next();\n }\n\n _endUpdated(date: D | null) {\n this._value = new DateRange<D>(this._value?.start || null, date);\n this.rangePicker()._selectedRange.set(this._value);\n this.stateChanges.next();\n }\n\n _rangeUpdated(range: DateRange<D>) {\n const prevStart = this._value?.start;\n this._value = range;\n this._startInput()?._formatValue(range.start);\n this._endInput()?._formatValue(range.end);\n this.stateChanges.next();\n\n if (range.start && !range.end && range.start !== prevStart) {\n this._endInput()?.focus();\n }\n }\n\n _handleFocus() {\n if (!this._focused()) {\n this._focused.set(true);\n this.stateChanges.next();\n }\n }\n\n _handleBlur() {\n // Use setTimeout to check if focus moved to another input within the same component\n setTimeout(() => {\n if (!this._elementRef.nativeElement.contains(document.activeElement)) {\n this._focused.set(false);\n this.stateChanges.next();\n }\n });\n }\n\n _inputUpdated() {\n this._inputStateChanges.update(v => v + 1);\n this.stateChanges.next();\n }\n\n getConnectedOverlayOrigin(): ElementRef {\n if (this._formField) {\n return this._formField.container() as ElementRef;\n }\n\n return this._elementRef;\n }\n\n focus(): void {\n const startInput = this._startInput();\n if (startInput && !this.focused) {\n startInput.focus();\n }\n }\n}\n\nlet nextUniqueId = 0;\n","<div class=\"ngs-date-range-input-container\">\n <div class=\"ngs-date-range-input-start-wrapper\">\n <ng-content select=\"input[ngsStartDate]\"/>\n </div>\n <span class=\"ngs-date-range-input-separator\">{{ separator() }}</span>\n <div class=\"ngs-date-range-input-end-wrapper\">\n <ng-content select=\"input[ngsEndDate]\"/>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsDatepickerToggleIcon]',\n standalone: true\n})\nexport class DatepickerToggleIcon {}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n inject,\n contentChild,\n} from '@angular/core';\nimport { DatepickerIntl } from '../datepicker-intl';\nimport { DatepickerToggleIcon } from './datepicker-toggle-icon';\nimport type { Datepicker } from '../datepicker/datepicker';\nimport type { DateRangePicker } from '../date-range-picker/date-range-picker';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { FORM_FIELD, FormField } from '@ngstarter-ui/components/form-field';\n\n@Component({\n selector: 'ngs-datepicker-toggle',\n exportAs: 'ngsDatepickerToggle',\n templateUrl: './datepicker-toggle.html',\n styleUrl: './datepicker-toggle.scss',\n imports: [\n Button\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-datepicker-toggle',\n },\n})\nexport class DatepickerToggle<D> {\n private _intl = inject(DatepickerIntl);\n private _formField = inject<FormField>(FORM_FIELD, { optional: true });\n\n readonly for = input.required<Datepicker<D> | DateRangePicker<D>>(); // Reference to the datepicker\n\n readonly customIcon = contentChild(DatepickerToggleIcon);\n\n _open(event: MouseEvent): void {\n if (this.for()) {\n this.for().open();\n event.stopPropagation();\n }\n }\n}\n","<button ngsIconButton type=\"button\" (click)=\"_open($event)\" class=\"ngs-datepicker-toggle-button\">\n @if (customIcon()) {\n <ng-content select=\"[ngsDatepickerToggleIcon]\"/>\n } @else {\n <svg viewBox=\"0 0 24 24\" class=\"size-6\">\n <path fill=\"currentColor\"\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\"></path>\n </svg>\n }\n</button>\n","import { Injectable } from '@angular/core';\nimport { DateAdapter } from './date-adapter';\n\n@Injectable()\nexport class NativeDateAdapter extends DateAdapter<Date> {\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'UTC' });\n return Array.from({ length: 12 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, i, 1)))));\n }\n\n getDateNames(): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'UTC' });\n return Array.from({ length: 31 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, 0, i + 1)))));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'UTC' });\n return Array.from({ length: 7 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, 0, i + 8)))));\n }\n\n getYearName(date: Date): string {\n const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'UTC' });\n return this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(date.getFullYear(), 0, 1))));\n }\n\n getFirstDayOfWeek(): number {\n return 0; // Sunday\n }\n\n getNumDaysInMonth(date: Date): number {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0).getDate();\n }\n\n clone(date: Date): Date {\n return new Date(date.getTime());\n }\n\n createDate(year: number, month: number, date: number): Date {\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index must be between 0 and 11.`);\n }\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date must be greater than 0.`);\n }\n const result = this._createDateWithOverflow(year, month, date);\n if (result.getMonth() !== month) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n\n today(): Date {\n return new Date();\n }\n\n parse(value: any): Date | null {\n if (typeof value === 'number') {\n return new Date(value);\n }\n\n if (value && typeof value === 'string') {\n const parts = value.split('/');\n\n if (parts.length === 3) {\n const month = parseInt(parts[0], 10) - 1;\n const day = parseInt(parts[1], 10);\n const year = parseInt(parts[2], 10);\n\n if (!isNaN(month) && !isNaN(day) && !isNaN(year)) {\n return this.createDate(year, month, day);\n }\n }\n\n return new Date(Date.parse(value));\n }\n\n return value ? new Date(Date.parse(value)) : null;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n const dtf = new Intl.DateTimeFormat(this.locale, { ...displayFormat, timeZone: 'UTC' });\n return this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))));\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n if (this.getMonth(newDate) !== (this.getMonth(date) + months) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n }\n\n toIso8601(date: Date): string {\n return [date.getUTCFullYear(), this._2digit(date.getUTCMonth() + 1), this._2digit(date.getUTCDate())].join('-');\n }\n\n isDateInstance(obj: any): obj is Date {\n return obj instanceof Date;\n }\n\n isValid(date: Date): boolean {\n return this.isDateInstance(date) && !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n private _stripDirectionMarkers(str: string): string {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n\n private _createDateWithOverflow(year: number, month: number, date: number): Date {\n const result = new Date(year, month, date);\n if (year >= 0 && year < 100) {\n result.setFullYear(year);\n }\n return result;\n }\n}\n","import { Provider } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS } from './date-adapter';\nimport { NativeDateAdapter } from './native-date-adapter';\n\nexport const MAT_NATIVE_DATE_FORMATS = {\n parse: {\n dateInput: null,\n },\n display: {\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\n monthYearLabel: { month: 'short', year: 'numeric' },\n dateA11yLabel: { month: 'long', year: 'numeric', day: 'numeric' },\n monthYearA11yLabel: { month: 'long', year: 'numeric' },\n }\n};\n\nexport function provideNativeDateAdapter(): Provider[] {\n return [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n { provide: MAT_DATE_FORMATS, useValue: MAT_NATIVE_DATE_FORMATS }\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":"ngstarter-ui-components-datepicker.mjs","sources":["../../../projects/components/datepicker/src/core/datetime/date-adapter.ts","../../../projects/components/datepicker/src/datepicker-intl.ts","../../../projects/components/datepicker/src/core/datetime/date-range.ts","../../../projects/components/datepicker/src/calendar/month-view/month-view.ts","../../../projects/components/datepicker/src/calendar/month-view/month-view.html","../../../projects/components/datepicker/src/calendar/year-view/year-view.ts","../../../projects/components/datepicker/src/calendar/year-view/year-view.html","../../../projects/components/datepicker/src/calendar/multi-year-view/multi-year-view.ts","../../../projects/components/datepicker/src/calendar/multi-year-view/multi-year-view.html","../../../projects/components/datepicker/src/calendar/calendar/calendar.ts","../../../projects/components/datepicker/src/calendar/calendar/calendar.html","../../../projects/components/datepicker/src/datepicker/datepicker-actions.ts","../../../projects/components/datepicker/src/datepicker/datepicker.ts","../../../projects/components/datepicker/src/datepicker/datepicker.html","../../../projects/components/datepicker/src/datepicker/datepicker-directives.ts","../../../projects/components/datepicker/src/date-range-picker/date-range-picker.ts","../../../projects/components/datepicker/src/date-range-picker/date-range-picker.html","../../../projects/components/datepicker/src/datepicker-input/datepicker-input.ts","../../../projects/components/datepicker/src/datepicker-input/date-range-input/date-range-input.ts","../../../projects/components/datepicker/src/datepicker-input/date-range-input/date-range-input.html","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle-icon.ts","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle.ts","../../../projects/components/datepicker/src/datepicker-toggle/datepicker-toggle.html","../../../projects/components/datepicker/src/core/datetime/native-date-adapter.ts","../../../projects/components/datepicker/src/core/datetime/index.ts","../../../projects/components/datepicker/ngstarter-ui-components-datepicker.ts"],"sourcesContent":["import { Signal, computed, inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** Injection token for the DateAdapter's locale. */\nexport const MAT_DATE_LOCALE = new InjectionToken<string>('MAT_DATE_LOCALE');\n\n/** Injection token for the DateAdapter's formats. */\nexport const MAT_DATE_FORMATS = new InjectionToken<any>('MAT_DATE_FORMATS');\n\nexport abstract class DateAdapter<D> {\n protected _localeChanges = new Subject<void>();\n readonly localeChanges: Subject<void> = this._localeChanges;\n\n abstract getYear(date: D): number;\n abstract getMonth(date: D): number;\n abstract getDate(date: D): number;\n abstract getDayOfWeek(date: D): number;\n abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];\n abstract getDateNames(): string[];\n abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];\n abstract getYearName(date: D): string;\n abstract getFirstDayOfWeek(): number;\n abstract getNumDaysInMonth(date: D): number;\n abstract clone(date: D): D;\n abstract createDate(year: number, month: number, date: number): D;\n abstract today(): D;\n abstract parse(value: any, parseFormat: any): D | null;\n abstract format(date: D, displayFormat: any): string;\n abstract addCalendarYears(date: D, years: number): D;\n abstract addCalendarMonths(date: D, months: number): D;\n abstract addCalendarDays(date: D, days: number): D;\n abstract toIso8601(date: D): string;\n abstract isDateInstance(obj: any): obj is D;\n abstract isValid(date: D): boolean;\n abstract invalid(): D;\n\n setLocale(locale: string) {\n this.locale = locale;\n this._localeChanges.next();\n }\n\n protected locale: string = inject(LOCALE_ID);\n\n compareDate(first: D, second: D): number {\n return (\n this.getYear(first) - this.getYear(second) ||\n this.getMonth(first) - this.getMonth(second) ||\n this.getDate(first) - this.getDate(second)\n );\n }\n\n sameDate(first: D | null, second: D | null): boolean {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDate(first, second);\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n clampDate(date: D, min?: D | null, max?: D | null): D {\n if (min && this.compareDate(date, min) < 0) {\n return min;\n }\n if (max && this.compareDate(date, max) > 0) {\n return max;\n }\n return date;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class DatepickerIntl {\n readonly changes: Subject<void> = new Subject<void>();\n\n calendarLabel = 'Calendar';\n openCalendarLabel = 'Open calendar';\n prevMonthLabel = 'Previous month';\n nextMonthLabel = 'Next month';\n prevYearLabel = 'Previous year';\n nextYearLabel = 'Next year';\n prevMultiYearLabel = 'Previous 24 years';\n nextMultiYearLabel = 'Next 24 years';\n switchToMonthViewLabel = 'Choose date';\n switchToMultiYearViewLabel = 'Choose month and year';\n}\n","export class DateRange<D> {\n constructor(\n /** The start date of the range. */\n readonly start: D | null,\n /** The end date of the range. */\n readonly end: D | null\n ) {}\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n signal,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { DateRange } from '../../core/datetime/date-range';\n\n@Component({\n selector: 'ngs-month-view',\n exportAs: 'ngsMonthView',\n templateUrl: './month-view.html',\n styleUrl: './month-view.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-month-view',\n '(mouseleave)': 'handleHover(null)'\n },\n})\nexport class MonthView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | DateRange<D> | null>(null);\n readonly minDate = input<D | null>(null);\n readonly maxDate = input<D | null>(null);\n readonly rangePreviewDate = input<D | null>(null);\n readonly sharedRangePreview = input<boolean>(false);\n\n readonly selectedChange = output<D>();\n readonly rangePreviewDateChange = output<D | null>();\n\n readonly _hoveredDate = signal<D | null>(null);\n readonly hoveredDate = this._hoveredDate;\n\n readonly weekdays = computed(() => {\n return this._dateAdapter.getDayOfWeekNames('short');\n });\n\n readonly weeks = computed(() => {\n const activeDate = this.activeDate();\n const hoveredDate = this.sharedRangePreview()\n ? this.rangePreviewDate()\n : this._hoveredDate();\n const firstDayOfMonth = this._dateAdapter.createDate(\n this._dateAdapter.getYear(activeDate),\n this._dateAdapter.getMonth(activeDate),\n 1\n );\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(activeDate);\n const firstDayOfWeek = this._dateAdapter.getDayOfWeek(firstDayOfMonth);\n\n const weeks: {\n date: D | null;\n label: string;\n selected: boolean;\n current: boolean;\n inRange: boolean;\n rangeStart: boolean;\n rangeEnd: boolean;\n }[][] = [];\n let currentWeek: any[] = [];\n\n // Offset for the first week\n for (let i = 0; i < firstDayOfWeek; i++) {\n currentWeek.push({ date: null, label: '', selected: false, current: false, inRange: false, rangeStart: false, rangeEnd: false });\n }\n\n const today = this._dateAdapter.today();\n const selected = this.selected();\n\n for (let i = 1; i <= daysInMonth; i++) {\n const date = this._dateAdapter.createDate(\n this._dateAdapter.getYear(activeDate),\n this._dateAdapter.getMonth(activeDate),\n i\n );\n\n let isSelected = false;\n let inRange = false;\n let rangeStart = false;\n let rangeEnd = false;\n\n if (selected instanceof DateRange) {\n if (selected.start && selected.end) {\n inRange = this._dateAdapter.compareDate(date, selected.start) >= 0 &&\n this._dateAdapter.compareDate(date, selected.end) <= 0;\n rangeStart = this._dateAdapter.sameDate(date, selected.start);\n rangeEnd = this._dateAdapter.sameDate(date, selected.end);\n } else if (selected.start) {\n isSelected = this._dateAdapter.sameDate(date, selected.start);\n rangeStart = isSelected;\n\n if (hoveredDate) {\n const comparison = this._dateAdapter.compareDate(date, selected.start);\n const hoverComparison = this._dateAdapter.compareDate(date, hoveredDate);\n\n if (this._dateAdapter.compareDate(hoveredDate, selected.start) >= 0) {\n inRange = comparison >= 0 && hoverComparison <= 0;\n rangeEnd = this._dateAdapter.sameDate(date, hoveredDate);\n } else {\n inRange = comparison <= 0 && hoverComparison >= 0;\n rangeStart = this._dateAdapter.sameDate(date, hoveredDate);\n rangeEnd = isSelected;\n }\n }\n } else if (selected.end) {\n isSelected = this._dateAdapter.sameDate(date, selected.end);\n rangeEnd = isSelected;\n }\n } else {\n isSelected = this._dateAdapter.sameDate(date, selected);\n }\n\n currentWeek.push({\n date,\n label: i.toString(),\n selected: isSelected,\n current: this._dateAdapter.sameDate(date, today),\n inRange,\n rangeStart,\n rangeEnd\n });\n\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push({ date: null, label: '', selected: false, current: false, inRange: false, rangeStart: false, rangeEnd: false });\n }\n weeks.push(currentWeek);\n }\n\n return weeks;\n });\n\n selectDate(date: D | null) {\n if (date) {\n this.selectedChange.emit(date);\n }\n }\n\n handleHover(date: D | null) {\n this._hoveredDate.set(date);\n this.rangePreviewDateChange.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <thead class=\"ngs-calendar-table-header\">\n <tr>\n @for (day of weekdays(); track $index) {\n <th scope=\"col\">{{ day }}</th>\n }\n </tr>\n </thead>\n <tbody class=\"ngs-calendar-table-body\">\n @for (week of weeks(); track $index) {\n @if (week[0].date || week[6].date) {\n <tr>\n @for (day of week; track $index) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"day.selected\"\n [class.ngs-calendar-cell-today]=\"day.current\"\n [class.ngs-calendar-cell-empty]=\"!day.date\"\n [class.ngs-calendar-cell-in-range]=\"day.inRange\"\n [class.ngs-calendar-cell-range-start]=\"day.rangeStart\"\n [class.ngs-calendar-cell-range-end]=\"day.rangeEnd\"\n (click)=\"selectDate(day.date)\"\n (mouseenter)=\"handleHover(day.date)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ day.label }}\n </div>\n </td>\n }\n </tr>\n }\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\n\n@Component({\n selector: 'ngs-year-view',\n exportAs: 'ngsYearView',\n templateUrl: './year-view.html',\n styleUrl: './year-view.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-year-view',\n },\n})\nexport class YearView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | null>(null);\n\n readonly monthSelected = output<D>();\n\n readonly months = computed(() => {\n const activeDate = this.activeDate();\n const monthNames = this._dateAdapter.getMonthNames('short');\n const today = this._dateAdapter.today();\n const currentYear = this._dateAdapter.getYear(activeDate);\n const selectedYear = this.selected() ? this._dateAdapter.getYear(this.selected()!) : null;\n const selectedMonth = this.selected() ? this._dateAdapter.getMonth(this.selected()!) : null;\n const todayYear = this._dateAdapter.getYear(today);\n const todayMonth = this._dateAdapter.getMonth(today);\n\n const months: { index: number; label: string; selected: boolean; current: boolean }[][] = [];\n let currentRow: any[] = [];\n\n for (let i = 0; i < 12; i++) {\n currentRow.push({\n index: i,\n label: monthNames[i],\n selected: currentYear === selectedYear && i === selectedMonth,\n current: currentYear === todayYear && i === todayMonth,\n });\n\n if (currentRow.length === 4) {\n months.push(currentRow);\n currentRow = [];\n }\n }\n\n return months;\n });\n\n selectMonth(month: number) {\n const date = this._dateAdapter.createDate(\n this._dateAdapter.getYear(this.activeDate()),\n month,\n 1\n );\n this.monthSelected.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <tbody class=\"ngs-calendar-table-body\">\n @for (row of months(); track row) {\n <tr>\n @for (month of row; track month.index) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"month.selected\"\n [class.ngs-calendar-cell-today]=\"month.current\"\n (click)=\"selectMonth(month.index)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ month.label }}\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n inject,\n computed,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\n\nconst YEARS_PER_ROW = 4;\nconst YEARS_PER_PAGE = 24;\n\n@Component({\n selector: 'ngs-multi-year-view',\n exportAs: 'ngsMultiYearView',\n templateUrl: './multi-year-view.html',\n styleUrl: './multi-year-view.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-multi-year-view',\n },\n})\nexport class MultiYearView<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly activeDate = input.required<D>();\n readonly selected = input<D | null>(null);\n\n readonly yearSelected = output<D>();\n\n readonly years = computed(() => {\n const activeDate = this.activeDate();\n const today = this._dateAdapter.today();\n const currentYear = this._dateAdapter.getYear(activeDate);\n const selectedYear = this.selected() ? this._dateAdapter.getYear(this.selected()!) : null;\n const todayYear = this._dateAdapter.getYear(today);\n\n const startYear = Math.floor(currentYear / YEARS_PER_PAGE) * YEARS_PER_PAGE;\n\n const years: { value: number; label: string; selected: boolean; current: boolean }[][] = [];\n let currentRow: any[] = [];\n\n for (let i = 0; i < YEARS_PER_PAGE; i++) {\n const yearValue = startYear + i;\n const date = this._dateAdapter.createDate(yearValue, 0, 1);\n\n currentRow.push({\n value: yearValue,\n label: this._dateAdapter.getYearName(date),\n selected: yearValue === selectedYear,\n current: yearValue === todayYear,\n });\n\n if (currentRow.length === YEARS_PER_ROW) {\n years.push(currentRow);\n currentRow = [];\n }\n }\n\n return years;\n });\n\n selectYear(year: number) {\n const date = this._dateAdapter.createDate(year, 0, 1);\n this.yearSelected.emit(date);\n }\n}\n","<table class=\"ngs-calendar-table\">\n <tbody class=\"ngs-calendar-table-body\">\n @for (row of years(); track row) {\n <tr>\n @for (year of row; track year.label) {\n <td\n class=\"ngs-calendar-cell\"\n [class.ngs-calendar-cell-selected]=\"year.selected\"\n [class.ngs-calendar-cell-today]=\"year.current\"\n (click)=\"selectYear(year.value)\"\n >\n <div class=\"ngs-calendar-cell-content\">\n {{ year.label }}\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n signal,\n computed,\n inject,\n Type,\n effect,\n numberAttribute,\n} from '@angular/core';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { DatepickerIntl } from '../../datepicker-intl';\nimport { MonthView } from '../month-view/month-view';\nimport { DateRange } from '../../core/datetime/date-range';\nimport { YearView } from '../year-view/year-view';\nimport { MultiYearView } from '../multi-year-view/multi-year-view';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { NgComponentOutlet } from '@angular/common';\n\n@Component({\n selector: 'ngs-calendar',\n exportAs: 'ngsCalendar',\n imports: [\n MonthView,\n YearView,\n MultiYearView,\n Button,\n Icon,\n NgComponentOutlet\n ],\n templateUrl: './calendar.html',\n styleUrl: './calendar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-calendar',\n '[class.ngs-calendar-multiple-months]':\n 'currentView() === \"month\" && visibleCalendars() === 2',\n },\n})\nexport class Calendar<D> {\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n private _intl = inject(DatepickerIntl);\n\n readonly startAt = input<D | null>(null);\n readonly selected = input<D | DateRange<D> | null>(null);\n readonly minDate = input<D | null>(null);\n readonly maxDate = input<D | null>(null);\n readonly headerComponent = input<Type<any> | null>(null);\n readonly visibleCalendars = input<1 | 2, unknown>(1, {\n transform: value => numberAttribute(value, 1) === 2 ? 2 : 1,\n });\n\n readonly selectedChange = output<D>();\n readonly yearSelected = output<D>();\n readonly monthSelected = output<D>();\n\n activeDate = signal<D>(this.startAt() || this._dateAdapter.today());\n readonly _rangePreviewDate = signal<D | null>(null);\n\n constructor() {\n effect(() => {\n const selected = this.selected();\n if (selected instanceof DateRange) {\n if (selected.start) {\n this.activeDate.set(selected.start);\n }\n } else if (selected) {\n this.activeDate.set(selected as D);\n }\n });\n effect(() => {\n const startAt = this.startAt();\n\n if (startAt) {\n this.activeDate.set(startAt);\n }\n });\n }\n currentView = signal<'month' | 'year' | 'multi-year'>('month');\n\n readonly _selectedDate = computed(() => {\n const selected = this.selected();\n\n if (selected instanceof DateRange) {\n return selected.start;\n }\n\n return selected;\n });\n\n readonly periodButtonText = computed(() => {\n const activeDate = this.activeDate();\n const visibleCalendars = this.visibleCalendars();\n\n if (!activeDate || !this._dateAdapter.isValid(activeDate)) {\n return '';\n }\n\n if (this.currentView() === 'month') {\n if (visibleCalendars === 2) {\n const endDate = this._dateAdapter.addCalendarMonths(activeDate, 1);\n const startLabel = this._dateAdapter.format(activeDate, { month: 'long', year: 'numeric' });\n const endLabel = this._dateAdapter.format(endDate, { month: 'long', year: 'numeric' });\n\n return `${startLabel} - ${endLabel}`;\n }\n\n return this._dateAdapter.format(activeDate, { month: 'long', year: 'numeric' });\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.getYearName(activeDate);\n }\n if (this.currentView() === 'multi-year') {\n const currentYear = this._dateAdapter.getYear(activeDate);\n const startYear = Math.floor(currentYear / 24) * 24;\n const endYear = startYear + 23;\n const startDate = this._dateAdapter.createDate(startYear, 0, 1);\n const endDate = this._dateAdapter.createDate(endYear, 0, 1);\n return `${this._dateAdapter.getYearName(startDate)} - ${this._dateAdapter.getYearName(endDate)}`;\n }\n return '';\n });\n\n readonly _monthViewActiveDates = computed(() => {\n const activeDate = this.activeDate();\n const count = this.visibleCalendars();\n\n return Array.from({ length: count }, (_, index) =>\n this._dateAdapter.addCalendarMonths(activeDate, index)\n );\n });\n\n prevPage() {\n this.activeDate.update(date => {\n if (this.currentView() === 'month') {\n return this._dateAdapter.addCalendarMonths(date, -1);\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.addCalendarYears(date, -1);\n }\n if (this.currentView() === 'multi-year') {\n return this._dateAdapter.addCalendarYears(date, -24);\n }\n return date;\n });\n }\n\n nextPage() {\n this.activeDate.update(date => {\n if (this.currentView() === 'month') {\n return this._dateAdapter.addCalendarMonths(date, 1);\n }\n if (this.currentView() === 'year') {\n return this._dateAdapter.addCalendarYears(date, 1);\n }\n if (this.currentView() === 'multi-year') {\n return this._dateAdapter.addCalendarYears(date, 24);\n }\n return date;\n });\n }\n\n toggleView() {\n this.currentView.update(view => {\n if (view === 'month') {\n return 'multi-year';\n }\n if (view === 'year') {\n return 'multi-year';\n }\n return 'month';\n });\n }\n\n _monthSelectedInYearView(date: D) {\n this.activeDate.set(date);\n this.currentView.set('month');\n this.monthSelected.emit(date);\n }\n\n _yearSelectedInMultiYearView(date: D) {\n this.activeDate.set(date);\n this.currentView.set('year');\n this.yearSelected.emit(date);\n }\n\n _trackMonth(index: number, date: D) {\n return `${this._dateAdapter.getYear(date)}-${this._dateAdapter.getMonth(date)}-${index}`;\n }\n}\n","@if (headerComponent()) {\n <ng-container *ngComponentOutlet=\"headerComponent()\" />\n} @else {\n <div class=\"ngs-calendar-header\">\n <button type=\"button\" (click)=\"toggleView()\" class=\"ngs-calendar-period-button\">\n {{ periodButtonText() }}\n </button>\n <div class=\"ngs-calendar-header-actions\">\n <button type=\"button\" ngsIconButton (click)=\"prevPage()\" class=\"ngs-calendar-previous-button\">\n <ngs-icon name=\"fluent:chevron-left-24-regular\" />\n </button>\n <button type=\"button\" ngsIconButton (click)=\"nextPage()\" class=\"ngs-calendar-next-button\">\n <ngs-icon name=\"fluent:chevron-right-24-regular\" />\n </button>\n </div>\n </div>\n}\n\n<div class=\"ngs-calendar-content\" [class.ngs-calendar-content-multiple]=\"currentView() === 'month' && visibleCalendars() === 2\">\n @if (currentView() === 'month') {\n @for (monthActiveDate of _monthViewActiveDates(); track _trackMonth($index, monthActiveDate)) {\n <ngs-month-view [activeDate]=\"monthActiveDate\"\n [selected]=\"selected()\"\n [rangePreviewDate]=\"_rangePreviewDate()\"\n [sharedRangePreview]=\"true\"\n (rangePreviewDateChange)=\"_rangePreviewDate.set($event)\"\n (selectedChange)=\"selectedChange.emit($event)\"\n />\n }\n } @else if (currentView() === 'year') {\n <ngs-year-view [activeDate]=\"activeDate()\"\n [selected]=\"_selectedDate()\"\n (monthSelected)=\"_monthSelectedInYearView($event)\"\n />\n } @else if (currentView() === 'multi-year') {\n <ngs-multi-year-view [activeDate]=\"activeDate()\"\n [selected]=\"_selectedDate()\"\n (yearSelected)=\"_yearSelectedInMultiYearView($event)\"\n />\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-datepicker-actions',\n exportAs: 'ngsDatepickerActions',\n template: `\n <div class=\"ngs-datepicker-actions\">\n <ng-content />\n </div>\n `,\n styles: `\n .ngs-datepicker-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n border-top: 1px solid var(--ngs-datepicker-divider-color, rgba(0, 0, 0, 0.12));\n }\n `\n})\nexport class DatepickerActions {}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n signal,\n inject,\n viewChild,\n TemplateRef,\n OnDestroy,\n Type,\n contentChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Calendar } from '../calendar/calendar/calendar';\nimport { DatepickerActions } from './datepicker-actions';\nimport { DatepickerPreset } from '../core/datetime/datepicker-preset';\nimport { DateRange } from '../core/datetime/date-range';\n\n@Component({\n selector: 'ngs-datepicker',\n exportAs: 'ngsDatepicker',\n imports: [\n OverlayModule,\n Calendar\n ],\n templateUrl: './datepicker.html',\n styleUrl: './datepicker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'ngs-datepicker'\n }\n})\nexport class Datepicker<D> implements OnDestroy {\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n\n readonly _portalTemplate = viewChild.required<TemplateRef<any>>('portal');\n readonly actions = contentChild(DatepickerActions);\n\n startAt = input<D | null>(null);\n calendarHeaderComponent = input<Type<any> | null>(null);\n quickPresets = input<DatepickerPreset<D>[]>([]);\n showQuickPresets = input<boolean>(false);\n\n _datepickerInput!: any;\n _selected = signal<D | null>(null);\n _isAbove = signal(false);\n\n private _overlayRef: OverlayRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n _registerInput(input: any) {\n this._datepickerInput = input;\n input._valueChange.subscribe((value: any) => this._selected.set(value));\n }\n\n open() {\n if (this._overlayRef || !this._datepickerInput) return;\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._datepickerInput.getConnectedOverlayOrigin())\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n ]);\n\n strategy.positionChanges.subscribe(change => {\n this._isAbove.set(change.connectionPair.overlayY === 'bottom');\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n this._overlayRef.backdropClick().subscribe(() => this.close());\n\n const portal = new TemplatePortal(this._portalTemplate()!, this._viewContainerRef);\n this._overlayRef.attach(portal);\n }\n\n close() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n _select(date: D) {\n this._selected.set(date);\n\n if (!this.actions()) {\n this.apply();\n }\n }\n\n _selectPreset(preset: DatepickerPreset<D>) {\n const value = preset.value;\n if (value instanceof DateRange) {\n // For single datepicker we don't expect DateRange, but if it happens, we take start\n this._selected.set(value.start as D);\n } else {\n this._selected.set(value as D);\n }\n\n if (!this.actions()) {\n this.apply();\n }\n }\n\n apply() {\n const date = this._selected();\n\n if (this._datepickerInput && date) {\n this._datepickerInput.writeValue(date);\n this._datepickerInput._onChange(date);\n }\n this.close();\n }\n}\n","<ng-template #portal>\n <div class=\"ngs-datepicker-content\" [class.ngs-datepicker-above]=\"_isAbove()\" [class.ngs-datepicker-below]=\"!_isAbove()\">\n <div class=\"ngs-datepicker-inner-container\">\n @if (showQuickPresets() && quickPresets().length > 0) {\n <div class=\"ngs-datepicker-presets\">\n @for (preset of quickPresets(); track preset.label) {\n <button type=\"button\" class=\"ngs-datepicker-preset\" (click)=\"_selectPreset(preset)\">\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <ngs-calendar\n [startAt]=\"startAt()\"\n [selected]=\"_selected()\"\n [headerComponent]=\"calendarHeaderComponent()\"\n (selectedChange)=\"_select($event)\"\n />\n </div>\n\n @if (actions()) {\n <ng-content select=\"ngs-datepicker-actions\"/>\n }\n </div>\n</ng-template>\n","import { Directive, inject, forwardRef } from '@angular/core';\nimport { Datepicker } from './datepicker';\n\n@Directive({\n selector: '[ngsDatepickerApply]',\n host: {\n '(click)': '_datepicker.apply()'\n }\n})\nexport class DatepickerApply {\n _datepicker = inject(forwardRef(() => Datepicker));\n}\n\n@Directive({\n selector: '[ngsDatepickerCancel]',\n host: {\n '(click)': '_datepicker.close()'\n }\n})\nexport class DatepickerCancel {\n _datepicker = inject(forwardRef(() => Datepicker));\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n signal,\n inject,\n viewChild,\n TemplateRef,\n OnDestroy,\n Type,\n contentChild,\n ViewContainerRef,\n computed,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core';\nimport { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Calendar } from '../calendar/calendar/calendar';\nimport { DateAdapter } from '../core/datetime/date-adapter';\nimport { DateRange } from '../core/datetime/date-range';\nimport { DatepickerActions } from '../datepicker/datepicker-actions';\nimport { DatepickerPreset } from '../core/datetime/datepicker-preset';\n\n@Component({\n selector: 'ngs-date-range-picker',\n exportAs: 'ngsDateRangePicker',\n imports: [\n OverlayModule,\n Calendar\n ],\n templateUrl: './date-range-picker.html',\n styleUrl: './date-range-picker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-date-range-picker',\n }\n})\nexport class DateRangePicker<D> implements OnDestroy {\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly startAt = input<D | null>(null);\n readonly calendarHeaderComponent = input<Type<any> | null>(null);\n readonly quickPresets = input<DatepickerPreset<D>[] | null>(null);\n readonly showQuickPresets = input<boolean>(false);\n readonly calendarCount = input<1 | 2, unknown>(1, {\n transform: value => numberAttribute(value, 1) === 2 ? 2 : 1,\n });\n readonly extended = input(false, { transform: booleanAttribute });\n readonly _portalTemplate = viewChild.required<TemplateRef<any>>('portal');\n readonly actions = contentChild(DatepickerActions);\n\n _datepickerInput!: any; // Will be DateRangeInput\n _selectedRange = signal<DateRange<D>>(new DateRange<D>(null, null));\n _isAbove = signal(false);\n\n readonly _visibleCalendars = computed(() => this.extended() ? 2 : this.calendarCount());\n\n readonly _effectivePresets = computed(() => {\n const userPresets = this.quickPresets();\n if (userPresets) {\n return userPresets;\n }\n\n const today = this._dateAdapter.today();\n return [\n {\n label: 'Today',\n value: new DateRange(today, today)\n },\n {\n label: 'Last 7 Days',\n value: new DateRange(this._dateAdapter.addCalendarDays(today, -6), today)\n },\n {\n label: 'Last 30 Days',\n value: new DateRange(this._dateAdapter.addCalendarDays(today, -29), today)\n },\n {\n label: 'This Month',\n value: () => {\n const year = this._dateAdapter.getYear(today);\n const month = this._dateAdapter.getMonth(today);\n const start = this._dateAdapter.createDate(year, month, 1);\n const daysInMonth = this._dateAdapter.getNumDaysInMonth(start);\n const end = this._dateAdapter.createDate(year, month, daysInMonth);\n return new DateRange(start, end);\n }\n }\n ].map(p => ({\n ...p,\n value: typeof p.value === 'function' ? p.value() : p.value\n })) as DatepickerPreset<D>[];\n });\n\n private _overlayRef: OverlayRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n _registerInput(input: any) {\n this._datepickerInput = input;\n // Assuming input will provide the range\n }\n\n open() {\n if (this._overlayRef || !this._datepickerInput) return;\n\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._datepickerInput.getConnectedOverlayOrigin())\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n ]);\n\n strategy.positionChanges.subscribe(change => {\n this._isAbove.set(change.connectionPair.overlayY === 'bottom');\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n this._overlayRef.backdropClick().subscribe(() => this.close());\n\n const portal = new TemplatePortal(this._portalTemplate()!, this._viewContainerRef);\n this._overlayRef.attach(portal);\n }\n\n close() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n _select(date: D) {\n const currentRange = this._selectedRange();\n let newRange: DateRange<D>;\n\n if (!currentRange.start || (currentRange.start && currentRange.end)) {\n newRange = new DateRange<D>(date, null);\n } else {\n if (this._dateAdapter.compareDate(date, currentRange.start) < 0) {\n newRange = new DateRange<D>(date, currentRange.start);\n } else {\n newRange = new DateRange<D>(currentRange.start, date);\n }\n }\n\n this._updateSelectedRange(newRange);\n }\n\n _selectPreset(preset: DatepickerPreset<D>) {\n const value = preset.value;\n if (value instanceof DateRange) {\n this._updateSelectedRange(value);\n } else if (value) {\n this._updateSelectedRange(new DateRange<D>(value, null));\n } else {\n this._updateSelectedRange(new DateRange<D>(null, null));\n }\n }\n\n private _updateSelectedRange(newRange: DateRange<D>) {\n this._selectedRange.set(newRange);\n\n if (this._datepickerInput) {\n this._datepickerInput._rangeUpdated(newRange);\n }\n\n if (!this.actions()) {\n if (newRange.start && newRange.end) {\n this.close();\n }\n }\n }\n\n apply() {\n const range = this._selectedRange();\n\n if (this._datepickerInput && range.start && range.end) {\n this._datepickerInput._rangeUpdated(range);\n }\n this.close();\n }\n}\n","<ng-template #portal>\n <div class=\"ngs-datepicker-content\" [class.ngs-datepicker-above]=\"_isAbove()\" [class.ngs-datepicker-below]=\"!_isAbove()\">\n <div class=\"ngs-datepicker-inner-container\">\n @if (showQuickPresets() && _effectivePresets().length > 0) {\n <div class=\"ngs-datepicker-presets\">\n @for (preset of _effectivePresets(); track preset.label) {\n <button type=\"button\" class=\"ngs-datepicker-preset\" (click)=\"_selectPreset(preset)\">\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <ngs-calendar [startAt]=\"startAt()\"\n [selected]=\"_selectedRange()\"\n [headerComponent]=\"calendarHeaderComponent()\"\n [visibleCalendars]=\"_visibleCalendars()\"\n (selectedChange)=\"_select($event)\"\n />\n </div>\n\n @if (actions()) {\n <ng-content select=\"ngs-datepicker-actions\" />\n }\n </div>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n untracked,\n effect,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateAdapter } from '../core/datetime/date-adapter';\nimport { Subject } from 'rxjs';\nimport type { Datepicker } from '../datepicker/datepicker';\nimport { FormField } from '@ngstarter-ui/components/form-field';\n\n@Directive({\n selector: 'input[ngsDatepicker]',\n exportAs: 'ngsDatepickerInput',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerInput),\n multi: true,\n },\n ],\n host: {\n 'class': 'ngs-datepicker-input',\n '(input)': '_onInput($any($event).target.value)',\n '(blur)': '_onTouched()',\n },\n})\nexport class DatepickerInput<D> implements ControlValueAccessor, OnDestroy, OnInit {\n private _elementRef = inject(ElementRef);\n private _formField = inject(FormField, { optional: true });\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n\n readonly ngsDatepicker = input.required<Datepicker<D>>();\n\n _value: D | null = null;\n _onChange: (value: any) => void = () => {};\n _onTouched: () => void = () => {};\n\n readonly _valueChange = new Subject<D | null>();\n\n constructor() {\n effect(() => {\n const picker = this.ngsDatepicker();\n untracked(() => {\n if (picker) {\n picker._registerInput(this);\n }\n });\n });\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy() {\n this._valueChange.complete();\n }\n\n writeValue(value: D | null): void {\n this._value = value;\n this._formatValue(value);\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._elementRef.nativeElement.disabled = isDisabled;\n }\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._value = date;\n this._onChange(date);\n this._valueChange.next(date);\n }\n\n private _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = (value && this._dateAdapter.isDateInstance(value) && this._dateAdapter.isValid(value))\n ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' })\n : '';\n }\n\n getConnectedOverlayOrigin(): ElementRef {\n if (this._formField) {\n return this._formField.container() as ElementRef;\n }\n\n return this._elementRef;\n }\n}\n","import {\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n untracked,\n effect,\n OnDestroy,\n OnInit,\n contentChild,\n ChangeDetectionStrategy,\n forwardRef,\n signal,\n computed,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter } from '../../core/datetime/date-adapter';\nimport { Subject } from 'rxjs';\nimport type { DateRangePicker } from '../../date-range-picker/date-range-picker';\nimport { DateRange } from '../../core/datetime/date-range';\nimport { FormField } from '@ngstarter-ui/components/form-field';\nimport { FormFieldControl } from '@ngstarter-ui/components/form-field';\n\n@Directive({\n selector: 'input[ngsStartDate]',\n host: {\n 'class': 'ngs-date-range-input-start',\n '(input)': '_onInput($any($event).target.value)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class StartDate<D> {\n private _elementRef = inject(ElementRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n _rangeInput!: DateRangeInput<D>;\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._rangeInput._startUpdated(date);\n this._rangeInput._inputUpdated();\n }\n\n _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = value ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' }) : '';\n this._rangeInput._inputUpdated();\n }\n\n _onFocus() {\n this._rangeInput._handleFocus();\n }\n\n _onBlur() {\n this._rangeInput._handleBlur();\n }\n\n isEmpty() {\n return !this._elementRef.nativeElement.value;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n\n@Directive({\n selector: 'input[ngsEndDate]',\n host: {\n 'class': 'ngs-date-range-input-end',\n '(input)': '_onInput($any($event).target.value)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class EndDate<D> {\n private _elementRef = inject(ElementRef);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter);\n _rangeInput!: DateRangeInput<D>;\n\n _onInput(value: string) {\n const date = this._dateAdapter.parse(value, null);\n this._rangeInput._endUpdated(date);\n this._rangeInput._inputUpdated();\n }\n\n _formatValue(value: D | null) {\n this._elementRef.nativeElement.value = value ? this._dateAdapter.format(value, { year: 'numeric', month: '2-digit', day: '2-digit' }) : '';\n this._rangeInput._inputUpdated();\n }\n\n _onFocus() {\n this._rangeInput._handleFocus();\n }\n\n _onBlur() {\n this._rangeInput._handleBlur();\n }\n\n isEmpty() {\n return !this._elementRef.nativeElement.value;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n\n@Component({\n selector: 'ngs-date-range-input',\n exportAs: 'ngsDateRangeInput',\n templateUrl: './date-range-input.html',\n styleUrl: './date-range-input.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-date-range-input',\n '[attr.id]': 'id',\n '[class.ngs-date-range-input-floating]': 'shouldLabelFloat',\n '(click)': 'focus()',\n },\n providers: [\n {\n provide: FormFieldControl,\n useExisting: forwardRef(() => DateRangeInput)\n }\n ]\n})\nexport class DateRangeInput<D> implements OnDestroy, OnInit, FormFieldControl<DateRange<D>> {\n private _elementRef = inject(ElementRef);\n private _formField = inject(FormField, { optional: true });\n readonly rangePicker = input.required<DateRangePicker<D>>();\n readonly separator = input<string>('–');\n readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n _startInput = contentChild(StartDate);\n _endInput = contentChild(EndDate);\n\n _value: DateRange<D> | null = null;\n\n get value() {\n return this._value;\n }\n\n private _focused = signal(false);\n get focused(): boolean {\n return this._focused();\n }\n\n private _empty = computed(() => {\n this._inputStateChanges();\n const startInput = this._startInput();\n const endInput = this._endInput();\n return (!this._value || (!this._value.start && !this._value.end)) &&\n (!startInput || startInput.isEmpty()) &&\n (!endInput || endInput.isEmpty());\n });\n get empty(): boolean {\n return this._empty();\n }\n\n private _shouldLabelFloat = computed(() => {\n return this.focused || !this.empty;\n });\n get shouldLabelFloat(): boolean {\n return this._shouldLabelFloat();\n }\n\n readonly stateChanges = new Subject<void>();\n private _inputStateChanges = signal(0);\n id = `ngs-date-range-input-${nextUniqueId++}`;\n placeholder = '';\n required = false;\n disabled = false;\n errorState = false;\n\n constructor() {\n effect(() => {\n const picker = this.rangePicker();\n untracked(() => {\n if (picker) {\n picker._registerInput(this);\n }\n });\n });\n\n effect(() => {\n const start = this._startInput();\n if (start) {\n start._rangeInput = this;\n }\n });\n\n effect(() => {\n const end = this._endInput();\n if (end) {\n end._rangeInput = this;\n }\n });\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n _startUpdated(date: D | null) {\n this._value = new DateRange<D>(date, this._value?.end || null);\n this.rangePicker()._selectedRange.set(this._value);\n this.stateChanges.next();\n }\n\n _endUpdated(date: D | null) {\n this._value = new DateRange<D>(this._value?.start || null, date);\n this.rangePicker()._selectedRange.set(this._value);\n this.stateChanges.next();\n }\n\n _rangeUpdated(range: DateRange<D>) {\n const prevStart = this._value?.start;\n this._value = range;\n this._startInput()?._formatValue(range.start);\n this._endInput()?._formatValue(range.end);\n this.stateChanges.next();\n\n if (range.start && !range.end && range.start !== prevStart) {\n this._endInput()?.focus();\n }\n }\n\n _handleFocus() {\n if (!this._focused()) {\n this._focused.set(true);\n this.stateChanges.next();\n }\n }\n\n _handleBlur() {\n // Use setTimeout to check if focus moved to another input within the same component\n setTimeout(() => {\n if (!this._elementRef.nativeElement.contains(document.activeElement)) {\n this._focused.set(false);\n this.stateChanges.next();\n }\n });\n }\n\n _inputUpdated() {\n this._inputStateChanges.update(v => v + 1);\n this.stateChanges.next();\n }\n\n getConnectedOverlayOrigin(): ElementRef {\n if (this._formField) {\n return this._formField.container() as ElementRef;\n }\n\n return this._elementRef;\n }\n\n focus(): void {\n const startInput = this._startInput();\n if (startInput && !this.focused) {\n startInput.focus();\n }\n }\n}\n\nlet nextUniqueId = 0;\n","<div class=\"ngs-date-range-input-container\">\n <div class=\"ngs-date-range-input-start-wrapper\">\n <ng-content select=\"input[ngsStartDate]\"/>\n </div>\n <span class=\"ngs-date-range-input-separator\">{{ separator() }}</span>\n <div class=\"ngs-date-range-input-end-wrapper\">\n <ng-content select=\"input[ngsEndDate]\"/>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsDatepickerToggleIcon]',\n})\nexport class DatepickerToggleIcon {}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n inject,\n contentChild,\n} from '@angular/core';\nimport { DatepickerIntl } from '../datepicker-intl';\nimport { DatepickerToggleIcon } from './datepicker-toggle-icon';\nimport type { Datepicker } from '../datepicker/datepicker';\nimport type { DateRangePicker } from '../date-range-picker/date-range-picker';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { FORM_FIELD, FormField } from '@ngstarter-ui/components/form-field';\n\n@Component({\n selector: 'ngs-datepicker-toggle',\n exportAs: 'ngsDatepickerToggle',\n templateUrl: './datepicker-toggle.html',\n styleUrl: './datepicker-toggle.scss',\n imports: [\n Button\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-datepicker-toggle',\n },\n})\nexport class DatepickerToggle<D> {\n private _intl = inject(DatepickerIntl);\n private _formField = inject<FormField>(FORM_FIELD, { optional: true });\n\n readonly for = input.required<Datepicker<D> | DateRangePicker<D>>(); // Reference to the datepicker\n\n readonly customIcon = contentChild(DatepickerToggleIcon);\n\n _open(event: MouseEvent): void {\n if (this.for()) {\n this.for().open();\n event.stopPropagation();\n }\n }\n}\n","<button ngsIconButton type=\"button\" (click)=\"_open($event)\" class=\"ngs-datepicker-toggle-button\">\n @if (customIcon()) {\n <ng-content select=\"[ngsDatepickerToggleIcon]\"/>\n } @else {\n <svg viewBox=\"0 0 24 24\" class=\"size-6\">\n <path fill=\"currentColor\"\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5a1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\"></path>\n </svg>\n }\n</button>\n","import { Injectable } from '@angular/core';\nimport { DateAdapter } from './date-adapter';\n\n@Injectable()\nexport class NativeDateAdapter extends DateAdapter<Date> {\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { month: style, timeZone: 'UTC' });\n return Array.from({ length: 12 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, i, 1)))));\n }\n\n getDateNames(): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric', timeZone: 'UTC' });\n return Array.from({ length: 31 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, 0, i + 1)))));\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n const dtf = new Intl.DateTimeFormat(this.locale, { weekday: style, timeZone: 'UTC' });\n return Array.from({ length: 7 }, (_, i) => this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(2017, 0, i + 8)))));\n }\n\n getYearName(date: Date): string {\n const dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric', timeZone: 'UTC' });\n return this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(date.getFullYear(), 0, 1))));\n }\n\n getFirstDayOfWeek(): number {\n return 0; // Sunday\n }\n\n getNumDaysInMonth(date: Date): number {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + 1, 0).getDate();\n }\n\n clone(date: Date): Date {\n return new Date(date.getTime());\n }\n\n createDate(year: number, month: number, date: number): Date {\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index must be between 0 and 11.`);\n }\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date must be greater than 0.`);\n }\n const result = this._createDateWithOverflow(year, month, date);\n if (result.getMonth() !== month) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n\n today(): Date {\n return new Date();\n }\n\n parse(value: any): Date | null {\n if (typeof value === 'number') {\n return new Date(value);\n }\n\n if (value && typeof value === 'string') {\n const parts = value.split('/');\n\n if (parts.length === 3) {\n const month = parseInt(parts[0], 10) - 1;\n const day = parseInt(parts[1], 10);\n const year = parseInt(parts[2], 10);\n\n if (!isNaN(month) && !isNaN(day) && !isNaN(year)) {\n return this.createDate(year, month, day);\n }\n }\n\n return new Date(Date.parse(value));\n }\n\n return value ? new Date(Date.parse(value)) : null;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateAdapter: Cannot format invalid date.');\n }\n const dtf = new Intl.DateTimeFormat(this.locale, { ...displayFormat, timeZone: 'UTC' });\n return this._stripDirectionMarkers(dtf.format(new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))));\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date));\n if (this.getMonth(newDate) !== (this.getMonth(date) + months) % 12) {\n newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0);\n }\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days);\n }\n\n toIso8601(date: Date): string {\n return [date.getUTCFullYear(), this._2digit(date.getUTCMonth() + 1), this._2digit(date.getUTCDate())].join('-');\n }\n\n isDateInstance(obj: any): obj is Date {\n return obj instanceof Date;\n }\n\n isValid(date: Date): boolean {\n return this.isDateInstance(date) && !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n private _stripDirectionMarkers(str: string): string {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n\n private _createDateWithOverflow(year: number, month: number, date: number): Date {\n const result = new Date(year, month, date);\n if (year >= 0 && year < 100) {\n result.setFullYear(year);\n }\n return result;\n }\n}\n","import { Provider } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS } from './date-adapter';\nimport { NativeDateAdapter } from './native-date-adapter';\n\nexport const MAT_NATIVE_DATE_FORMATS = {\n parse: {\n dateInput: null,\n },\n display: {\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\n monthYearLabel: { month: 'short', year: 'numeric' },\n dateA11yLabel: { month: 'long', year: 'numeric', day: 'numeric' },\n monthYearA11yLabel: { month: 'long', year: 'numeric' },\n }\n};\n\nexport function provideNativeDateAdapter(): Provider[] {\n return [\n { provide: DateAdapter, useClass: NativeDateAdapter },\n { provide: MAT_DATE_FORMATS, useValue: MAT_NATIVE_DATE_FORMATS }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -340,7 +340,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
340
340
  args: [{
341
341
  selector: '[ngs-dialog-close], [ngsDialogClose]',
342
342
  exportAs: 'ngsDialogClose',
343
- standalone: true,
344
343
  host: {
345
344
  '[attr.aria-label]': 'ariaLabel() || null',
346
345
  '[attr.type]': 'type()',