@slotted/angular 0.1.0-beta.7 → 0.1.0-beta.9
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/docs/calendar.json +1 -1
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/currency-field.json +7 -0
- package/docs/currency-field.md +1 -0
- package/docs/data-grid.examples.md +1 -1
- package/docs/data-grid.json +21 -4
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +5 -3
- package/docs/dialog.examples.md +138 -136
- package/docs/dialog.json +8 -8
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/guidelines/async-feedback.md +10 -0
- package/docs/guidelines/composition.md +11 -7
- package/docs/guidelines/index.md +6 -1
- package/docs/guidelines/list-pages.md +30 -0
- package/docs/guidelines/overviews.md +10 -0
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/page-header.json +1 -1
- package/docs/skills/compose-screen/SKILL.md +22 -10
- package/docs/skills/review-screen/SKILL.md +6 -0
- package/docs/skills/waiting-states/SKILL.md +4 -1
- package/docs/tags-input.json +28 -2
- package/docs/tags-input.md +4 -1
- package/docs/timeline.json +131 -131
- package/docs/timeline.md +123 -123
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +21 -10
- 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 +17 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +52 -40
- 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 +9 -6
- 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 +53 -25
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +82 -30
- 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 +158 -64
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +4 -2
- 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 +13 -8
- 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 +77 -31
- 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 +98 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +309 -104
- 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 +40 -14
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +19 -9
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
- 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 +37 -23
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
- 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 +61 -28
- 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 +38 -26
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
- 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 +104 -43
- 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 +10 -8
- 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 +14 -10
- 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 +41 -27
- 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 +133 -57
- 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 +107 -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 +72 -42
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +18 -9
- 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 +25 -18
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
- 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 +9 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +34 -15
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +135 -53
- 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 +29 -13
- 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 +135 -72
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +31 -14
- 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 +28 -14
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
- 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 +42 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
- 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 +21 -10
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +8 -5
- 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 +46 -21
- 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 +1 -1
- package/types/slotted-angular-alert.d.ts.map +1 -1
- 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.map +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.map +1 -1
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +2 -0
- 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.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -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 +1 -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 +39 -13
- 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 +26 -2
- 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.map +1 -1
- package/types/slotted-angular-date-picker.d.ts.map +1 -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.map +1 -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 +2 -1
- 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.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +1 -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.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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-tabs.d.ts.map +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-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +2 -2
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts.map +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.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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"}
|