ng-primitives 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/a11y/index.d.ts +1 -1
- package/a11y/visually-hidden/visually-hidden-state.d.ts +52 -0
- package/a11y/visually-hidden/visually-hidden.d.ts +1 -0
- package/accordion/accordion/accordion-state.d.ts +1 -1
- package/accordion/accordion-item/accordion-item-state.d.ts +1 -1
- package/avatar/avatar/avatar-state.d.ts +1 -1
- package/avatar/avatar-image/avatar-image.d.ts +36 -1
- package/button/button/button-state.d.ts +12 -2
- package/button/button/button.d.ts +1 -2
- package/button/index.d.ts +1 -1
- package/checkbox/checkbox/checkbox-state.d.ts +1 -1
- package/checkbox/checkbox/checkbox.d.ts +3 -4
- package/date-picker/date-picker/date-picker-state.d.ts +1 -1
- package/date-picker/date-picker-date-button/date-picker-date-button.d.ts +1 -2
- package/date-picker/date-picker-next-month/date-picker-next-month.d.ts +2 -2
- package/date-picker/date-picker-previous-month/date-picker-previous-month.d.ts +2 -2
- package/date-picker/index.d.ts +5 -9
- package/dialog/dialog/dialog-state.d.ts +1 -1
- package/dialog/index.d.ts +0 -4
- package/fesm2022/ng-primitives-a11y.mjs +20 -9
- package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
- package/fesm2022/ng-primitives-avatar.mjs +3 -3
- package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/ng-primitives-button.mjs +18 -5
- package/fesm2022/ng-primitives-button.mjs.map +1 -1
- package/fesm2022/ng-primitives-checkbox.mjs +13 -8
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-date-picker.mjs +13 -65
- package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
- package/fesm2022/ng-primitives-dialog.mjs +5 -41
- package/fesm2022/ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/ng-primitives-file-upload.mjs +12 -5
- package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
- package/fesm2022/ng-primitives-focus-trap.mjs +3 -12
- package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
- package/fesm2022/ng-primitives-form-field.mjs +103 -93
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-input.mjs +34 -21
- package/fesm2022/ng-primitives-input.mjs.map +1 -1
- package/fesm2022/ng-primitives-interactions.mjs +14 -80
- package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
- package/fesm2022/ng-primitives-internal.mjs +93 -65
- package/fesm2022/ng-primitives-internal.mjs.map +1 -1
- package/fesm2022/ng-primitives-listbox.mjs +19 -48
- package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-menu.mjs +1 -5
- package/fesm2022/ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-pagination.mjs +53 -147
- package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/ng-primitives-popover.mjs +105 -96
- package/fesm2022/ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/ng-primitives-progress.mjs +4 -18
- package/fesm2022/ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/ng-primitives-radio.mjs +9 -5
- package/fesm2022/ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/ng-primitives-roving-focus.mjs +2 -12
- package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/ng-primitives-select.mjs +35 -21
- package/fesm2022/ng-primitives-select.mjs.map +1 -1
- package/fesm2022/ng-primitives-separator.mjs +2 -11
- package/fesm2022/ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +62 -120
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +10 -3
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs +22 -35
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +17 -22
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-textarea.mjs +34 -21
- package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
- package/fesm2022/ng-primitives-toast.mjs +27 -16
- package/fesm2022/ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +26 -49
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +4 -18
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-toolbar.mjs +3 -18
- package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/ng-primitives-tooltip.mjs +103 -82
- package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs +18 -0
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/file-upload/file-dropzone/file-dropzone-state.d.ts +2 -2
- package/file-upload/file-dropzone/file-dropzone.d.ts +3 -2
- package/file-upload/file-upload/file-upload-state.d.ts +2 -2
- package/file-upload/file-upload/file-upload.d.ts +3 -2
- package/focus-trap/index.d.ts +0 -1
- package/form-field/description/description.d.ts +25 -1
- package/form-field/error/error.d.ts +25 -1
- package/form-field/form-control/form-control-state.d.ts +58 -0
- package/form-field/form-control/form-control.d.ts +36 -7
- package/form-field/form-field/form-field-state.d.ts +41 -0
- package/form-field/form-field/form-field.d.ts +4 -0
- package/form-field/index.d.ts +2 -5
- package/form-field/label/label.d.ts +26 -2
- package/input/index.d.ts +1 -1
- package/input/input/input-state.d.ts +30 -0
- package/input/input/input.d.ts +7 -5
- package/interactions/focus/focus.d.ts +0 -4
- package/interactions/focus-visible/focus-visible.d.ts +0 -4
- package/interactions/hover/hover.d.ts +0 -4
- package/interactions/index.d.ts +0 -5
- package/interactions/move/move.d.ts +0 -4
- package/interactions/press/press.d.ts +0 -4
- package/internal/exit-animation/exit-animation-manager.d.ts +17 -0
- package/internal/exit-animation/exit-animation.d.ts +4 -17
- package/internal/index.d.ts +3 -2
- package/internal/interactions/interactions.d.ts +5 -1
- package/internal/signals/sync-state.d.ts +2 -0
- package/listbox/index.d.ts +0 -4
- package/listbox/listbox/listbox-state.d.ts +2 -2
- package/package.json +9 -9
- package/pagination/index.d.ts +0 -6
- package/pagination/pagination/pagination-state.d.ts +2 -2
- package/pagination/pagination/pagination.d.ts +5 -5
- package/pagination/pagination-button/pagination-button.d.ts +4 -8
- package/pagination/pagination-first/pagination-first.d.ts +4 -8
- package/pagination/pagination-last/pagination-last.d.ts +3 -7
- package/pagination/pagination-next/pagination-next.d.ts +4 -8
- package/pagination/pagination-previous/pagination-previous.d.ts +4 -8
- package/popover/index.d.ts +1 -2
- package/popover/popover/popover-token.d.ts +8 -5
- package/popover/popover/popover.d.ts +3 -2
- package/popover/popover-trigger/popover-trigger-state.d.ts +5 -3
- package/popover/popover-trigger/popover-trigger.d.ts +27 -19
- package/progress/index.d.ts +0 -1
- package/progress/progress/progress-state.d.ts +1 -1
- package/radio/radio-group/radio-group-state.d.ts +1 -1
- package/radio/radio-group/radio-group.d.ts +2 -2
- package/radio/radio-item/radio-item-state.d.ts +1 -1
- package/roving-focus/index.d.ts +2 -3
- package/roving-focus/roving-focus-group/roving-focus-group-state.d.ts +1 -1
- package/schematics/ng-generate/schema.d.ts +4 -1
- package/schematics/ng-generate/schema.json +4 -1
- package/schematics/ng-generate/templates/toast/toast.__fileSuffix@dasherize__.ts.template +111 -0
- package/schematics/ng-generate/templates/toolbar/toolbar-button.__fileSuffix@dasherize__.ts.template +58 -0
- package/schematics/ng-generate/templates/toolbar/toolbar.__fileSuffix@dasherize__.ts.template +29 -0
- package/schematics/ng-generate/templates/tooltip/tooltip-trigger.__fileSuffix@dasherize__.ts.template +35 -0
- package/schematics/ng-generate/templates/tooltip/tooltip.__fileSuffix@dasherize__.ts.template +60 -0
- package/search/search/search-state.d.ts +1 -1
- package/select/index.d.ts +1 -1
- package/select/select/select-state.d.ts +20 -0
- package/select/select/select.d.ts +7 -4
- package/separator/index.d.ts +1 -2
- package/slider/index.d.ts +0 -4
- package/slider/slider/slider-state.d.ts +1 -1
- package/slider/slider/slider.d.ts +2 -2
- package/slider/slider-range/slider-range.d.ts +1 -1
- package/slider/slider-thumb/slider-thumb.d.ts +3 -7
- package/slider/slider-track/slider-track.d.ts +1 -5
- package/state/index.d.ts +7 -1
- package/switch/index.d.ts +0 -1
- package/switch/switch/switch-state.d.ts +1 -1
- package/switch/switch/switch.d.ts +3 -4
- package/switch/switch-thumb/switch-thumb.d.ts +2 -2
- package/tabs/index.d.ts +1 -2
- package/tabs/tab-button/tab-button.d.ts +2 -2
- package/tabs/tabset/tabset-state.d.ts +1 -1
- package/textarea/index.d.ts +1 -1
- package/textarea/textarea/textarea-state.d.ts +20 -0
- package/textarea/textarea/textarea.d.ts +7 -4
- package/toast/index.d.ts +0 -1
- package/toast/toast/toast.d.ts +21 -1
- package/toggle/index.d.ts +0 -1
- package/toggle/toggle/toggle-state.d.ts +1 -1
- package/toggle-group/index.d.ts +0 -2
- package/toggle-group/toggle-group/toggle-group-state.d.ts +1 -1
- package/toggle-group/toggle-group-item/toggle-group-item-state.d.ts +15 -2
- package/toggle-group/toggle-group-item/toggle-group-item.d.ts +1 -1
- package/toolbar/index.d.ts +0 -1
- package/tooltip/index.d.ts +1 -2
- package/tooltip/tooltip/tooltip-token.d.ts +8 -5
- package/tooltip/tooltip/tooltip.d.ts +2 -1
- package/tooltip/tooltip-trigger/tooltip-trigger-state.d.ts +3 -3
- package/tooltip/tooltip-trigger/tooltip-trigger.d.ts +43 -22
- package/a11y/visually-hidden/visually-hidden-token.d.ts +0 -7
- package/date-picker/date-picker-cell/date-picker-cell-token.d.ts +0 -7
- package/date-picker/date-picker-grid/date-picker-grid-token.d.ts +0 -7
- package/date-picker/date-picker-next-month/date-picker-next-month-token.d.ts +0 -7
- package/date-picker/date-picker-previous-month/date-picker-previous-month-token.d.ts +0 -7
- package/dialog/dialog-description/dialog-description-token.d.ts +0 -7
- package/dialog/dialog-overlay/dialog-overlay-token.d.ts +0 -7
- package/dialog/dialog-title/dialog-title-token.d.ts +0 -7
- package/dialog/dialog-trigger/dialog-trigger-token.d.ts +0 -7
- package/focus-trap/focus-trap/focus-trap-token.d.ts +0 -7
- package/form-field/description/description-token.d.ts +0 -7
- package/form-field/error/error-token.d.ts +0 -7
- package/form-field/form-control/form-control-token.d.ts +0 -7
- package/form-field/form-field/form-field-token.d.ts +0 -8
- package/form-field/label/label-token.d.ts +0 -7
- package/input/input/input-token.d.ts +0 -7
- package/interactions/focus/focus-token.d.ts +0 -7
- package/interactions/focus-visible/focus-visible-token.d.ts +0 -7
- package/interactions/hover/hover-token.d.ts +0 -8
- package/interactions/move/move-token.d.ts +0 -7
- package/interactions/press/press-token.d.ts +0 -7
- package/internal/disabled/disabled.d.ts +0 -14
- package/listbox/listbox/listbox-token.d.ts +0 -7
- package/listbox/listbox-option/listbox-option-token.d.ts +0 -7
- package/listbox/listbox-section/listbox-section-token.d.ts +0 -7
- package/listbox/listbox-trigger/listbox-trigger-token.d.ts +0 -7
- package/pagination/pagination/pagination-token.d.ts +0 -8
- package/pagination/pagination-button/pagination-button-token.d.ts +0 -7
- package/pagination/pagination-first/pagination-first-token.d.ts +0 -7
- package/pagination/pagination-last/pagination-last-token.d.ts +0 -7
- package/pagination/pagination-next/pagination-next-token.d.ts +0 -7
- package/pagination/pagination-previous/pagination-previous-token.d.ts +0 -7
- package/popover/popover-trigger/popover-trigger-token.d.ts +0 -12
- package/progress/progress/progress-token.d.ts +0 -11
- package/roving-focus/roving-focus-item/roving-focus-item-token.d.ts +0 -8
- package/select/select/select-token.d.ts +0 -7
- package/separator/separator/separator-token.d.ts +0 -7
- package/slider/slider/slider-token.d.ts +0 -8
- package/slider/slider-range/slider-range-token.d.ts +0 -8
- package/slider/slider-thumb/slider-thumb-token.d.ts +0 -8
- package/slider/slider-track/slider-track-token.d.ts +0 -8
- package/switch/switch/switch-token.d.ts +0 -11
- package/tabs/tabset/tabset-token.d.ts +0 -11
- package/textarea/textarea/textarea-token.d.ts +0 -7
- package/toast/toast/toast-token.d.ts +0 -7
- package/toggle/toggle/toggle-token.d.ts +0 -11
- package/toggle-group/toggle-group/toggle-group-token.d.ts +0 -11
- package/toggle-group/toggle-group-item/toggle-group-item-token.d.ts +0 -11
- package/toolbar/toolbar/toolbar-token.d.ts +0 -11
- package/tooltip/tooltip-trigger/tooltip-trigger-token.d.ts +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-date-picker.mjs","sources":["../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell/date-picker-cell-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell/date-picker-cell.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-state.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-grid/date-picker-grid-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-grid/date-picker-grid.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-next-month/date-picker-next-month-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-next-month/date-picker-next-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-previous-month/date-picker-previous-month-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-previous-month/date-picker-previous-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker.ts","../../../../packages/ng-primitives/date-picker/src/ng-primitives-date-picker.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerRowRender } from './date-picker-row-render';\n\nexport const NgpDatePickerRowRenderToken = new InjectionToken<NgpDatePickerRowRender<unknown>>(\n 'NgpDatePickerRowRenderToken',\n);\n\n/**\n * Inject the DatePickerRowRender directive instance\n */\nexport function injectDatePickerRowRender<T>(): NgpDatePickerRowRender<T> {\n return inject(NgpDatePickerRowRenderToken) as NgpDatePickerRowRender<T>;\n}\n\nexport const NgpDatePickerWeekToken = new InjectionToken<unknown[]>('NgpDatePickerWeekToken');\n\n/**\n * Inject current week days\n */\nexport function injectDatePickerWeek<T>(): T[] {\n return inject(NgpDatePickerWeekToken) as T[];\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerCellRender } from './date-picker-cell-render';\n\nexport const NgpDatePickerCellRenderToken = new InjectionToken<NgpDatePickerCellRender<unknown>>(\n 'NgpDatePickerCellRenderToken',\n);\n\n/**\n * Inject the DatePickerCell directive instance\n */\nexport function injectDatePickerCellRender<T>(): NgpDatePickerCellRender<T> {\n return inject(NgpDatePickerCellRenderToken) as NgpDatePickerCellRender<T>;\n}\n\nexport const NgpDatePickerCellDateToken = new InjectionToken<unknown>('NgpDatePickerCellDateToken');\n\n/**\n * Inject current cell date\n */\nexport function injectDatePickerCellDate<T>(): T {\n return inject(NgpDatePickerCellDateToken) as T;\n}\n","import {\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDatePickerWeek } from '../date-picker-row-render/date-picker-row-render-token';\nimport {\n NgpDatePickerCellDateToken,\n NgpDatePickerCellRenderToken,\n} from './date-picker-cell-render-token';\n\n/**\n * A structural directive that renders a cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCellRender]',\n exportAs: 'ngpDatePickerCellRender',\n providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }],\n})\nexport class NgpDatePickerCellRender<T> implements OnDestroy {\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the dates in the week.\n */\n private readonly dates = injectDatePickerWeek<T>();\n\n /**\n * Store the view refs for the dates.\n */\n private readonly viewRefs: EmbeddedViewRef<NgpDatePickerCellContext<T>>[] = [];\n\n // Make sure the template checker knows the type of the context with which the\n // template of this directive will be rendered\n static ngTemplateContextGuard<T>(\n _: NgpDatePickerCellRender<T>,\n context: unknown,\n ): context is NgpDatePickerCellContext<T> {\n return true;\n }\n\n constructor() {\n this.renderDates();\n }\n\n /**\n * Render the dates in the week.\n */\n private renderDates(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n\n for (const date of this.dates) {\n const viewRef = this.viewContainerRef.createEmbeddedView(\n this.templateRef,\n {\n $implicit: date,\n },\n {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerCellDateToken, useValue: date }],\n }),\n },\n );\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the view refs.\n */\n ngOnDestroy(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n }\n}\n\ninterface NgpDatePickerCellContext<T> {\n $implicit: T;\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerDateButton } from './date-picker-date-button';\n\nexport const NgpDatePickerDateButtonToken = new InjectionToken<NgpDatePickerDateButton<unknown>>(\n 'NgpDatePickerDateButtonToken',\n);\n\n/**\n * Inject the DatePickerDateButton directive instance\n */\nexport function injectDatePickerDateButton<T>(): NgpDatePickerDateButton<T> {\n return inject(NgpDatePickerDateButtonToken) as NgpDatePickerDateButton<T>;\n}\n","import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerToken = new InjectionToken<NgpDatePicker<unknown>>('NgpDatePickerToken');\n\n/**\n * Inject the DatePicker directive instance\n */\nexport function injectDatePicker<T>(): NgpDatePicker<T> {\n return inject(NgpDatePickerToken) as NgpDatePicker<T>;\n}\n\n/**\n * Provide the DatePicker directive instance\n */\nexport function provideDatePicker<T>(datePicker: Type<NgpDatePicker<T>>): ExistingProvider {\n return { provide: NgpDatePickerToken, useExisting: datePicker };\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerCell } from './date-picker-cell';\n\nexport const NgpDatePickerCellToken = new InjectionToken<NgpDatePickerCell>(\n 'NgpDatePickerCellToken',\n);\n\n/**\n * Inject the DatePickerCell directive instance\n */\nexport function injectDatePickerCell(): NgpDatePickerCell {\n return inject(NgpDatePickerCellToken);\n}\n","import { computed, contentChild, Directive } from '@angular/core';\nimport { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button-token';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerCellToken } from './date-picker-cell-token';\n\n/**\n * A cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCell]',\n exportAs: 'ngpDatePickerCell',\n providers: [{ provide: NgpDatePickerCellToken, useExisting: NgpDatePickerCell }],\n host: {\n role: 'gridcell',\n '[attr.data-selected]': 'datePickerButton()?.selected() ? \"\" : null',\n '[attr.aria-selected]': 'datePickerButton()?.selected()',\n '[attr.aria-disabled]': 'datePickerButton()?.disabled()',\n '[attr.data-disabled]': 'datePickerButton()?.disabled() ? \"\" : null',\n '[attr.aria-labelledby]': 'labelId()',\n },\n})\nexport class NgpDatePickerCell {\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker();\n\n /**\n * Access the child date picker date button.\n */\n protected readonly datePickerButton = contentChild(NgpDatePickerDateButtonToken, {\n descendants: true,\n });\n\n /**\n * Access the label id.\n */\n protected readonly labelId = computed(() => this.datePicker.label()?.id());\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n InjectedState,\n} from 'ng-primitives/state';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerStateToken = createStateToken<NgpDatePicker<unknown>>('DatePicker');\nexport const provideDatePickerState = createStateProvider(NgpDatePickerStateToken);\nexport const injectDatePickerState = createStateInjector(NgpDatePickerStateToken) as <\n T,\n>() => InjectedState<NgpDatePicker<T>>;\nexport const datePickerState = createState(NgpDatePickerStateToken);\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, HostListener, inject, OnDestroy } from '@angular/core';\nimport { NgpButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { NgpCanDisable, NgpDisabledToken } from 'ng-primitives/internal';\nimport { injectDatePickerCellDate } from '../date-picker-cell-render/date-picker-cell-render-token';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerDateButtonToken } from './date-picker-date-button-token';\n\n/**\n * A button that represents a date in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerDateButton]',\n exportAs: 'ngpDatePickerDateButton',\n providers: [\n { provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton },\n { provide: NgpDisabledToken, useExisting: NgpDatePickerDateButton },\n ],\n host: {\n '[attr.role]': '!isButton ? \"button\" : null',\n '[attr.tabindex]': 'focused() ? 0 : -1',\n '[attr.data-selected]': 'selected() ? \"\" : null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-outside-month]': 'outside() ? \"\" : null',\n '[attr.data-today]': 'today() ? \"\" : null',\n },\n hostDirectives: [NgpButton],\n})\nexport class NgpDatePickerDateButton<T> implements NgpCanDisable, OnDestroy {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * The date this cell represents.\n */\n private readonly date = injectDatePickerCellDate<T>();\n\n /**\n * Determine if this is the focused date.\n */\n protected readonly focused = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this is the selected date.\n * @internal\n */\n readonly selected = computed(() => {\n const selected = this.state().date();\n return selected && this.dateAdapter.isSameDay(this.date, selected);\n });\n\n /**\n * Determine if this date is outside the current month.\n */\n protected readonly outside = computed(\n () => !this.dateAdapter.isSameMonth(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this date is today.\n */\n protected readonly today = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.dateAdapter.now()),\n );\n\n /**\n * Determine if this date is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n const min = this.state().min();\n const max = this.state().max();\n\n if (this.state().disabled() || this.state().dateDisabled()(this.date)) {\n return true;\n }\n\n if (min && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), min) < 0) {\n return true;\n }\n\n if (max && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), max) > 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Determine if the element is a button.\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n constructor() {\n this.datePicker.registerButton(this);\n }\n\n ngOnDestroy(): void {\n this.datePicker.unregisterButton(this);\n }\n\n /**\n * When the button is clicked, select the date.\n */\n @HostListener('click')\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n protected select(event?: KeyboardEvent): void {\n // if the button is disabled, or is already selected, do nothing.\n if (this.disabled() || this.selected()) {\n return;\n }\n\n // because this may not be a button, we should stop the event from firing twice due to\n // us listening to both the click and the keydown.enter event.\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.state().date.set(this.date);\n this.state().dateChange.emit(this.date);\n this.datePicker.setFocusedDate(this.date, 'mouse', 'forward');\n }\n\n /**\n * Focus if this is the current focused date.\n * @internal\n */\n focus(): void {\n if (this.dateAdapter.isSameDay(this.date, this.state().focusedDate())) {\n this.focusMonitor.focusVia(this.elementRef, 'keyboard');\n }\n }\n\n /**\n * Focus the previous cell.\n */\n @HostListener('keydown.arrowLeft', ['$event'])\n protected focusPrevious(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n } else {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n }\n }\n\n /**\n * Focus the next cell.\n */\n @HostListener('keydown.arrowRight', ['$event'])\n protected focusNext(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n } else {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n }\n }\n\n /**\n * Focus the above cell.\n */\n @HostListener('keydown.arrowUp', ['$event'])\n protected focusAbove(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.subtract(this.state().focusedDate(), { days: 7 }), 'backward');\n }\n\n /**\n * Focus the below cell.\n */\n @HostListener('keydown.arrowDown', ['$event'])\n protected focusBelow(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 7 }), 'forward');\n }\n\n /**\n * Focus the first date of the month.\n */\n @HostListener('keydown.home', ['$event'])\n protected focusFirst(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.startOfMonth(this.state().focusedDate()), 'forward');\n }\n\n /**\n * Focus the last date of the month.\n */\n @HostListener('keydown.end', ['$event'])\n protected focusLast(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.endOfMonth(this.state().focusedDate()), 'backward');\n }\n\n /**\n * Focus the same date in the previous month.\n */\n @HostListener('keydown.pageUp', ['$event'])\n protected focusPreviousMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let previousMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n previousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);\n\n // if we are on a date that does not exist in the previous month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'forward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(previousMonthTarget, { day: date }), 'forward');\n }\n }\n\n /**\n * Focus the same date in the next month.\n */\n @HostListener('keydown.pageDown', ['$event'])\n protected focusNextMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let nextMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n nextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);\n\n // if we are on a date that does not exist in the next month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'backward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(nextMonthTarget, { day: date }), 'backward');\n }\n }\n\n private focusDate(date: T, direction: 'forward' | 'backward'): void {\n this.datePicker.setFocusedDate(date, 'keyboard', direction);\n }\n\n /**\n * Get the direction of the element.\n */\n private getDirection(): 'ltr' | 'rtl' {\n return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerGrid } from './date-picker-grid';\n\nexport const NgpDatePickerGridToken = new InjectionToken<NgpDatePickerGrid<unknown>>(\n 'NgpDatePickerGridToken',\n);\n\n/**\n * Inject the DatePickerGrid directive instance\n */\nexport function injectDatePickerGrid<T>(): NgpDatePickerGrid<T> {\n return inject(NgpDatePickerGridToken) as NgpDatePickerGrid<T>;\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { NgpDatePickerGridToken } from './date-picker-grid-token';\n\n/**\n * The grid that contains the days of the month.\n */\n@Directive({\n selector: '[ngpDatePickerGrid]',\n exportAs: 'ngpDatePickerGrid',\n providers: [{ provide: NgpDatePickerGridToken, useExisting: NgpDatePickerGrid }],\n host: {\n role: 'grid',\n '[attr.aria-labelledby]': 'labelId()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerGrid<T> {\n /**\n * Access the date picker state.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Determine the id for the label.\n */\n protected readonly labelId = computed(() => this.state().label()?.id());\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerLabel } from './date-picker-label';\n\nexport const NgpDatePickerLabelToken = new InjectionToken<NgpDatePickerLabel<unknown>>(\n 'NgpDatePickerLabelToken',\n);\n\n/**\n * Inject the DatePickerLabel directive instance\n */\nexport function injectDatePickerLabel<T>(): NgpDatePickerLabel<T> {\n return inject(NgpDatePickerLabelToken) as NgpDatePickerLabel<T>;\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { NgpDatePickerLabelToken } from './date-picker-label-token';\n\n/**\n * The label that displays the current month and year typically in the header of the date picker. This will be announced by screen readers when the date changes.\n */\n@Directive({\n selector: '[ngpDatePickerLabel]',\n exportAs: 'ngpDatePickerLabel',\n providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }],\n host: {\n '[id]': 'id()',\n '[attr.aria-live]': 'ariaLive()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerLabel<T> {\n /**\n * Access the date picker.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Define a unique id for the label.\n */\n readonly id = input(uniqueId('ngp-date-picker-label'));\n\n /**\n * Define the aria live attribute.\n */\n readonly ariaLive = input('polite', {\n alias: 'aria-live',\n });\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerNextMonth } from './date-picker-next-month';\n\nexport const NgpDatePickerNextMonthToken = new InjectionToken<NgpDatePickerNextMonth<unknown>>(\n 'NgpDatePickerNextMonthToken',\n);\n\n/**\n * Inject the DatePickerNextMonth directive instance\n */\nexport function injectDatePickerNextMonth<T>(): NgpDatePickerNextMonth<T> {\n return inject(NgpDatePickerNextMonthToken) as NgpDatePickerNextMonth<T>;\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { NgpCanDisable, NgpDisabledToken } from 'ng-primitives/internal';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerNextMonthToken } from './date-picker-next-month-token';\n\n/**\n * A button that navigates to the next month.\n */\n@Directive({\n selector: '[ngpDatePickerNextMonth]',\n exportAs: 'ngpDatePickerNextMonth',\n providers: [\n { provide: NgpDatePickerNextMonthToken, useExisting: NgpDatePickerNextMonth },\n { provide: NgpDisabledToken, useExisting: NgpDatePickerNextMonth },\n ],\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerNextMonth<T> implements NgpCanDisable {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const maxDate = this.state().max();\n const lastDay = this.dateAdapter.set(this.dateAdapter.endOfMonth(this.state().focusedDate()), {\n hour: 23,\n minute: 59,\n second: 59,\n millisecond: 999,\n });\n\n // if there is a max date and it is equal to or before the last day of the month, disable it.\n if (maxDate && this.dateAdapter.compare(maxDate, lastDay) <= 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Navigate to the next month.\n */\n @HostListener('click')\n protected navigateToNextMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the next month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.add(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'forward');\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerPreviousMonth } from './date-picker-previous-month';\n\nexport const NgpDatePickerPreviousMonthToken = new InjectionToken<\n NgpDatePickerPreviousMonth<unknown>\n>('NgpDatePickerPreviousMonthToken');\n\n/**\n * Inject the DatePickerPreviousMonth directive instance\n */\nexport function injectDatePickerPreviousMonth<T>(): NgpDatePickerPreviousMonth<T> {\n return inject(NgpDatePickerPreviousMonthToken) as NgpDatePickerPreviousMonth<T>;\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { NgpCanDisable, NgpDisabledToken } from 'ng-primitives/internal';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerPreviousMonthToken } from './date-picker-previous-month-token';\n\n/**\n * A button that navigates to the previous month.\n */\n@Directive({\n selector: '[ngpDatePickerPreviousMonth]',\n exportAs: 'ngpDatePickerPreviousMonth',\n providers: [\n { provide: NgpDatePickerPreviousMonthToken, useExisting: NgpDatePickerPreviousMonth },\n { provide: NgpDisabledToken, useExisting: NgpDatePickerPreviousMonth },\n ],\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerPreviousMonth<T> implements NgpCanDisable {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const minDate = this.state().min();\n\n // if the next month is out of bounds, disable it.\n const firstDay = this.dateAdapter.set(\n this.dateAdapter.startOfMonth(this.state().focusedDate()),\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n );\n\n // if there is a min date and it is equal to or after the first day of the month, disable it.\n if (minDate && this.dateAdapter.compare(minDate, firstDay) >= 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Navigate to the previous month.\n */\n @HostListener('click')\n protected navigateToPreviouMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the previous month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.subtract(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'backward');\n }\n}\n","import {\n computed,\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { onChange } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport {\n NgpDatePickerRowRenderToken,\n NgpDatePickerWeekToken,\n} from './date-picker-row-render-token';\n\n/**\n * A structural directive that renders a row of weekdays in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerRowRender]',\n exportAs: 'ngpDatePickerRowRender',\n providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }],\n})\nexport class NgpDatePickerRowRender<T> implements OnDestroy {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Get all the days to display, this is the days of the current month\n * and the days of the previous and next month to fill the grid.\n */\n protected readonly days = computed(() => {\n const month = this.state().focusedDate();\n const days: T[] = [];\n\n // Get the first and last day of the month.\n let firstDay = this.dateAdapter.startOfMonth(month);\n let lastDay = this.dateAdapter.endOfMonth(month);\n\n // find the first and last day of visible in the grid.\n firstDay = this.dateAdapter.subtract(firstDay, {\n days: this.dateAdapter.getDay(firstDay),\n });\n lastDay = this.dateAdapter.add(lastDay, {\n days: 6 - this.dateAdapter.getDay(lastDay),\n });\n\n // collect all the days to display.\n while (firstDay <= lastDay) {\n days.push(firstDay);\n firstDay = this.dateAdapter.add(firstDay, { days: 1 });\n }\n\n return days;\n });\n\n // get the weeks to display.\n protected readonly weeks = computed(() => {\n const days = this.days();\n const weeks = [];\n\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return weeks;\n });\n\n /**\n * Store the embedded view refs of each rendered row.\n */\n private readonly viewRefs: EmbeddedViewRef<void>[] = [];\n\n constructor() {\n // re-render the rows when the month changes.\n onChange(this.state().focusedDate, (date, previousDate) => {\n if (!date || !previousDate || !this.dateAdapter.isSameMonth(date, previousDate)) {\n this.renderRows();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyRows();\n }\n\n /**\n * Render the row.\n */\n private renderRows(): void {\n const weeks = this.weeks();\n\n // clear the view container.\n this.destroyRows();\n\n // render the weeks.\n for (const week of weeks) {\n const viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, null, {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerWeekToken, useValue: week }],\n }),\n });\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the row.\n */\n private destroyRows(): void {\n for (const viewRef of this.viewRefs) {\n viewRef.destroy();\n }\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n contentChild,\n Directive,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport type { NgpDatePickerDateButton } from '../date-picker-date-button/date-picker-date-button';\nimport { NgpDatePickerLabelToken } from '../date-picker-label/date-picker-label-token';\nimport { datePickerState, provideDatePickerState } from './date-picker-state';\nimport { provideDatePicker } from './date-picker-token';\n\n/**\n * The outermost container for the date picker.\n */\n@Directive({\n selector: '[ngpDatePicker]',\n exportAs: 'ngpDatePicker',\n providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePicker<T> {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * The minimum date that can be selected.\n */\n readonly min = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMin',\n });\n\n /**\n * The maximum date that can be selected.\n */\n readonly max = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMax',\n });\n\n /**\n * Determine if the date picker is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpDatePickerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * A function that is called to determine if a specific date should be disabled.\n */\n readonly dateDisabled = input<(date: T) => boolean>(() => false, {\n alias: 'ngpDatePickerDateDisabled',\n });\n\n /**\n * The selected value.\n */\n readonly date = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerDate',\n });\n\n /**\n * Emit when the date changes.\n */\n readonly dateChange = output<T | undefined>({\n alias: 'ngpDatePickerDateChange',\n });\n\n /**\n * The focused value.\n */\n readonly focusedDate = input<T>(this.dateAdapter.now(), {\n alias: 'ngpDatePickerFocusedDate',\n });\n\n /**\n * Emit when the focused date changes.\n */\n readonly focusedDateChange = output<T>({\n alias: 'ngpDatePickerFocusedDateChange',\n });\n\n /**\n * Detect the label element.\n * @internal\n */\n readonly label = contentChild(NgpDatePickerLabelToken, { descendants: true });\n\n /**\n * Access all the date picker buttons\n */\n private readonly buttons = signal<NgpDatePickerDateButton<T>[]>([]);\n\n /**\n * The date picker state.\n */\n protected readonly state = datePickerState<NgpDatePicker<T>>(this);\n\n /**\n * Set the focused date.\n * @param date The date to focus.\n * @internal\n */\n setFocusedDate(date: T, origin: FocusOrigin = 'mouse', direction: 'forward' | 'backward'): void {\n if (this.state.disabled()) {\n return;\n }\n\n const min = this.state.min();\n const max = this.state.max();\n\n if (min && this.dateAdapter.isBefore(date, min)) {\n date = min;\n }\n\n if (max && this.dateAdapter.isAfter(date, max)) {\n date = max;\n }\n\n // if the date is disabled, find the next available date in the specified direction.\n if (this.state.dateDisabled()(date)) {\n let nextDate = this.dateAdapter.add(date, { days: direction === 'forward' ? 1 : -1 });\n\n while (\n this.state.dateDisabled()(nextDate) ||\n (min && this.dateAdapter.isBefore(nextDate, min)) ||\n (max && this.dateAdapter.isAfter(nextDate, max))\n ) {\n nextDate = this.dateAdapter.add(nextDate, { days: direction === 'forward' ? 1 : -1 });\n }\n\n date = nextDate;\n }\n\n this.state.focusedDate.set(date);\n this.focusedDateChange.emit(date);\n\n if (origin === 'keyboard') {\n afterNextRender(\n {\n write: () => this.buttons().forEach(button => button.focus()),\n },\n {\n injector: this.injector,\n },\n );\n }\n }\n\n /**\n * Register a date button.\n * @param button The date button to register.\n * @internal\n */\n registerButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => [...buttons, button]);\n }\n\n /**\n * Unregister a date button.\n * @param button The date button to unregister.\n * @internal\n */\n unregisterButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => buttons.filter(b => b !== button));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-date-picker.mjs","sources":["../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell-render/date-picker-cell-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-cell/date-picker-cell.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker-state.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-date-button/date-picker-date-button.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-grid/date-picker-grid.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label-token.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-label/date-picker-label.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-next-month/date-picker-next-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-previous-month/date-picker-previous-month.ts","../../../../packages/ng-primitives/date-picker/src/date-picker-row-render/date-picker-row-render.ts","../../../../packages/ng-primitives/date-picker/src/date-picker/date-picker.ts","../../../../packages/ng-primitives/date-picker/src/ng-primitives-date-picker.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerRowRender } from './date-picker-row-render';\n\nexport const NgpDatePickerRowRenderToken = new InjectionToken<NgpDatePickerRowRender<unknown>>(\n 'NgpDatePickerRowRenderToken',\n);\n\n/**\n * Inject the DatePickerRowRender directive instance\n */\nexport function injectDatePickerRowRender<T>(): NgpDatePickerRowRender<T> {\n return inject(NgpDatePickerRowRenderToken) as NgpDatePickerRowRender<T>;\n}\n\nexport const NgpDatePickerWeekToken = new InjectionToken<unknown[]>('NgpDatePickerWeekToken');\n\n/**\n * Inject current week days\n */\nexport function injectDatePickerWeek<T>(): T[] {\n return inject(NgpDatePickerWeekToken) as T[];\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerCellRender } from './date-picker-cell-render';\n\nexport const NgpDatePickerCellRenderToken = new InjectionToken<NgpDatePickerCellRender<unknown>>(\n 'NgpDatePickerCellRenderToken',\n);\n\n/**\n * Inject the DatePickerCell directive instance\n */\nexport function injectDatePickerCellRender<T>(): NgpDatePickerCellRender<T> {\n return inject(NgpDatePickerCellRenderToken) as NgpDatePickerCellRender<T>;\n}\n\nexport const NgpDatePickerCellDateToken = new InjectionToken<unknown>('NgpDatePickerCellDateToken');\n\n/**\n * Inject current cell date\n */\nexport function injectDatePickerCellDate<T>(): T {\n return inject(NgpDatePickerCellDateToken) as T;\n}\n","import {\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDatePickerWeek } from '../date-picker-row-render/date-picker-row-render-token';\nimport {\n NgpDatePickerCellDateToken,\n NgpDatePickerCellRenderToken,\n} from './date-picker-cell-render-token';\n\n/**\n * A structural directive that renders a cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCellRender]',\n exportAs: 'ngpDatePickerCellRender',\n providers: [{ provide: NgpDatePickerCellRenderToken, useExisting: NgpDatePickerCellRender }],\n})\nexport class NgpDatePickerCellRender<T> implements OnDestroy {\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the dates in the week.\n */\n private readonly dates = injectDatePickerWeek<T>();\n\n /**\n * Store the view refs for the dates.\n */\n private readonly viewRefs: EmbeddedViewRef<NgpDatePickerCellContext<T>>[] = [];\n\n // Make sure the template checker knows the type of the context with which the\n // template of this directive will be rendered\n static ngTemplateContextGuard<T>(\n _: NgpDatePickerCellRender<T>,\n context: unknown,\n ): context is NgpDatePickerCellContext<T> {\n return true;\n }\n\n constructor() {\n this.renderDates();\n }\n\n /**\n * Render the dates in the week.\n */\n private renderDates(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n\n for (const date of this.dates) {\n const viewRef = this.viewContainerRef.createEmbeddedView(\n this.templateRef,\n {\n $implicit: date,\n },\n {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerCellDateToken, useValue: date }],\n }),\n },\n );\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the view refs.\n */\n ngOnDestroy(): void {\n this.viewRefs.forEach(viewRef => viewRef.destroy());\n }\n}\n\ninterface NgpDatePickerCellContext<T> {\n $implicit: T;\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerDateButton } from './date-picker-date-button';\n\nexport const NgpDatePickerDateButtonToken = new InjectionToken<NgpDatePickerDateButton<unknown>>(\n 'NgpDatePickerDateButtonToken',\n);\n\n/**\n * Inject the DatePickerDateButton directive instance\n */\nexport function injectDatePickerDateButton<T>(): NgpDatePickerDateButton<T> {\n return inject(NgpDatePickerDateButtonToken) as NgpDatePickerDateButton<T>;\n}\n","import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerToken = new InjectionToken<NgpDatePicker<unknown>>('NgpDatePickerToken');\n\n/**\n * Inject the DatePicker directive instance\n */\nexport function injectDatePicker<T>(): NgpDatePicker<T> {\n return inject(NgpDatePickerToken) as NgpDatePicker<T>;\n}\n\n/**\n * Provide the DatePicker directive instance\n */\nexport function provideDatePicker<T>(datePicker: Type<NgpDatePicker<T>>): ExistingProvider {\n return { provide: NgpDatePickerToken, useExisting: datePicker };\n}\n","import { computed, contentChild, Directive } from '@angular/core';\nimport { NgpDatePickerDateButtonToken } from '../date-picker-date-button/date-picker-date-button-token';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A cell in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerCell]',\n exportAs: 'ngpDatePickerCell',\n host: {\n role: 'gridcell',\n '[attr.data-selected]': 'datePickerButton()?.selected() ? \"\" : null',\n '[attr.aria-selected]': 'datePickerButton()?.selected()',\n '[attr.aria-disabled]': 'datePickerButton()?.disabled()',\n '[attr.data-disabled]': 'datePickerButton()?.disabled() ? \"\" : null',\n '[attr.aria-labelledby]': 'labelId()',\n },\n})\nexport class NgpDatePickerCell {\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker();\n\n /**\n * Access the child date picker date button.\n */\n protected readonly datePickerButton = contentChild(NgpDatePickerDateButtonToken, {\n descendants: true,\n });\n\n /**\n * Access the label id.\n */\n protected readonly labelId = computed(() => this.datePicker.label()?.id());\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n InjectedState,\n} from 'ng-primitives/state';\nimport type { NgpDatePicker } from './date-picker';\n\nexport const NgpDatePickerStateToken = createStateToken<NgpDatePicker<unknown>>('DatePicker');\nexport const provideDatePickerState = createStateProvider(NgpDatePickerStateToken);\nexport const injectDatePickerState = createStateInjector(NgpDatePickerStateToken) as <\n T,\n>() => InjectedState<NgpDatePicker<T>>;\nexport const datePickerState = createState(NgpDatePickerStateToken);\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, HostListener, inject, OnDestroy } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerCellDate } from '../date-picker-cell-render/date-picker-cell-render-token';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\nimport { NgpDatePickerDateButtonToken } from './date-picker-date-button-token';\n\n/**\n * A button that represents a date in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerDateButton]',\n exportAs: 'ngpDatePickerDateButton',\n providers: [{ provide: NgpDatePickerDateButtonToken, useExisting: NgpDatePickerDateButton }],\n host: {\n '[attr.role]': '!isButton ? \"button\" : null',\n '[attr.tabindex]': 'focused() ? 0 : -1',\n '[attr.data-selected]': 'selected() ? \"\" : null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-outside-month]': 'outside() ? \"\" : null',\n '[attr.data-today]': 'today() ? \"\" : null',\n },\n hostDirectives: [NgpButton],\n})\nexport class NgpDatePickerDateButton<T> implements OnDestroy {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * The date this cell represents.\n */\n private readonly date = injectDatePickerCellDate<T>();\n\n /**\n * Determine if this is the focused date.\n */\n protected readonly focused = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this is the selected date.\n * @internal\n */\n readonly selected = computed(() => {\n const selected = this.state().date();\n return selected && this.dateAdapter.isSameDay(this.date, selected);\n });\n\n /**\n * Determine if this date is outside the current month.\n */\n protected readonly outside = computed(\n () => !this.dateAdapter.isSameMonth(this.date, this.state().focusedDate()),\n );\n\n /**\n * Determine if this date is today.\n */\n protected readonly today = computed(() =>\n this.dateAdapter.isSameDay(this.date, this.dateAdapter.now()),\n );\n\n /**\n * Determine if this date is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n const min = this.state().min();\n const max = this.state().max();\n\n if (this.state().disabled() || this.state().dateDisabled()(this.date)) {\n return true;\n }\n\n if (min && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), min) < 0) {\n return true;\n }\n\n if (max && this.dateAdapter.compare(this.dateAdapter.startOfDay(this.date), max) > 0) {\n return true;\n }\n\n return false;\n });\n\n /**\n * Determine if the element is a button.\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName === 'BUTTON';\n\n constructor() {\n this.datePicker.registerButton(this);\n syncButton({ disabled: this.disabled });\n }\n\n ngOnDestroy(): void {\n this.datePicker.unregisterButton(this);\n }\n\n /**\n * When the button is clicked, select the date.\n */\n @HostListener('click')\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n protected select(event?: KeyboardEvent): void {\n // if the button is disabled, or is already selected, do nothing.\n if (this.disabled() || this.selected()) {\n return;\n }\n\n // because this may not be a button, we should stop the event from firing twice due to\n // us listening to both the click and the keydown.enter event.\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.state().date.set(this.date);\n this.state().dateChange.emit(this.date);\n this.datePicker.setFocusedDate(this.date, 'mouse', 'forward');\n }\n\n /**\n * Focus if this is the current focused date.\n * @internal\n */\n focus(): void {\n if (this.dateAdapter.isSameDay(this.date, this.state().focusedDate())) {\n this.focusMonitor.focusVia(this.elementRef, 'keyboard');\n }\n }\n\n /**\n * Focus the previous cell.\n */\n @HostListener('keydown.arrowLeft', ['$event'])\n protected focusPrevious(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n } else {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n }\n }\n\n /**\n * Focus the next cell.\n */\n @HostListener('keydown.arrowRight', ['$event'])\n protected focusNext(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // in rtl, the arrow keys are reversed.\n if (this.getDirection() === 'rtl') {\n this.focusDate(\n this.dateAdapter.subtract(this.state().focusedDate(), { days: 1 }),\n 'backward',\n );\n } else {\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 1 }), 'forward');\n }\n }\n\n /**\n * Focus the above cell.\n */\n @HostListener('keydown.arrowUp', ['$event'])\n protected focusAbove(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.subtract(this.state().focusedDate(), { days: 7 }), 'backward');\n }\n\n /**\n * Focus the below cell.\n */\n @HostListener('keydown.arrowDown', ['$event'])\n protected focusBelow(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusDate(this.dateAdapter.add(this.state().focusedDate(), { days: 7 }), 'forward');\n }\n\n /**\n * Focus the first date of the month.\n */\n @HostListener('keydown.home', ['$event'])\n protected focusFirst(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.startOfMonth(this.state().focusedDate()), 'forward');\n }\n\n /**\n * Focus the last date of the month.\n */\n @HostListener('keydown.end', ['$event'])\n protected focusLast(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.focusDate(this.dateAdapter.endOfMonth(this.state().focusedDate()), 'backward');\n }\n\n /**\n * Focus the same date in the previous month.\n */\n @HostListener('keydown.pageUp', ['$event'])\n protected focusPreviousMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let previousMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n previousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);\n\n // if we are on a date that does not exist in the previous month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'forward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(previousMonthTarget, { day: date }), 'forward');\n }\n }\n\n /**\n * Focus the same date in the next month.\n */\n @HostListener('keydown.pageDown', ['$event'])\n protected focusNextMonth(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const date = this.dateAdapter.getDate(this.state().focusedDate());\n\n let nextMonthTarget = this.dateAdapter.startOfMonth(this.state().focusedDate());\n nextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });\n\n const lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);\n\n // if we are on a date that does not exist in the next month, we should focus the last day of the month.\n if (date > this.dateAdapter.getDate(lastDay)) {\n this.focusDate(lastDay, 'backward');\n return;\n } else {\n this.focusDate(this.dateAdapter.set(nextMonthTarget, { day: date }), 'backward');\n }\n }\n\n private focusDate(date: T, direction: 'forward' | 'backward'): void {\n this.datePicker.setFocusedDate(date, 'keyboard', direction);\n }\n\n /**\n * Get the direction of the element.\n */\n private getDirection(): 'ltr' | 'rtl' {\n return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\n\n/**\n * The grid that contains the days of the month.\n */\n@Directive({\n selector: '[ngpDatePickerGrid]',\n exportAs: 'ngpDatePickerGrid',\n host: {\n role: 'grid',\n '[attr.aria-labelledby]': 'labelId()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerGrid<T> {\n /**\n * Access the date picker state.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Determine the id for the label.\n */\n protected readonly labelId = computed(() => this.state().label()?.id());\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport type { NgpDatePickerLabel } from './date-picker-label';\n\nexport const NgpDatePickerLabelToken = new InjectionToken<NgpDatePickerLabel<unknown>>(\n 'NgpDatePickerLabelToken',\n);\n\n/**\n * Inject the DatePickerLabel directive instance\n */\nexport function injectDatePickerLabel<T>(): NgpDatePickerLabel<T> {\n return inject(NgpDatePickerLabelToken) as NgpDatePickerLabel<T>;\n}\n","import { Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { NgpDatePickerLabelToken } from './date-picker-label-token';\n\n/**\n * The label that displays the current month and year typically in the header of the date picker. This will be announced by screen readers when the date changes.\n */\n@Directive({\n selector: '[ngpDatePickerLabel]',\n exportAs: 'ngpDatePickerLabel',\n providers: [{ provide: NgpDatePickerLabelToken, useExisting: NgpDatePickerLabel }],\n host: {\n '[id]': 'id()',\n '[attr.aria-live]': 'ariaLive()',\n '[attr.data-disabled]': 'state().disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePickerLabel<T> {\n /**\n * Access the date picker.\n */\n protected readonly state = injectDatePickerState<T>();\n\n /**\n * Define a unique id for the label.\n */\n readonly id = input(uniqueId('ngp-date-picker-label'));\n\n /**\n * Define the aria live attribute.\n */\n readonly ariaLive = input('polite', {\n alias: 'aria-live',\n });\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the next month.\n */\n@Directive({\n selector: '[ngpDatePickerNextMonth]',\n exportAs: 'ngpDatePickerNextMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerNextMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const maxDate = this.state().max();\n const lastDay = this.dateAdapter.set(this.dateAdapter.endOfMonth(this.state().focusedDate()), {\n hour: 23,\n minute: 59,\n second: 59,\n millisecond: 999,\n });\n\n // if there is a max date and it is equal to or before the last day of the month, disable it.\n if (maxDate && this.dateAdapter.compare(maxDate, lastDay) <= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the next month.\n */\n @HostListener('click')\n protected navigateToNextMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the next month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.add(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'forward');\n }\n}\n","import { computed, Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NgpButton, syncButton } from 'ng-primitives/button';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport { injectDatePicker } from '../date-picker/date-picker-token';\n\n/**\n * A button that navigates to the previous month.\n */\n@Directive({\n selector: '[ngpDatePickerPreviousMonth]',\n exportAs: 'ngpDatePickerPreviousMonth',\n hostDirectives: [NgpButton],\n host: {\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.disabled]': 'isButton && disabled() ? true : null',\n '[attr.type]': 'isButton ? \"button\" : null',\n },\n})\nexport class NgpDatePickerPreviousMonth<T> {\n /**\n * Access the element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly datePicker = injectDatePicker<T>();\n\n /**\n * Access the date picker state.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Determine if this is a button element\n */\n protected readonly isButton = this.elementRef.nativeElement.tagName.toLowerCase() === 'button';\n\n /**\n * Determine if the next month is disabled.\n * @internal\n */\n readonly disabled = computed(() => {\n if (this.state().disabled()) {\n return true;\n }\n\n const minDate = this.state().min();\n\n // if the next month is out of bounds, disable it.\n const firstDay = this.dateAdapter.set(\n this.dateAdapter.startOfMonth(this.state().focusedDate()),\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n );\n\n // if there is a min date and it is equal to or after the first day of the month, disable it.\n if (minDate && this.dateAdapter.compare(minDate, firstDay) >= 0) {\n return true;\n }\n\n return false;\n });\n\n constructor() {\n syncButton({ disabled: this.disabled });\n }\n\n /**\n * Navigate to the previous month.\n */\n @HostListener('click')\n protected navigateToPreviouMonth(): void {\n if (this.disabled()) {\n return;\n }\n\n // move focus to the first day of the previous month.\n let date = this.state().focusedDate();\n date = this.dateAdapter.subtract(date, { months: 1 });\n date = this.dateAdapter.set(date, {\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n\n this.datePicker.setFocusedDate(date, 'mouse', 'backward');\n }\n}\n","import {\n computed,\n Directive,\n EmbeddedViewRef,\n inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport { onChange } from 'ng-primitives/utils';\nimport { injectDatePickerState } from '../date-picker/date-picker-state';\nimport {\n NgpDatePickerRowRenderToken,\n NgpDatePickerWeekToken,\n} from './date-picker-row-render-token';\n\n/**\n * A structural directive that renders a row of weekdays in the date picker grid.\n */\n@Directive({\n selector: '[ngpDatePickerRowRender]',\n exportAs: 'ngpDatePickerRowRender',\n providers: [{ provide: NgpDatePickerRowRenderToken, useExisting: NgpDatePickerRowRender }],\n})\nexport class NgpDatePickerRowRender<T> implements OnDestroy {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the date picker.\n */\n private readonly state = injectDatePickerState<T>();\n\n /**\n * Access the template ref for the cell.\n */\n private readonly templateRef = inject(TemplateRef);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Get all the days to display, this is the days of the current month\n * and the days of the previous and next month to fill the grid.\n */\n protected readonly days = computed(() => {\n const month = this.state().focusedDate();\n const days: T[] = [];\n\n // Get the first and last day of the month.\n let firstDay = this.dateAdapter.startOfMonth(month);\n let lastDay = this.dateAdapter.endOfMonth(month);\n\n // find the first and last day of visible in the grid.\n firstDay = this.dateAdapter.subtract(firstDay, {\n days: this.dateAdapter.getDay(firstDay),\n });\n lastDay = this.dateAdapter.add(lastDay, {\n days: 6 - this.dateAdapter.getDay(lastDay),\n });\n\n // collect all the days to display.\n while (firstDay <= lastDay) {\n days.push(firstDay);\n firstDay = this.dateAdapter.add(firstDay, { days: 1 });\n }\n\n return days;\n });\n\n // get the weeks to display.\n protected readonly weeks = computed(() => {\n const days = this.days();\n const weeks = [];\n\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return weeks;\n });\n\n /**\n * Store the embedded view refs of each rendered row.\n */\n private readonly viewRefs: EmbeddedViewRef<void>[] = [];\n\n constructor() {\n // re-render the rows when the month changes.\n onChange(this.state().focusedDate, (date, previousDate) => {\n if (!date || !previousDate || !this.dateAdapter.isSameMonth(date, previousDate)) {\n this.renderRows();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyRows();\n }\n\n /**\n * Render the row.\n */\n private renderRows(): void {\n const weeks = this.weeks();\n\n // clear the view container.\n this.destroyRows();\n\n // render the weeks.\n for (const week of weeks) {\n const viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, null, {\n injector: Injector.create({\n parent: this.viewContainerRef.injector,\n providers: [{ provide: NgpDatePickerWeekToken, useValue: week }],\n }),\n });\n this.viewRefs.push(viewRef);\n }\n }\n\n /**\n * Destroy the row.\n */\n private destroyRows(): void {\n for (const viewRef of this.viewRefs) {\n viewRef.destroy();\n }\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n contentChild,\n Directive,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDateAdapter } from 'ng-primitives/date-time';\nimport type { NgpDatePickerDateButton } from '../date-picker-date-button/date-picker-date-button';\nimport { NgpDatePickerLabelToken } from '../date-picker-label/date-picker-label-token';\nimport { datePickerState, provideDatePickerState } from './date-picker-state';\nimport { provideDatePicker } from './date-picker-token';\n\n/**\n * The outermost container for the date picker.\n */\n@Directive({\n selector: '[ngpDatePicker]',\n exportAs: 'ngpDatePicker',\n providers: [provideDatePicker(NgpDatePicker), provideDatePickerState()],\n host: {\n '[attr.data-disabled]': 'state.disabled() ? \"\" : null',\n },\n})\nexport class NgpDatePicker<T> {\n /**\n * Access the date adapter.\n */\n private readonly dateAdapter = injectDateAdapter<T>();\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * The minimum date that can be selected.\n */\n readonly min = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMin',\n });\n\n /**\n * The maximum date that can be selected.\n */\n readonly max = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerMax',\n });\n\n /**\n * Determine if the date picker is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpDatePickerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * A function that is called to determine if a specific date should be disabled.\n */\n readonly dateDisabled = input<(date: T) => boolean>(() => false, {\n alias: 'ngpDatePickerDateDisabled',\n });\n\n /**\n * The selected value.\n */\n readonly date = input<T | undefined>(undefined, {\n alias: 'ngpDatePickerDate',\n });\n\n /**\n * Emit when the date changes.\n */\n readonly dateChange = output<T | undefined>({\n alias: 'ngpDatePickerDateChange',\n });\n\n /**\n * The focused value.\n */\n readonly focusedDate = input<T>(this.dateAdapter.now(), {\n alias: 'ngpDatePickerFocusedDate',\n });\n\n /**\n * Emit when the focused date changes.\n */\n readonly focusedDateChange = output<T>({\n alias: 'ngpDatePickerFocusedDateChange',\n });\n\n /**\n * Detect the label element.\n * @internal\n */\n readonly label = contentChild(NgpDatePickerLabelToken, { descendants: true });\n\n /**\n * Access all the date picker buttons\n */\n private readonly buttons = signal<NgpDatePickerDateButton<T>[]>([]);\n\n /**\n * The date picker state.\n */\n protected readonly state = datePickerState<NgpDatePicker<T>>(this);\n\n /**\n * Set the focused date.\n * @param date The date to focus.\n * @internal\n */\n setFocusedDate(date: T, origin: FocusOrigin = 'mouse', direction: 'forward' | 'backward'): void {\n if (this.state.disabled()) {\n return;\n }\n\n const min = this.state.min();\n const max = this.state.max();\n\n if (min && this.dateAdapter.isBefore(date, min)) {\n date = min;\n }\n\n if (max && this.dateAdapter.isAfter(date, max)) {\n date = max;\n }\n\n // if the date is disabled, find the next available date in the specified direction.\n if (this.state.dateDisabled()(date)) {\n let nextDate = this.dateAdapter.add(date, { days: direction === 'forward' ? 1 : -1 });\n\n while (\n this.state.dateDisabled()(nextDate) ||\n (min && this.dateAdapter.isBefore(nextDate, min)) ||\n (max && this.dateAdapter.isAfter(nextDate, max))\n ) {\n nextDate = this.dateAdapter.add(nextDate, { days: direction === 'forward' ? 1 : -1 });\n }\n\n date = nextDate;\n }\n\n this.state.focusedDate.set(date);\n this.focusedDateChange.emit(date);\n\n if (origin === 'keyboard') {\n afterNextRender(\n {\n write: () => this.buttons().forEach(button => button.focus()),\n },\n {\n injector: this.injector,\n },\n );\n }\n }\n\n /**\n * Register a date button.\n * @param button The date button to register.\n * @internal\n */\n registerButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => [...buttons, button]);\n }\n\n /**\n * Unregister a date button.\n * @param button The date button to unregister.\n * @internal\n */\n unregisterButton(button: NgpDatePickerDateButton<T>): void {\n this.buttons.update(buttons => buttons.filter(b => b !== button));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -57,14 +57,6 @@ const injectDialogState = createStateInjector(NgpDialogStateToken);
|
|
|
57
57
|
*/
|
|
58
58
|
const dialogState = createState(NgpDialogStateToken);
|
|
59
59
|
|
|
60
|
-
const NgpDialogDescriptionToken = new InjectionToken('NgpDialogDescriptionToken');
|
|
61
|
-
/**
|
|
62
|
-
* Inject the DialogDescription directive instance
|
|
63
|
-
*/
|
|
64
|
-
function injectDialogDescription() {
|
|
65
|
-
return inject(NgpDialogDescriptionToken);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
60
|
class NgpDialogDescription {
|
|
69
61
|
constructor() {
|
|
70
62
|
/** Access the dialog */
|
|
@@ -84,14 +76,13 @@ class NgpDialogDescription {
|
|
|
84
76
|
this.dialog().removeDescribedBy(this.id());
|
|
85
77
|
}
|
|
86
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
87
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogDescription, isStandalone: true, selector: "[ngpDialogDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } },
|
|
79
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogDescription, isStandalone: true, selector: "[ngpDialogDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogDescription"], ngImport: i0 }); }
|
|
88
80
|
}
|
|
89
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogDescription, decorators: [{
|
|
90
82
|
type: Directive,
|
|
91
83
|
args: [{
|
|
92
84
|
selector: '[ngpDialogDescription]',
|
|
93
85
|
exportAs: 'ngpDialogDescription',
|
|
94
|
-
providers: [{ provide: NgpDialogDescriptionToken, useExisting: NgpDialogDescription }],
|
|
95
86
|
host: {
|
|
96
87
|
'[id]': 'id()',
|
|
97
88
|
},
|
|
@@ -153,14 +144,6 @@ function injectDialogRef() {
|
|
|
153
144
|
return inject(NgpDialogRef);
|
|
154
145
|
}
|
|
155
146
|
|
|
156
|
-
const NgpDialogOverlayToken = new InjectionToken('NgpDialogOverlayToken');
|
|
157
|
-
/**
|
|
158
|
-
* Inject the DialogOverlay directive instance
|
|
159
|
-
*/
|
|
160
|
-
function injectDialogOverlay() {
|
|
161
|
-
return inject(NgpDialogOverlayToken);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
147
|
class NgpDialogOverlay {
|
|
165
148
|
constructor() {
|
|
166
149
|
/** Access the dialog ref. */
|
|
@@ -170,14 +153,13 @@ class NgpDialogOverlay {
|
|
|
170
153
|
this.dialogRef.close();
|
|
171
154
|
}
|
|
172
155
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
173
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgpDialogOverlay, isStandalone: true, selector: "[ngpDialogOverlay]", host: { listeners: { "click": "close()" } },
|
|
156
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgpDialogOverlay, isStandalone: true, selector: "[ngpDialogOverlay]", host: { listeners: { "click": "close()" } }, exportAs: ["ngpDialogOverlay"], hostDirectives: [{ directive: i1.NgpExitAnimation }], ngImport: i0 }); }
|
|
174
157
|
}
|
|
175
158
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogOverlay, decorators: [{
|
|
176
159
|
type: Directive,
|
|
177
160
|
args: [{
|
|
178
161
|
selector: '[ngpDialogOverlay]',
|
|
179
162
|
exportAs: 'ngpDialogOverlay',
|
|
180
|
-
providers: [{ provide: NgpDialogOverlayToken, useExisting: NgpDialogOverlay }],
|
|
181
163
|
hostDirectives: [NgpExitAnimation],
|
|
182
164
|
}]
|
|
183
165
|
}], propDecorators: { close: [{
|
|
@@ -185,14 +167,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
|
|
|
185
167
|
args: ['click']
|
|
186
168
|
}] } });
|
|
187
169
|
|
|
188
|
-
const NgpDialogTitleToken = new InjectionToken('NgpDialogTitleToken');
|
|
189
|
-
/**
|
|
190
|
-
* Inject the DialogTitle directive instance
|
|
191
|
-
*/
|
|
192
|
-
function injectDialogTitle() {
|
|
193
|
-
return inject(NgpDialogTitleToken);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
170
|
class NgpDialogTitle {
|
|
197
171
|
constructor() {
|
|
198
172
|
/** Access the dialog. */
|
|
@@ -212,14 +186,13 @@ class NgpDialogTitle {
|
|
|
212
186
|
this.dialog().removeLabelledBy(this.id());
|
|
213
187
|
}
|
|
214
188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
215
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogTitle, isStandalone: true, selector: "[ngpDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } },
|
|
189
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogTitle, isStandalone: true, selector: "[ngpDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, exportAs: ["ngpDialogTitle"], ngImport: i0 }); }
|
|
216
190
|
}
|
|
217
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogTitle, decorators: [{
|
|
218
192
|
type: Directive,
|
|
219
193
|
args: [{
|
|
220
194
|
selector: '[ngpDialogTitle]',
|
|
221
195
|
exportAs: 'ngpDialogTitle',
|
|
222
|
-
providers: [{ provide: NgpDialogTitleToken, useExisting: NgpDialogTitle }],
|
|
223
196
|
host: {
|
|
224
197
|
'[id]': 'id()',
|
|
225
198
|
},
|
|
@@ -428,14 +401,6 @@ function injectDialogManager() {
|
|
|
428
401
|
return inject(NgpDialogManager);
|
|
429
402
|
}
|
|
430
403
|
|
|
431
|
-
const NgpDialogTriggerToken = new InjectionToken('NgpDialogTriggerToken');
|
|
432
|
-
/**
|
|
433
|
-
* Inject the DialogTrigger directive instance
|
|
434
|
-
*/
|
|
435
|
-
function injectDialogTrigger() {
|
|
436
|
-
return inject(NgpDialogTriggerToken);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
404
|
class NgpDialogTrigger {
|
|
440
405
|
constructor() {
|
|
441
406
|
/** Access the dialog manager. */
|
|
@@ -465,14 +430,13 @@ class NgpDialogTrigger {
|
|
|
465
430
|
});
|
|
466
431
|
}
|
|
467
432
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
468
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } },
|
|
433
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.7", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, exportAs: ["ngpDialogTrigger"], ngImport: i0 }); }
|
|
469
434
|
}
|
|
470
435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgpDialogTrigger, decorators: [{
|
|
471
436
|
type: Directive,
|
|
472
437
|
args: [{
|
|
473
438
|
selector: '[ngpDialogTrigger]',
|
|
474
439
|
exportAs: 'ngpDialogTrigger',
|
|
475
|
-
providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }],
|
|
476
440
|
}]
|
|
477
441
|
}], propDecorators: { launch: [{
|
|
478
442
|
type: HostListener,
|
|
@@ -557,5 +521,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImpor
|
|
|
557
521
|
* Generated bundle index. Do not edit.
|
|
558
522
|
*/
|
|
559
523
|
|
|
560
|
-
export { NgpDialog, NgpDialogDescription,
|
|
524
|
+
export { NgpDialog, NgpDialogDescription, NgpDialogManager, NgpDialogOverlay, NgpDialogRef, NgpDialogTitle, NgpDialogTrigger, injectDialogRef, injectDialogState, provideDialogConfig, provideDialogState };
|
|
561
525
|
//# sourceMappingURL=ng-primitives-dialog.mjs.map
|