@slotted/angular 0.1.0-beta.0 → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +1 -0
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +24 -7
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +6 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +35 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +5 -0
- package/docs/drawer.md +1 -0
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +129 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +4 -3
- package/docs/page-header.md +2 -2
- package/docs/page.json +1 -0
- package/docs/page.md +1 -0
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +5 -5
- package/docs/section.json +27 -15
- package/docs/section.md +11 -9
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +95 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +77 -0
- package/docs/skills/theme-app/SKILL.md +87 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +7 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +4 -4
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +22 -11
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +90 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +166 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +112 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +354 -113
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +53 -29
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +189 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +75 -45
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +184 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +49 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +22 -11
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +74 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +49 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +7 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +4 -4
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-column-manager.mjs","sources":["../../column-manager/src/column-manager-defaults.ts","../../column-manager/src/column-manager.ts","../../column-manager/src/slotted-angular-column-manager.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { GridColumnState, GridColumnStateChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\n/** Where the panel stands: a popover on the trigger, a drawer at the end, or in place. */\nexport type ColumnManagerPresentation = 'popover' | 'drawer' | 'inline';\n\n/** Whether every action asks at once, or edits a draft that Apply asks for once. */\nexport type ColumnManagerApply = 'live' | 'confirm';\n\nexport type ColumnManagerColumnReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'clear' | 'submit' | 'programmatic'\n>;\n\nexport type ColumnManagerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** The column request: `data-grid`'s, with every key that moved beside the first. */\nexport interface ColumnManagerRequest extends ChangeRequest<GridColumnState> {\n readonly reason: ColumnManagerColumnReason;\n readonly change: GridColumnStateChange;\n readonly changes: readonly GridColumnStateChange[];\n}\n\nexport type ColumnManagerOpenRequest = ChangeRequest<boolean>;\n\nexport interface ColumnManagerDefaults {\n presentation: ColumnManagerPresentation;\n apply: ColumnManagerApply;\n}\n\nconst FALLBACK: ColumnManagerDefaults = {\n presentation: 'popover',\n apply: 'live',\n};\n\nexport const COLUMN_MANAGER_DEFAULTS = new InjectionToken<ColumnManagerDefaults>(\n 'slotted column-manager defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once where its managers stand and whether they apply\n * at once. A manager that states either itself still wins. Its words come from\n * the language in force (`provideSlotted`).\n */\nexport function provideColumnManagerDefaults(defaults: Partial<ColumnManagerDefaults>) {\n return {\n provide: COLUMN_MANAGER_DEFAULTS,\n useFactory: (): ColumnManagerDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectColumnManagerDefaults(): ColumnManagerDefaults {\n return inject(COLUMN_MANAGER_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlColumnManagerIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-column-manager-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterEveryRender,\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox, SlCheckboxDescription } from '@slotted/angular/checkbox';\nimport { SlDrawer } from '@slotted/angular/drawer';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport { SlPopover, SlPopoverContent, SlPopoverLayer } from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput, SlTextFieldStart } from '@slotted/angular/text-field';\nimport { createDragController, type DragController, type DragState } from '@slotted/core/drag';\nimport {\n columnStateChanges,\n normalizeColumnState,\n withColumnHidden,\n withColumnMoved,\n withColumnPinned,\n type GridColumn,\n type GridColumnState,\n type GridOutOfSpace,\n type GridPinZone,\n} from '@slotted/core/grid';\nimport {\n columnManagerMessages,\n dragMessages,\n type ColumnManagerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable, type ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectColumnManagerDefaults,\n SlColumnManagerIdFactory,\n type ColumnManagerApply,\n type ColumnManagerColumnReason,\n type ColumnManagerOpenReason,\n type ColumnManagerPresentation,\n type ColumnManagerRequest,\n} from './column-manager-defaults';\n\ntype ZoneKey = 'start' | 'middle' | 'end';\nconst ZONE_KEYS: readonly ZoneKey[] = ['start', 'middle', 'end'];\n/** No column taken out for room: the grid's set before its frame is measured. */\nconst NONE_OUT: GridOutOfSpace = { popin: [], hidden: [] };\n\n/** The three pin zones over the normalised order, every column in one of them. */\nexport function columnZones(state: GridColumnState): Record<ZoneKey, readonly string[]> {\n const start = state.pinned.start.filter((id) => state.order.includes(id));\n const end = state.pinned.end.filter((id) => state.order.includes(id));\n const middle = state.order.filter((id) => !start.includes(id) && !end.includes(id));\n return { start, middle, end };\n}\n\n/** Case and accents fall away, so `Região` is found by `regiao`. */\nexport function searchKey(text: string): string {\n return text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n}\n\nfunction sameState(a: GridColumnState, b: GridColumnState): boolean {\n return columnStateChanges(a, b).length === 0;\n}\n\n/** A click with no coordinates is a key. */\nfunction pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\nfunction escapeValue(value: string): string {\n return typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(value)\n : value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\ninterface DragView {\n dragging: string | null;\n container: ZoneKey | null;\n index: number | null;\n}\n\nconst NO_DRAG: DragView = { dragging: null, container: null, index: null };\n\ninterface ItemView {\n id: string;\n column: GridColumn<unknown>;\n hidden: boolean;\n locked: boolean;\n lastVisible: boolean;\n bySpace: boolean;\n handleDisabled: boolean;\n status: string | null;\n zone: GridPinZone;\n /** The index in the whole zone, which the drop line is placed by. */\n index: number;\n}\n\ninterface SectionView {\n key: ZoneKey;\n label: string;\n items: ItemView[];\n /** Drop line after the last item. */\n dropAtEnd: boolean;\n}\n\n/**\n * Writes this family's part name on a control another family's directive\n * owns. `slButton` writes `data-part=\"root\"` as a static host attribute and\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's; either erases the part the template\n * wrote, so it is written back after the first render.\n */\n@Directive({ selector: '[slColumnManagerPart]', standalone: true })\nexport class SlColumnManagerPart {\n readonly part = input.required<string>({ alias: 'slColumnManagerPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => this.host.nativeElement.setAttribute('data-part', this.part()));\n }\n}\n\n/**\n * The panel that edits a grid's column state: which columns are shown, in\n * which order, pinned to which edge. It does not know the grid: it is given\n * the columns, the state and the set the grid hid for room, and asks for every\n * change with a request carrying the reason and the keys that moved.\n *\n * The host renders nothing of its own (`display: contents`); the root is the\n * popover's one child, the drawer's content, or stands in place.\n */\n@Component({\n selector: 'sl-column-manager',\n standalone: true,\n exportAs: 'slColumnManager',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlCheckbox,\n SlCheckboxDescription,\n SlColumnManagerPart,\n SlDrawer,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlTextField,\n SlTextFieldInput,\n SlTextFieldStart,\n ],\n template: `\n @switch (resolvedPresentation()) {\n @case ('popover') {\n <ng-container\n slPopover\n size=\"lg\"\n side=\"bottom\"\n align=\"start\"\n initialFocus=\"[data-part='search'] input\"\n [open]=\"open()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-labelledby]=\"titleId\">\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </div>\n </ng-template>\n </ng-container>\n }\n @case ('drawer') {\n <sl-drawer\n side=\"end\"\n size=\"sm\"\n [open]=\"open()\"\n [finalFocus]=\"triggerNode() ?? false\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </sl-drawer>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"panel\" />\n }\n }\n\n <ng-template #panel>\n <div\n #root\n data-ui=\"column-manager\"\n data-part=\"root\"\n role=\"group\"\n [attr.id]=\"rootId\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.data-presentation]=\"resolvedPresentation()\"\n [attr.data-apply]=\"resolvedApply()\"\n >\n <div data-part=\"header\">\n <h2 data-part=\"title\" [attr.id]=\"titleId\">{{ t('title') }}</h2>\n <span data-part=\"summary\">{{ summary() }}</span>\n </div>\n <div data-part=\"search\">\n <div slTextField size=\"sm\" [clearable]=\"true\">\n <span slTextFieldStart\n ><span slIcon><svg slGlyph name=\"search\"></svg></span\n ></span>\n <input\n slTextFieldInput\n type=\"search\"\n [value]=\"query()\"\n [attr.aria-label]=\"t('search')\"\n [attr.placeholder]=\"t('search')\"\n (valueChange)=\"query.set($event.value)\"\n />\n </div>\n </div>\n <div data-part=\"list\">\n @if (sections().length === 0 && searching()) {\n <div data-part=\"empty\" role=\"status\">{{ t('noResults') }}</div>\n }\n @for (section of sections(); track section.key) {\n <div\n data-part=\"section\"\n role=\"group\"\n [attr.data-zone]=\"section.key\"\n [attr.aria-labelledby]=\"rootId + '-' + section.key\"\n [attr.data-sole]=\"sections().length === 1 ? '' : null\"\n [attr.data-drop-target]=\"\n drag().container === section.key && drag().index !== null ? '' : null\n \"\n >\n <div data-part=\"section-label\" [attr.id]=\"rootId + '-' + section.key\">\n {{ section.label }}\n </div>\n @for (item of section.items; track item.id) {\n @if (dropAt(section.key, item.index)) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n <div\n data-part=\"item\"\n [attr.data-column]=\"item.id\"\n [attr.data-hidden]=\"item.hidden ? '' : null\"\n [attr.data-locked]=\"item.locked ? '' : null\"\n [attr.data-space-hidden]=\"item.bySpace ? '' : null\"\n [attr.data-pinned]=\"item.zone\"\n [attr.data-dragging]=\"drag().dragging === item.id ? '' : null\"\n >\n <button\n data-part=\"handle\"\n type=\"button\"\n [attr.aria-label]=\"t('reorder', { column: item.column.label })\"\n [attr.aria-disabled]=\"item.handleDisabled ? 'true' : null\"\n [attr.data-disabled]=\"item.handleDisabled ? '' : null\"\n (keydown)=\"onHandleKeyDown($event, item.id, section.key)\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"grip-vertical\"></svg></span>\n </button>\n <div data-part=\"visibility\">\n <div\n slCheckbox\n [checked]=\"!item.hidden\"\n [disabled]=\"(item.locked && !item.hidden) || item.lastVisible\"\n (checkedChange)=\"toggle(item.id, $event)\"\n >\n {{ item.column.label }}\n @if (item.status) {\n <span data-part=\"status\">{{ item.status }}</span>\n }\n @if (item.column.description) {\n <p slCheckboxDescription>{{ item.column.description }}</p>\n }\n </div>\n </div>\n <button\n type=\"button\"\n slColumnManagerPart=\"pin\"\n data-part=\"pin\"\n [slMenuTriggerFor]=\"pinMenu\"\n [attr.aria-label]=\"t('pin', { column: item.column.label })\"\n [attr.data-pinned]=\"item.zone ? '' : null\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span>\n </button>\n <sl-menu #pinMenu size=\"sm\">\n <button\n slMenuItem\n [disabled]=\"item.zone === 'start'\"\n (select)=\"pin(item.id, 'start', $event)\"\n >\n {{ t('pinStart') }}\n </button>\n <button\n slMenuItem\n [disabled]=\"item.zone === 'end'\"\n (select)=\"pin(item.id, 'end', $event)\"\n >\n {{ t('pinEnd') }}\n </button>\n @if (item.zone) {\n <button slMenuItem (select)=\"pin(item.id, null, $event)\">\n {{ t('unpin') }}\n </button>\n }\n </sl-menu>\n </div>\n }\n @if (section.dropAtEnd) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n </div>\n }\n </div>\n <div data-part=\"footer\">\n <button\n slButton\n slColumnManagerPart=\"show-all\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"working().hidden.length === 0\"\n (click)=\"showAll($event)\"\n >\n {{ t('showAll') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"reset\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"atDefault()\"\n (click)=\"reset($event)\"\n >\n {{ t('reset') }}\n </button>\n @if (confirm()) {\n <button\n slButton\n slColumnManagerPart=\"cancel\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"cancel($event)\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"apply\"\n size=\"sm\"\n type=\"button\"\n [disabled]=\"!dirty()\"\n (click)=\"applyDraft($event)\"\n >\n {{ t('apply') }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: '../../../styles/src/column-manager/column-manager.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[style.display]': \"'contents'\" },\n})\nexport class SlColumnManager {\n /** The grid's columns, as the grid is given them. */\n readonly columns = input.required<readonly GridColumn<never>[]>();\n /** The state; two-way, so a template may bind it directly. */\n readonly columnState = model<GridColumnState | undefined>(undefined);\n /** The start while nothing is bound, and the target of Restore defaults. */\n readonly defaultColumnState = input<Partial<GridColumnState> | undefined>(undefined);\n /**\n * The columns the grid took out for room — the grid's `outOfSpace()`:\n * listed with a status, never written to the state.\n */\n readonly outOfSpace = input<GridOutOfSpace>(NONE_OUT);\n readonly presentation = input<ColumnManagerPresentation | undefined>(undefined);\n readonly apply = input<ColumnManagerApply | undefined>(undefined);\n readonly open = model<boolean>(false);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<ColumnManagerMessages> | undefined>(undefined);\n\n /** Before the state moves, with the reason and every key that moved. */\n readonly columnStateChangeRequest = output<ColumnManagerRequest>();\n /** Before the layer opens or closes, with the reason. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectColumnManagerDefaults();\n private readonly base = inject(SlColumnManagerIdFactory).next();\n readonly rootId = `${this.base}-panel`;\n readonly titleId = `${this.base}-title`;\n\n /** The family's words in the language in force, with this manager's `messages` laid over them. */\n readonly t = injectMessages(columnManagerMessages, this.messages);\n /** What a drag of a column says, in the language in force. */\n private readonly dragT = injectMessages(dragMessages);\n readonly resolvedPresentation = computed(() => this.presentation() ?? this.defaults.presentation);\n readonly resolvedApply = computed(() => this.apply() ?? this.defaults.apply);\n protected readonly confirm = computed(() => this.resolvedApply() === 'confirm');\n\n private readonly normalizedDefault = computed(() =>\n normalizeColumnState(this.defaultColumnState(), this.columns()),\n );\n /** The committed state: the bound one, or the default. */\n readonly state = computed(() =>\n normalizeColumnState(this.columnState() ?? this.defaultColumnState(), this.columns()),\n );\n private readonly draft = signal<GridColumnState | null>(null);\n protected readonly working = computed(() =>\n this.confirm() ? (this.draft() ?? this.state()) : this.state(),\n );\n protected readonly dirty = computed(() => {\n const draft = this.draft();\n return draft !== null && !sameState(draft, this.state());\n });\n protected readonly atDefault = computed(() =>\n sameState(this.working(), this.normalizedDefault()),\n );\n\n /** How many columns the reader hid; the trigger's count. */\n readonly hiddenCount = computed(() => this.state().hidden.length);\n\n readonly query = signal('');\n private readonly searchText = computed(() => searchKey(this.query().trim()));\n protected readonly searching = computed(() => this.searchText() !== '');\n\n private readonly byId = computed(\n () => new Map(this.columns().map((column) => [column.id, column as GridColumn<unknown>])),\n );\n private readonly zones = computed(() => columnZones(this.working()));\n private readonly visibleCount = computed(() => {\n const hidden = new Set(this.working().hidden);\n return this.working().order.filter((id) => !hidden.has(id)).length;\n });\n protected readonly summary = computed(() =>\n this.t('visibleCount', {\n visible: this.visibleCount(),\n total: this.working().order.length,\n }),\n );\n\n protected readonly drag = signal<DragView>(NO_DRAG);\n\n protected readonly sections = computed<SectionView[]>(() => {\n const zones = this.zones();\n const byId = this.byId();\n const hidden = new Set(this.working().hidden);\n const space = new Set(this.outOfSpace().hidden);\n const inRow = new Set(this.outOfSpace().popin);\n const visible = this.visibleCount();\n const text = this.searchText();\n const searching = text !== '';\n const t = this.t;\n const labels = { start: t('pinnedStart'), middle: t('unpinned'), end: t('pinnedEnd') };\n return ZONE_KEYS.map((key) => {\n const items = zones[key]\n .map((id, index) => ({ id, index, column: byId.get(id) }))\n .filter(\n (entry): entry is { id: string; index: number; column: GridColumn<unknown> } =>\n entry.column !== undefined &&\n (!searching ||\n searchKey(entry.column.label).includes(text) ||\n searchKey(entry.column.description ?? '').includes(text)),\n )\n .map(({ id, index, column }) => {\n const isHidden = hidden.has(id);\n const locked = column.hideable === false;\n const bySpace = !isHidden && space.has(id);\n const shownInRow = !isHidden && inRow.has(id);\n return {\n id,\n column,\n index,\n hidden: isHidden,\n locked,\n lastVisible: !isHidden && visible <= 1,\n bySpace,\n handleDisabled: searching || column.reorderable === false,\n status: locked\n ? t('required')\n : bySpace\n ? t('hiddenBySpace')\n : shownInRow\n ? t('inRow')\n : null,\n zone: key === 'middle' ? null : key,\n } satisfies ItemView;\n });\n return {\n key,\n label: labels[key],\n items,\n dropAtEnd: this.dropAt(key, zones[key].length),\n };\n }).filter((section) => section.items.length > 0);\n });\n\n /* ── The trigger ─────────────────────────────────────────────────────── */\n\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly popover = viewChild(SlPopover);\n\n /** Called by `slColumnManagerTrigger`. */\n registerTrigger(node: HTMLElement | null) {\n this.triggerNode.set(node);\n }\n\n /* ── The drag ────────────────────────────────────────────────────────── */\n\n private readonly root = viewChild<ElementRef<HTMLDivElement>>('root');\n private controller: DragController | null = null;\n private readonly draggables = new Map<string, { node: HTMLElement; detach: () => void }>();\n private pendingFocus: string | null = null;\n\n constructor() {\n /* The popover hangs from this family's trigger, and a press on it is not\n an outside press. */\n effect(() => {\n const popover = this.popover();\n const trigger = this.triggerNode();\n if (popover) untracked(() => popover.triggerNode.set(trigger));\n });\n\n /* A draft is read when the layer opens, and dropped when it closes. */\n effect(() => {\n if (!this.open()) {\n untracked(() => {\n this.draft.set(null);\n this.query.set('');\n });\n }\n });\n\n effect((onCleanup) => {\n const element = this.root()?.nativeElement;\n if (!element) return;\n const controller = untracked(() => this.createController(element));\n onCleanup(() => {\n controller.destroy();\n this.controller = null;\n for (const entry of this.draggables.values()) entry.detach();\n this.draggables.clear();\n });\n });\n\n afterEveryRender(() => {\n this.syncDraggables();\n const id = this.pendingFocus;\n const element = this.root()?.nativeElement;\n if (id && element) {\n this.pendingFocus = null;\n element\n .querySelector<HTMLElement>(\n `[data-part=\"item\"][data-column=\"${escapeValue(id)}\"] > [data-part=\"handle\"]`,\n )\n ?.focus();\n }\n });\n\n inject(DestroyRef).onDestroy(() => this.controller?.destroy());\n }\n\n private createController(element: HTMLElement): DragController {\n const document = element.ownerDocument;\n const announce = (message: string) => {\n if (message !== '') getLiveAnnouncer(document).announce(message);\n };\n const itemOf = (id: string) =>\n element.querySelector<HTMLElement>(`[data-part=\"item\"][data-column=\"${escapeValue(id)}\"]`);\n const controller = createDragController({\n document,\n preview: false,\n restoreFocus: false,\n autoScroll: { axis: 'y' },\n announce,\n t: this.dragT,\n /* A one-step keyboard move says where the column landed once, below;\n the controller's own step-by-step position would say it twice. */\n silent: ['moved'],\n onDrop: ({ items, source, target, reason, event }) => {\n if (target.kind !== 'between' || target.container !== source.container) return;\n const zone = this.zones()[source.container as ZoneKey];\n const id = items[0]!;\n const to = target.index > source.index ? target.index - 1 : target.index;\n this.edit(\n withColumnMoved(this.working(), id, to, zone),\n reason === 'keyboard' ? 'keyboard' : 'pointer',\n event,\n );\n if (reason === 'keyboard') {\n this.pendingFocus = id;\n const label = this.byId().get(id)?.label ?? id;\n announce(this.t('moved', { column: label, position: to + 1 }));\n }\n },\n });\n for (const key of ZONE_KEYS) {\n controller.registerContainer({\n key,\n items: () => this.zones()[key],\n orientation: 'vertical',\n element: () => element.querySelector(`[data-part=\"section\"][data-zone=\"${key}\"]`),\n itemElement: itemOf,\n accepts: (state: DragState, target) => state.source?.container === target.container,\n disabled: () => this.searching(),\n itemLabel: (id) => this.byId().get(id)?.label ?? id,\n });\n }\n controller.subscribe((next) => {\n if (next.status !== 'dragging' || next.reason === 'keyboard') {\n this.drag.set(NO_DRAG);\n return;\n }\n const target = next.target;\n this.drag.set({\n dragging: next.items[0] ?? null,\n container: target && target.kind === 'between' ? (target.container as ZoneKey) : null,\n index: target && target.kind === 'between' && next.valid ? target.index : null,\n });\n });\n this.controller = controller;\n return controller;\n }\n\n /** Every item is a draggable whose press must start on its handle. */\n private syncDraggables() {\n const controller = this.controller;\n const element = this.root()?.nativeElement;\n if (!controller || !element) return;\n const seen = new Set<string>();\n for (const node of element.querySelectorAll<HTMLElement>('[data-part=\"item\"][data-column]')) {\n const id = node.dataset['column']!;\n const key = node.closest<HTMLElement>('[data-part=\"section\"]')?.dataset['zone'] ?? 'middle';\n seen.add(id);\n const existing = this.draggables.get(id);\n if (existing && existing.node === node && node.dataset['attachedZone'] === key) continue;\n existing?.detach();\n node.dataset['attachedZone'] = key;\n const detach = controller.attachDraggable(node, {\n container: key,\n key: id,\n handle: () => node.querySelector('[data-part=\"handle\"]'),\n disabled: () => this.searching() || this.byId().get(id)?.reorderable === false,\n distance: 4,\n });\n this.draggables.set(id, { node, detach });\n }\n for (const [id, entry] of this.draggables) {\n if (seen.has(id)) continue;\n entry.detach();\n this.draggables.delete(id);\n }\n }\n\n protected dropAt(key: ZoneKey, index: number): boolean {\n const drag = this.drag();\n if (drag.container !== key || drag.index !== index || drag.dragging === null) return false;\n const from = this.zones()[key].indexOf(drag.dragging);\n return index !== from && index !== from + 1;\n }\n\n /* ── Requests ─────────────────────────────────────────────────────────── */\n\n private emit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n const previous = this.state();\n const changes = columnStateChanges(previous, next);\n if (changes.length === 0) return false;\n let cancelled = false;\n const request: ColumnManagerRequest = {\n value: next,\n previous,\n reason,\n source,\n change: changes[0]!,\n changes,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.columnStateChangeRequest.emit(request);\n if (cancelled) return false;\n this.columnState.set(next);\n return true;\n }\n\n private edit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n if (this.confirm()) this.draft.set(next);\n else this.emit(next, reason, source);\n }\n\n private setOpen(next: boolean, reason: ColumnManagerOpenReason, source?: unknown): boolean {\n if (next === this.open()) return false;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n state.request(next, reason, source);\n if (cancelled) return false;\n this.open.set(next);\n return true;\n }\n\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n const moved = this.setOpen(\n request.value,\n request.reason as ColumnManagerOpenReason,\n request.source,\n );\n if (!moved) request.cancel();\n }\n\n protected toggle(id: string, request: ChangeRequest<boolean>) {\n this.edit(\n withColumnHidden(this.working(), id, !request.value),\n request.reason === 'keyboard' ? 'keyboard' : 'pointer',\n request.source,\n );\n }\n\n protected pin(id: string, zone: GridPinZone, event: MenuSelectEvent) {\n this.edit(withColumnPinned(this.working(), id, zone), event.reason, event.source);\n }\n\n protected showAll(event: MouseEvent) {\n this.edit({ ...this.working(), hidden: [] }, pressReason(event), event);\n }\n\n protected reset(event: MouseEvent) {\n this.edit(this.normalizedDefault(), 'clear', event);\n }\n\n protected applyDraft(event: MouseEvent) {\n const draft = this.draft();\n if (draft !== null) this.emit(draft, 'submit', event);\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected cancel(event: MouseEvent) {\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected onHandleKeyDown(event: KeyboardEvent, id: string, key: ZoneKey) {\n if (!event.altKey || (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')) return;\n event.preventDefault();\n if (this.searching() || this.byId().get(id)?.reorderable === false) return;\n const zone = this.zones()[key];\n const index = zone.indexOf(id);\n const up = event.key === 'ArrowUp';\n if ((up && index <= 0) || (!up && index >= zone.length - 1)) return;\n this.controller?.moveBy({\n items: [id],\n source: { container: key, index },\n intent: up ? 'previous' : 'next',\n reason: 'keyboard',\n event,\n });\n }\n\n /* ── The imperative actions ──────────────────────────────────────────── */\n\n /** Opens the layer, with the reason `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, with the reason `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Called by the trigger, with the reason of the press. */\n toggleOpen(reason: ColumnManagerOpenReason = 'programmatic', source?: unknown) {\n this.setOpen(!this.open(), reason, source);\n }\n}\n\n/**\n * The consumer's button, wired to a manager: the popup it opens, whether it\n * is open, what it controls, and the count of hidden columns after its words\n * — a chip on screen and a sentence in its accessible name. A directive\n * cannot project, so the two spans are appended to the host once and kept\n * current from the manager's count.\n */\n@Directive({\n selector: '[slColumnManagerTrigger]',\n standalone: true,\n exportAs: 'slColumnManagerTrigger',\n host: {\n 'aria-haspopup': 'dialog',\n 'data-column-manager-trigger': '',\n '[attr.aria-expanded]': 'manager().open()',\n '[attr.aria-controls]': 'manager().open() ? manager().rootId : null',\n '[attr.data-open]': \"manager().open() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlColumnManagerTrigger {\n readonly manager = input.required<SlColumnManager>({ alias: 'slColumnManagerTriggerFor' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly count = signal<{ chip: HTMLElement; sentence: HTMLElement } | null>(null);\n\n constructor() {\n effect((onCleanup) => {\n const manager = this.manager();\n manager.registerTrigger(this.host);\n onCleanup(() => manager.registerTrigger(null));\n });\n\n /* `slButton` writes `data-part=\"root\"` statically; the part is this family's. */\n afterNextRender(() => {\n this.host.setAttribute('data-part', 'trigger');\n const chip = this.renderer.createElement('span') as HTMLElement;\n chip.setAttribute('data-part', 'count');\n chip.setAttribute('aria-hidden', 'true');\n const sentence = this.renderer.createElement('span') as HTMLElement;\n sentence.setAttribute('data-ui', 'visually-hidden');\n sentence.setAttribute('data-part', 'root');\n this.count.set({ chip, sentence });\n });\n\n effect(() => {\n const nodes = this.count();\n if (!nodes) return;\n const manager = this.manager();\n const hidden = manager.hiddenCount();\n if (hidden === 0) {\n nodes.chip.remove();\n nodes.sentence.remove();\n return;\n }\n nodes.chip.textContent = String(hidden);\n nodes.sentence.textContent = manager.t('hiddenCount', { count: hidden });\n if (!nodes.chip.isConnected) {\n this.host.append(' ', nodes.chip, ' ', nodes.sentence);\n }\n });\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.manager().toggleOpen(pressReason(event), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-column-manager.mjs","sources":["../../column-manager/src/column-manager-defaults.ts","../../column-manager/src/column-manager.ts","../../column-manager/src/slotted-angular-column-manager.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { GridColumnState, GridColumnStateChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\n/** Where the panel stands: a popover on the trigger, a drawer at the end, or in place. */\nexport type ColumnManagerPresentation = 'popover' | 'drawer' | 'inline';\n\n/** Whether every action asks at once, or edits a draft that Apply asks for once. */\nexport type ColumnManagerApply = 'live' | 'confirm';\n\nexport type ColumnManagerColumnReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'clear' | 'submit' | 'programmatic'\n>;\n\nexport type ColumnManagerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** The column request: `data-grid`'s, with every key that moved beside the first. */\nexport interface ColumnManagerRequest extends ChangeRequest<GridColumnState> {\n readonly reason: ColumnManagerColumnReason;\n readonly change: GridColumnStateChange;\n readonly changes: readonly GridColumnStateChange[];\n}\n\nexport type ColumnManagerOpenRequest = ChangeRequest<boolean>;\n\nexport interface ColumnManagerDefaults {\n presentation: ColumnManagerPresentation;\n apply: ColumnManagerApply;\n}\n\nconst FALLBACK: ColumnManagerDefaults = {\n presentation: 'popover',\n apply: 'live',\n};\n\nexport const COLUMN_MANAGER_DEFAULTS = new InjectionToken<ColumnManagerDefaults>(\n 'slotted column-manager defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once where its managers stand and whether they apply\n * at once. A manager that states either itself still wins. Its words come from\n * the language in force (`provideSlotted`).\n */\nexport function provideColumnManagerDefaults(defaults: Partial<ColumnManagerDefaults>) {\n return {\n provide: COLUMN_MANAGER_DEFAULTS,\n useFactory: (): ColumnManagerDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectColumnManagerDefaults(): ColumnManagerDefaults {\n return inject(COLUMN_MANAGER_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlColumnManagerIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-column-manager-${this.count}`;\n }\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterEveryRender,\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox, SlCheckboxDescription } from '@slotted/angular/checkbox';\nimport { SlDrawer } from '@slotted/angular/drawer';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport { SlPopover, SlPopoverContent, SlPopoverLayer } from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput, SlTextFieldStart } from '@slotted/angular/text-field';\nimport { createDragController, type DragController, type DragState } from '@slotted/core/drag';\nimport {\n columnStateChanges,\n normalizeColumnState,\n withColumnHidden,\n withColumnMoved,\n withColumnPinned,\n type GridColumn,\n type GridColumnState,\n type GridOutOfSpace,\n type GridPinZone,\n} from '@slotted/core/grid';\nimport {\n columnManagerMessages,\n dragMessages,\n type ColumnManagerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable, type ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectColumnManagerDefaults,\n SlColumnManagerIdFactory,\n type ColumnManagerApply,\n type ColumnManagerColumnReason,\n type ColumnManagerOpenReason,\n type ColumnManagerPresentation,\n type ColumnManagerRequest,\n} from './column-manager-defaults';\n\ntype ZoneKey = 'start' | 'middle' | 'end';\nconst ZONE_KEYS: readonly ZoneKey[] = ['start', 'middle', 'end'];\n/** No column taken out for room: the grid's set before its frame is measured. */\nconst NONE_OUT: GridOutOfSpace = { popin: [], hidden: [] };\n\n/** The three pin zones over the normalised order, every column in one of them. */\nexport function columnZones(state: GridColumnState): Record<ZoneKey, readonly string[]> {\n const start = state.pinned.start.filter((id) => state.order.includes(id));\n const end = state.pinned.end.filter((id) => state.order.includes(id));\n const middle = state.order.filter((id) => !start.includes(id) && !end.includes(id));\n return { start, middle, end };\n}\n\n/** Case and accents fall away, so `Região` is found by `regiao`. */\nexport function searchKey(text: string): string {\n return text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n}\n\nfunction sameState(a: GridColumnState, b: GridColumnState): boolean {\n return columnStateChanges(a, b).length === 0;\n}\n\n/** A click with no coordinates is a key. */\nfunction pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\nfunction escapeValue(value: string): string {\n return typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(value)\n : value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\ninterface DragView {\n dragging: string | null;\n container: ZoneKey | null;\n index: number | null;\n}\n\nconst NO_DRAG: DragView = { dragging: null, container: null, index: null };\n\ninterface ItemView {\n id: string;\n column: GridColumn<unknown>;\n hidden: boolean;\n locked: boolean;\n lastVisible: boolean;\n bySpace: boolean;\n handleDisabled: boolean;\n status: string | null;\n zone: GridPinZone;\n /** The index in the whole zone, which the drop line is placed by. */\n index: number;\n}\n\ninterface SectionView {\n key: ZoneKey;\n label: string;\n items: ItemView[];\n /** Drop line after the last item. */\n dropAtEnd: boolean;\n}\n\n/**\n * Writes this family's part name on a control another family's directive\n * owns. `slButton` writes `data-part=\"root\"` as a static host attribute and\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's; either erases the part the template\n * wrote, so it is written back after the first render.\n */\n@Directive({ selector: '[slColumnManagerPart]', standalone: true })\nexport class SlColumnManagerPart {\n readonly part = input.required<string>({ alias: 'slColumnManagerPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => writeSelectorKey(this.host.nativeElement, 'part', this.part()));\n }\n}\n\n/**\n * The panel that edits a grid's column state: which columns are shown, in\n * which order, pinned to which edge. It does not know the grid: it is given\n * the columns, the state and the set the grid hid for room, and asks for every\n * change with a request carrying the reason and the keys that moved.\n *\n * The host renders nothing of its own (`display: contents`); the root is the\n * popover's one child, the drawer's content, or stands in place.\n */\n@Component({\n selector: 'sl-column-manager',\n standalone: true,\n exportAs: 'slColumnManager',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlCheckbox,\n SlCheckboxDescription,\n SlColumnManagerPart,\n SlDrawer,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlTextField,\n SlTextFieldInput,\n SlTextFieldStart,\n ],\n template: `\n @switch (resolvedPresentation()) {\n @case ('popover') {\n <ng-container\n slPopover\n size=\"lg\"\n side=\"bottom\"\n align=\"start\"\n initialFocus=\"[data-part='search'] input\"\n [open]=\"open()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-labelledby]=\"titleId\">\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </div>\n </ng-template>\n </ng-container>\n }\n @case ('drawer') {\n <sl-drawer\n side=\"end\"\n size=\"sm\"\n [open]=\"open()\"\n [finalFocus]=\"triggerNode() ?? false\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </sl-drawer>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"panel\" />\n }\n }\n\n <ng-template #panel>\n <div\n #root\n data-ui=\"column-manager\"\n data-ui-column-manager=\"\"\n data-part=\"root\"\n data-part-root=\"\"\n role=\"group\"\n [attr.id]=\"rootId\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.data-presentation]=\"resolvedPresentation()\"\n [attr.data-apply]=\"resolvedApply()\"\n >\n <div data-part=\"header\" data-part-header=\"\">\n <h2 data-part=\"title\" data-part-title=\"\" [attr.id]=\"titleId\">{{ t('title') }}</h2>\n <span data-part=\"summary\" data-part-summary=\"\">{{ summary() }}</span>\n </div>\n <div data-part=\"search\" data-part-search=\"\">\n <div slTextField size=\"sm\" [clearable]=\"true\">\n <span slTextFieldStart\n ><span slIcon><svg slGlyph name=\"search\"></svg></span\n ></span>\n <input\n slTextFieldInput\n type=\"search\"\n [value]=\"query()\"\n [attr.aria-label]=\"t('search')\"\n [attr.placeholder]=\"t('search')\"\n (valueChange)=\"query.set($event.value)\"\n />\n </div>\n </div>\n <div data-part=\"list\" data-part-list=\"\">\n @if (sections().length === 0 && searching()) {\n <div data-part=\"empty\" data-part-empty=\"\" role=\"status\">{{ t('noResults') }}</div>\n }\n @for (section of sections(); track section.key) {\n <div\n data-part=\"section\"\n data-part-section=\"\"\n role=\"group\"\n [attr.data-zone]=\"section.key\"\n [attr.aria-labelledby]=\"rootId + '-' + section.key\"\n [attr.data-sole]=\"sections().length === 1 ? '' : null\"\n [attr.data-drop-target]=\"\n drag().container === section.key && drag().index !== null ? '' : null\n \"\n >\n <div\n data-part=\"section-label\"\n data-part-section-label=\"\"\n [attr.id]=\"rootId + '-' + section.key\"\n >\n {{ section.label }}\n </div>\n @for (item of section.items; track item.id) {\n @if (dropAt(section.key, item.index)) {\n <div\n data-part=\"drop-indicator\"\n data-part-drop-indicator=\"\"\n aria-hidden=\"true\"\n ></div>\n }\n <div\n data-part=\"item\"\n data-part-item=\"\"\n [attr.data-column]=\"item.id\"\n [attr.data-hidden]=\"item.hidden ? '' : null\"\n [attr.data-locked]=\"item.locked ? '' : null\"\n [attr.data-space-hidden]=\"item.bySpace ? '' : null\"\n [attr.data-pinned]=\"item.zone\"\n [attr.data-dragging]=\"drag().dragging === item.id ? '' : null\"\n >\n <button\n data-part=\"handle\"\n data-part-handle=\"\"\n type=\"button\"\n [attr.aria-label]=\"t('reorder', { column: item.column.label })\"\n [attr.aria-disabled]=\"item.handleDisabled ? 'true' : null\"\n [attr.data-disabled]=\"item.handleDisabled ? '' : null\"\n (keydown)=\"onHandleKeyDown($event, item.id, section.key)\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"grip-vertical\"></svg></span>\n </button>\n <div data-part=\"visibility\" data-part-visibility=\"\">\n <div\n slCheckbox\n [checked]=\"!item.hidden\"\n [disabled]=\"(item.locked && !item.hidden) || item.lastVisible\"\n (checkedChange)=\"toggle(item.id, $event)\"\n >\n {{ item.column.label }}\n @if (item.status) {\n <span data-part=\"status\" data-part-status=\"\">{{ item.status }}</span>\n }\n @if (item.column.description) {\n <p slCheckboxDescription>{{ item.column.description }}</p>\n }\n </div>\n </div>\n <button\n type=\"button\"\n slColumnManagerPart=\"pin\"\n data-part=\"pin\"\n data-part-pin=\"\"\n [slMenuTriggerFor]=\"pinMenu\"\n [attr.aria-label]=\"t('pin', { column: item.column.label })\"\n [attr.data-pinned]=\"item.zone ? '' : null\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span>\n </button>\n <sl-menu #pinMenu size=\"sm\">\n <button\n slMenuItem\n [disabled]=\"item.zone === 'start'\"\n (select)=\"pin(item.id, 'start', $event)\"\n >\n {{ t('pinStart') }}\n </button>\n <button\n slMenuItem\n [disabled]=\"item.zone === 'end'\"\n (select)=\"pin(item.id, 'end', $event)\"\n >\n {{ t('pinEnd') }}\n </button>\n @if (item.zone) {\n <button slMenuItem (select)=\"pin(item.id, null, $event)\">\n {{ t('unpin') }}\n </button>\n }\n </sl-menu>\n </div>\n }\n @if (section.dropAtEnd) {\n <div\n data-part=\"drop-indicator\"\n data-part-drop-indicator=\"\"\n aria-hidden=\"true\"\n ></div>\n }\n </div>\n }\n </div>\n <div data-part=\"footer\" data-part-footer=\"\">\n <button\n slButton\n slColumnManagerPart=\"show-all\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"working().hidden.length === 0\"\n (click)=\"showAll($event)\"\n >\n {{ t('showAll') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"reset\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"atDefault()\"\n (click)=\"reset($event)\"\n >\n {{ t('reset') }}\n </button>\n @if (confirm()) {\n <button\n slButton\n slColumnManagerPart=\"cancel\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"cancel($event)\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"apply\"\n size=\"sm\"\n type=\"button\"\n [disabled]=\"!dirty()\"\n (click)=\"applyDraft($event)\"\n >\n {{ t('apply') }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: '../../../styles/src/column-manager/column-manager.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[style.display]': \"'contents'\" },\n})\nexport class SlColumnManager {\n /** The grid's columns, as the grid is given them. */\n readonly columns = input.required<readonly GridColumn<never>[]>();\n /** The state; two-way, so a template may bind it directly. */\n readonly columnState = model<GridColumnState | undefined>(undefined);\n /** The start while nothing is bound, and the target of Restore defaults. */\n readonly defaultColumnState = input<Partial<GridColumnState> | undefined>(undefined);\n /**\n * The columns the grid took out for room — the grid's `outOfSpace()`:\n * listed with a status, never written to the state.\n */\n readonly outOfSpace = input<GridOutOfSpace>(NONE_OUT);\n readonly presentation = input<ColumnManagerPresentation | undefined>(undefined);\n readonly apply = input<ColumnManagerApply | undefined>(undefined);\n readonly open = model<boolean>(false);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<ColumnManagerMessages> | undefined>(undefined);\n\n /** Before the state moves, with the reason and every key that moved. */\n readonly columnStateChangeRequest = output<ColumnManagerRequest>();\n /** Before the layer opens or closes, with the reason. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectColumnManagerDefaults();\n private readonly base = inject(SlColumnManagerIdFactory).next();\n readonly rootId = `${this.base}-panel`;\n readonly titleId = `${this.base}-title`;\n\n /** The family's words in the language in force, with this manager's `messages` laid over them. */\n readonly t = injectMessages(columnManagerMessages, this.messages);\n /** What a drag of a column says, in the language in force. */\n private readonly dragT = injectMessages(dragMessages);\n readonly resolvedPresentation = computed(() => this.presentation() ?? this.defaults.presentation);\n readonly resolvedApply = computed(() => this.apply() ?? this.defaults.apply);\n protected readonly confirm = computed(() => this.resolvedApply() === 'confirm');\n\n private readonly normalizedDefault = computed(() =>\n normalizeColumnState(this.defaultColumnState(), this.columns()),\n );\n /** The committed state: the bound one, or the default. */\n readonly state = computed(() =>\n normalizeColumnState(this.columnState() ?? this.defaultColumnState(), this.columns()),\n );\n private readonly draft = signal<GridColumnState | null>(null);\n protected readonly working = computed(() =>\n this.confirm() ? (this.draft() ?? this.state()) : this.state(),\n );\n protected readonly dirty = computed(() => {\n const draft = this.draft();\n return draft !== null && !sameState(draft, this.state());\n });\n protected readonly atDefault = computed(() =>\n sameState(this.working(), this.normalizedDefault()),\n );\n\n /** How many columns the reader hid; the trigger's count. */\n readonly hiddenCount = computed(() => this.state().hidden.length);\n\n readonly query = signal('');\n private readonly searchText = computed(() => searchKey(this.query().trim()));\n protected readonly searching = computed(() => this.searchText() !== '');\n\n private readonly byId = computed(\n () => new Map(this.columns().map((column) => [column.id, column as GridColumn<unknown>])),\n );\n private readonly zones = computed(() => columnZones(this.working()));\n private readonly visibleCount = computed(() => {\n const hidden = new Set(this.working().hidden);\n return this.working().order.filter((id) => !hidden.has(id)).length;\n });\n protected readonly summary = computed(() =>\n this.t('visibleCount', {\n visible: this.visibleCount(),\n total: this.working().order.length,\n }),\n );\n\n protected readonly drag = signal<DragView>(NO_DRAG);\n\n protected readonly sections = computed<SectionView[]>(() => {\n const zones = this.zones();\n const byId = this.byId();\n const hidden = new Set(this.working().hidden);\n const space = new Set(this.outOfSpace().hidden);\n const inRow = new Set(this.outOfSpace().popin);\n const visible = this.visibleCount();\n const text = this.searchText();\n const searching = text !== '';\n const t = this.t;\n const labels = { start: t('pinnedStart'), middle: t('unpinned'), end: t('pinnedEnd') };\n return ZONE_KEYS.map((key) => {\n const items = zones[key]\n .map((id, index) => ({ id, index, column: byId.get(id) }))\n .filter(\n (entry): entry is { id: string; index: number; column: GridColumn<unknown> } =>\n entry.column !== undefined &&\n (!searching ||\n searchKey(entry.column.label).includes(text) ||\n searchKey(entry.column.description ?? '').includes(text)),\n )\n .map(({ id, index, column }) => {\n const isHidden = hidden.has(id);\n const locked = column.hideable === false;\n const bySpace = !isHidden && space.has(id);\n const shownInRow = !isHidden && inRow.has(id);\n return {\n id,\n column,\n index,\n hidden: isHidden,\n locked,\n lastVisible: !isHidden && visible <= 1,\n bySpace,\n handleDisabled: searching || column.reorderable === false,\n status: locked\n ? t('required')\n : bySpace\n ? t('hiddenBySpace')\n : shownInRow\n ? t('inRow')\n : null,\n zone: key === 'middle' ? null : key,\n } satisfies ItemView;\n });\n return {\n key,\n label: labels[key],\n items,\n dropAtEnd: this.dropAt(key, zones[key].length),\n };\n }).filter((section) => section.items.length > 0);\n });\n\n /* ── The trigger ─────────────────────────────────────────────────────── */\n\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly popover = viewChild(SlPopover);\n\n /** Called by `slColumnManagerTrigger`. */\n registerTrigger(node: HTMLElement | null) {\n this.triggerNode.set(node);\n }\n\n /* ── The drag ────────────────────────────────────────────────────────── */\n\n private readonly root = viewChild<ElementRef<HTMLDivElement>>('root');\n private controller: DragController | null = null;\n private readonly draggables = new Map<string, { node: HTMLElement; detach: () => void }>();\n private pendingFocus: string | null = null;\n\n constructor() {\n /* The popover hangs from this family's trigger, and a press on it is not\n an outside press. */\n effect(() => {\n const popover = this.popover();\n const trigger = this.triggerNode();\n if (popover) untracked(() => popover.triggerNode.set(trigger));\n });\n\n /* A draft is read when the layer opens, and dropped when it closes. */\n effect(() => {\n if (!this.open()) {\n untracked(() => {\n this.draft.set(null);\n this.query.set('');\n });\n }\n });\n\n effect((onCleanup) => {\n const element = this.root()?.nativeElement;\n if (!element) return;\n const controller = untracked(() => this.createController(element));\n onCleanup(() => {\n controller.destroy();\n this.controller = null;\n for (const entry of this.draggables.values()) entry.detach();\n this.draggables.clear();\n });\n });\n\n afterEveryRender(() => {\n this.syncDraggables();\n const id = this.pendingFocus;\n const element = this.root()?.nativeElement;\n if (id && element) {\n this.pendingFocus = null;\n element\n .querySelector<HTMLElement>(\n `[data-part=\"item\"][data-column=\"${escapeValue(id)}\"] > [data-part=\"handle\"]`,\n )\n ?.focus();\n }\n });\n\n inject(DestroyRef).onDestroy(() => this.controller?.destroy());\n }\n\n private createController(element: HTMLElement): DragController {\n const document = element.ownerDocument;\n const announce = (message: string) => {\n if (message !== '') getLiveAnnouncer(document).announce(message);\n };\n const itemOf = (id: string) =>\n element.querySelector<HTMLElement>(`[data-part=\"item\"][data-column=\"${escapeValue(id)}\"]`);\n const controller = createDragController({\n document,\n preview: false,\n restoreFocus: false,\n autoScroll: { axis: 'y' },\n announce,\n t: this.dragT,\n /* A one-step keyboard move says where the column landed once, below;\n the controller's own step-by-step position would say it twice. */\n silent: ['moved'],\n onDrop: ({ items, source, target, reason, event }) => {\n if (target.kind !== 'between' || target.container !== source.container) return;\n const zone = this.zones()[source.container as ZoneKey];\n const id = items[0]!;\n const to = target.index > source.index ? target.index - 1 : target.index;\n this.edit(\n withColumnMoved(this.working(), id, to, zone),\n reason === 'keyboard' ? 'keyboard' : 'pointer',\n event,\n );\n if (reason === 'keyboard') {\n this.pendingFocus = id;\n const label = this.byId().get(id)?.label ?? id;\n announce(this.t('moved', { column: label, position: to + 1 }));\n }\n },\n });\n for (const key of ZONE_KEYS) {\n controller.registerContainer({\n key,\n items: () => this.zones()[key],\n orientation: 'vertical',\n element: () => element.querySelector(`[data-part=\"section\"][data-zone=\"${key}\"]`),\n itemElement: itemOf,\n accepts: (state: DragState, target) => state.source?.container === target.container,\n disabled: () => this.searching(),\n itemLabel: (id) => this.byId().get(id)?.label ?? id,\n });\n }\n controller.subscribe((next) => {\n if (next.status !== 'dragging' || next.reason === 'keyboard') {\n this.drag.set(NO_DRAG);\n return;\n }\n const target = next.target;\n this.drag.set({\n dragging: next.items[0] ?? null,\n container: target && target.kind === 'between' ? (target.container as ZoneKey) : null,\n index: target && target.kind === 'between' && next.valid ? target.index : null,\n });\n });\n this.controller = controller;\n return controller;\n }\n\n /** Every item is a draggable whose press must start on its handle. */\n private syncDraggables() {\n const controller = this.controller;\n const element = this.root()?.nativeElement;\n if (!controller || !element) return;\n const seen = new Set<string>();\n for (const node of element.querySelectorAll<HTMLElement>('[data-part=\"item\"][data-column]')) {\n const id = node.dataset['column']!;\n const key = node.closest<HTMLElement>('[data-part=\"section\"]')?.dataset['zone'] ?? 'middle';\n seen.add(id);\n const existing = this.draggables.get(id);\n if (existing && existing.node === node && node.dataset['attachedZone'] === key) continue;\n existing?.detach();\n node.dataset['attachedZone'] = key;\n const detach = controller.attachDraggable(node, {\n container: key,\n key: id,\n handle: () => node.querySelector('[data-part=\"handle\"]'),\n disabled: () => this.searching() || this.byId().get(id)?.reorderable === false,\n distance: 4,\n });\n this.draggables.set(id, { node, detach });\n }\n for (const [id, entry] of this.draggables) {\n if (seen.has(id)) continue;\n entry.detach();\n this.draggables.delete(id);\n }\n }\n\n protected dropAt(key: ZoneKey, index: number): boolean {\n const drag = this.drag();\n if (drag.container !== key || drag.index !== index || drag.dragging === null) return false;\n const from = this.zones()[key].indexOf(drag.dragging);\n return index !== from && index !== from + 1;\n }\n\n /* ── Requests ─────────────────────────────────────────────────────────── */\n\n private emit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n const previous = this.state();\n const changes = columnStateChanges(previous, next);\n if (changes.length === 0) return false;\n let cancelled = false;\n const request: ColumnManagerRequest = {\n value: next,\n previous,\n reason,\n source,\n change: changes[0]!,\n changes,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.columnStateChangeRequest.emit(request);\n if (cancelled) return false;\n this.columnState.set(next);\n return true;\n }\n\n private edit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n if (this.confirm()) this.draft.set(next);\n else this.emit(next, reason, source);\n }\n\n private setOpen(next: boolean, reason: ColumnManagerOpenReason, source?: unknown): boolean {\n if (next === this.open()) return false;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n state.request(next, reason, source);\n if (cancelled) return false;\n this.open.set(next);\n return true;\n }\n\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n const moved = this.setOpen(\n request.value,\n request.reason as ColumnManagerOpenReason,\n request.source,\n );\n if (!moved) request.cancel();\n }\n\n protected toggle(id: string, request: ChangeRequest<boolean>) {\n this.edit(\n withColumnHidden(this.working(), id, !request.value),\n request.reason === 'keyboard' ? 'keyboard' : 'pointer',\n request.source,\n );\n }\n\n protected pin(id: string, zone: GridPinZone, event: MenuSelectEvent) {\n this.edit(withColumnPinned(this.working(), id, zone), event.reason, event.source);\n }\n\n protected showAll(event: MouseEvent) {\n this.edit({ ...this.working(), hidden: [] }, pressReason(event), event);\n }\n\n protected reset(event: MouseEvent) {\n this.edit(this.normalizedDefault(), 'clear', event);\n }\n\n protected applyDraft(event: MouseEvent) {\n const draft = this.draft();\n if (draft !== null) this.emit(draft, 'submit', event);\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected cancel(event: MouseEvent) {\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected onHandleKeyDown(event: KeyboardEvent, id: string, key: ZoneKey) {\n if (!event.altKey || (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')) return;\n event.preventDefault();\n if (this.searching() || this.byId().get(id)?.reorderable === false) return;\n const zone = this.zones()[key];\n const index = zone.indexOf(id);\n const up = event.key === 'ArrowUp';\n if ((up && index <= 0) || (!up && index >= zone.length - 1)) return;\n this.controller?.moveBy({\n items: [id],\n source: { container: key, index },\n intent: up ? 'previous' : 'next',\n reason: 'keyboard',\n event,\n });\n }\n\n /* ── The imperative actions ──────────────────────────────────────────── */\n\n /** Opens the layer, with the reason `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, with the reason `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Called by the trigger, with the reason of the press. */\n toggleOpen(reason: ColumnManagerOpenReason = 'programmatic', source?: unknown) {\n this.setOpen(!this.open(), reason, source);\n }\n}\n\n/**\n * The consumer's button, wired to a manager: the popup it opens, whether it\n * is open, what it controls, and the count of hidden columns after its words\n * — a chip on screen and a sentence in its accessible name. A directive\n * cannot project, so the two spans are appended to the host once and kept\n * current from the manager's count.\n */\n@Directive({\n selector: '[slColumnManagerTrigger]',\n standalone: true,\n exportAs: 'slColumnManagerTrigger',\n host: {\n 'aria-haspopup': 'dialog',\n 'data-column-manager-trigger': '',\n '[attr.aria-expanded]': 'manager().open()',\n '[attr.aria-controls]': 'manager().open() ? manager().rootId : null',\n '[attr.data-open]': \"manager().open() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlColumnManagerTrigger {\n readonly manager = input.required<SlColumnManager>({ alias: 'slColumnManagerTriggerFor' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly count = signal<{ chip: HTMLElement; sentence: HTMLElement } | null>(null);\n\n constructor() {\n effect((onCleanup) => {\n const manager = this.manager();\n manager.registerTrigger(this.host);\n onCleanup(() => manager.registerTrigger(null));\n });\n\n /* `slButton` writes `data-part=\"root\"` statically; the part is this family's. */\n afterNextRender(() => {\n writeSelectorKey(this.host, 'part', 'trigger');\n const chip = this.renderer.createElement('span') as HTMLElement;\n writeSelectorKey(chip, 'part', 'count');\n chip.setAttribute('aria-hidden', 'true');\n const sentence = this.renderer.createElement('span') as HTMLElement;\n writeSelectorKey(sentence, 'ui', 'visually-hidden');\n writeSelectorKey(sentence, 'part', 'root');\n this.count.set({ chip, sentence });\n });\n\n effect(() => {\n const nodes = this.count();\n if (!nodes) return;\n const manager = this.manager();\n const hidden = manager.hiddenCount();\n if (hidden === 0) {\n nodes.chip.remove();\n nodes.sentence.remove();\n return;\n }\n nodes.chip.textContent = String(hidden);\n nodes.sentence.textContent = manager.t('hiddenCount', { count: hidden });\n if (!nodes.chip.isConnected) {\n this.host.append(' ', nodes.chip, ' ', nodes.sentence);\n }\n });\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.manager().toggleOpen(pressReason(event), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|