ng-primitives 0.89.0 → 0.91.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 +98 -3
- package/accordion/index.d.ts +361 -7
- package/ai/index.d.ts +238 -16
- package/autofill/index.d.ts +62 -1
- package/avatar/index.d.ts +155 -5
- package/breadcrumbs/index.d.ts +200 -7
- package/button/index.d.ts +39 -3
- package/checkbox/index.d.ts +137 -2
- package/combobox/index.d.ts +414 -8
- package/common/index.d.ts +31 -4
- package/date-picker/index.d.ts +714 -18
- package/date-time/index.d.ts +289 -3
- package/date-time-luxon/index.d.ts +31 -1
- package/dialog/index.d.ts +253 -9
- package/fesm2022/ng-primitives-a11y.mjs +42 -58
- package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
- package/fesm2022/ng-primitives-accordion.mjs +249 -225
- package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/ng-primitives-ai.mjs +61 -58
- package/fesm2022/ng-primitives-ai.mjs.map +1 -1
- package/fesm2022/ng-primitives-autofill.mjs +55 -38
- package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
- package/fesm2022/ng-primitives-avatar.mjs +105 -145
- package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/ng-primitives-breadcrumbs.mjs +106 -49
- package/fesm2022/ng-primitives-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ng-primitives-button.mjs +20 -42
- package/fesm2022/ng-primitives-button.mjs.map +1 -1
- package/fesm2022/ng-primitives-checkbox.mjs +110 -84
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-combobox.mjs +82 -78
- package/fesm2022/ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/ng-primitives-common.mjs +5 -5
- package/fesm2022/ng-primitives-common.mjs.map +1 -1
- package/fesm2022/ng-primitives-date-picker.mjs +119 -112
- package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
- package/fesm2022/ng-primitives-dialog.mjs +48 -47
- package/fesm2022/ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/ng-primitives-file-upload.mjs +56 -48
- package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
- package/fesm2022/ng-primitives-focus-trap.mjs +9 -8
- package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
- package/fesm2022/ng-primitives-form-field.mjs +97 -64
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-input-otp.mjs +44 -43
- package/fesm2022/ng-primitives-input-otp.mjs.map +1 -1
- package/fesm2022/ng-primitives-input.mjs +38 -54
- package/fesm2022/ng-primitives-input.mjs.map +1 -1
- package/fesm2022/ng-primitives-interactions.mjs +59 -54
- package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
- package/fesm2022/ng-primitives-internal.mjs +14 -14
- package/fesm2022/ng-primitives-internal.mjs.map +1 -1
- package/fesm2022/ng-primitives-listbox.mjs +52 -50
- package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-menu.mjs +86 -72
- package/fesm2022/ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-meter.mjs +38 -35
- package/fesm2022/ng-primitives-meter.mjs.map +1 -1
- package/fesm2022/ng-primitives-pagination.mjs +83 -74
- package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/ng-primitives-popover.mjs +67 -60
- package/fesm2022/ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/ng-primitives-portal.mjs +11 -12
- package/fesm2022/ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/ng-primitives-progress.mjs +43 -40
- package/fesm2022/ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/ng-primitives-radio.mjs +35 -33
- package/fesm2022/ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/ng-primitives-resize.mjs +4 -4
- package/fesm2022/ng-primitives-resize.mjs.map +1 -1
- package/fesm2022/ng-primitives-roving-focus.mjs +264 -237
- package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/ng-primitives-search.mjs +9 -9
- package/fesm2022/ng-primitives-search.mjs.map +1 -1
- package/fesm2022/ng-primitives-select.mjs +73 -69
- package/fesm2022/ng-primitives-select.mjs.map +1 -1
- package/fesm2022/ng-primitives-separator.mjs +7 -7
- package/fesm2022/ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +287 -253
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +173 -3
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs +105 -101
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +48 -43
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-textarea.mjs +33 -41
- package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
- package/fesm2022/ng-primitives-toast.mjs +19 -19
- package/fesm2022/ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +160 -159
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +81 -68
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-toolbar.mjs +31 -40
- package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/ng-primitives-tooltip.mjs +68 -60
- package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs +50 -37
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/file-upload/index.d.ts +148 -4
- package/focus-trap/index.d.ts +98 -2
- package/form-field/index.d.ts +266 -7
- package/index.d.ts +2 -2
- package/input/index.d.ts +84 -2
- package/input-otp/index.d.ts +247 -4
- package/interactions/index.d.ts +295 -16
- package/internal/index.d.ts +201 -10
- package/listbox/index.d.ts +209 -6
- package/menu/index.d.ts +297 -8
- package/meter/index.d.ts +67 -6
- package/package.json +28 -28
- package/pagination/index.d.ts +211 -7
- package/popover/index.d.ts +224 -5
- package/portal/index.d.ts +389 -6
- package/progress/index.d.ts +124 -6
- package/radio/index.d.ts +140 -5
- package/resize/index.d.ts +29 -1
- package/roving-focus/index.d.ts +154 -4
- package/schematics/ng-add/schema.d.ts +0 -1
- package/schematics/ng-generate/__snapshots__/index.spec.ts.snap +1 -1
- package/schematics/ng-generate/templates/checkbox/checkbox.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/slider/slider.__fileSuffix@dasherize__.ts.template +6 -3
- package/schematics/ng-generate/templates/switch/switch.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toggle/toggle.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toolbar/toolbar.__fileSuffix@dasherize__.ts.template +1 -1
- package/search/index.d.ts +66 -3
- package/select/index.d.ts +341 -8
- package/separator/index.d.ts +30 -2
- package/slider/index.d.ts +471 -10
- package/state/index.d.ts +68 -11
- package/switch/index.d.ts +151 -3
- package/tabs/index.d.ts +222 -7
- package/textarea/index.d.ts +87 -2
- package/toast/index.d.ts +219 -4
- package/toggle/index.d.ts +98 -2
- package/toggle-group/index.d.ts +168 -5
- package/toolbar/index.d.ts +43 -2
- package/tooltip/index.d.ts +214 -5
- package/utils/index.d.ts +170 -9
- package/a11y/active-descendant/active-descendant.d.ts +0 -42
- package/a11y/visually-hidden/visually-hidden-state.d.ts +0 -17
- package/a11y/visually-hidden/visually-hidden.d.ts +0 -50
- package/accordion/accordion/accordion-state.d.ts +0 -17
- package/accordion/accordion/accordion.d.ts +0 -50
- package/accordion/accordion-content/accordion-content.d.ts +0 -40
- package/accordion/accordion-item/accordion-item-state.d.ts +0 -17
- package/accordion/accordion-item/accordion-item.d.ts +0 -50
- package/accordion/accordion-trigger/accordion-trigger.d.ts +0 -31
- package/accordion/config/accordion-config.d.ts +0 -32
- package/ai/prompt-composer/prompt-composer-state.d.ts +0 -17
- package/ai/prompt-composer/prompt-composer.d.ts +0 -23
- package/ai/prompt-composer-dictation/prompt-composer-dictation-state.d.ts +0 -17
- package/ai/prompt-composer-dictation/prompt-composer-dictation.d.ts +0 -29
- package/ai/prompt-composer-input/prompt-composer-input-state.d.ts +0 -17
- package/ai/prompt-composer-input/prompt-composer-input.d.ts +0 -16
- package/ai/prompt-composer-submit/prompt-composer-submit-state.d.ts +0 -17
- package/ai/prompt-composer-submit/prompt-composer-submit.d.ts +0 -15
- package/ai/thread/thread-state.d.ts +0 -17
- package/ai/thread/thread.d.ts +0 -23
- package/ai/thread-message/thread-message-state.d.ts +0 -17
- package/ai/thread-message/thread-message.d.ts +0 -11
- package/ai/thread-suggestion/thread-suggestion-state.d.ts +0 -17
- package/ai/thread-suggestion/thread-suggestion.d.ts +0 -14
- package/ai/thread-viewport/thread-viewport-state.d.ts +0 -17
- package/ai/thread-viewport/thread-viewport.d.ts +0 -34
- package/autofill/autofill/autofill.d.ts +0 -19
- package/avatar/avatar/avatar-state.d.ts +0 -17
- package/avatar/avatar/avatar.d.ts +0 -29
- package/avatar/avatar-fallback/avatar-fallback.d.ts +0 -37
- package/avatar/avatar-image/avatar-image.d.ts +0 -27
- package/avatar/config/avatar-config.d.ts +0 -21
- package/breadcrumbs/breadcrumb-ellipsis/breadcrumb-ellipsis.d.ts +0 -8
- package/breadcrumbs/breadcrumb-item/breadcrumb-item.d.ts +0 -8
- package/breadcrumbs/breadcrumb-link/breadcrumb-link.d.ts +0 -9
- package/breadcrumbs/breadcrumb-list/breadcrumb-list.d.ts +0 -8
- package/breadcrumbs/breadcrumb-page/breadcrumb-page.d.ts +0 -8
- package/breadcrumbs/breadcrumb-separator/breadcrumb-separator.d.ts +0 -8
- package/breadcrumbs/breadcrumbs/breadcrumbs.d.ts +0 -8
- package/button/button/button-state.d.ts +0 -17
- package/button/button/button.d.ts +0 -15
- package/button/button/setup-button.d.ts +0 -15
- package/checkbox/checkbox/checkbox-state.d.ts +0 -17
- package/checkbox/checkbox/checkbox.d.ts +0 -45
- package/combobox/combobox/combobox-state.d.ts +0 -17
- package/combobox/combobox/combobox.d.ts +0 -222
- package/combobox/combobox-button/combobox-button.d.ts +0 -18
- package/combobox/combobox-dropdown/combobox-dropdown.d.ts +0 -21
- package/combobox/combobox-input/combobox-input.d.ts +0 -36
- package/combobox/combobox-option/combobox-option.d.ts +0 -51
- package/combobox/combobox-portal/combobox-portal.d.ts +0 -37
- package/combobox/config/combobox-config.d.ts +0 -28
- package/combobox/utils.d.ts +0 -9
- package/common/header/header-token.d.ts +0 -10
- package/common/header/header.d.ts +0 -13
- package/common/types/orientation.d.ts +0 -1
- package/common/types/selection.d.ts +0 -1
- package/date-picker/config/date-picker-config.d.ts +0 -22
- package/date-picker/date-picker/date-picker-first-day-of-week.d.ts +0 -29
- package/date-picker/date-picker/date-picker-state.d.ts +0 -9
- package/date-picker/date-picker/date-picker.d.ts +0 -129
- package/date-picker/date-picker-cell/date-picker-cell.d.ts +0 -20
- package/date-picker/date-picker-cell-render/date-picker-cell-render-token.d.ts +0 -12
- package/date-picker/date-picker-cell-render/date-picker-cell-render.d.ts +0 -39
- package/date-picker/date-picker-date-button/date-picker-date-button-token.d.ts +0 -7
- package/date-picker/date-picker-date-button/date-picker-date-button.d.ts +0 -114
- package/date-picker/date-picker-grid/date-picker-grid.d.ts +0 -16
- package/date-picker/date-picker-label/date-picker-label-token.d.ts +0 -7
- package/date-picker/date-picker-label/date-picker-label.d.ts +0 -20
- package/date-picker/date-picker-next-month/date-picker-next-month.d.ts +0 -34
- package/date-picker/date-picker-previous-month/date-picker-previous-month.d.ts +0 -34
- package/date-picker/date-picker-row-render/date-picker-row-render-token.d.ts +0 -12
- package/date-picker/date-picker-row-render/date-picker-row-render.d.ts +0 -65
- package/date-picker/date-range-picker/date-range-picker-state.d.ts +0 -19
- package/date-picker/date-range-picker/date-range-picker.d.ts +0 -149
- package/date-time/date-adapter/date-adapter-token.d.ts +0 -11
- package/date-time/date-adapter/date-adapter.d.ts +0 -169
- package/date-time/native-date-adapter/native-date-adapter.d.ts +0 -106
- package/date-time-luxon/luxon-date-adapter/luxon-date-adapter.d.ts +0 -28
- package/dialog/config/dialog-config.d.ts +0 -41
- package/dialog/dialog/dialog-ref.d.ts +0 -45
- package/dialog/dialog/dialog-state.d.ts +0 -17
- package/dialog/dialog/dialog.d.ts +0 -37
- package/dialog/dialog/dialog.service.d.ts +0 -69
- package/dialog/dialog-description/dialog-description.d.ts +0 -12
- package/dialog/dialog-overlay/dialog-overlay.d.ts +0 -16
- package/dialog/dialog-title/dialog-title.d.ts +0 -12
- package/dialog/dialog-trigger/dialog-trigger.d.ts +0 -26
- package/file-upload/file-dropzone/file-drop-filter.d.ts +0 -2
- package/file-upload/file-dropzone/file-dropzone-state.d.ts +0 -17
- package/file-upload/file-dropzone/file-dropzone.d.ts +0 -55
- package/file-upload/file-upload/file-upload-state.d.ts +0 -17
- package/file-upload/file-upload/file-upload.d.ts +0 -72
- package/focus-trap/focus-trap/focus-trap-state.d.ts +0 -17
- package/focus-trap/focus-trap/focus-trap.d.ts +0 -85
- package/form-field/description/description.d.ts +0 -17
- package/form-field/error/error.d.ts +0 -32
- package/form-field/form-control/form-control-state.d.ts +0 -17
- package/form-field/form-control/form-control.d.ts +0 -44
- package/form-field/form-field/form-field-state.d.ts +0 -17
- package/form-field/form-field/form-field.d.ts +0 -119
- package/form-field/label/label.d.ts +0 -30
- package/input/input/input-state.d.ts +0 -17
- package/input/input/input.d.ts +0 -34
- package/input-otp/input-otp/input-otp-state.d.ts +0 -17
- package/input-otp/input-otp/input-otp.d.ts +0 -133
- package/input-otp/input-otp-input/input-otp-input.d.ts +0 -57
- package/input-otp/input-otp-slot/input-otp-slot.d.ts +0 -45
- package/interactions/config/interactions-config.d.ts +0 -30
- package/interactions/focus/focus-interaction.d.ts +0 -14
- package/interactions/focus/focus.d.ts +0 -19
- package/interactions/focus-visible/focus-visible-interaction.d.ts +0 -12
- package/interactions/focus-visible/focus-visible.d.ts +0 -19
- package/interactions/hover/hover-interaction.d.ts +0 -17
- package/interactions/hover/hover.d.ts +0 -31
- package/interactions/interactions/interactions.d.ts +0 -20
- package/interactions/move/move.d.ts +0 -114
- package/interactions/press/press-interaction.d.ts +0 -14
- package/interactions/press/press.d.ts +0 -26
- package/internal/exit-animation/exit-animation-manager.d.ts +0 -17
- package/internal/exit-animation/exit-animation.d.ts +0 -26
- package/internal/signals/explicit-effect.d.ts +0 -19
- package/internal/style-injector/style-injector.d.ts +0 -44
- package/internal/utilities/dom-removal.d.ts +0 -6
- package/internal/utilities/element-ref.d.ts +0 -6
- package/internal/utilities/mutation-observer.d.ts +0 -39
- package/internal/utilities/overflow.d.ts +0 -13
- package/internal/utilities/resize.d.ts +0 -31
- package/internal/utilities/scrolling.d.ts +0 -1
- package/listbox/listbox/listbox-state.d.ts +0 -17
- package/listbox/listbox/listbox.d.ts +0 -101
- package/listbox/listbox-header/listbox-header.d.ts +0 -9
- package/listbox/listbox-option/listbox-option.d.ts +0 -68
- package/listbox/listbox-section/listbox-section.d.ts +0 -9
- package/listbox/listbox-trigger/listbox-trigger.d.ts +0 -13
- package/menu/config/menu-config.d.ts +0 -44
- package/menu/menu/menu-token.d.ts +0 -11
- package/menu/menu/menu.d.ts +0 -22
- package/menu/menu-item/menu-item.d.ts +0 -30
- package/menu/menu-trigger/menu-trigger-state.d.ts +0 -17
- package/menu/menu-trigger/menu-trigger.d.ts +0 -98
- package/menu/submenu-trigger/submenu-trigger-state.d.ts +0 -17
- package/menu/submenu-trigger/submenu-trigger.d.ts +0 -88
- package/meter/meter/meter-state.d.ts +0 -17
- package/meter/meter/meter.d.ts +0 -27
- package/meter/meter-indicator/meter-indicator.d.ts +0 -7
- package/meter/meter-label/meter-label.d.ts +0 -10
- package/meter/meter-track/meter-track.d.ts +0 -5
- package/meter/meter-value/meter-value.d.ts +0 -5
- package/pagination/pagination/pagination-state.d.ts +0 -17
- package/pagination/pagination/pagination.d.ts +0 -45
- package/pagination/pagination-button/pagination-button.d.ts +0 -39
- package/pagination/pagination-first/pagination-first.d.ts +0 -28
- package/pagination/pagination-last/pagination-last.d.ts +0 -28
- package/pagination/pagination-next/pagination-next.d.ts +0 -31
- package/pagination/pagination-previous/pagination-previous.d.ts +0 -31
- package/popover/config/popover-config.d.ts +0 -64
- package/popover/popover/popover.d.ts +0 -18
- package/popover/popover-arrow/popover-arrow.d.ts +0 -6
- package/popover/popover-trigger/popover-trigger-state.d.ts +0 -19
- package/popover/popover-trigger/popover-trigger.d.ts +0 -128
- package/portal/offset.d.ts +0 -39
- package/portal/overlay-arrow.d.ts +0 -1
- package/portal/overlay-token.d.ts +0 -12
- package/portal/overlay.d.ts +0 -214
- package/portal/portal.d.ts +0 -94
- package/portal/scroll-strategy.d.ts +0 -23
- package/progress/progress/progress-state.d.ts +0 -17
- package/progress/progress/progress.d.ts +0 -61
- package/progress/progress-indicator/progress-indicator.d.ts +0 -17
- package/progress/progress-label/progress-label.d.ts +0 -14
- package/progress/progress-track/progress-track.d.ts +0 -9
- package/progress/progress-value/progress-value.d.ts +0 -9
- package/radio/radio-group/radio-group-state.d.ts +0 -18
- package/radio/radio-group/radio-group.d.ts +0 -54
- package/radio/radio-indicator/radio-indicator.d.ts +0 -21
- package/radio/radio-item/radio-item-state.d.ts +0 -18
- package/radio/radio-item/radio-item.d.ts +0 -45
- package/resize/resize/resize.d.ts +0 -26
- package/roving-focus/roving-focus-group/roving-focus-group-state.d.ts +0 -17
- package/roving-focus/roving-focus-group/roving-focus-group-token.d.ts +0 -21
- package/roving-focus/roving-focus-group/roving-focus-group.d.ts +0 -94
- package/roving-focus/roving-focus-item/roving-focus-item.d.ts +0 -53
- package/search/search/search-state.d.ts +0 -17
- package/search/search/search.d.ts +0 -36
- package/search/search-clear/search-clear.d.ts +0 -16
- package/select/config/select-config.d.ts +0 -28
- package/select/native-select/native-select-state.d.ts +0 -17
- package/select/native-select/native-select.d.ts +0 -22
- package/select/select/select-state.d.ts +0 -17
- package/select/select/select.d.ts +0 -172
- package/select/select-dropdown/select-dropdown.d.ts +0 -17
- package/select/select-option/select-option.d.ts +0 -51
- package/select/select-portal/select-portal.d.ts +0 -37
- package/separator/config/separator-config.d.ts +0 -22
- package/separator/separator/separator.d.ts +0 -11
- package/slider/range-slider/range-slider/range-slider-state.d.ts +0 -17
- package/slider/range-slider/range-slider/range-slider.d.ts +0 -115
- package/slider/range-slider/range-slider-range/range-slider-range.d.ts +0 -12
- package/slider/range-slider/range-slider-thumb/range-slider-thumb.d.ts +0 -44
- package/slider/range-slider/range-slider-track/range-slider-track.d.ts +0 -22
- package/slider/slider/slider-state.d.ts +0 -17
- package/slider/slider/slider.d.ts +0 -58
- package/slider/slider-range/slider-range.d.ts +0 -12
- package/slider/slider-thumb/slider-thumb.d.ts +0 -29
- package/slider/slider-track/slider-track.d.ts +0 -22
- package/switch/switch/switch-state.d.ts +0 -17
- package/switch/switch/switch.d.ts +0 -49
- package/switch/switch-thumb/switch-thumb.d.ts +0 -13
- package/tabs/config/tabs-config.d.ts +0 -32
- package/tabs/tab-button/tab-button.d.ts +0 -59
- package/tabs/tab-list/tab-list.d.ts +0 -12
- package/tabs/tab-panel/tab-panel-token.d.ts +0 -8
- package/tabs/tab-panel/tab-panel.d.ts +0 -38
- package/tabs/tabset/tabset-state.d.ts +0 -17
- package/tabs/tabset/tabset.d.ts +0 -71
- package/textarea/textarea/textarea-state.d.ts +0 -17
- package/textarea/textarea/textarea.d.ts +0 -19
- package/toast/config/toast-config.d.ts +0 -70
- package/toast/toast/toast-context.d.ts +0 -3
- package/toast/toast/toast-manager.d.ts +0 -49
- package/toast/toast/toast-options.d.ts +0 -34
- package/toast/toast/toast-timer.d.ts +0 -14
- package/toast/toast/toast.d.ts +0 -72
- package/toggle/toggle/toggle-state.d.ts +0 -17
- package/toggle/toggle/toggle.d.ts +0 -44
- package/toggle-group/config/toggle-group-config.d.ts +0 -32
- package/toggle-group/toggle-group/toggle-group-state.d.ts +0 -17
- package/toggle-group/toggle-group/toggle-group.d.ts +0 -64
- package/toggle-group/toggle-group-item/toggle-group-item-state.d.ts +0 -17
- package/toggle-group/toggle-group-item/toggle-group-item.d.ts +0 -34
- package/toolbar/toolbar/toolbar-state.d.ts +0 -17
- package/toolbar/toolbar/toolbar.d.ts +0 -20
- package/tooltip/config/tooltip-config.d.ts +0 -59
- package/tooltip/tooltip/tooltip.d.ts +0 -17
- package/tooltip/tooltip-arrow/tooltip-arrow.d.ts +0 -6
- package/tooltip/tooltip-text-content/tooltip-text-content.component.d.ts +0 -14
- package/tooltip/tooltip-trigger/tooltip-trigger-state.d.ts +0 -17
- package/tooltip/tooltip-trigger/tooltip-trigger.d.ts +0 -126
- package/utils/forms/providers.d.ts +0 -6
- package/utils/forms/status.d.ts +0 -16
- package/utils/forms/types.d.ts +0 -8
- package/utils/helpers/attributes.d.ts +0 -2
- package/utils/helpers/disposables.d.ts +0 -40
- package/utils/helpers/unique-id.d.ts +0 -6
- package/utils/helpers/validators.d.ts +0 -51
- package/utils/observables/take-until-destroyed.d.ts +0 -10
- package/utils/signals/index.d.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-listbox.mjs","sources":["../../../../packages/ng-primitives/listbox/src/listbox-header/listbox-header.ts","../../../../packages/ng-primitives/listbox/src/listbox/listbox-state.ts","../../../../packages/ng-primitives/listbox/src/listbox-option/listbox-option.ts","../../../../packages/ng-primitives/listbox/src/listbox-section/listbox-section.ts","../../../../packages/ng-primitives/listbox/src/listbox-trigger/listbox-trigger.ts","../../../../packages/ng-primitives/listbox/src/listbox/listbox.ts","../../../../packages/ng-primitives/listbox/src/ng-primitives-listbox.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\nimport { NgpHeaderToken } from 'ng-primitives/common';\nimport { uniqueId } from 'ng-primitives/utils';\n\n@Directive({\n selector: '[ngpListboxHeader]',\n exportAs: 'ngpListboxHeader',\n host: {\n role: 'presentation',\n '[attr.id]': 'id()',\n },\n // temporary until we remove NgpHeader completely - this prevents breaking changes\n providers: [{ provide: NgpHeaderToken, useExisting: NgpListboxHeader }],\n})\nexport class NgpListboxHeader {\n /**\n * The id of the listbox header.\n */\n readonly id = input(uniqueId('ngp-listbox-header'));\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpListbox } from './listbox';\n\n/**\n * The state token for the Listbox primitive.\n */\nexport const NgpListboxStateToken = createStateToken<NgpListbox<unknown>>('Listbox');\n\n/**\n * Provides the Listbox state.\n */\nexport const provideListboxState = createStateProvider(NgpListboxStateToken);\n\n/**\n * Injects the Listbox state.\n */\nexport const injectListboxState = createStateInjector<NgpListbox<unknown>>(NgpListboxStateToken, {\n deferred: true,\n});\n\n/**\n * The Listbox state registration function.\n */\nexport const listboxState = createState(NgpListboxStateToken);\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n effect,\n input,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef, onDomRemoval, scrollIntoViewIfNeeded } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport type { NgpListbox } from '../listbox/listbox';\nimport { injectListboxState } from '../listbox/listbox-state';\n\n@Directive({\n selector: '[ngpListboxOption]',\n exportAs: 'ngpListboxOption',\n host: {\n role: 'option',\n '[attr.id]': 'id()',\n '[attr.aria-disabled]': 'optionDisabled()',\n '[attr.data-active]': 'listbox()?.isFocused() && active() ? \"\" : undefined',\n '[attr.data-selected]': 'selected() ? \"\" : undefined',\n '[attr.data-disabled]': 'optionDisabled() ? \"\" : undefined',\n '(click)': 'select(\"mouse\")',\n '(mouseenter)': 'activate()',\n '(keydown.enter)': 'select(\"keyboard\")',\n '(keydown.space)': 'select(\"keyboard\")',\n },\n})\nexport class NgpListboxOption<T> implements OnDestroy {\n protected readonly listbox = injectListboxState<NgpListbox<T>>();\n private readonly elementRef = injectElementRef();\n\n /**\n * The id of the listbox.\n */\n readonly id = input(uniqueId('ngp-listbox-option'));\n\n /**\n * The value of the option.\n */\n readonly value = input.required<T>({\n alias: 'ngpListboxOptionValue',\n });\n\n /**\n * Whether the option is disabled.\n */\n readonly optionDisabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpListboxOptionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Whether the option is active.\n */\n protected readonly active = signal<boolean>(false);\n\n /**\n * @internal\n * Whether the option is selected.\n */\n readonly selected = computed(() => this.listbox()?.isSelected(this.value()));\n\n /**\n * @internal\n * Whether the option is disabled - this is used by the `Highlightable` interface.\n */\n get disabled(): boolean {\n return this._disabled();\n }\n\n /**\n * Whether the option is disabled.\n */\n protected readonly _disabled = computed(\n () => this.optionDisabled() || (this.listbox()?.disabled() ?? false),\n );\n\n constructor() {\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n focus: true,\n disabled: this._disabled,\n });\n\n // the listbox may not be available when the option is initialized\n // so we need to add the option when the listbox is available\n effect(() => this.listbox()?.addOption(this));\n\n // any time the element is removed from the dom, we need to remove the option from the listbox\n // and we also want to reset the active state\n onDomRemoval(this.elementRef.nativeElement, () => {\n this.listbox()?.removeOption(this);\n this.setInactiveStyles();\n });\n }\n\n ngOnDestroy(): void {\n this.listbox()?.removeOption(this);\n }\n\n /**\n * @internal\n * Sets the active state of the option.\n */\n setActiveStyles(): void {\n this.active.set(true);\n scrollIntoViewIfNeeded(this.elementRef.nativeElement);\n }\n\n /**\n * @internal\n * Sets the inactive state of the option.\n */\n setInactiveStyles(): void {\n this.active.set(false);\n }\n\n /**\n * @internal\n * Gets the label of the option, used by the `Highlightable` interface.\n */\n getLabel(): string {\n return this.elementRef.nativeElement.textContent ?? '';\n }\n\n /**\n * @internal\n * Selects the option.\n */\n select(origin: FocusOrigin): void {\n this.listbox()?.selectOption(this.value(), origin);\n }\n\n /**\n * @internal\n * Activate the current options.\n */\n activate(): void {\n if (this._disabled()) {\n return;\n }\n\n this.listbox()?.activateOption(this.value());\n }\n}\n","import { contentChild, Directive } from '@angular/core';\nimport { NgpHeaderToken } from 'ng-primitives/common';\n\n@Directive({\n selector: '[ngpListboxSection]',\n exportAs: 'ngpListboxSection',\n host: {\n role: 'group',\n '[attr.aria-labelledby]': 'header()?.id()',\n },\n})\nexport class NgpListboxSection {\n /**\n * Access the header of the section if it exists.\n */\n protected readonly header = contentChild(NgpHeaderToken, { descendants: true });\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectPopoverTriggerState } from 'ng-primitives/popover';\n\n@Directive({\n selector: '[ngpListboxTrigger]',\n exportAs: 'ngpListboxTrigger',\n})\nexport class NgpListboxTrigger {\n /**\n * There must also be a popover trigger directive associated with this element.\n */\n private readonly popoverTrigger = injectPopoverTriggerState();\n\n /**\n * When the up or down arrow key is pressed, open the popover.\n */\n @HostListener('keydown', ['$event'])\n openPopover(event: KeyboardEvent) {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n this.popoverTrigger().show();\n event.preventDefault();\n }\n }\n}\n","import { ActiveDescendantKeyManager, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n HostListener,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NgpSelectionMode } from 'ng-primitives/common';\nimport { ngpFocusVisibleInteraction } from 'ng-primitives/interactions';\nimport { explicitEffect } from 'ng-primitives/internal';\nimport { injectPopoverTriggerState } from 'ng-primitives/popover';\nimport { safeTakeUntilDestroyed, uniqueId } from 'ng-primitives/utils';\nimport type { NgpListboxOption } from '../listbox-option/listbox-option';\nimport { listboxState, provideListboxState } from './listbox-state';\n\n@Directive({\n selector: '[ngpListbox]',\n exportAs: 'ngpListbox',\n providers: [provideListboxState()],\n host: {\n '[id]': 'state.id()',\n role: 'listbox',\n '[attr.tabindex]': 'tabindex()',\n '[attr.aria-disabled]': 'state.disabled()',\n '[attr.aria-multiselectable]': 'state.mode() === \"multiple\"',\n '[attr.aria-activedescendant]': 'activeDescendant()',\n '(focusin)': 'isFocused.set(true)',\n '(focusout)': 'isFocused.set(false)',\n },\n})\nexport class NgpListbox<T> implements AfterContentInit {\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * Access the destroy ref.\n */\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * The listbox may be used within a popover, which we may want to close on selection.\n */\n private readonly popoverTrigger = injectPopoverTriggerState({ optional: true });\n\n /**\n * The id of the listbox.\n */\n readonly id = input(uniqueId('ngp-listbox'));\n\n /**\n * The listbox selection mode.\n */\n readonly mode = input<NgpSelectionMode>('single', {\n alias: 'ngpListboxMode',\n });\n\n /**\n * The listbox selection.\n */\n readonly value = input<T[]>([], {\n alias: 'ngpListboxValue',\n });\n\n /**\n * Emits when the listbox selection changes.\n */\n readonly valueChange = output<T[]>({\n alias: 'ngpListboxValueChange',\n });\n\n /**\n * The listbox disabled state.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpListboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The comparator function to use when comparing values.\n * If not provided, strict equality (===) is used.\n */\n readonly compareWith = input<(a: T, b: T) => boolean>((a, b) => a === b, {\n alias: 'ngpListboxCompareWith',\n });\n\n /**\n * The tabindex of the listbox.\n */\n protected readonly tabindex = computed(() => (this.state.disabled() ? -1 : 0));\n\n /**\n * Access the options in the listbox.\n */\n protected readonly options = signal<NgpListboxOption<T>[]>([]);\n\n /**\n * The active descendant of the listbox.\n */\n protected readonly keyManager = new ActiveDescendantKeyManager(this.options, this.injector);\n\n /**\n * Gets the active descendant of the listbox.\n */\n protected readonly activeDescendant = signal<string | undefined>(undefined);\n\n /**\n * @internal\n * Whether the listbox is focused.\n */\n readonly isFocused = signal(false);\n\n /**\n * The listbox state\n */\n private readonly state = listboxState<NgpListbox<T>>(this);\n\n constructor() {\n ngpFocusVisibleInteraction({ disabled: this.state.disabled });\n }\n\n ngAfterContentInit(): void {\n this.keyManager.withHomeAndEnd().withTypeAhead().withVerticalOrientation();\n\n this.keyManager.change\n .pipe(safeTakeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.activeDescendant.set(this.keyManager.activeItem?.id()));\n\n // On initialization, set the first selected option as the active descendant if there is one.\n this.updateActiveItem();\n\n // if the options change, update the active item, for example the item that was previously active may have been removed\n // any time the value changes we should make sure that the active item is updated\n explicitEffect([this.options], () => this.updateActiveItem(), {\n injector: this.injector,\n });\n }\n\n private updateActiveItem(): void {\n const selectedOption = this.options().find(o => o.selected());\n\n if (selectedOption) {\n this.keyManager.setActiveItem(selectedOption);\n } else {\n this.keyManager.setFirstItemActive();\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.keyManager.onKeydown(event);\n\n // if the keydown was enter or space, select the active descendant if there is one\n if (event.key === 'Enter' || event.key === ' ') {\n this.keyManager.activeItem?.select('keyboard');\n }\n\n // if this is an arrow key or selection key, prevent the default action to prevent the page from scrolling\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'Enter' ||\n event.key === ' '\n ) {\n event.preventDefault();\n }\n }\n\n /**\n * @internal\n * Selects an option in the listbox.\n */\n selectOption(value: T, origin: FocusOrigin): void {\n if (this.state.mode() === 'single') {\n const newValue = [value];\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n } else {\n // if the value is already selected, remove it, otherwise add it\n if (this.isSelected(value)) {\n const newValue = this.state.value().filter(v => !this.state.compareWith()(v, value));\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n } else {\n const newValue = [...this.state.value(), value];\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n }\n\n // Set the active descendant to the selected option.\n const option = this.options().find(o => this.state.compareWith()(o.value(), value));\n\n if (option) {\n this.keyManager.setActiveItem(option);\n }\n\n // If the listbox is within a popover, close the popover on selection if it is not in a multiple selection mode.\n if (this.state.mode() !== 'multiple') {\n this.popoverTrigger()?.hide(origin);\n }\n }\n\n /**\n * @internal\n * Determine if an option is selected using the compareWith function.\n */\n isSelected(value: T): boolean {\n return this.state.value().some(v => this.state.compareWith()(v, value));\n }\n\n /**\n * @internal\n * Activate an option in the listbox.\n */\n activateOption(value: T) {\n const option = this.options().find(o => this.state.compareWith()(o.value(), value));\n\n if (option) {\n this.keyManager.setActiveItem(option);\n }\n }\n\n /**\n * Registers an option with the listbox.\n * @internal\n */\n addOption(option: NgpListboxOption<T>): void {\n // if the option already exists, do not add it again\n if (!this.options().includes(option)) {\n this.options.update(options => [...options, option]);\n }\n }\n\n /**\n * Deregisters an option with the listbox.\n * @internal\n */\n removeOption(option: NgpListboxOption<T>): void {\n this.options.update(options => options.filter(o => o !== option));\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-listbox.mjs","sources":["../../../../packages/ng-primitives/listbox/src/listbox-header/listbox-header.ts","../../../../packages/ng-primitives/listbox/src/listbox/listbox-state.ts","../../../../packages/ng-primitives/listbox/src/listbox-option/listbox-option.ts","../../../../packages/ng-primitives/listbox/src/listbox-section/listbox-section.ts","../../../../packages/ng-primitives/listbox/src/listbox-trigger/listbox-trigger.ts","../../../../packages/ng-primitives/listbox/src/listbox/listbox.ts","../../../../packages/ng-primitives/listbox/src/ng-primitives-listbox.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\nimport { NgpHeaderToken } from 'ng-primitives/common';\nimport { uniqueId } from 'ng-primitives/utils';\n\n@Directive({\n selector: '[ngpListboxHeader]',\n exportAs: 'ngpListboxHeader',\n host: {\n role: 'presentation',\n '[attr.id]': 'id()',\n },\n // temporary until we remove NgpHeader completely - this prevents breaking changes\n providers: [{ provide: NgpHeaderToken, useExisting: NgpListboxHeader }],\n})\nexport class NgpListboxHeader {\n /**\n * The id of the listbox header.\n */\n readonly id = input(uniqueId('ngp-listbox-header'));\n}\n","import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpListbox } from './listbox';\n\n/**\n * The state token for the Listbox primitive.\n */\nexport const NgpListboxStateToken = createStateToken<NgpListbox<unknown>>('Listbox');\n\n/**\n * Provides the Listbox state.\n */\nexport const provideListboxState = createStateProvider(NgpListboxStateToken);\n\n/**\n * Injects the Listbox state.\n */\nexport const injectListboxState = createStateInjector<NgpListbox<unknown>>(NgpListboxStateToken, {\n deferred: true,\n});\n\n/**\n * The Listbox state registration function.\n */\nexport const listboxState = createState(NgpListboxStateToken);\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n effect,\n input,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef, onDomRemoval, scrollIntoViewIfNeeded } from 'ng-primitives/internal';\nimport { uniqueId } from 'ng-primitives/utils';\nimport type { NgpListbox } from '../listbox/listbox';\nimport { injectListboxState } from '../listbox/listbox-state';\n\n@Directive({\n selector: '[ngpListboxOption]',\n exportAs: 'ngpListboxOption',\n host: {\n role: 'option',\n '[attr.id]': 'id()',\n '[attr.aria-disabled]': 'optionDisabled()',\n '[attr.data-active]': 'listbox()?.isFocused() && active() ? \"\" : undefined',\n '[attr.data-selected]': 'selected() ? \"\" : undefined',\n '[attr.data-disabled]': 'optionDisabled() ? \"\" : undefined',\n '(click)': 'select(\"mouse\")',\n '(mouseenter)': 'activate()',\n '(keydown.enter)': 'select(\"keyboard\")',\n '(keydown.space)': 'select(\"keyboard\")',\n },\n})\nexport class NgpListboxOption<T> implements OnDestroy {\n protected readonly listbox = injectListboxState<NgpListbox<T>>();\n private readonly elementRef = injectElementRef();\n\n /**\n * The id of the listbox.\n */\n readonly id = input(uniqueId('ngp-listbox-option'));\n\n /**\n * The value of the option.\n */\n readonly value = input.required<T>({\n alias: 'ngpListboxOptionValue',\n });\n\n /**\n * Whether the option is disabled.\n */\n readonly optionDisabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpListboxOptionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Whether the option is active.\n */\n protected readonly active = signal<boolean>(false);\n\n /**\n * @internal\n * Whether the option is selected.\n */\n readonly selected = computed(() => this.listbox()?.isSelected(this.value()));\n\n /**\n * @internal\n * Whether the option is disabled - this is used by the `Highlightable` interface.\n */\n get disabled(): boolean {\n return this._disabled();\n }\n\n /**\n * Whether the option is disabled.\n */\n protected readonly _disabled = computed(\n () => this.optionDisabled() || (this.listbox()?.disabled() ?? false),\n );\n\n constructor() {\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n focus: true,\n disabled: this._disabled,\n });\n\n // the listbox may not be available when the option is initialized\n // so we need to add the option when the listbox is available\n effect(() => this.listbox()?.addOption(this));\n\n // any time the element is removed from the dom, we need to remove the option from the listbox\n // and we also want to reset the active state\n onDomRemoval(this.elementRef.nativeElement, () => {\n this.listbox()?.removeOption(this);\n this.setInactiveStyles();\n });\n }\n\n ngOnDestroy(): void {\n this.listbox()?.removeOption(this);\n }\n\n /**\n * @internal\n * Sets the active state of the option.\n */\n setActiveStyles(): void {\n this.active.set(true);\n scrollIntoViewIfNeeded(this.elementRef.nativeElement);\n }\n\n /**\n * @internal\n * Sets the inactive state of the option.\n */\n setInactiveStyles(): void {\n this.active.set(false);\n }\n\n /**\n * @internal\n * Gets the label of the option, used by the `Highlightable` interface.\n */\n getLabel(): string {\n return this.elementRef.nativeElement.textContent ?? '';\n }\n\n /**\n * @internal\n * Selects the option.\n */\n select(origin: FocusOrigin): void {\n this.listbox()?.selectOption(this.value(), origin);\n }\n\n /**\n * @internal\n * Activate the current options.\n */\n activate(): void {\n if (this._disabled()) {\n return;\n }\n\n this.listbox()?.activateOption(this.value());\n }\n}\n","import { contentChild, Directive } from '@angular/core';\nimport { NgpHeaderToken } from 'ng-primitives/common';\n\n@Directive({\n selector: '[ngpListboxSection]',\n exportAs: 'ngpListboxSection',\n host: {\n role: 'group',\n '[attr.aria-labelledby]': 'header()?.id()',\n },\n})\nexport class NgpListboxSection {\n /**\n * Access the header of the section if it exists.\n */\n protected readonly header = contentChild(NgpHeaderToken, { descendants: true });\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectPopoverTriggerState } from 'ng-primitives/popover';\n\n@Directive({\n selector: '[ngpListboxTrigger]',\n exportAs: 'ngpListboxTrigger',\n})\nexport class NgpListboxTrigger {\n /**\n * There must also be a popover trigger directive associated with this element.\n */\n private readonly popoverTrigger = injectPopoverTriggerState();\n\n /**\n * When the up or down arrow key is pressed, open the popover.\n */\n @HostListener('keydown', ['$event'])\n openPopover(event: KeyboardEvent) {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n this.popoverTrigger().show();\n event.preventDefault();\n }\n }\n}\n","import { ActiveDescendantKeyManager, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n HostListener,\n inject,\n Injector,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NgpSelectionMode } from 'ng-primitives/common';\nimport { ngpFocusVisibleInteraction } from 'ng-primitives/interactions';\nimport { explicitEffect } from 'ng-primitives/internal';\nimport { injectPopoverTriggerState } from 'ng-primitives/popover';\nimport { safeTakeUntilDestroyed, uniqueId } from 'ng-primitives/utils';\nimport type { NgpListboxOption } from '../listbox-option/listbox-option';\nimport { listboxState, provideListboxState } from './listbox-state';\n\n@Directive({\n selector: '[ngpListbox]',\n exportAs: 'ngpListbox',\n providers: [provideListboxState()],\n host: {\n '[id]': 'state.id()',\n role: 'listbox',\n '[attr.tabindex]': 'tabindex()',\n '[attr.aria-disabled]': 'state.disabled()',\n '[attr.aria-multiselectable]': 'state.mode() === \"multiple\"',\n '[attr.aria-activedescendant]': 'activeDescendant()',\n '(focusin)': 'isFocused.set(true)',\n '(focusout)': 'isFocused.set(false)',\n },\n})\nexport class NgpListbox<T> implements AfterContentInit {\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * Access the destroy ref.\n */\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * The listbox may be used within a popover, which we may want to close on selection.\n */\n private readonly popoverTrigger = injectPopoverTriggerState({ optional: true });\n\n /**\n * The id of the listbox.\n */\n readonly id = input(uniqueId('ngp-listbox'));\n\n /**\n * The listbox selection mode.\n */\n readonly mode = input<NgpSelectionMode>('single', {\n alias: 'ngpListboxMode',\n });\n\n /**\n * The listbox selection.\n */\n readonly value = input<T[]>([], {\n alias: 'ngpListboxValue',\n });\n\n /**\n * Emits when the listbox selection changes.\n */\n readonly valueChange = output<T[]>({\n alias: 'ngpListboxValueChange',\n });\n\n /**\n * The listbox disabled state.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpListboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The comparator function to use when comparing values.\n * If not provided, strict equality (===) is used.\n */\n readonly compareWith = input<(a: T, b: T) => boolean>((a, b) => a === b, {\n alias: 'ngpListboxCompareWith',\n });\n\n /**\n * The tabindex of the listbox.\n */\n protected readonly tabindex = computed(() => (this.state.disabled() ? -1 : 0));\n\n /**\n * Access the options in the listbox.\n */\n protected readonly options = signal<NgpListboxOption<T>[]>([]);\n\n /**\n * The active descendant of the listbox.\n */\n protected readonly keyManager = new ActiveDescendantKeyManager(this.options, this.injector);\n\n /**\n * Gets the active descendant of the listbox.\n */\n protected readonly activeDescendant = signal<string | undefined>(undefined);\n\n /**\n * @internal\n * Whether the listbox is focused.\n */\n readonly isFocused = signal(false);\n\n /**\n * The listbox state\n */\n protected readonly state = listboxState<NgpListbox<T>>(this);\n\n constructor() {\n ngpFocusVisibleInteraction({ disabled: this.state.disabled });\n }\n\n ngAfterContentInit(): void {\n this.keyManager.withHomeAndEnd().withTypeAhead().withVerticalOrientation();\n\n this.keyManager.change\n .pipe(safeTakeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.activeDescendant.set(this.keyManager.activeItem?.id()));\n\n // On initialization, set the first selected option as the active descendant if there is one.\n this.updateActiveItem();\n\n // if the options change, update the active item, for example the item that was previously active may have been removed\n // any time the value changes we should make sure that the active item is updated\n explicitEffect([this.options], () => this.updateActiveItem(), {\n injector: this.injector,\n });\n }\n\n private updateActiveItem(): void {\n const selectedOption = this.options().find(o => o.selected());\n\n if (selectedOption) {\n this.keyManager.setActiveItem(selectedOption);\n } else {\n this.keyManager.setFirstItemActive();\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.keyManager.onKeydown(event);\n\n // if the keydown was enter or space, select the active descendant if there is one\n if (event.key === 'Enter' || event.key === ' ') {\n this.keyManager.activeItem?.select('keyboard');\n }\n\n // if this is an arrow key or selection key, prevent the default action to prevent the page from scrolling\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'Enter' ||\n event.key === ' '\n ) {\n event.preventDefault();\n }\n }\n\n /**\n * @internal\n * Selects an option in the listbox.\n */\n selectOption(value: T, origin: FocusOrigin): void {\n if (this.state.mode() === 'single') {\n const newValue = [value];\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n } else {\n // if the value is already selected, remove it, otherwise add it\n if (this.isSelected(value)) {\n const newValue = this.state.value().filter(v => !this.state.compareWith()(v, value));\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n } else {\n const newValue = [...this.state.value(), value];\n this.state.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n }\n\n // Set the active descendant to the selected option.\n const option = this.options().find(o => this.state.compareWith()(o.value(), value));\n\n if (option) {\n this.keyManager.setActiveItem(option);\n }\n\n // If the listbox is within a popover, close the popover on selection if it is not in a multiple selection mode.\n if (this.state.mode() !== 'multiple') {\n this.popoverTrigger()?.hide(origin);\n }\n }\n\n /**\n * @internal\n * Determine if an option is selected using the compareWith function.\n */\n isSelected(value: T): boolean {\n return this.state.value().some(v => this.state.compareWith()(v, value));\n }\n\n /**\n * @internal\n * Activate an option in the listbox.\n */\n activateOption(value: T) {\n const option = this.options().find(o => this.state.compareWith()(o.value(), value));\n\n if (option) {\n this.keyManager.setActiveItem(option);\n }\n }\n\n /**\n * Registers an option with the listbox.\n * @internal\n */\n addOption(option: NgpListboxOption<T>): void {\n // if the option already exists, do not add it again\n if (!this.options().includes(option)) {\n this.options.update(options => [...options, option]);\n }\n }\n\n /**\n * Deregisters an option with the listbox.\n * @internal\n */\n removeOption(option: NgpListboxOption<T>): void {\n this.options.update(options => options.filter(o => o !== option));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { coerceOffset, createOverlay, injectOverlay } from 'ng-primitives/portal
|
|
|
2
2
|
export { injectOverlayContext as injectMenuContext } from 'ng-primitives/portal';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, inject, Injector, ViewContainerRef, input, booleanAttribute, signal, computed, HostListener, Directive } from '@angular/core';
|
|
5
|
-
import {
|
|
5
|
+
import { ngpButton } from 'ng-primitives/button';
|
|
6
6
|
import { injectElementRef } from 'ng-primitives/internal';
|
|
7
7
|
import * as i1 from 'ng-primitives/roving-focus';
|
|
8
8
|
import { NgpRovingFocusItem, provideRovingFocusGroup, NgpRovingFocusGroup } from 'ng-primitives/roving-focus';
|
|
@@ -91,51 +91,54 @@ class NgpSubmenuTrigger {
|
|
|
91
91
|
/**
|
|
92
92
|
* Access the submenu template ref.
|
|
93
93
|
*/
|
|
94
|
-
this.menu = input(undefined, {
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
this.menu = input(undefined, ...(ngDevMode ? [{ debugName: "menu", alias: 'ngpSubmenuTrigger' }] : [{
|
|
95
|
+
alias: 'ngpSubmenuTrigger',
|
|
96
|
+
}]));
|
|
97
97
|
/**
|
|
98
98
|
* Define if the trigger should be disabled.
|
|
99
99
|
* @default false
|
|
100
100
|
*/
|
|
101
|
-
this.disabled = input(false, {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", alias: 'ngpSubmenuTriggerDisabled',
|
|
102
|
+
transform: booleanAttribute }] : [{
|
|
103
|
+
alias: 'ngpSubmenuTriggerDisabled',
|
|
104
|
+
transform: booleanAttribute,
|
|
105
|
+
}]));
|
|
105
106
|
/**
|
|
106
107
|
* Define the placement of the menu relative to the trigger.
|
|
107
108
|
* @default 'right-start'
|
|
108
109
|
*/
|
|
109
|
-
this.placement = input('right-start', {
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
this.placement = input('right-start', ...(ngDevMode ? [{ debugName: "placement", alias: 'ngpSubmenuTriggerPlacement' }] : [{
|
|
111
|
+
alias: 'ngpSubmenuTriggerPlacement',
|
|
112
|
+
}]));
|
|
112
113
|
/**
|
|
113
114
|
* Define the offset of the menu relative to the trigger.
|
|
114
115
|
* Can be a number (applies to mainAxis) or an object with mainAxis, crossAxis, and alignmentAxis.
|
|
115
116
|
* @default 0
|
|
116
117
|
*/
|
|
117
|
-
this.offset = input(0, {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
this.offset = input(0, ...(ngDevMode ? [{ debugName: "offset", alias: 'ngpSubmenuTriggerOffset',
|
|
119
|
+
transform: coerceOffset }] : [{
|
|
120
|
+
alias: 'ngpSubmenuTriggerOffset',
|
|
121
|
+
transform: coerceOffset,
|
|
122
|
+
}]));
|
|
121
123
|
/**
|
|
122
124
|
* Define whether the menu should flip when there is not enough space for the menu.
|
|
123
125
|
* @default true
|
|
124
126
|
*/
|
|
125
|
-
this.flip = input(true, {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
this.flip = input(true, ...(ngDevMode ? [{ debugName: "flip", alias: 'ngpSubmenuTriggerFlip',
|
|
128
|
+
transform: booleanAttribute }] : [{
|
|
129
|
+
alias: 'ngpSubmenuTriggerFlip',
|
|
130
|
+
transform: booleanAttribute,
|
|
131
|
+
}]));
|
|
129
132
|
/**
|
|
130
133
|
* The overlay that manages the menu
|
|
131
134
|
* @internal
|
|
132
135
|
*/
|
|
133
|
-
this.overlay = signal(null);
|
|
136
|
+
this.overlay = signal(null, ...(ngDevMode ? [{ debugName: "overlay" }] : []));
|
|
134
137
|
/**
|
|
135
138
|
* The open state of the menu.
|
|
136
139
|
* @internal
|
|
137
140
|
*/
|
|
138
|
-
this.open = computed(() => this.overlay()?.isOpen() ?? false);
|
|
141
|
+
this.open = computed(() => this.overlay()?.isOpen() ?? false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
139
142
|
/**
|
|
140
143
|
* Access the menu trigger state.
|
|
141
144
|
*/
|
|
@@ -216,10 +219,14 @@ class NgpSubmenuTrigger {
|
|
|
216
219
|
/**
|
|
217
220
|
* If the user presses the right arrow key, we want to open the submenu
|
|
218
221
|
* and focus the first item in the submenu.
|
|
222
|
+
* If the user presses the left arrow key, we want to close the submenu.
|
|
219
223
|
* This behavior will be inverted if the direction is RTL.
|
|
220
224
|
* @param event
|
|
221
225
|
*/
|
|
222
|
-
|
|
226
|
+
handleArrowKey(event) {
|
|
227
|
+
if (event instanceof KeyboardEvent === false) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
223
230
|
const direction = getComputedStyle(this.trigger.nativeElement).direction;
|
|
224
231
|
const isRtl = direction === 'rtl';
|
|
225
232
|
const isRightArrow = event.key === 'ArrowRight';
|
|
@@ -240,10 +247,10 @@ class NgpSubmenuTrigger {
|
|
|
240
247
|
}
|
|
241
248
|
this.show();
|
|
242
249
|
}
|
|
243
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
244
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpSubmenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
251
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NgpSubmenuTrigger, isStandalone: true, selector: "[ngpSubmenuTrigger]", inputs: { menu: { classPropertyName: "menu", publicName: "ngpSubmenuTrigger", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpSubmenuTriggerDisabled", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "ngpSubmenuTriggerPlacement", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "ngpSubmenuTriggerOffset", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "ngpSubmenuTriggerFlip", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "click": "toggle($event)", "keydown.ArrowRight": "handleArrowKey($event)", "keydown.ArrowLeft": "handleArrowKey($event)", "pointerenter": "showSubmenuOnHover($event)" }, properties: { "attr.aria-expanded": "open() ? \"true\" : \"false\"", "attr.data-open": "open() ? \"\" : null" } }, providers: [provideSubmenuTriggerState({ inherit: false })], exportAs: ["ngpSubmenuTrigger"], ngImport: i0 }); }
|
|
245
252
|
}
|
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpSubmenuTrigger, decorators: [{
|
|
247
254
|
type: Directive,
|
|
248
255
|
args: [{
|
|
249
256
|
selector: '[ngpSubmenuTrigger]',
|
|
@@ -256,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
256
263
|
'(click)': 'toggle($event)',
|
|
257
264
|
},
|
|
258
265
|
}]
|
|
259
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
266
|
+
}], ctorParameters: () => [], propDecorators: { menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpSubmenuTrigger", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpSubmenuTriggerDisabled", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpSubmenuTriggerPlacement", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpSubmenuTriggerOffset", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpSubmenuTriggerFlip", required: false }] }], handleArrowKey: [{
|
|
260
267
|
type: HostListener,
|
|
261
268
|
args: ['keydown.ArrowRight', ['$event']]
|
|
262
269
|
}, {
|
|
@@ -279,11 +286,12 @@ class NgpMenuItem {
|
|
|
279
286
|
/** Access the parent menu */
|
|
280
287
|
this.parentMenu = injectMenu();
|
|
281
288
|
/** Whether the menu item is disabled */
|
|
282
|
-
this.disabled = input(false, {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
289
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", alias: 'ngpMenuItemDisabled',
|
|
290
|
+
transform: booleanAttribute }] : [{
|
|
291
|
+
alias: 'ngpMenuItemDisabled',
|
|
292
|
+
transform: booleanAttribute,
|
|
293
|
+
}]));
|
|
294
|
+
ngpButton({ disabled: this.disabled });
|
|
287
295
|
}
|
|
288
296
|
/** Close the menu when the item is clicked */
|
|
289
297
|
onClick(event) {
|
|
@@ -300,8 +308,11 @@ class NgpMenuItem {
|
|
|
300
308
|
* we want to close the menu and focus the parent menu item.
|
|
301
309
|
*/
|
|
302
310
|
handleArrowKey(event) {
|
|
311
|
+
if (event instanceof KeyboardEvent === false) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
303
314
|
// if there is no parent menu, we don't want to do anything
|
|
304
|
-
const trigger = this.injector.get(NgpSubmenuTrigger, null, { optional: true });
|
|
315
|
+
const trigger = this.injector.get(NgpSubmenuTrigger, null, { optional: true, skipSelf: true });
|
|
305
316
|
if (!trigger) {
|
|
306
317
|
return;
|
|
307
318
|
}
|
|
@@ -322,10 +333,10 @@ class NgpMenuItem {
|
|
|
322
333
|
showSubmenuOnHover() {
|
|
323
334
|
this.parentMenu?.closeSubmenus.next(this.elementRef.nativeElement);
|
|
324
335
|
}
|
|
325
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
326
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
336
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
337
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NgpMenuItem, isStandalone: true, selector: "[ngpMenuItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpMenuItemDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "menuitem" }, listeners: { "click": "onClick($event)", "keydown.ArrowLeft": "handleArrowKey($event)", "keydown.ArrowRight": "handleArrowKey($event)", "mouseenter": "showSubmenuOnHover()" } }, exportAs: ["ngpMenuItem"], hostDirectives: [{ directive: i1.NgpRovingFocusItem, inputs: ["ngpRovingFocusItemDisabled", "ngpMenuItemDisabled"] }], ngImport: i0 }); }
|
|
327
338
|
}
|
|
328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenuItem, decorators: [{
|
|
329
340
|
type: Directive,
|
|
330
341
|
args: [{
|
|
331
342
|
selector: '[ngpMenuItem]',
|
|
@@ -340,7 +351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
340
351
|
'(keydown.ArrowRight)': 'handleArrowKey($event)',
|
|
341
352
|
},
|
|
342
353
|
}]
|
|
343
|
-
}], ctorParameters: () => [], propDecorators: { showSubmenuOnHover: [{
|
|
354
|
+
}], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuItemDisabled", required: false }] }], showSubmenuOnHover: [{
|
|
344
355
|
type: HostListener,
|
|
345
356
|
args: ['mouseenter']
|
|
346
357
|
}] } });
|
|
@@ -386,71 +397,74 @@ class NgpMenuTrigger {
|
|
|
386
397
|
/**
|
|
387
398
|
* Access the menu template ref or ComponentType.
|
|
388
399
|
*/
|
|
389
|
-
this.menu = input(undefined, {
|
|
390
|
-
|
|
391
|
-
|
|
400
|
+
this.menu = input(undefined, ...(ngDevMode ? [{ debugName: "menu", alias: 'ngpMenuTrigger' }] : [{
|
|
401
|
+
alias: 'ngpMenuTrigger',
|
|
402
|
+
}]));
|
|
392
403
|
/**
|
|
393
404
|
* Define if the trigger should be disabled.
|
|
394
405
|
* @default false
|
|
395
406
|
*/
|
|
396
|
-
this.disabled = input(false, {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
407
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", alias: 'ngpMenuTriggerDisabled',
|
|
408
|
+
transform: booleanAttribute }] : [{
|
|
409
|
+
alias: 'ngpMenuTriggerDisabled',
|
|
410
|
+
transform: booleanAttribute,
|
|
411
|
+
}]));
|
|
400
412
|
/**
|
|
401
413
|
* Define the placement of the menu relative to the trigger.
|
|
402
414
|
* @default 'bottom-start'
|
|
403
415
|
*/
|
|
404
|
-
this.placement = input(this.config.placement, {
|
|
405
|
-
|
|
406
|
-
|
|
416
|
+
this.placement = input(this.config.placement, ...(ngDevMode ? [{ debugName: "placement", alias: 'ngpMenuTriggerPlacement' }] : [{
|
|
417
|
+
alias: 'ngpMenuTriggerPlacement',
|
|
418
|
+
}]));
|
|
407
419
|
/**
|
|
408
420
|
* Define the offset of the menu relative to the trigger.
|
|
409
421
|
* Can be a number (applies to mainAxis) or an object with mainAxis, crossAxis, and alignmentAxis.
|
|
410
422
|
* @default 4
|
|
411
423
|
*/
|
|
412
|
-
this.offset = input(this.config.offset, {
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
424
|
+
this.offset = input(this.config.offset, ...(ngDevMode ? [{ debugName: "offset", alias: 'ngpMenuTriggerOffset',
|
|
425
|
+
transform: coerceOffset }] : [{
|
|
426
|
+
alias: 'ngpMenuTriggerOffset',
|
|
427
|
+
transform: coerceOffset,
|
|
428
|
+
}]));
|
|
416
429
|
/**
|
|
417
430
|
* Define whether the menu should flip when there is not enough space for the menu.
|
|
418
431
|
* @default true
|
|
419
432
|
*/
|
|
420
|
-
this.flip = input(this.config.flip, {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
433
|
+
this.flip = input(this.config.flip, ...(ngDevMode ? [{ debugName: "flip", alias: 'ngpMenuTriggerFlip',
|
|
434
|
+
transform: booleanAttribute }] : [{
|
|
435
|
+
alias: 'ngpMenuTriggerFlip',
|
|
436
|
+
transform: booleanAttribute,
|
|
437
|
+
}]));
|
|
424
438
|
/**
|
|
425
439
|
* Define the container in which the menu should be attached.
|
|
426
440
|
* @default document.body
|
|
427
441
|
*/
|
|
428
|
-
this.container = input(this.config.container, {
|
|
429
|
-
|
|
430
|
-
|
|
442
|
+
this.container = input(this.config.container, ...(ngDevMode ? [{ debugName: "container", alias: 'ngpMenuTriggerContainer' }] : [{
|
|
443
|
+
alias: 'ngpMenuTriggerContainer',
|
|
444
|
+
}]));
|
|
431
445
|
/**
|
|
432
446
|
* Defines how the menu behaves when the window is scrolled.
|
|
433
447
|
* @default 'block'
|
|
434
448
|
*/
|
|
435
|
-
this.scrollBehavior = input(this.config.scrollBehavior, {
|
|
436
|
-
|
|
437
|
-
|
|
449
|
+
this.scrollBehavior = input(this.config.scrollBehavior, ...(ngDevMode ? [{ debugName: "scrollBehavior", alias: 'ngpMenuTriggerScrollBehavior' }] : [{
|
|
450
|
+
alias: 'ngpMenuTriggerScrollBehavior',
|
|
451
|
+
}]));
|
|
438
452
|
/**
|
|
439
453
|
* Provide context to the menu. This can be used to pass data to the menu content.
|
|
440
454
|
*/
|
|
441
|
-
this.context = input(undefined, {
|
|
442
|
-
|
|
443
|
-
|
|
455
|
+
this.context = input(undefined, ...(ngDevMode ? [{ debugName: "context", alias: 'ngpMenuTriggerContext' }] : [{
|
|
456
|
+
alias: 'ngpMenuTriggerContext',
|
|
457
|
+
}]));
|
|
444
458
|
/**
|
|
445
459
|
* The overlay that manages the menu
|
|
446
460
|
* @internal
|
|
447
461
|
*/
|
|
448
|
-
this.overlay = signal(null);
|
|
462
|
+
this.overlay = signal(null, ...(ngDevMode ? [{ debugName: "overlay" }] : []));
|
|
449
463
|
/**
|
|
450
464
|
* The open state of the menu.
|
|
451
465
|
* @internal
|
|
452
466
|
*/
|
|
453
|
-
this.open = computed(() => this.overlay()?.isOpen() ?? false);
|
|
467
|
+
this.open = computed(() => this.overlay()?.isOpen() ?? false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
454
468
|
/**
|
|
455
469
|
* The menu trigger state.
|
|
456
470
|
*/
|
|
@@ -525,10 +539,10 @@ class NgpMenuTrigger {
|
|
|
525
539
|
};
|
|
526
540
|
this.overlay.set(createOverlay(config));
|
|
527
541
|
}
|
|
528
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
529
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
542
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
543
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NgpMenuTrigger, isStandalone: true, selector: "[ngpMenuTrigger]", inputs: { menu: { classPropertyName: "menu", publicName: "ngpMenuTrigger", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpMenuTriggerDisabled", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "ngpMenuTriggerPlacement", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "ngpMenuTriggerOffset", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "ngpMenuTriggerFlip", isSignal: true, isRequired: false, transformFunction: null }, container: { classPropertyName: "container", publicName: "ngpMenuTriggerContainer", isSignal: true, isRequired: false, transformFunction: null }, scrollBehavior: { classPropertyName: "scrollBehavior", publicName: "ngpMenuTriggerScrollBehavior", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "ngpMenuTriggerContext", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-expanded": "open() ? \"true\" : \"false\"", "attr.data-open": "open() ? \"\" : null", "attr.data-placement": "state.placement()" } }, providers: [provideMenuTriggerState({ inherit: false })], exportAs: ["ngpMenuTrigger"], ngImport: i0 }); }
|
|
530
544
|
}
|
|
531
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenuTrigger, decorators: [{
|
|
532
546
|
type: Directive,
|
|
533
547
|
args: [{
|
|
534
548
|
selector: '[ngpMenuTrigger]',
|
|
@@ -542,7 +556,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
542
556
|
'(click)': 'onClick($event)',
|
|
543
557
|
},
|
|
544
558
|
}]
|
|
545
|
-
}] });
|
|
559
|
+
}], propDecorators: { menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTrigger", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerDisabled", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerPlacement", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerOffset", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerFlip", required: false }] }], container: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerContainer", required: false }] }], scrollBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerScrollBehavior", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpMenuTriggerContext", required: false }] }] } });
|
|
546
560
|
|
|
547
561
|
/**
|
|
548
562
|
* The `NgpMenu` is a container for menu items.
|
|
@@ -563,14 +577,14 @@ class NgpMenu {
|
|
|
563
577
|
this.menuTrigger().hide(origin);
|
|
564
578
|
this.parentMenu?.closeAllMenus(origin);
|
|
565
579
|
}
|
|
566
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
567
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
580
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
581
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpMenu, isStandalone: true, selector: "[ngpMenu]", host: { attributes: { "role": "menu", "data-overlay": "" }, properties: { "style.left.px": "overlay.position().x", "style.top.px": "overlay.position().y", "style.--ngp-menu-trigger-width.px": "overlay.triggerWidth()", "style.--ngp-menu-transform-origin": "overlay.transformOrigin()", "attr.data-placement": "overlay.finalPlacement()" } }, providers: [
|
|
568
582
|
// ensure we don't inherit the focus group from the parent menu if there is one
|
|
569
583
|
provideRovingFocusGroup(NgpRovingFocusGroup, { inherit: false }),
|
|
570
584
|
provideMenu(NgpMenu),
|
|
571
585
|
], exportAs: ["ngpMenu"], hostDirectives: [{ directive: i1.NgpRovingFocusGroup }, { directive: i2.NgpFocusTrap }], ngImport: i0 }); }
|
|
572
586
|
}
|
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpMenu, decorators: [{
|
|
574
588
|
type: Directive,
|
|
575
589
|
args: [{
|
|
576
590
|
selector: '[ngpMenu]',
|