@slotted/angular 0.1.0-beta.8 → 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/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 +68 -26
- 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 +128 -51
- 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 +38 -12
- 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 +46 -14
- 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 +39 -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 +32 -24
- 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 +46 -12
- 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.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.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-context-menu.mjs","sources":["../../context-menu/src/context-menu-defaults.ts","../../context-menu/src/context-menu-trigger.ts","../../context-menu/src/slotted-angular-context-menu.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nexport interface ContextMenuDefaults {\n /** Whether a long press on touch and pen opens the menu. */\n longPress: boolean;\n /** How long the press is held before the menu opens, in milliseconds. */\n longPressDelay: number;\n}\n\n/**\n * A long press opens on touch and pen, after the delay `tooltip` already holds\n * as `touchDelay`. The surface's own defaults are the menu's, and\n * `provideMenuDefaults()` is where an application sets those; whether the\n * family is disabled is the menu's `disabled`, so there is no second copy.\n */\nconst FALLBACK: ContextMenuDefaults = {\n longPress: true,\n longPressDelay: 500,\n};\n\nexport const CONTEXT_MENU_DEFAULTS = new InjectionToken<ContextMenuDefaults>(\n 'slotted context-menu defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/** The decisions an application takes once, in its bootstrap. */\nexport function provideContextMenuDefaults(defaults: Partial<ContextMenuDefaults>) {\n return {\n provide: CONTEXT_MENU_DEFAULTS,\n useFactory: (): ContextMenuDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectContextMenuDefaults(): ContextMenuDefaults {\n return inject(CONTEXT_MENU_DEFAULTS);\n}\n","import type { PositionerAnchor } from '@slotted/core/positioner';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlMenu } from '@slotted/angular/menu';\n\nimport { injectContextMenuDefaults } from './context-menu-defaults';\n\n/** A rectangle with no size at the point the reader pressed. */\nfunction pointAnchor(x: number, y: number): PositionerAnchor {\n const rect = new DOMRect(x, y, 0, 0);\n return { getBoundingClientRect: () => rect };\n}\n\n/** Past this many pixels a held finger is a scroll, not a press. */\nconst MOVEMENT_THRESHOLD = 10;\n\n/**\n * The window after a keyboard opening in which a `contextmenu` event is the\n * one Windows fires for the key rather than a second press.\n */\nconst KEYBOARD_ECHO = 300;\n\n/**\n * The target of a context menu: the region a secondary click, a long press or\n * `Shift+F10` opens an `sl-menu` on.\n *\n * It is written on the consumer's own element — a row, a card, a canvas — and\n * it is the family's one part: the menu it opens is `sl-menu`, imported as it\n * is, the way `sl-menubar` holds its menus. The state is the menu's `[(open)]`\n * and this component only asks it to move, so there is no second owner.\n *\n * A component rather than a directive, as `slMenuItem` and `slLink` are,\n * because a component is what can carry `styleUrl`: this is where the family's\n * authored stylesheet enters an Angular application.\n *\n * It writes no `aria-haspopup`, which is not permitted on a generic element,\n * and no `tabindex`, which would add a tab stop to every wrapped region. A\n * target the consumer made focusable can be opened from the keyboard.\n */\n@Component({\n selector: '[slContextMenuTriggerFor]',\n standalone: true,\n exportAs: 'slContextMenuTrigger',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/context-menu/context-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.data-ui]': 'ui',\n '[attr.data-part]': 'part',\n '[attr.id]': 'id',\n '[attr.data-open]': 'menu().isOpen() ? \"\" : null',\n '[attr.data-pressed]': 'pressed() ? \"\" : null',\n '[attr.data-disabled]': 'menu().resolvedDisabled() ? \"\" : null',\n '(contextmenu)': 'onContextMenu($event)',\n '(keydown)': 'onKeyDown($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'cancelPress()',\n '(pointercancel)': 'cancelPress()',\n },\n})\nexport class SlContextMenuTrigger {\n /** The menu this target opens. */\n readonly menu = input.required<SlMenu>({ alias: 'slContextMenuTriggerFor' });\n\n readonly longPress = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (given) => (given === undefined ? undefined : booleanAttribute(given)),\n });\n readonly longPressDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: (given) => (given === undefined ? undefined : numberAttribute(given)),\n });\n\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n private readonly defaults = injectContextMenuDefaults();\n\n /**\n * Two directives on one element write host attributes into the same slot,\n * and a host that already carries a part — a `slTableRow` — keeps it: the\n * rule `menu-trigger.ts` records, read from the other side.\n */\n private readonly writtenUi = inject(new HostAttributeToken('data-ui'), { optional: true });\n private readonly writtenPart = inject(new HostAttributeToken('data-part'), { optional: true });\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n\n protected readonly ui = this.writtenUi ?? 'context-menu';\n protected readonly part = this.writtenPart ?? 'root';\n /** The menu names its surface after this element unless given `aria-label`. */\n protected get id(): string {\n return this.writtenId ?? this.menu().triggerId;\n }\n\n protected readonly pressed = signal(false);\n private press: { timer: ReturnType<typeof setTimeout>; x: number; y: number } | null = null;\n private openedByKeyboardAt = 0;\n\n protected readonly resolvedLongPress = computed(\n () => this.longPress() ?? this.defaults.longPress,\n );\n protected readonly resolvedLongPressDelay = computed(\n () => this.longPressDelay() ?? this.defaults.longPressDelay,\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The menu is told which element is its trigger — the portal origin, the\n branch of the layer and the focus destination of last resort — as soon\n as the input resolves. */\n effect(() => {\n this.menu().trigger.set(this.element);\n });\n\n /**\n * The browser would draw its own menu over a secondary click on an item\n * of the family's. While the surface shows, `contextmenu` inside it is\n * prevented.\n */\n const guard = (event: Event) => {\n const menu = this.menu();\n const surface = menu.surface();\n if (!menu.isOpen() || surface === null) return;\n const layer = surface.parentElement ?? surface;\n if (event.target instanceof Node && layer.contains(event.target)) event.preventDefault();\n };\n afterNextRender(() => {\n this.element.ownerDocument.addEventListener('contextmenu', guard, true);\n });\n\n destroyRef.onDestroy(() => {\n this.cancelPress();\n this.element.ownerDocument.removeEventListener('contextmenu', guard, true);\n });\n }\n\n /**\n * Opens, or moves. The way back is captured now: the element that held focus\n * when the reader pressed, and the target itself when nothing did. While the\n * surface is already open the anchor moves and no request is emitted.\n */\n private openAt(anchor: PositionerAnchor | null, reason: 'pointer' | 'keyboard', source: Event) {\n const menu = this.menu();\n if (!menu.isOpen()) {\n const active = this.element.ownerDocument.activeElement;\n menu.finalFocus.set(\n active instanceof HTMLElement && active !== active.ownerDocument.body\n ? active\n : this.element,\n );\n }\n menu.anchor.set(anchor);\n menu.entry.current = 'first';\n menu.toggle(true, reason, source);\n }\n\n protected onContextMenu(source: Event) {\n const event = source as MouseEvent;\n if (this.menu().resolvedDisabled()) return;\n event.preventDefault();\n this.cancelPress();\n /* Windows fires `contextmenu` for the key the family already answered. */\n if (Date.now() - this.openedByKeyboardAt < KEYBOARD_ECHO) return;\n this.openAt(pointAnchor(event.clientX, event.clientY), 'pointer', event);\n }\n\n protected onKeyDown(source: Event) {\n const event = source as KeyboardEvent;\n if (this.menu().resolvedDisabled()) return;\n if (event.key !== 'ContextMenu' && !(event.key === 'F10' && event.shiftKey)) return;\n event.preventDefault();\n this.openedByKeyboardAt = Date.now();\n this.openAt(null, 'keyboard', event);\n }\n\n /**\n * A primary press on the target while the menu shows closes it: the target\n * is a branch of the layer, so the layer would not, and from the reader's\n * side the target is elsewhere. On touch and pen the same press may also be\n * the start of a long one.\n */\n protected onPointerDown(source: Event) {\n const event = source as PointerEvent;\n const menu = this.menu();\n if (menu.resolvedDisabled()) return;\n if (event.button === 0 && menu.isOpen()) menu.toggle(false, 'outsidePress', event);\n if (!this.resolvedLongPress() || event.pointerType === 'mouse' || event.button !== 0) return;\n\n this.cancelPress();\n const { clientX: x, clientY: y } = event;\n this.press = {\n x,\n y,\n timer: setTimeout(() => {\n this.press = null;\n this.pressed.set(false);\n this.openAt(pointAnchor(x, y), 'pointer', event);\n }, this.resolvedLongPressDelay()),\n };\n this.pressed.set(true);\n }\n\n protected onPointerMove(source: Event) {\n const event = source as PointerEvent;\n if (this.press === null) return;\n if (\n Math.hypot(event.clientX - this.press.x, event.clientY - this.press.y) > MOVEMENT_THRESHOLD\n ) {\n this.cancelPress();\n }\n }\n\n protected cancelPress() {\n if (this.press === null) return;\n clearTimeout(this.press.timer);\n this.press = null;\n this.pressed.set(false);\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-context-menu.mjs","sources":["../../context-menu/src/context-menu-defaults.ts","../../context-menu/src/context-menu-trigger.ts","../../context-menu/src/slotted-angular-context-menu.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nexport interface ContextMenuDefaults {\n /** Whether a long press on touch and pen opens the menu. */\n longPress: boolean;\n /** How long the press is held before the menu opens, in milliseconds. */\n longPressDelay: number;\n}\n\n/**\n * A long press opens on touch and pen, after the delay `tooltip` already holds\n * as `touchDelay`. The surface's own defaults are the menu's, and\n * `provideMenuDefaults()` is where an application sets those; whether the\n * family is disabled is the menu's `disabled`, so there is no second copy.\n */\nconst FALLBACK: ContextMenuDefaults = {\n longPress: true,\n longPressDelay: 500,\n};\n\nexport const CONTEXT_MENU_DEFAULTS = new InjectionToken<ContextMenuDefaults>(\n 'slotted context-menu defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/** The decisions an application takes once, in its bootstrap. */\nexport function provideContextMenuDefaults(defaults: Partial<ContextMenuDefaults>) {\n return {\n provide: CONTEXT_MENU_DEFAULTS,\n useFactory: (): ContextMenuDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectContextMenuDefaults(): ContextMenuDefaults {\n return inject(CONTEXT_MENU_DEFAULTS);\n}\n","import { hostSelectorKey } from '@slotted/core/selector-key';\nimport type { PositionerAnchor } from '@slotted/core/positioner';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlMenu } from '@slotted/angular/menu';\n\nimport { injectContextMenuDefaults } from './context-menu-defaults';\n\n/** A rectangle with no size at the point the reader pressed. */\nfunction pointAnchor(x: number, y: number): PositionerAnchor {\n const rect = new DOMRect(x, y, 0, 0);\n return { getBoundingClientRect: () => rect };\n}\n\n/** Past this many pixels a held finger is a scroll, not a press. */\nconst MOVEMENT_THRESHOLD = 10;\n\n/**\n * The window after a keyboard opening in which a `contextmenu` event is the\n * one Windows fires for the key rather than a second press.\n */\nconst KEYBOARD_ECHO = 300;\n\n/**\n * The target of a context menu: the region a secondary click, a long press or\n * `Shift+F10` opens an `sl-menu` on.\n *\n * It is written on the consumer's own element — a row, a card, a canvas — and\n * it is the family's one part: the menu it opens is `sl-menu`, imported as it\n * is, the way `sl-menubar` holds its menus. The state is the menu's `[(open)]`\n * and this component only asks it to move, so there is no second owner.\n *\n * A component rather than a directive, as `slMenuItem` and `slLink` are,\n * because a component is what can carry `styleUrl`: this is where the family's\n * authored stylesheet enters an Angular application.\n *\n * It writes no `aria-haspopup`, which is not permitted on a generic element,\n * and no `tabindex`, which would add a tab stop to every wrapped region. A\n * target the consumer made focusable can be opened from the keyboard.\n */\n@Component({\n selector: '[slContextMenuTriggerFor]',\n standalone: true,\n exportAs: 'slContextMenuTrigger',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/context-menu/context-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.data-ui]': 'ui',\n '[attr.data-part]': 'part',\n '[attr.id]': 'id',\n '[attr.data-open]': 'menu().isOpen() ? \"\" : null',\n '[attr.data-pressed]': 'pressed() ? \"\" : null',\n '[attr.data-disabled]': 'menu().resolvedDisabled() ? \"\" : null',\n '(contextmenu)': 'onContextMenu($event)',\n '(keydown)': 'onKeyDown($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'cancelPress()',\n '(pointercancel)': 'cancelPress()',\n },\n})\nexport class SlContextMenuTrigger {\n /** The menu this target opens. */\n readonly menu = input.required<SlMenu>({ alias: 'slContextMenuTriggerFor' });\n\n readonly longPress = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (given) => (given === undefined ? undefined : booleanAttribute(given)),\n });\n readonly longPressDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: (given) => (given === undefined ? undefined : numberAttribute(given)),\n });\n\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n private readonly defaults = injectContextMenuDefaults();\n\n /**\n * Two directives on one element write host attributes into the same slot,\n * and a host that already carries a part — a `slTableRow` — keeps it: the\n * rule `menu-trigger.ts` records, read from the other side.\n */\n private readonly writtenUi = inject(new HostAttributeToken('data-ui'), { optional: true });\n private readonly writtenPart = inject(new HostAttributeToken('data-part'), { optional: true });\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n\n protected readonly ui = hostSelectorKey(this.element, 'ui', this.writtenUi ?? 'context-menu');\n protected readonly part = hostSelectorKey(this.element, 'part', this.writtenPart ?? 'root');\n /** The menu names its surface after this element unless given `aria-label`. */\n protected get id(): string {\n return this.writtenId ?? this.menu().triggerId;\n }\n\n protected readonly pressed = signal(false);\n private press: { timer: ReturnType<typeof setTimeout>; x: number; y: number } | null = null;\n private openedByKeyboardAt = 0;\n\n protected readonly resolvedLongPress = computed(\n () => this.longPress() ?? this.defaults.longPress,\n );\n protected readonly resolvedLongPressDelay = computed(\n () => this.longPressDelay() ?? this.defaults.longPressDelay,\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The menu is told which element is its trigger — the portal origin, the\n branch of the layer and the focus destination of last resort — as soon\n as the input resolves. */\n effect(() => {\n this.menu().trigger.set(this.element);\n });\n\n /**\n * The browser would draw its own menu over a secondary click on an item\n * of the family's. While the surface shows, `contextmenu` inside it is\n * prevented.\n */\n const guard = (event: Event) => {\n const menu = this.menu();\n const surface = menu.surface();\n if (!menu.isOpen() || surface === null) return;\n const layer = surface.parentElement ?? surface;\n if (event.target instanceof Node && layer.contains(event.target)) event.preventDefault();\n };\n afterNextRender(() => {\n this.element.ownerDocument.addEventListener('contextmenu', guard, true);\n });\n\n destroyRef.onDestroy(() => {\n this.cancelPress();\n this.element.ownerDocument.removeEventListener('contextmenu', guard, true);\n });\n }\n\n /**\n * Opens, or moves. The way back is captured now: the element that held focus\n * when the reader pressed, and the target itself when nothing did. While the\n * surface is already open the anchor moves and no request is emitted.\n */\n private openAt(anchor: PositionerAnchor | null, reason: 'pointer' | 'keyboard', source: Event) {\n const menu = this.menu();\n if (!menu.isOpen()) {\n const active = this.element.ownerDocument.activeElement;\n menu.finalFocus.set(\n active instanceof HTMLElement && active !== active.ownerDocument.body\n ? active\n : this.element,\n );\n }\n menu.anchor.set(anchor);\n menu.entry.current = 'first';\n menu.toggle(true, reason, source);\n }\n\n protected onContextMenu(source: Event) {\n const event = source as MouseEvent;\n if (this.menu().resolvedDisabled()) return;\n event.preventDefault();\n this.cancelPress();\n /* Windows fires `contextmenu` for the key the family already answered. */\n if (Date.now() - this.openedByKeyboardAt < KEYBOARD_ECHO) return;\n this.openAt(pointAnchor(event.clientX, event.clientY), 'pointer', event);\n }\n\n protected onKeyDown(source: Event) {\n const event = source as KeyboardEvent;\n if (this.menu().resolvedDisabled()) return;\n if (event.key !== 'ContextMenu' && !(event.key === 'F10' && event.shiftKey)) return;\n event.preventDefault();\n this.openedByKeyboardAt = Date.now();\n this.openAt(null, 'keyboard', event);\n }\n\n /**\n * A primary press on the target while the menu shows closes it: the target\n * is a branch of the layer, so the layer would not, and from the reader's\n * side the target is elsewhere. On touch and pen the same press may also be\n * the start of a long one.\n */\n protected onPointerDown(source: Event) {\n const event = source as PointerEvent;\n const menu = this.menu();\n if (menu.resolvedDisabled()) return;\n if (event.button === 0 && menu.isOpen()) menu.toggle(false, 'outsidePress', event);\n if (!this.resolvedLongPress() || event.pointerType === 'mouse' || event.button !== 0) return;\n\n this.cancelPress();\n const { clientX: x, clientY: y } = event;\n this.press = {\n x,\n y,\n timer: setTimeout(() => {\n this.press = null;\n this.pressed.set(false);\n this.openAt(pointAnchor(x, y), 'pointer', event);\n }, this.resolvedLongPressDelay()),\n };\n this.pressed.set(true);\n }\n\n protected onPointerMove(source: Event) {\n const event = source as PointerEvent;\n if (this.press === null) return;\n if (\n Math.hypot(event.clientX - this.press.x, event.clientY - this.press.y) > MOVEMENT_THRESHOLD\n ) {\n this.cancelPress();\n }\n }\n\n protected cancelPress() {\n if (this.press === null) return;\n clearTimeout(this.press.timer);\n this.press = null;\n this.pressed.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|