@malva-ui/core 0.1.13 → 0.1.14
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/AGENTS.md +4 -1
- package/README.md +15 -0
- package/docs/ai/avatar.md +2 -0
- package/docs/ai/breadcrumb.md +67 -7
- package/docs/ai/button.md +74 -19
- package/docs/ai/card.md +8 -6
- package/docs/ai/chat.md +59 -45
- package/docs/ai/checkbox.md +12 -0
- package/docs/ai/combobox.md +18 -2
- package/docs/ai/copy-to-clipboard.md +1 -1
- package/docs/ai/core.md +15 -0
- package/docs/ai/data-table.md +89 -54
- package/docs/ai/dialog.md +76 -67
- package/docs/ai/drawer.md +15 -12
- package/docs/ai/dropdown.md +24 -19
- package/docs/ai/empty-state.md +3 -3
- package/docs/ai/filter.md +24 -5
- package/docs/ai/form-utils.md +160 -5
- package/docs/ai/icon-toggle.md +160 -0
- package/docs/ai/input.md +30 -0
- package/docs/ai/layout.md +23 -0
- package/docs/ai/list.md +10 -6
- package/docs/ai/menu.md +75 -1
- package/docs/ai/page.md +220 -60
- package/docs/ai/radio.md +9 -0
- package/docs/ai/scrollbar.md +30 -8
- package/docs/ai/segmented.md +35 -35
- package/docs/ai/select.md +30 -5
- package/docs/ai/sidebar.md +45 -27
- package/docs/ai/switch.md +114 -19
- package/docs/ai/table.md +69 -0
- package/docs/ai/tabs.md +2 -1
- package/docs/ai/tile.md +311 -85
- package/docs/ai/timeline.md +63 -39
- package/docs/ai/tokenizer.md +21 -5
- package/docs/ai/tooltip.md +5 -5
- package/docs/ai/view-variant.md +75 -0
- package/fesm2022/malva-ui-core-accordion.mjs +167 -0
- package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
- package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
- package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-alert.mjs +173 -0
- package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar.mjs +247 -0
- package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-badge.mjs +122 -0
- package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
- package/fesm2022/malva-ui-core-button.mjs +406 -0
- package/fesm2022/malva-ui-core-button.mjs.map +1 -0
- package/fesm2022/malva-ui-core-calendar.mjs +938 -0
- package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-card.mjs +164 -0
- package/fesm2022/malva-ui-core-card.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chat.mjs +825 -0
- package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
- package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
- package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chip.mjs +176 -0
- package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
- package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-combobox.mjs +945 -0
- package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
- package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
- package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
- package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
- package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
- package/fesm2022/malva-ui-core-divider.mjs +80 -0
- package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer.mjs +814 -0
- package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
- package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
- package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
- package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
- package/fesm2022/malva-ui-core-expand.mjs +130 -0
- package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
- package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
- package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
- package/fesm2022/malva-ui-core-filter.mjs +1627 -0
- package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
- package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form.mjs +283 -0
- package/fesm2022/malva-ui-core-form.mjs.map +1 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
- package/fesm2022/malva-ui-core-input.mjs +375 -0
- package/fesm2022/malva-ui-core-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-kbd.mjs +131 -0
- package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
- package/fesm2022/malva-ui-core-layout.mjs +212 -0
- package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
- package/fesm2022/malva-ui-core-link.mjs +89 -0
- package/fesm2022/malva-ui-core-link.mjs.map +1 -0
- package/fesm2022/malva-ui-core-list.mjs +413 -0
- package/fesm2022/malva-ui-core-list.mjs.map +1 -0
- package/fesm2022/malva-ui-core-loader.mjs +141 -0
- package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
- package/fesm2022/malva-ui-core-menu.mjs +2540 -0
- package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
- package/fesm2022/malva-ui-core-notification.mjs +201 -0
- package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
- package/fesm2022/malva-ui-core-number-input.mjs +404 -0
- package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-page.mjs +1898 -0
- package/fesm2022/malva-ui-core-page.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pagination.mjs +458 -0
- package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
- package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-popup.mjs +1488 -0
- package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
- package/fesm2022/malva-ui-core-progress.mjs +109 -0
- package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
- package/fesm2022/malva-ui-core-radio.mjs +317 -0
- package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
- package/fesm2022/malva-ui-core-rating.mjs +236 -0
- package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-search-field.mjs +578 -0
- package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
- package/fesm2022/malva-ui-core-segmented.mjs +458 -0
- package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
- package/fesm2022/malva-ui-core-select.mjs +855 -0
- package/fesm2022/malva-ui-core-select.mjs.map +1 -0
- package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
- package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
- package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
- package/fesm2022/malva-ui-core-slider.mjs +514 -0
- package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
- package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
- package/fesm2022/malva-ui-core-stepper.mjs +332 -0
- package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
- package/fesm2022/malva-ui-core-switch.mjs +272 -0
- package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
- package/fesm2022/malva-ui-core-table.mjs +79 -0
- package/fesm2022/malva-ui-core-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tabs.mjs +794 -0
- package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
- package/fesm2022/malva-ui-core-textarea.mjs +201 -0
- package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tile.mjs +1404 -0
- package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
- package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
- package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-timeline.mjs +216 -0
- package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
- package/fesm2022/malva-ui-core-title.mjs +178 -0
- package/fesm2022/malva-ui-core-title.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toast.mjs +749 -0
- package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
- package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
- package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tree.mjs +505 -0
- package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
- package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
- package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
- package/fesm2022/malva-ui-core.mjs +77 -0
- package/fesm2022/malva-ui-core.mjs.map +1 -0
- package/package.json +179 -156
- package/styles/malva-ui.css +253 -220
- package/styles/tokens.md +174 -173
- package/table/README.md +46 -0
- package/types/malva-ui-core-accordion.d.ts +121 -0
- package/types/malva-ui-core-action-bar.d.ts +82 -0
- package/types/malva-ui-core-alert.d.ts +131 -0
- package/types/malva-ui-core-autocomplete.d.ts +301 -0
- package/types/malva-ui-core-avatar-group.d.ts +119 -0
- package/types/malva-ui-core-avatar.d.ts +156 -0
- package/types/malva-ui-core-badge.d.ts +97 -0
- package/types/malva-ui-core-bottom-nav.d.ts +104 -0
- package/types/malva-ui-core-breadcrumb.d.ts +308 -0
- package/types/malva-ui-core-button.d.ts +194 -0
- package/types/malva-ui-core-calendar.d.ts +339 -0
- package/types/malva-ui-core-card.d.ts +88 -0
- package/types/malva-ui-core-chat.d.ts +375 -0
- package/types/malva-ui-core-checkbox.d.ts +158 -0
- package/types/malva-ui-core-chip.d.ts +128 -0
- package/types/malva-ui-core-color-picker.d.ts +442 -0
- package/types/malva-ui-core-combobox.d.ts +419 -0
- package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
- package/types/malva-ui-core-data-table.d.ts +1074 -0
- package/types/malva-ui-core-date-range-picker.d.ts +149 -0
- package/types/malva-ui-core-day-picker.d.ts +55 -0
- package/types/malva-ui-core-dialog.d.ts +597 -0
- package/types/malva-ui-core-divider.d.ts +68 -0
- package/types/malva-ui-core-drawer.d.ts +333 -0
- package/types/malva-ui-core-dropdown.d.ts +592 -0
- package/types/malva-ui-core-empty-state.d.ts +37 -0
- package/types/malva-ui-core-expand.d.ts +102 -0
- package/types/malva-ui-core-file-upload.d.ts +267 -0
- package/types/malva-ui-core-filter.d.ts +552 -0
- package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
- package/types/malva-ui-core-form-utils.d.ts +579 -0
- package/types/malva-ui-core-form.d.ts +176 -0
- package/types/malva-ui-core-icon-toggle.d.ts +80 -0
- package/types/malva-ui-core-input.d.ts +262 -0
- package/types/malva-ui-core-kbd.d.ts +56 -0
- package/types/malva-ui-core-layout.d.ts +70 -0
- package/types/malva-ui-core-link.d.ts +28 -0
- package/types/malva-ui-core-list.d.ts +252 -0
- package/types/malva-ui-core-loader.d.ts +89 -0
- package/types/malva-ui-core-menu.d.ts +954 -0
- package/types/malva-ui-core-notification.d.ts +122 -0
- package/types/malva-ui-core-number-input.d.ts +167 -0
- package/types/malva-ui-core-page.d.ts +799 -0
- package/types/malva-ui-core-pagination.d.ts +261 -0
- package/types/malva-ui-core-pin-input.d.ts +203 -0
- package/types/malva-ui-core-popup.d.ts +834 -0
- package/types/malva-ui-core-progress.d.ts +73 -0
- package/types/malva-ui-core-radio.d.ts +130 -0
- package/types/malva-ui-core-rating.d.ts +115 -0
- package/types/malva-ui-core-scrollbar.d.ts +203 -0
- package/types/malva-ui-core-search-field.d.ts +408 -0
- package/types/malva-ui-core-segmented.d.ts +206 -0
- package/types/malva-ui-core-select.d.ts +456 -0
- package/types/malva-ui-core-sidebar.d.ts +698 -0
- package/types/malva-ui-core-skeleton.d.ts +64 -0
- package/types/malva-ui-core-slider.d.ts +219 -0
- package/types/malva-ui-core-split-pane.d.ts +149 -0
- package/types/malva-ui-core-status-indicator.d.ts +65 -0
- package/types/malva-ui-core-stepper.d.ts +168 -0
- package/types/malva-ui-core-switch.d.ts +146 -0
- package/types/malva-ui-core-table.d.ts +37 -0
- package/types/malva-ui-core-tabs.d.ts +339 -0
- package/types/malva-ui-core-textarea.d.ts +79 -0
- package/types/malva-ui-core-tile.d.ts +373 -0
- package/types/malva-ui-core-time-picker.d.ts +141 -0
- package/types/malva-ui-core-timeline.d.ts +188 -0
- package/types/malva-ui-core-title.d.ts +66 -0
- package/types/malva-ui-core-toast.d.ts +432 -0
- package/types/malva-ui-core-tokenizer.d.ts +217 -0
- package/types/malva-ui-core-toolbar.d.ts +91 -0
- package/types/malva-ui-core-tooltip.d.ts +200 -0
- package/types/malva-ui-core-tree.d.ts +289 -0
- package/types/malva-ui-core-view-variant.d.ts +207 -0
- package/types/malva-ui-core.d.ts +72 -0
- package/view-variant/README.md +3 -0
- package/accordion/index.d.ts +0 -3
- package/accordion/lib/accordion/accordion.d.ts +0 -47
- package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
- package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
- package/accordion/malva-ui-core-accordion.d.ts +0 -5
- package/action-bar/index.d.ts +0 -4
- package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
- package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
- package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
- package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
- package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
- package/alert/index.d.ts +0 -2
- package/alert/lib/alert/alert.d.ts +0 -84
- package/alert/lib/alert/alert.directives.d.ts +0 -44
- package/alert/malva-ui-core-alert.d.ts +0 -5
- package/autocomplete/index.d.ts +0 -1
- package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
- package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
- package/avatar/index.d.ts +0 -2
- package/avatar/lib/avatar/avatar.d.ts +0 -125
- package/avatar/lib/color-from-text.pipe.d.ts +0 -21
- package/avatar/malva-ui-core-avatar.d.ts +0 -5
- package/avatar-group/index.d.ts +0 -1
- package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
- package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
- package/badge/index.d.ts +0 -2
- package/badge/lib/badge/badge.d.ts +0 -59
- package/badge/lib/badge-icon.d.ts +0 -35
- package/badge/malva-ui-core-badge.d.ts +0 -5
- package/bottom-nav/index.d.ts +0 -1
- package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
- package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
- package/breadcrumb/index.d.ts +0 -5
- package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
- package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
- package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
- package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
- package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
- package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
- package/button/index.d.ts +0 -7
- package/button/lib/button/button.d.ts +0 -61
- package/button/lib/button-close/button-close.d.ts +0 -24
- package/button/lib/button-group/button-group.d.ts +0 -21
- package/button/lib/button-split/button-split.d.ts +0 -21
- package/button/lib/button-toggle/button-toggle.d.ts +0 -33
- package/button/lib/button-variant.token.d.ts +0 -13
- package/button/lib/button.directives.d.ts +0 -14
- package/button/lib/button.types.d.ts +0 -8
- package/button/malva-ui-core-button.d.ts +0 -5
- package/calendar/index.d.ts +0 -3
- package/calendar/lib/calendar/calendar.d.ts +0 -182
- package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
- package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
- package/calendar/malva-ui-core-calendar.d.ts +0 -5
- package/card/index.d.ts +0 -5
- package/card/lib/card/card.d.ts +0 -43
- package/card/lib/card-actions-def.d.ts +0 -10
- package/card/lib/card-footer-def.d.ts +0 -13
- package/card/lib/card-header-def.d.ts +0 -10
- package/card/lib/card-subheader-def.d.ts +0 -16
- package/card/malva-ui-core-card.d.ts +0 -5
- package/chat/index.d.ts +0 -9
- package/chat/lib/chat/chat.d.ts +0 -133
- package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
- package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
- package/chat/lib/chat-date/chat-date.d.ts +0 -16
- package/chat/lib/chat-format.d.ts +0 -5
- package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
- package/chat/lib/chat-message/chat-message.d.ts +0 -45
- package/chat/lib/chat-render-list.d.ts +0 -16
- package/chat/lib/chat-tokens.d.ts +0 -25
- package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
- package/chat/lib/chat.types.d.ts +0 -80
- package/chat/lib/defs/chat-author-def.d.ts +0 -30
- package/chat/lib/defs/chat-date-def.d.ts +0 -22
- package/chat/lib/defs/chat-message-def.d.ts +0 -23
- package/chat/malva-ui-core-chat.d.ts +0 -5
- package/checkbox/index.d.ts +0 -3
- package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
- package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
- package/checkbox/lib/checkbox-group-token.d.ts +0 -6
- package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
- package/chip/index.d.ts +0 -2
- package/chip/lib/chip/chip.d.ts +0 -107
- package/chip/lib/chip/chip.directives.d.ts +0 -18
- package/chip/malva-ui-core-chip.d.ts +0 -5
- package/color-picker/index.d.ts +0 -3
- package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
- package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
- package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
- package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
- package/combobox/index.d.ts +0 -2
- package/combobox/lib/combobox/combobox.d.ts +0 -400
- package/combobox/lib/combobox-template.directives.d.ts +0 -10
- package/combobox/malva-ui-core-combobox.d.ts +0 -5
- package/copy-to-clipboard/index.d.ts +0 -1
- package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
- package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
- package/data-table/index.d.ts +0 -8
- package/data-table/lib/data-source.d.ts +0 -5
- package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
- package/data-table/lib/data-table/data-table.d.ts +0 -699
- package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
- package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
- package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
- package/data-table/lib/data-table-cell.d.ts +0 -44
- package/data-table/lib/data-table-edit-cell.d.ts +0 -44
- package/data-table/lib/data-table-error.d.ts +0 -37
- package/data-table/lib/data-table-footer.d.ts +0 -26
- package/data-table/lib/data-table-no-data.d.ts +0 -19
- package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
- package/data-table/lib/types.d.ts +0 -134
- package/data-table/malva-ui-core-data-table.d.ts +0 -5
- package/date-range-picker/index.d.ts +0 -1
- package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
- package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
- package/day-picker/index.d.ts +0 -1
- package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
- package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
- package/dialog/index.d.ts +0 -11
- package/dialog/lib/confirm-dialog-options.d.ts +0 -41
- package/dialog/lib/confirm-dialog.d.ts +0 -52
- package/dialog/lib/dialog/dialog.d.ts +0 -22
- package/dialog/lib/dialog-body.d.ts +0 -9
- package/dialog/lib/dialog-close.d.ts +0 -27
- package/dialog/lib/dialog-config.d.ts +0 -112
- package/dialog/lib/dialog-container.d.ts +0 -40
- package/dialog/lib/dialog-footer.d.ts +0 -13
- package/dialog/lib/dialog-header.d.ts +0 -74
- package/dialog/lib/dialog-ref.d.ts +0 -95
- package/dialog/lib/dialog-template.d.ts +0 -65
- package/dialog/lib/dialog-text-content.d.ts +0 -24
- package/dialog/lib/dialog.service.d.ts +0 -63
- package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
- package/dialog/lib/inject-dialog-ref.d.ts +0 -8
- package/dialog/lib/routable-dialog.d.ts +0 -30
- package/dialog/malva-ui-core-dialog.d.ts +0 -5
- package/divider/index.d.ts +0 -1
- package/divider/lib/divider/divider.d.ts +0 -64
- package/divider/malva-ui-core-divider.d.ts +0 -5
- package/drawer/index.d.ts +0 -11
- package/drawer/lib/drawer/drawer.d.ts +0 -106
- package/drawer/lib/drawer-body.d.ts +0 -8
- package/drawer/lib/drawer-content.d.ts +0 -6
- package/drawer/lib/drawer-footer.d.ts +0 -5
- package/drawer/lib/drawer-header.d.ts +0 -5
- package/drawer/lib/drawer-ref.d.ts +0 -29
- package/drawer/lib/drawer-resize.d.ts +0 -65
- package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
- package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
- package/drawer/lib/drawer-sections.service.d.ts +0 -42
- package/drawer/lib/drawer.service.d.ts +0 -66
- package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
- package/drawer/lib/routable-drawer.d.ts +0 -30
- package/drawer/malva-ui-core-drawer.d.ts +0 -5
- package/dropdown/index.d.ts +0 -9
- package/dropdown/lib/active-descendant.d.ts +0 -64
- package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
- package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
- package/dropdown/lib/option-matcher.d.ts +0 -87
- package/dropdown/lib/options-adapter.d.ts +0 -142
- package/dropdown/lib/options-result.d.ts +0 -6
- package/dropdown/lib/reconciliation.d.ts +0 -19
- package/dropdown/lib/select-data-source.d.ts +0 -18
- package/dropdown/lib/select-option.d.ts +0 -37
- package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
- package/empty-state/index.d.ts +0 -1
- package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
- package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
- package/esm2022/accordion/index.js +0 -4
- package/esm2022/accordion/index.js.map +0 -1
- package/esm2022/accordion/lib/accordion/accordion.js +0 -65
- package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
- package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
- package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
- package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
- package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
- package/esm2022/action-bar/index.js +0 -5
- package/esm2022/action-bar/index.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
- package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
- package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
- package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
- package/esm2022/alert/index.js +0 -3
- package/esm2022/alert/index.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.directives.js +0 -53
- package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.js +0 -118
- package/esm2022/alert/lib/alert/alert.js.map +0 -1
- package/esm2022/alert/malva-ui-core-alert.js +0 -5
- package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
- package/esm2022/autocomplete/index.js +0 -2
- package/esm2022/autocomplete/index.js.map +0 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
- package/esm2022/avatar/index.js +0 -3
- package/esm2022/avatar/index.js.map +0 -1
- package/esm2022/avatar/lib/avatar/avatar.js +0 -192
- package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
- package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
- package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
- package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
- package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
- package/esm2022/avatar-group/index.js +0 -2
- package/esm2022/avatar-group/index.js.map +0 -1
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
- package/esm2022/badge/index.js +0 -3
- package/esm2022/badge/index.js.map +0 -1
- package/esm2022/badge/lib/badge/badge.js +0 -71
- package/esm2022/badge/lib/badge/badge.js.map +0 -1
- package/esm2022/badge/lib/badge-icon.js +0 -47
- package/esm2022/badge/lib/badge-icon.js.map +0 -1
- package/esm2022/badge/malva-ui-core-badge.js +0 -5
- package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
- package/esm2022/bottom-nav/index.js +0 -2
- package/esm2022/bottom-nav/index.js.map +0 -1
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
- package/esm2022/breadcrumb/index.js +0 -6
- package/esm2022/breadcrumb/index.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
- package/esm2022/button/index.js +0 -8
- package/esm2022/button/index.js.map +0 -1
- package/esm2022/button/lib/button/button.js +0 -137
- package/esm2022/button/lib/button/button.js.map +0 -1
- package/esm2022/button/lib/button-close/button-close.js +0 -52
- package/esm2022/button/lib/button-close/button-close.js.map +0 -1
- package/esm2022/button/lib/button-group/button-group.js +0 -44
- package/esm2022/button/lib/button-group/button-group.js.map +0 -1
- package/esm2022/button/lib/button-split/button-split.js +0 -44
- package/esm2022/button/lib/button-split/button-split.js.map +0 -1
- package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
- package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
- package/esm2022/button/lib/button-variant.token.js +0 -4
- package/esm2022/button/lib/button-variant.token.js.map +0 -1
- package/esm2022/button/lib/button.directives.js +0 -37
- package/esm2022/button/lib/button.directives.js.map +0 -1
- package/esm2022/button/lib/button.types.js +0 -1
- package/esm2022/button/lib/button.types.js.map +0 -1
- package/esm2022/button/malva-ui-core-button.js +0 -5
- package/esm2022/button/malva-ui-core-button.js.map +0 -1
- package/esm2022/calendar/index.js +0 -4
- package/esm2022/calendar/index.js.map +0 -1
- package/esm2022/calendar/lib/calendar/calendar.js +0 -672
- package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
- package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
- package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
- package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
- package/esm2022/card/index.js +0 -6
- package/esm2022/card/index.js.map +0 -1
- package/esm2022/card/lib/card/card.js +0 -54
- package/esm2022/card/lib/card/card.js.map +0 -1
- package/esm2022/card/lib/card-actions-def.js +0 -27
- package/esm2022/card/lib/card-actions-def.js.map +0 -1
- package/esm2022/card/lib/card-footer-def.js +0 -32
- package/esm2022/card/lib/card-footer-def.js.map +0 -1
- package/esm2022/card/lib/card-header-def.js +0 -27
- package/esm2022/card/lib/card-header-def.js.map +0 -1
- package/esm2022/card/lib/card-subheader-def.js +0 -33
- package/esm2022/card/lib/card-subheader-def.js.map +0 -1
- package/esm2022/card/malva-ui-core-card.js +0 -5
- package/esm2022/card/malva-ui-core-card.js.map +0 -1
- package/esm2022/chat/index.js +0 -10
- package/esm2022/chat/index.js.map +0 -1
- package/esm2022/chat/lib/chat/chat.js +0 -326
- package/esm2022/chat/lib/chat/chat.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
- package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
- package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
- package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
- package/esm2022/chat/lib/chat-format.js +0 -11
- package/esm2022/chat/lib/chat-format.js.map +0 -1
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
- package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
- package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
- package/esm2022/chat/lib/chat-render-list.js +0 -55
- package/esm2022/chat/lib/chat-render-list.js.map +0 -1
- package/esm2022/chat/lib/chat-tokens.js +0 -9
- package/esm2022/chat/lib/chat-tokens.js.map +0 -1
- package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
- package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
- package/esm2022/chat/lib/chat.types.js +0 -1
- package/esm2022/chat/lib/chat.types.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
- package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
- package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
- package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
- package/esm2022/chat/malva-ui-core-chat.js +0 -5
- package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
- package/esm2022/checkbox/index.js +0 -4
- package/esm2022/checkbox/index.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
- package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
- package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
- package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
- package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
- package/esm2022/chip/index.js +0 -3
- package/esm2022/chip/index.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.directives.js +0 -32
- package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.js +0 -140
- package/esm2022/chip/lib/chip/chip.js.map +0 -1
- package/esm2022/chip/malva-ui-core-chip.js +0 -5
- package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
- package/esm2022/color-picker/index.js +0 -4
- package/esm2022/color-picker/index.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
- package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
- package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
- package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
- package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
- package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
- package/esm2022/combobox/index.js +0 -3
- package/esm2022/combobox/index.js.map +0 -1
- package/esm2022/combobox/lib/combobox/combobox.js +0 -911
- package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
- package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
- package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
- package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
- package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
- package/esm2022/copy-to-clipboard/index.js +0 -2
- package/esm2022/copy-to-clipboard/index.js.map +0 -1
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
- package/esm2022/data-table/index.js +0 -9
- package/esm2022/data-table/index.js.map +0 -1
- package/esm2022/data-table/lib/data-source.js +0 -6
- package/esm2022/data-table/lib/data-source.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
- package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
- package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-error.js +0 -37
- package/esm2022/data-table/lib/data-table-error.js.map +0 -1
- package/esm2022/data-table/lib/data-table-footer.js +0 -33
- package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
- package/esm2022/data-table/lib/data-table-no-data.js +0 -26
- package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
- package/esm2022/data-table/lib/types.js +0 -1
- package/esm2022/data-table/lib/types.js.map +0 -1
- package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
- package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
- package/esm2022/date-range-picker/index.js +0 -2
- package/esm2022/date-range-picker/index.js.map +0 -1
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
- package/esm2022/day-picker/index.js +0 -2
- package/esm2022/day-picker/index.js.map +0 -1
- package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
- package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
- package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
- package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
- package/esm2022/dialog/index.js +0 -12
- package/esm2022/dialog/index.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog.js +0 -155
- package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog/dialog.js +0 -40
- package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog-body.js +0 -33
- package/esm2022/dialog/lib/dialog-body.js.map +0 -1
- package/esm2022/dialog/lib/dialog-close.js +0 -45
- package/esm2022/dialog/lib/dialog-close.js.map +0 -1
- package/esm2022/dialog/lib/dialog-config.js +0 -23
- package/esm2022/dialog/lib/dialog-config.js.map +0 -1
- package/esm2022/dialog/lib/dialog-container.js +0 -69
- package/esm2022/dialog/lib/dialog-container.js.map +0 -1
- package/esm2022/dialog/lib/dialog-footer.js +0 -29
- package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
- package/esm2022/dialog/lib/dialog-header.js +0 -181
- package/esm2022/dialog/lib/dialog-header.js.map +0 -1
- package/esm2022/dialog/lib/dialog-ref.js +0 -167
- package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/dialog-template.js +0 -136
- package/esm2022/dialog/lib/dialog-template.js.map +0 -1
- package/esm2022/dialog/lib/dialog-text-content.js +0 -59
- package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
- package/esm2022/dialog/lib/dialog.service.js +0 -205
- package/esm2022/dialog/lib/dialog.service.js.map +0 -1
- package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
- package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
- package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
- package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/routable-dialog.js +0 -91
- package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
- package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
- package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
- package/esm2022/divider/index.js +0 -2
- package/esm2022/divider/index.js.map +0 -1
- package/esm2022/divider/lib/divider/divider.js +0 -73
- package/esm2022/divider/lib/divider/divider.js.map +0 -1
- package/esm2022/divider/malva-ui-core-divider.js +0 -5
- package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
- package/esm2022/drawer/index.js +0 -12
- package/esm2022/drawer/index.js.map +0 -1
- package/esm2022/drawer/lib/drawer/drawer.js +0 -180
- package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-body.js +0 -32
- package/esm2022/drawer/lib/drawer-body.js.map +0 -1
- package/esm2022/drawer/lib/drawer-content.js +0 -14
- package/esm2022/drawer/lib/drawer-content.js.map +0 -1
- package/esm2022/drawer/lib/drawer-footer.js +0 -14
- package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-header.js +0 -14
- package/esm2022/drawer/lib/drawer-header.js.map +0 -1
- package/esm2022/drawer/lib/drawer-ref.js +0 -31
- package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
- package/esm2022/drawer/lib/drawer-resize.js +0 -243
- package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
- package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
- package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
- package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
- package/esm2022/drawer/lib/drawer.service.js +0 -86
- package/esm2022/drawer/lib/drawer.service.js.map +0 -1
- package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
- package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
- package/esm2022/drawer/lib/routable-drawer.js +0 -91
- package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
- package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
- package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
- package/esm2022/dropdown/index.js +0 -10
- package/esm2022/dropdown/index.js.map +0 -1
- package/esm2022/dropdown/lib/active-descendant.js +0 -92
- package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
- package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
- package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
- package/esm2022/dropdown/lib/option-matcher.js +0 -124
- package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
- package/esm2022/dropdown/lib/options-adapter.js +0 -356
- package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
- package/esm2022/dropdown/lib/options-result.js +0 -11
- package/esm2022/dropdown/lib/options-result.js.map +0 -1
- package/esm2022/dropdown/lib/reconciliation.js +0 -32
- package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
- package/esm2022/dropdown/lib/select-data-source.js +0 -21
- package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
- package/esm2022/dropdown/lib/select-option.js +0 -25
- package/esm2022/dropdown/lib/select-option.js.map +0 -1
- package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
- package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
- package/esm2022/empty-state/index.js +0 -2
- package/esm2022/empty-state/index.js.map +0 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
- package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
- package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
- package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
- package/esm2022/expand/index.js +0 -3
- package/esm2022/expand/index.js.map +0 -1
- package/esm2022/expand/lib/expand/expand-content.js +0 -33
- package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
- package/esm2022/expand/lib/expand/expand.js +0 -93
- package/esm2022/expand/lib/expand/expand.js.map +0 -1
- package/esm2022/expand/malva-ui-core-expand.js +0 -5
- package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
- package/esm2022/file-upload/index.js +0 -5
- package/esm2022/file-upload/index.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
- package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-action.js +0 -65
- package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
- package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
- package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
- package/esm2022/filter/index.js +0 -4
- package/esm2022/filter/index.js.map +0 -1
- package/esm2022/filter/lib/filter/filter.js +0 -552
- package/esm2022/filter/lib/filter/filter.js.map +0 -1
- package/esm2022/filter/lib/filter.types.js +0 -1
- package/esm2022/filter/lib/filter.types.js.map +0 -1
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
- package/esm2022/filter/malva-ui-core-filter.js +0 -5
- package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
- package/esm2022/form/index.js +0 -7
- package/esm2022/form/index.js.map +0 -1
- package/esm2022/form/lib/fieldset/fieldset.js +0 -101
- package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
- package/esm2022/form/lib/fieldset-span.js +0 -49
- package/esm2022/form/lib/fieldset-span.js.map +0 -1
- package/esm2022/form/lib/form/form.js +0 -60
- package/esm2022/form/lib/form/form.js.map +0 -1
- package/esm2022/form/lib/form-actions.js +0 -34
- package/esm2022/form/lib/form-actions.js.map +0 -1
- package/esm2022/form/lib/form-gap.js +0 -15
- package/esm2022/form/lib/form-gap.js.map +0 -1
- package/esm2022/form/lib/form-header.js +0 -27
- package/esm2022/form/lib/form-header.js.map +0 -1
- package/esm2022/form/lib/form.types.js +0 -1
- package/esm2022/form/lib/form.types.js.map +0 -1
- package/esm2022/form/malva-ui-core-form.js +0 -5
- package/esm2022/form/malva-ui-core-form.js.map +0 -1
- package/esm2022/form-utils/index.js +0 -16
- package/esm2022/form-utils/index.js.map +0 -1
- package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
- package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
- package/esm2022/form-utils/lib/description/description.js +0 -24
- package/esm2022/form-utils/lib/description/description.js.map +0 -1
- package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
- package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-sides.js +0 -34
- package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
- package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
- package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
- package/esm2022/form-utils/lib/hint/hint.js +0 -11
- package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
- package/esm2022/form-utils/lib/label/label.js +0 -55
- package/esm2022/form-utils/lib/label/label.js.map +0 -1
- package/esm2022/form-utils/lib/message/message.js +0 -20
- package/esm2022/form-utils/lib/message/message.js.map +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
- package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-state.js +0 -1
- package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
- package/esm2022/form-utils/lib/selection.service.js +0 -81
- package/esm2022/form-utils/lib/selection.service.js.map +0 -1
- package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
- package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
- package/esm2022/form-utils/testing/index.js +0 -2
- package/esm2022/form-utils/testing/index.js.map +0 -1
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
- package/esm2022/index.js +0 -70
- package/esm2022/index.js.map +0 -1
- package/esm2022/input/index.js +0 -4
- package/esm2022/input/index.js.map +0 -1
- package/esm2022/input/lib/input/input-native.js +0 -49
- package/esm2022/input/lib/input/input-native.js.map +0 -1
- package/esm2022/input/lib/input/input-value-accessor.js +0 -4
- package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
- package/esm2022/input/lib/input/input.js +0 -277
- package/esm2022/input/lib/input/input.js.map +0 -1
- package/esm2022/input/lib/input/password-strength.js +0 -46
- package/esm2022/input/lib/input/password-strength.js.map +0 -1
- package/esm2022/input/malva-ui-core-input.js +0 -5
- package/esm2022/input/malva-ui-core-input.js.map +0 -1
- package/esm2022/kbd/index.js +0 -2
- package/esm2022/kbd/index.js.map +0 -1
- package/esm2022/kbd/lib/kbd/kbd.js +0 -124
- package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
- package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
- package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
- package/esm2022/layout/index.js +0 -5
- package/esm2022/layout/index.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
- package/esm2022/layout/lib/layout/layout.js +0 -43
- package/esm2022/layout/lib/layout/layout.js.map +0 -1
- package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
- package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
- package/esm2022/layout/malva-ui-core-layout.js +0 -5
- package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
- package/esm2022/link/index.js +0 -3
- package/esm2022/link/index.js.map +0 -1
- package/esm2022/link/lib/link/link.directives.js +0 -24
- package/esm2022/link/lib/link/link.directives.js.map +0 -1
- package/esm2022/link/lib/link/link.js +0 -61
- package/esm2022/link/lib/link/link.js.map +0 -1
- package/esm2022/link/malva-ui-core-link.js +0 -5
- package/esm2022/link/malva-ui-core-link.js.map +0 -1
- package/esm2022/list/index.js +0 -14
- package/esm2022/list/index.js.map +0 -1
- package/esm2022/list/lib/list/list.js +0 -28
- package/esm2022/list/lib/list/list.js.map +0 -1
- package/esm2022/list/lib/list-item/list-item.js +0 -125
- package/esm2022/list/lib/list-item/list-item.js.map +0 -1
- package/esm2022/list/lib/list-item-actions.js +0 -23
- package/esm2022/list/lib/list-item-actions.js.map +0 -1
- package/esm2022/list/lib/list-item-byline.js +0 -13
- package/esm2022/list/lib/list-item-byline.js.map +0 -1
- package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
- package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
- package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
- package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
- package/esm2022/list/lib/list-item-media.js +0 -13
- package/esm2022/list/lib/list-item-media.js.map +0 -1
- package/esm2022/list/lib/list-item-meta.js +0 -13
- package/esm2022/list/lib/list-item-meta.js.map +0 -1
- package/esm2022/list/lib/list-item-prefix.js +0 -13
- package/esm2022/list/lib/list-item-prefix.js.map +0 -1
- package/esm2022/list/lib/list-item-suffix.js +0 -13
- package/esm2022/list/lib/list-item-suffix.js.map +0 -1
- package/esm2022/list/lib/list-item-template.js +0 -14
- package/esm2022/list/lib/list-item-template.js.map +0 -1
- package/esm2022/list/lib/list-item-title.js +0 -13
- package/esm2022/list/lib/list-item-title.js.map +0 -1
- package/esm2022/list/lib/list-selectable.js +0 -116
- package/esm2022/list/lib/list-selectable.js.map +0 -1
- package/esm2022/list/malva-ui-core-list.js +0 -5
- package/esm2022/list/malva-ui-core-list.js.map +0 -1
- package/esm2022/loader/index.js +0 -2
- package/esm2022/loader/index.js.map +0 -1
- package/esm2022/loader/lib/loader/loader.js +0 -134
- package/esm2022/loader/lib/loader/loader.js.map +0 -1
- package/esm2022/loader/malva-ui-core-loader.js +0 -5
- package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
- package/esm2022/malva-ui-core.js +0 -5
- package/esm2022/malva-ui-core.js.map +0 -1
- package/esm2022/menu/index.js +0 -10
- package/esm2022/menu/index.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
- package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group.js +0 -44
- package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-item.js +0 -117
- package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-separator.js +0 -41
- package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
- package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.js +0 -308
- package/esm2022/menu/lib/menu/menu.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.types.js +0 -4
- package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.js +0 -257
- package/esm2022/menu/lib/menu/menubar.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.types.js +0 -4
- package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
- package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
- package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
- package/esm2022/menu/malva-ui-core-menu.js +0 -5
- package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
- package/esm2022/notification/index.js +0 -5
- package/esm2022/notification/index.js.map +0 -1
- package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
- package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
- package/esm2022/notification/lib/notification-ref.js +0 -13
- package/esm2022/notification/lib/notification-ref.js.map +0 -1
- package/esm2022/notification/lib/notification.service.js +0 -118
- package/esm2022/notification/lib/notification.service.js.map +0 -1
- package/esm2022/notification/lib/notification.types.js +0 -6
- package/esm2022/notification/lib/notification.types.js.map +0 -1
- package/esm2022/notification/malva-ui-core-notification.js +0 -5
- package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
- package/esm2022/number-input/index.js +0 -2
- package/esm2022/number-input/index.js.map +0 -1
- package/esm2022/number-input/lib/number-input/number-input.js +0 -395
- package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
- package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
- package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
- package/esm2022/page/index.js +0 -15
- package/esm2022/page/index.js.map +0 -1
- package/esm2022/page/lib/page/page-scroll.token.js +0 -9
- package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
- package/esm2022/page/lib/page/page-snap-controller.js +0 -170
- package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
- package/esm2022/page/lib/page/page-snap.directive.js +0 -65
- package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
- package/esm2022/page/lib/page/page.js +0 -173
- package/esm2022/page/lib/page/page.js.map +0 -1
- package/esm2022/page/lib/page-content/page-aside.js +0 -13
- package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
- package/esm2022/page/lib/page-content/page-content.js +0 -72
- package/esm2022/page/lib/page-content/page-content.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.js +0 -128
- package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
- package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
- package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.js +0 -124
- package/esm2022/page/lib/page-header/page-header.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
- package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
- package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.js +0 -131
- package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
- package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
- package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary.js +0 -87
- package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
- package/esm2022/page/malva-ui-core-page.js +0 -5
- package/esm2022/page/malva-ui-core-page.js.map +0 -1
- package/esm2022/pagination/index.js +0 -5
- package/esm2022/pagination/index.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
- package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.js +0 -293
- package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
- package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
- package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
- package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
- package/esm2022/pin-input/index.js +0 -3
- package/esm2022/pin-input/index.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
- package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
- package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
- package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
- package/esm2022/popup/index.js +0 -10
- package/esm2022/popup/index.js.map +0 -1
- package/esm2022/popup/lib/popup/popup.js +0 -500
- package/esm2022/popup/lib/popup/popup.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
- package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
- package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
- package/esm2022/popup/lib/popup-content.js +0 -14
- package/esm2022/popup/lib/popup-content.js.map +0 -1
- package/esm2022/popup/lib/popup-header-content.js +0 -26
- package/esm2022/popup/lib/popup-header-content.js.map +0 -1
- package/esm2022/popup/lib/popup-pinned-content.js +0 -25
- package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
- package/esm2022/popup/lib/popup-positions.js +0 -252
- package/esm2022/popup/lib/popup-positions.js.map +0 -1
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
- package/esm2022/popup/lib/popup.service.js +0 -188
- package/esm2022/popup/lib/popup.service.js.map +0 -1
- package/esm2022/popup/malva-ui-core-popup.js +0 -5
- package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
- package/esm2022/progress/index.js +0 -2
- package/esm2022/progress/index.js.map +0 -1
- package/esm2022/progress/lib/progress/progress.js +0 -102
- package/esm2022/progress/lib/progress/progress.js.map +0 -1
- package/esm2022/progress/malva-ui-core-progress.js +0 -5
- package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
- package/esm2022/radio/index.js +0 -3
- package/esm2022/radio/index.js.map +0 -1
- package/esm2022/radio/lib/radio/radio.js +0 -134
- package/esm2022/radio/lib/radio/radio.js.map +0 -1
- package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
- package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
- package/esm2022/radio/lib/radio-group-token.js +0 -3
- package/esm2022/radio/lib/radio-group-token.js.map +0 -1
- package/esm2022/radio/malva-ui-core-radio.js +0 -5
- package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
- package/esm2022/rating/index.js +0 -2
- package/esm2022/rating/index.js.map +0 -1
- package/esm2022/rating/lib/rating/rating.js +0 -208
- package/esm2022/rating/lib/rating/rating.js.map +0 -1
- package/esm2022/rating/malva-ui-core-rating.js +0 -5
- package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
- package/esm2022/scrollbar/index.js +0 -2
- package/esm2022/scrollbar/index.js.map +0 -1
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
- package/esm2022/search-field/index.js +0 -3
- package/esm2022/search-field/index.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-field.js +0 -535
- package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
- package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
- package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
- package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
- package/esm2022/segmented/index.js +0 -5
- package/esm2022/segmented/index.js.map +0 -1
- package/esm2022/segmented/lib/segmented/segmented.js +0 -248
- package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
- package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
- package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
- package/esm2022/segmented/lib/segmented-token.js +0 -4
- package/esm2022/segmented/lib/segmented-token.js.map +0 -1
- package/esm2022/segmented/lib/segmented.types.js +0 -1
- package/esm2022/segmented/lib/segmented.types.js.map +0 -1
- package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
- package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
- package/esm2022/select/index.js +0 -4
- package/esm2022/select/index.js.map +0 -1
- package/esm2022/select/lib/select/select.js +0 -685
- package/esm2022/select/lib/select/select.js.map +0 -1
- package/esm2022/select/lib/select-option.js +0 -2
- package/esm2022/select/lib/select-option.js.map +0 -1
- package/esm2022/select/lib/select-template.directives.js +0 -34
- package/esm2022/select/lib/select-template.directives.js.map +0 -1
- package/esm2022/select/malva-ui-core-select.js +0 -5
- package/esm2022/select/malva-ui-core-select.js.map +0 -1
- package/esm2022/sidebar/index.js +0 -16
- package/esm2022/sidebar/index.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
- package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-content.js +0 -37
- package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-context.js +0 -3
- package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
- package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-header.js +0 -20
- package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
- package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
- package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
- package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
- package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
- package/esm2022/skeleton/index.js +0 -2
- package/esm2022/skeleton/index.js.map +0 -1
- package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
- package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
- package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
- package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
- package/esm2022/slider/index.js +0 -3
- package/esm2022/slider/index.js.map +0 -1
- package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
- package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
- package/esm2022/slider/lib/slider/slider.js +0 -468
- package/esm2022/slider/lib/slider/slider.js.map +0 -1
- package/esm2022/slider/malva-ui-core-slider.js +0 -5
- package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
- package/esm2022/split-pane/index.js +0 -4
- package/esm2022/split-pane/index.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
- package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
- package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
- package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
- package/esm2022/status-indicator/index.js +0 -2
- package/esm2022/status-indicator/index.js.map +0 -1
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
- package/esm2022/stepper/index.js +0 -5
- package/esm2022/stepper/index.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step-header.js +0 -46
- package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step.js +0 -65
- package/esm2022/stepper/lib/stepper/step.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
- package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.js +0 -216
- package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
- package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
- package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
- package/esm2022/switch/index.js +0 -3
- package/esm2022/switch/index.js.map +0 -1
- package/esm2022/switch/lib/switch/switch.js +0 -190
- package/esm2022/switch/lib/switch/switch.js.map +0 -1
- package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
- package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
- package/esm2022/switch/lib/switch-group-token.js +0 -3
- package/esm2022/switch/lib/switch-group-token.js.map +0 -1
- package/esm2022/switch/malva-ui-core-switch.js +0 -5
- package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
- package/esm2022/tabs/index.js +0 -9
- package/esm2022/tabs/index.js.map +0 -1
- package/esm2022/tabs/lib/tab/tab.js +0 -72
- package/esm2022/tabs/lib/tab/tab.js.map +0 -1
- package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
- package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
- package/esm2022/tabs/lib/tab-content-def.js +0 -14
- package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-def.js +0 -17
- package/esm2022/tabs/lib/tab-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-group-token.js +0 -3
- package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
- package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
- package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
- package/esm2022/tabs/lib/tabs/tabs.js +0 -542
- package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
- package/esm2022/tabs/lib/tabs.service.js +0 -83
- package/esm2022/tabs/lib/tabs.service.js.map +0 -1
- package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
- package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
- package/esm2022/textarea/index.js +0 -2
- package/esm2022/textarea/index.js.map +0 -1
- package/esm2022/textarea/lib/textarea/textarea.js +0 -194
- package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
- package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
- package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
- package/esm2022/tile/index.js +0 -3
- package/esm2022/tile/index.js.map +0 -1
- package/esm2022/tile/lib/tile/tile.js +0 -39
- package/esm2022/tile/lib/tile/tile.js.map +0 -1
- package/esm2022/tile/lib/tile-header.js +0 -14
- package/esm2022/tile/lib/tile-header.js.map +0 -1
- package/esm2022/tile/malva-ui-core-tile.js +0 -5
- package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
- package/esm2022/time-picker/index.js +0 -2
- package/esm2022/time-picker/index.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
- package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
- package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
- package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
- package/esm2022/timeline/index.js +0 -6
- package/esm2022/timeline/index.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
- package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.js +0 -36
- package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
- package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
- package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
- package/esm2022/title/index.js +0 -2
- package/esm2022/title/index.js.map +0 -1
- package/esm2022/title/lib/title/title.js +0 -171
- package/esm2022/title/lib/title/title.js.map +0 -1
- package/esm2022/title/malva-ui-core-title.js +0 -5
- package/esm2022/title/malva-ui-core-title.js.map +0 -1
- package/esm2022/toast/index.js +0 -13
- package/esm2022/toast/index.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-container.js +0 -50
- package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-item.js +0 -75
- package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast.service.js +0 -176
- package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
- package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
- package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
- package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
- package/esm2022/toast/lib/toast-ref.js +0 -54
- package/esm2022/toast/lib/toast-ref.js.map +0 -1
- package/esm2022/toast/lib/toast-timer.js +0 -37
- package/esm2022/toast/lib/toast-timer.js.map +0 -1
- package/esm2022/toast/lib/toast.directives.js +0 -76
- package/esm2022/toast/lib/toast.directives.js.map +0 -1
- package/esm2022/toast/lib/toast.service.js +0 -127
- package/esm2022/toast/lib/toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast.types.js +0 -39
- package/esm2022/toast/lib/toast.types.js.map +0 -1
- package/esm2022/toast/malva-ui-core-toast.js +0 -5
- package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
- package/esm2022/tokenizer/index.js +0 -4
- package/esm2022/tokenizer/index.js.map +0 -1
- package/esm2022/tokenizer/lib/token/token.js +0 -123
- package/esm2022/tokenizer/lib/token/token.js.map +0 -1
- package/esm2022/tokenizer/lib/token-template.js +0 -23
- package/esm2022/tokenizer/lib/token-template.js.map +0 -1
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
- package/esm2022/toolbar/index.js +0 -4
- package/esm2022/toolbar/index.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
- package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
- package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
- package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
- package/esm2022/tooltip/index.js +0 -4
- package/esm2022/tooltip/index.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
- package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
- package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
- package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
- package/esm2022/tree/index.js +0 -5
- package/esm2022/tree/index.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-context.js +0 -7
- package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
- package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node.js +0 -1
- package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
- package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
- package/esm2022/tree/lib/tree/tree.js +0 -362
- package/esm2022/tree/lib/tree/tree.js.map +0 -1
- package/esm2022/tree/malva-ui-core-tree.js +0 -5
- package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
- package/expand/index.d.ts +0 -2
- package/expand/lib/expand/expand-content.d.ts +0 -26
- package/expand/lib/expand/expand.d.ts +0 -74
- package/expand/malva-ui-core-expand.d.ts +0 -5
- package/file-upload/index.d.ts +0 -4
- package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
- package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
- package/file-upload/lib/file-upload-action.d.ts +0 -53
- package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
- package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
- package/filter/index.d.ts +0 -3
- package/filter/lib/filter/filter.d.ts +0 -156
- package/filter/lib/filter.types.d.ts +0 -75
- package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
- package/filter/malva-ui-core-filter.d.ts +0 -5
- package/form/index.d.ts +0 -6
- package/form/lib/fieldset/fieldset.d.ts +0 -58
- package/form/lib/fieldset-span.d.ts +0 -28
- package/form/lib/form/form.d.ts +0 -37
- package/form/lib/form-actions.d.ts +0 -20
- package/form/lib/form-gap.d.ts +0 -5
- package/form/lib/form-header.d.ts +0 -18
- package/form/lib/form.types.d.ts +0 -13
- package/form/malva-ui-core-form.d.ts +0 -5
- package/form-utils/index.d.ts +0 -15
- package/form-utils/lib/aria-value-bridge.d.ts +0 -45
- package/form-utils/lib/description/description.d.ts +0 -16
- package/form-utils/lib/focusable-group-base.d.ts +0 -76
- package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
- package/form-utils/lib/form-control-sides.d.ts +0 -20
- package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
- package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
- package/form-utils/lib/form-field/form-field.d.ts +0 -68
- package/form-utils/lib/hint/hint.d.ts +0 -5
- package/form-utils/lib/label/label.d.ts +0 -22
- package/form-utils/lib/message/message.d.ts +0 -7
- package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
- package/form-utils/lib/models/form-control-connector.d.ts +0 -41
- package/form-utils/lib/models/form-state.d.ts +0 -1
- package/form-utils/lib/selection.service.d.ts +0 -27
- package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
- package/form-utils/testing/index.d.ts +0 -1
- package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
- package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
- package/index.d.ts +0 -69
- package/input/index.d.ts +0 -3
- package/input/lib/input/input-native.d.ts +0 -36
- package/input/lib/input/input-value-accessor.d.ts +0 -11
- package/input/lib/input/input.d.ts +0 -189
- package/input/lib/input/password-strength.d.ts +0 -34
- package/input/malva-ui-core-input.d.ts +0 -5
- package/kbd/index.d.ts +0 -1
- package/kbd/lib/kbd/kbd.d.ts +0 -52
- package/kbd/malva-ui-core-kbd.d.ts +0 -5
- package/layout/index.d.ts +0 -4
- package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
- package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
- package/layout/lib/layout/layout.d.ts +0 -20
- package/layout/lib/layout/services/theme.service.d.ts +0 -33
- package/layout/malva-ui-core-layout.d.ts +0 -5
- package/link/index.d.ts +0 -2
- package/link/lib/link/link.d.ts +0 -15
- package/link/lib/link/link.directives.d.ts +0 -10
- package/link/malva-ui-core-link.d.ts +0 -5
- package/list/index.d.ts +0 -13
- package/list/lib/list/list.d.ts +0 -25
- package/list/lib/list-item/list-item.d.ts +0 -67
- package/list/lib/list-item-actions.d.ts +0 -12
- package/list/lib/list-item-byline.d.ts +0 -5
- package/list/lib/list-item-group/list-item-group.d.ts +0 -11
- package/list/lib/list-item-link/list-item-link.d.ts +0 -8
- package/list/lib/list-item-media.d.ts +0 -5
- package/list/lib/list-item-meta.d.ts +0 -5
- package/list/lib/list-item-prefix.d.ts +0 -5
- package/list/lib/list-item-suffix.d.ts +0 -5
- package/list/lib/list-item-template.d.ts +0 -10
- package/list/lib/list-item-title.d.ts +0 -5
- package/list/lib/list-selectable.d.ts +0 -73
- package/list/malva-ui-core-list.d.ts +0 -5
- package/loader/index.d.ts +0 -1
- package/loader/lib/loader/loader.d.ts +0 -84
- package/loader/malva-ui-core-loader.d.ts +0 -5
- package/malva-ui-core.d.ts +0 -5
- package/menu/index.d.ts +0 -9
- package/menu/lib/menu/menu-group-label.d.ts +0 -22
- package/menu/lib/menu/menu-group.d.ts +0 -27
- package/menu/lib/menu/menu-item.d.ts +0 -76
- package/menu/lib/menu/menu-separator.d.ts +0 -18
- package/menu/lib/menu/menu-trigger.d.ts +0 -255
- package/menu/lib/menu/menu.d.ts +0 -149
- package/menu/lib/menu/menu.types.d.ts +0 -13
- package/menu/lib/menu/menubar.d.ts +0 -131
- package/menu/lib/menu/menubar.types.d.ts +0 -82
- package/menu/lib/menu/submenu-aim.d.ts +0 -10
- package/menu/malva-ui-core-menu.d.ts +0 -5
- package/notification/index.d.ts +0 -4
- package/notification/lib/notification-item/notification-item.d.ts +0 -20
- package/notification/lib/notification-ref.d.ts +0 -12
- package/notification/lib/notification.service.d.ts +0 -43
- package/notification/lib/notification.types.d.ts +0 -52
- package/notification/malva-ui-core-notification.d.ts +0 -5
- package/number-input/index.d.ts +0 -1
- package/number-input/lib/number-input/number-input.d.ts +0 -162
- package/number-input/malva-ui-core-number-input.d.ts +0 -5
- package/page/index.d.ts +0 -14
- package/page/lib/page/page-scroll.token.d.ts +0 -19
- package/page/lib/page/page-snap-controller.d.ts +0 -87
- package/page/lib/page/page-snap.directive.d.ts +0 -40
- package/page/lib/page/page.d.ts +0 -74
- package/page/lib/page-content/page-aside.d.ts +0 -7
- package/page/lib/page-content/page-content.d.ts +0 -37
- package/page/lib/page-dock/page-dock.d.ts +0 -50
- package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
- package/page/lib/page-header/page-header.d.ts +0 -77
- package/page/lib/page-header/page-header.directives.d.ts +0 -50
- package/page/lib/page-shell/page-shell-color.d.ts +0 -48
- package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
- package/page/lib/page-shell/page-shell.d.ts +0 -44
- package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
- package/page/lib/page-summary/page-summary-item.d.ts +0 -11
- package/page/lib/page-summary/page-summary.d.ts +0 -36
- package/page/malva-ui-core-page.d.ts +0 -5
- package/pagination/index.d.ts +0 -4
- package/pagination/lib/pagination/pagination.d.ts +0 -182
- package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
- package/pagination/lib/pagination/pagination.model.d.ts +0 -6
- package/pagination/lib/pagination/pagination.service.d.ts +0 -26
- package/pagination/malva-ui-core-pagination.d.ts +0 -5
- package/pin-input/index.d.ts +0 -2
- package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
- package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
- package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
- package/popup/index.d.ts +0 -9
- package/popup/lib/popup/popup.d.ts +0 -343
- package/popup/lib/popup-container/popup-container.d.ts +0 -61
- package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
- package/popup/lib/popup-content.d.ts +0 -6
- package/popup/lib/popup-header-content.d.ts +0 -18
- package/popup/lib/popup-pinned-content.d.ts +0 -17
- package/popup/lib/popup-positions.d.ts +0 -105
- package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
- package/popup/lib/popup.service.d.ts +0 -159
- package/popup/malva-ui-core-popup.d.ts +0 -5
- package/progress/index.d.ts +0 -1
- package/progress/lib/progress/progress.d.ts +0 -69
- package/progress/malva-ui-core-progress.d.ts +0 -5
- package/radio/index.d.ts +0 -2
- package/radio/lib/radio/radio.d.ts +0 -87
- package/radio/lib/radio-group/radio-group.d.ts +0 -35
- package/radio/lib/radio-group-token.d.ts +0 -7
- package/radio/malva-ui-core-radio.d.ts +0 -5
- package/rating/index.d.ts +0 -1
- package/rating/lib/rating/rating.d.ts +0 -100
- package/rating/malva-ui-core-rating.d.ts +0 -5
- package/scrollbar/index.d.ts +0 -1
- package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
- package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
- package/search-field/index.d.ts +0 -2
- package/search-field/lib/search-field/search-field.d.ts +0 -347
- package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
- package/search-field/malva-ui-core-search-field.d.ts +0 -5
- package/segmented/index.d.ts +0 -4
- package/segmented/lib/segmented/segmented.d.ts +0 -80
- package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
- package/segmented/lib/segmented-token.d.ts +0 -22
- package/segmented/lib/segmented.types.d.ts +0 -9
- package/segmented/malva-ui-core-segmented.d.ts +0 -5
- package/select/index.d.ts +0 -3
- package/select/lib/select/select.d.ts +0 -379
- package/select/lib/select-option.d.ts +0 -1
- package/select/lib/select-template.directives.d.ts +0 -14
- package/select/malva-ui-core-select.d.ts +0 -5
- package/sidebar/index.d.ts +0 -15
- package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
- package/sidebar/lib/sidebar-content.d.ts +0 -11
- package/sidebar/lib/sidebar-context.d.ts +0 -23
- package/sidebar/lib/sidebar-footer.d.ts +0 -9
- package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
- package/sidebar/lib/sidebar-header.d.ts +0 -9
- package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
- package/sidebar/lib/sidebar-item-host.d.ts +0 -18
- package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
- package/sidebar/lib/sidebar-mode.d.ts +0 -2
- package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
- package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
- package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
- package/skeleton/index.d.ts +0 -1
- package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
- package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
- package/slider/index.d.ts +0 -2
- package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
- package/slider/lib/slider/slider.d.ts +0 -171
- package/slider/malva-ui-core-slider.d.ts +0 -5
- package/split-pane/index.d.ts +0 -3
- package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
- package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
- package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
- package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
- package/status-indicator/index.d.ts +0 -1
- package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
- package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
- package/stepper/index.d.ts +0 -4
- package/stepper/lib/stepper/step-header.d.ts +0 -34
- package/stepper/lib/stepper/step.d.ts +0 -51
- package/stepper/lib/stepper/stepper-token.d.ts +0 -13
- package/stepper/lib/stepper/stepper.d.ts +0 -98
- package/stepper/lib/stepper/stepper.types.d.ts +0 -4
- package/stepper/malva-ui-core-stepper.d.ts +0 -5
- package/switch/index.d.ts +0 -2
- package/switch/lib/switch/switch.d.ts +0 -118
- package/switch/lib/switch-group/switch-group.d.ts +0 -24
- package/switch/lib/switch-group-token.d.ts +0 -6
- package/switch/malva-ui-core-switch.d.ts +0 -5
- package/tabs/index.d.ts +0 -8
- package/tabs/lib/tab/tab.d.ts +0 -46
- package/tabs/lib/tab-content/tab-content.d.ts +0 -11
- package/tabs/lib/tab-content-def.d.ts +0 -6
- package/tabs/lib/tab-def.d.ts +0 -11
- package/tabs/lib/tab-group-token.d.ts +0 -10
- package/tabs/lib/tab-item/tab-item.d.ts +0 -28
- package/tabs/lib/tabs/tabs.d.ts +0 -202
- package/tabs/lib/tabs.service.d.ts +0 -24
- package/tabs/malva-ui-core-tabs.d.ts +0 -5
- package/textarea/index.d.ts +0 -1
- package/textarea/lib/textarea/textarea.d.ts +0 -77
- package/textarea/malva-ui-core-textarea.d.ts +0 -5
- package/tile/index.d.ts +0 -2
- package/tile/lib/tile/tile.d.ts +0 -20
- package/tile/lib/tile-header.d.ts +0 -6
- package/tile/malva-ui-core-tile.d.ts +0 -5
- package/time-picker/index.d.ts +0 -1
- package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
- package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
- package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
- package/timeline/index.d.ts +0 -5
- package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item.d.ts +0 -52
- package/timeline/lib/timeline/timeline.d.ts +0 -27
- package/timeline/lib/timeline/timeline.types.d.ts +0 -18
- package/timeline/malva-ui-core-timeline.d.ts +0 -5
- package/title/index.d.ts +0 -1
- package/title/lib/title/title.d.ts +0 -63
- package/title/malva-ui-core-title.d.ts +0 -5
- package/toast/index.d.ts +0 -10
- package/toast/lib/abstract-toast-container.d.ts +0 -29
- package/toast/lib/abstract-toast-item.d.ts +0 -44
- package/toast/lib/abstract-toast.service.d.ts +0 -75
- package/toast/lib/toast-container/toast-container.d.ts +0 -23
- package/toast/lib/toast-item/toast-item.d.ts +0 -25
- package/toast/lib/toast-ref.d.ts +0 -33
- package/toast/lib/toast-timer.d.ts +0 -24
- package/toast/lib/toast.directives.d.ts +0 -13
- package/toast/lib/toast.service.d.ts +0 -41
- package/toast/lib/toast.types.d.ts +0 -139
- package/toast/malva-ui-core-toast.d.ts +0 -5
- package/tokenizer/index.d.ts +0 -3
- package/tokenizer/lib/token/token.d.ts +0 -60
- package/tokenizer/lib/token-template.d.ts +0 -29
- package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
- package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
- package/toolbar/index.d.ts +0 -3
- package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
- package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
- package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
- package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
- package/tooltip/index.d.ts +0 -3
- package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
- package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
- package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
- package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
- package/tree/index.d.ts +0 -4
- package/tree/lib/tree/tree-context.d.ts +0 -62
- package/tree/lib/tree/tree-node-def.d.ts +0 -33
- package/tree/lib/tree/tree-node.d.ts +0 -45
- package/tree/lib/tree/tree-subtree.d.ts +0 -63
- package/tree/lib/tree/tree.d.ts +0 -156
- package/tree/malva-ui-core-tree.d.ts +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-autocomplete.mjs","sources":["../../../../libs/core/autocomplete/src/lib/autocomplete/autocomplete.ts","../../../../libs/core/autocomplete/src/malva-ui-core-autocomplete.ts"],"sourcesContent":["import {\n afterNextRender,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport type { ComponentRef } from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport type { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject, timer } from 'rxjs';\nimport { debounce } from 'rxjs/operators';\nimport {\n MlvActiveDescendant,\n MlvDropdownPanel,\n MlvOptionsAdapter,\n defaultOptionMatcher,\n defaultOptionTransform,\n filterOptions,\n optionId,\n resolveOptions,\n} from '@malva-ui/core/dropdown';\nimport type {\n MlvOptionMatcher,\n MlvOptionsInput,\n MlvOptionsSearchFn,\n MlvSelectOption,\n MlvSelectOptionTransform,\n} from '@malva-ui/core/dropdown';\nimport { MlvSelectionService } from '@malva-ui/core/form-utils';\nimport { MlvRtlService, mlvNextId } from '@malva-ui/cdk/utils';\nimport { MLV_DENSITY_CONTEXT, MlvDensityService } from '@malva-ui/cdk/density';\nimport type { MlvDensity } from '@malva-ui/cdk/density';\n\n/** Alias of {@link MlvOptionsSearchFn} — kept for backwards compatibility. */\nexport type MlvAutocompleteSearchFn<T> = MlvOptionsSearchFn<T>;\n\n/** Connected-overlay positions: below the input first, above as the fallback. */\nconst AUTOCOMPLETE_POSITIONS: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n];\n\n/**\n * `[mlvAutocomplete]` — a reusable autocomplete/typeahead behaviour applicable\n * to **any** text input: a native `<input>` or a `<mlv-input>`. It reuses the\n * same building blocks as `mlv-combobox` — the shared\n * {@link filterOptions matching utility} and the `mlv-dropdown-panel` list — to\n * render a suggestion popup, without forcing the field into a full form\n * control.\n *\n * Suggestions come from the {@link options} source — an array or\n * `Observable<T[]>` (filtered locally with {@link matcher}), or a\n * `MlvDataSource<T>` (which filters and pages itself) — or from an async\n * {@link search} function. Every shape is normalised by the shared\n * `MlvOptionsAdapter`. The directive owns\n * the popup (a CDK overlay hosting `mlv-dropdown-panel`, the same primitive\n * `mlv-popup` wraps — a headless attribute directive cannot host `mlv-popup`'s\n * declarative content template), the WAI-ARIA combobox wiring on the input\n * (`role=\"combobox\"`, `aria-autocomplete=\"list\"`, `aria-expanded`,\n * `aria-controls`, `aria-activedescendant`), and the activedescendant keyboard\n * model (DOM focus stays in the input; Arrow/Home/End move the highlighted\n * option, Enter selects it, Escape closes then clears).\n *\n * @example\n * ```html\n * <!-- Static options on a plain mlv-input -->\n * <mlv-input [mlvAutocomplete]=\"fruits\" (optionSelected)=\"pick($event)\" />\n *\n * <!-- Async search with loading + highlighting -->\n * <mlv-input [mlvAutocompleteSearch]=\"searchUsers\" [mlvAutocompleteMinLength]=\"2\" />\n *\n * <!-- Data source: it filters (setSearch) and pages itself -->\n * <mlv-input [mlvAutocomplete]=\"usersDataSource\" [mlvAutocompleteMinLength]=\"2\" />\n *\n * <!-- Custom matcher -->\n * <mlv-input [mlvAutocomplete]=\"cities\" [mlvAutocompleteMatcher]=\"startsWith\" />\n * ```\n */\n@Directive({\n selector: '[mlvAutocomplete],[mlvAutocompleteSearch]',\n exportAs: 'mlvAutocomplete',\n // Provided per-directive so the `mlv-dropdown-panel` component portal (created\n // with this directive's element injector) can resolve the MlvSelectionService it\n // injects — matching how `mlv-combobox` / `mlv-select` scope it.\n providers: [MlvSelectionService],\n})\nexport class MlvAutocomplete<T = unknown> {\n /**\n * Suggestion source: a static array or `Observable<T[]>` (filtered locally\n * against the query with {@link matcher}), or a `MlvDataSource<T>` (which owns\n * its own filtering — the directive forwards the query as\n * `setSearch({ query, keys: [] })` and pages lazily). Ignored when a\n * {@link search} function is provided. Bound through the directive's own\n * selector: `[mlvAutocomplete]=\"options\"`.\n */\n readonly options = input<MlvOptionsInput<T>>([], {\n alias: 'mlvAutocomplete',\n });\n\n /**\n * Async suggestion source: `(query) => T[] | Promise<T[]> | Observable<T[]>`.\n * When set, it supersedes {@link options}; results feed the panel and drive\n * the loading affordance. A newer query supersedes an in-flight one (its\n * result is discarded), while the previous results stay visible until the new\n * ones land.\n */\n readonly search = input<MlvAutocompleteSearchFn<T> | null>(null, {\n alias: 'mlvAutocompleteSearch',\n });\n\n /**\n * Maps a raw item to a `MlvSelectOption` (`{ label, value, group? }`). Same\n * convention as `mlv-select` / `mlv-combobox`; defaults to\n * {@link defaultOptionTransform} (uses `String(item)` as the label).\n */\n readonly toOption = input<MlvSelectOptionTransform<T>>(\n defaultOptionTransform as MlvSelectOptionTransform<T>,\n { alias: 'mlvAutocompleteToOption' },\n );\n\n /**\n * Predicate used to filter {@link options} against the query. Defaults to a\n * case- and diacritic-insensitive substring match on the label. Ignored when\n * {@link search} is provided (the async source owns its own matching).\n */\n readonly matcher = input<MlvOptionMatcher<T>>(defaultOptionMatcher, {\n alias: 'mlvAutocompleteMatcher',\n });\n\n /**\n * Debounce (ms) applied to keystrokes before filtering / searching — avoids\n * redundant work and API calls during rapid typing.\n * @default 200\n */\n readonly debounce = input<number>(200, {\n alias: 'mlvAutocompleteDebounce',\n });\n\n /**\n * Minimum query length before suggestions open. `0` (default) opens on focus\n * showing the full list — appropriate for cheap local filtering. Raise it\n * (2+ recommended) for async sources so a network call is not made on every\n * keystroke.\n * @default 0\n */\n readonly minLength = input<number>(0, {\n alias: 'mlvAutocompleteMinLength',\n });\n\n /**\n * When `true`, the matched substring of the query is emphasised inside each\n * suggestion label.\n * @default true\n */\n readonly highlight = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteHighlight',\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true` (default), an **inline completion** is offered as the user types:\n * if the top visible suggestion's label starts with the typed text (a genuine\n * prefix, case-insensitively) and the caret is at the end of the field, the\n * remainder of that suggestion is inserted after the caret and left **selected**\n * — so continuing to type replaces it, `Enter`/click commits the full value, and\n * `Escape` reverts to just the typed text. The user's typed prefix keeps their\n * casing; only the appended remainder uses the suggestion's casing. Non-prefix\n * (fuzzy / substring-only) top matches are skipped silently (list-only). While\n * enabled the input advertises `aria-autocomplete=\"both\"`; set `false` for\n * list-only behaviour (`aria-autocomplete=\"list\"`).\n * @default true\n */\n readonly inline = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteInline',\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true` (default), focusing the input opens the suggestion list\n * (subject to {@link minLength}). Set `false` to only open on typing / arrow.\n * @default true\n */\n readonly openOnFocus = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteOpenOnFocus',\n transform: coerceBooleanProperty,\n });\n\n /** Disables the behaviour entirely (no popup, no aria wiring changes). */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'mlvAutocompleteDisabled',\n transform: coerceBooleanProperty,\n });\n\n /**\n * Text shown / announced inside the panel's loading affordances — the top row\n * while a remote source (an async {@link search} or a `MlvDataSource`)\n * resolves, and the bottom row while a further page loads. Localise by binding\n * a translated string.\n * @default 'Loading…'\n */\n readonly loadingText = input<string>('Loading…', {\n alias: 'mlvAutocompleteLoadingText',\n });\n\n /**\n * Distance (px) from the end of the suggestion list at which the next\n * data-source page is requested. Only meaningful for a `MlvDataSource`\n * {@link options} source, which is the only shape that pages.\n * @default 150\n */\n readonly infiniteScrollThreshold = input<number>(150, {\n alias: 'mlvAutocompleteInfiniteScrollThreshold',\n });\n\n /**\n * Density applied to the suggestion panel's option rows.\n *\n * The panel is hosted in a bare CDK overlay portaled to the overlay container,\n * outside the input's DOM tree, so ancestor density classes cannot cascade\n * into it. The resolved density is stamped as a `mlv--{density}` class on the\n * panel host (the same mechanism `mlv-popup` uses for its detached panel).\n * When omitted, the nearest ancestor `MLV_DENSITY_CONTEXT` (e.g. a\n * `form[mlvForm]`) applies, then the global `MlvDensityService` density.\n */\n readonly density = input<MlvDensity | undefined>(undefined, {\n alias: 'mlvAutocompleteDensity',\n });\n\n /**\n * The raw value of the last selected suggestion, or `null`. Two-way bindable\n * (`[(mlvAutocompleteValue)]`) so a parent can observe the committed pick.\n */\n readonly selectedValue = model<T | null>(null, {\n alias: 'mlvAutocompleteValue',\n });\n\n /** Emits the full `MlvSelectOption` each time the user selects a suggestion. */\n readonly optionSelected = output<MlvSelectOption<T>>();\n\n /** Emits `true` when the suggestion list opens and `false` when it closes. */\n readonly openedChange = output<boolean>();\n\n // ─── DI ────────────────────────────────────────────────────────────────────\n\n /** @private Host element the directive is applied to (native input or mlv-input). */\n private readonly _hostEl =\n inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n /** @private Renderer for DOM attribute/listener wiring on the resolved input. */\n private readonly _renderer = inject(Renderer2);\n /** @private CDK overlay factory used to host the suggestion panel. */\n private readonly _overlay = inject(Overlay);\n /** @private View container + injector for the `mlv-dropdown-panel` component portal. */\n private readonly _vcr = inject(ViewContainerRef);\n private readonly _injector = inject(Injector);\n /** @private Directive lifetime, for imperative listener / subscription cleanup. */\n private readonly _destroyRef = inject(DestroyRef);\n /** @private Global density service — fallback when no explicit {@link density} is supplied. */\n private readonly _densityService = inject(MlvDensityService);\n private readonly _rtlService = inject(MlvRtlService);\n\n /** @private Ancestor-projected density (`MLV_DENSITY_CONTEXT`); consulted before the service. */\n private readonly _densityContext = inject(MLV_DENSITY_CONTEXT, {\n optional: true,\n });\n\n // ─── State ───────────────────────────────────────────────────────────────\n\n /** @private The resolved focusable `<input>` (host itself, or the inner input of a `mlv-input`). */\n private readonly _inputEl = signal<HTMLInputElement | null>(null);\n /** @private Current (post-input) query text. */\n private readonly _query = signal('');\n /** @private The current suggestion options rendered in the panel. */\n private readonly _results = signal<MlvSelectOption<T>[]>([]);\n /**\n * @private Shared source adapter: arrays / observables filter locally, a\n * `MlvDataSource` or `search` fn run remotely. Debounce is 0 here because the\n * directive already debounces keystrokes before `_runQuery`.\n */\n private readonly _adapter = new MlvOptionsAdapter<T>({\n source: this.options,\n searchFn: this.search,\n debounce: signal(0),\n eager: signal(false),\n });\n /** @private Panel loading flag — only remote sources report loading. */\n private readonly _panelLoading = computed(\n () => this._adapter.mode() === 'remote' && this._adapter.loading(),\n );\n /**\n * @private Shared activedescendant bookkeeping: tracks the highlighted option\n * index over the current results with wrap-around navigation. The same engine\n * backs `mlv-combobox`.\n */\n private readonly _activeDescendant = new MlvActiveDescendant(\n () => this._results().length,\n );\n /** @private Whether the suggestion popup is open. */\n private readonly _open = signal(false);\n /** @private The attached panel component ref (a signal so the sync effect re-runs on attach). */\n private readonly _panelRef = signal<ComponentRef<MlvDropdownPanel<T>> | null>(\n null,\n );\n\n /** Whether the suggestion popup is currently open (read-only view of internal state). */\n readonly isOpen = this._open.asReadonly();\n\n /** @private Stable listbox id shared between the input's `aria-controls` and the panel's option ids. */\n private readonly _listboxId = mlvNextId('mlv-autocomplete-listbox');\n\n /**\n * @private Debounced keystroke stream. Carries the query text plus whether the\n * triggering edit was an insertion (text grew) so the debounced `_runQuery`\n * knows whether an inline completion may be offered — only genuine insertions\n * complete, never deletions (Backspace/Delete/cut), focus, or arrow-open.\n */\n private readonly _input$ = new Subject<{\n query: string;\n insertion: boolean;\n }>();\n /** @private Skips the synthetic `input` event dispatched while committing / completing a value. */\n private _suppressNextInput = false;\n /** @private Live overlay reference while the panel is open. */\n private _overlayRef: OverlayRef | null = null;\n /**\n * @private `inputType` of the pending native edit, captured on `beforeinput`\n * and consumed on `input`. Non-null in real browsers (drives precise\n * insert-vs-delete detection); `null` in environments that don't fire\n * `beforeinput` (jsdom / programmatic edits), where a length comparison is the\n * fallback.\n */\n private _pendingInputType: string | null = null;\n /** @private Length of the input value at the previous `input` event — the length-comparison fallback for insertion detection. */\n private _previousValueLength = 0;\n /** @private Whether the current query is allowed to offer an inline completion (set per `_runQuery`; only true for inline-enabled insertions). */\n private _completionArmed = false;\n /** @private Whether an inline completion (typed prefix + selected remainder) is currently present in the input. */\n private _completionActive = false;\n /** @private The `mlv--{density}` class currently applied to the panel host, for removal on change. */\n private _appliedDensityClass: string | null = null;\n\n constructor() {\n // Keep the detached panel host stamped with the resolved density cascade\n // class. The overlay (and panel element) is recreated on every open, so the\n // applied-class memo resets when the ref clears; while open, the effect also\n // reacts to live density changes.\n effect(() => {\n const ref = this._panelRef();\n if (!ref) {\n this._appliedDensityClass = null;\n return;\n }\n const el = ref.location.nativeElement as HTMLElement;\n const next = `mlv--${this.density() ?? this._densityContext?.() ?? this._densityService.density()}`;\n if (this._appliedDensityClass === next) return;\n if (this._appliedDensityClass) {\n this._renderer.removeClass(el, this._appliedDensityClass);\n }\n this._renderer.addClass(el, next);\n this._appliedDensityClass = next;\n });\n // Debounce keystrokes before filtering / searching. The last event in the\n // window wins (rxjs `debounce`), so its `insertion` flag is what gates the\n // inline completion for the resolved query.\n this._input$\n .pipe(\n debounce(() => timer(Math.max(0, this.debounce()))),\n takeUntilDestroyed(),\n )\n .subscribe(({ query, insertion }) => this._runQuery(query, insertion));\n\n // Resolve the real <input> and wire native listeners. When the host itself\n // is an <input> it is available immediately; when the host is a `mlv-input`\n // (or any wrapper) the inner <input> only exists after the first render.\n if (this._hostEl.tagName === 'INPUT') {\n this._bindTo(this._hostEl as HTMLInputElement);\n } else {\n afterNextRender(() => {\n const el = this._hostEl.querySelector('input');\n if (el) this._bindTo(el);\n });\n }\n\n // Keep the input's WAI-ARIA combobox attributes in sync with popup state.\n effect(() => {\n const el = this._inputEl();\n if (!el) return;\n const open = this._open();\n this._renderer.setAttribute(el, 'role', 'combobox');\n // \"both\": inline text completion + a list of suggestions (WAI-ARIA\n // list-with-inline-autocomplete). \"list\": suggestions only, no inline\n // completion. Tracks the `inline` opt-out.\n this._renderer.setAttribute(\n el,\n 'aria-autocomplete',\n this.inline() ? 'both' : 'list',\n );\n this._renderer.setAttribute(el, 'aria-expanded', String(open));\n if (open) {\n this._renderer.setAttribute(el, 'aria-controls', this._listboxId);\n const activeId = this._activeOptionId();\n if (activeId) {\n this._renderer.setAttribute(el, 'aria-activedescendant', activeId);\n } else {\n this._renderer.removeAttribute(el, 'aria-activedescendant');\n }\n } else {\n this._renderer.removeAttribute(el, 'aria-controls');\n this._renderer.removeAttribute(el, 'aria-activedescendant');\n }\n });\n\n // Push current state into the attached panel component.\n effect(() => {\n const ref = this._panelRef();\n if (!ref) return;\n ref.setInput('options', this._results());\n ref.setInput('multiple', false);\n ref.setInput('selectedValues', []);\n ref.setInput('focusMode', 'activedescendant');\n ref.setInput('activeIndex', this._activeDescendant.index());\n ref.setInput('listboxId', this._listboxId);\n ref.setInput('loading', this._panelLoading());\n ref.setInput('loadingText', this.loadingText());\n ref.setInput('hasMore', this._adapter.hasMore());\n ref.setInput('loadingMore', this._adapter.loadingMore());\n ref.setInput('infiniteScrollThreshold', this.infiniteScrollThreshold());\n ref.setInput(\n 'highlightQuery',\n this.highlight() ? this._query().trim() : '',\n );\n });\n\n // Mirror the adapter's items into the rendered results whenever the source\n // produces a new set: a remote result landing, or a local observable\n // emitting after the panel is already open (nothing else would repaint it\n // until the next keystroke). Remote items render as-is — the source owns\n // filtering — while local ones are re-filtered against the current query.\n // Running only on an item-set change is what keeps stale remote results\n // visible while a newer query is in flight; the inline completion is offered\n // once per armed query.\n effect(() => {\n const mode = this._adapter.mode();\n const items = this._adapter.items();\n untracked(() => {\n if (mode === 'remote') {\n this._results.set(items.map((item) => this.toOption()(item)));\n if (this._completionArmed && !this._adapter.loading()) {\n this._applyCompletion();\n this._completionArmed = false;\n }\n return;\n }\n // Local: only an open panel needs repainting — a closed one is filled by\n // `_runQuery` when it opens.\n if (!this._open()) return;\n this._results.set(\n filterOptions(\n resolveOptions([...items], this.toOption()),\n this._query(),\n this.matcher(),\n ),\n );\n // The highlighted row may not exist in the new list.\n if (this._activeDescendant.index() >= this._results().length) {\n this._activeDescendant.reset();\n }\n });\n });\n\n this._destroyRef.onDestroy(() => this._disposeOverlay());\n }\n\n /**\n * @private Resolves the focusable `<input>` and attaches the native listeners\n * (input / focus / blur / keydown) that drive the behaviour. Cleaned up on\n * directive destroy.\n */\n private _bindTo(el: HTMLInputElement): void {\n this._inputEl.set(el);\n this._previousValueLength = el.value.length;\n // Capture the edit intent (insert vs delete) before the value changes, so\n // `_onInput` can gate the inline completion precisely in real browsers. Not\n // fired for programmatic value changes (jsdom / our own dispatches), where\n // `_onInput` falls back to a length comparison.\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'beforeinput', (event: Event) => {\n this._pendingInputType =\n 'inputType' in event ? (event as InputEvent).inputType : null;\n }),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'input', () => this._onInput()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'focus', () => this._onFocus()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'blur', () => this._onBlur()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'keydown', (event: KeyboardEvent) =>\n this._onKeydown(event),\n ),\n );\n }\n\n /**\n * @private `aria-activedescendant` target: the DOM id of the highlighted\n * option row, or `null` when nothing is active. Matches the id the panel\n * renders (`<listboxId>-option-<index>`).\n */\n private readonly _activeOptionId = () => {\n const index = this._activeDescendant.index();\n if (index < 0 || index >= this._results().length) return null;\n return optionId(this._listboxId, index);\n };\n\n // ─── Input / focus events ──────────────────────────────────────────────────\n\n /** @private Handles a native `input` event: pushes the value (with insertion flag) into the debounced stream. */\n private _onInput(): void {\n if (this._suppressNextInput) {\n this._suppressNextInput = false;\n // Discard any beforeinput type that paired with our own synthetic dispatch.\n this._pendingInputType = null;\n return;\n }\n // A genuine user edit invalidates any inline completion currently in the\n // field (the edit has replaced or removed the selected remainder).\n this._completionActive = false;\n if (this._isInert()) return;\n const query = this._inputEl()?.value ?? '';\n this._input$.next({ query, insertion: this._consumeInsertion(query) });\n }\n\n /**\n * @private Whether the just-observed `input` event grew the field's text (a\n * genuine insertion) rather than deleting from it. Prefers the `beforeinput`\n * `inputType` when available (real browsers), else compares the value length\n * against the previous `input` event. Consumes the pending type and records\n * the new length either way.\n */\n private _consumeInsertion(value: string): boolean {\n const inputType = this._pendingInputType;\n this._pendingInputType = null;\n const insertion =\n inputType !== null\n ? inputType.startsWith('insert')\n : value.length > this._previousValueLength;\n this._previousValueLength = value.length;\n return insertion;\n }\n\n /** @private Opens suggestions on focus (immediate, bypassing debounce) when enabled. */\n private _onFocus(): void {\n if (this._isInert() || !this.openOnFocus()) return;\n this._runQuery(this._inputEl()?.value ?? '');\n }\n\n /** @private Closes the popup when focus genuinely leaves the field. */\n private _onBlur(): void {\n this._closePopup();\n }\n\n // ─── Keyboard ──────────────────────────────────────────────────────────────\n\n /** @private Activedescendant keyboard model — DOM focus stays in the input. */\n private _onKeydown(event: KeyboardEvent): void {\n if (this._isInert()) return;\n switch (this._rtlService.normalizeArrowKey(event) ?? event.key) {\n case DOWN_ARROW:\n event.preventDefault();\n if (this._open()) this._activeDescendant.move(1);\n else this._runQuery(this._inputEl()?.value ?? '');\n break;\n case UP_ARROW:\n event.preventDefault();\n if (this._open()) this._activeDescendant.move(-1);\n else this._runQuery(this._inputEl()?.value ?? '');\n break;\n case 'Home':\n if (this._open() && this._results().length) {\n event.preventDefault();\n this._activeDescendant.first();\n }\n break;\n case 'End':\n if (this._open() && this._results().length) {\n event.preventDefault();\n this._activeDescendant.last();\n }\n break;\n case 'Enter': {\n const index = this._activeDescendant.index();\n const results = this._results();\n if (this._open() && index >= 0 && index < results.length) {\n event.preventDefault();\n this._commit(results[index]);\n }\n break;\n }\n case 'Escape': {\n // Revert any inline completion to just the typed text first, then apply\n // the existing close-then-clear semantics.\n const stripped = this._stripCompletion();\n if (this._open()) {\n event.preventDefault();\n this._closePopup();\n } else if (stripped) {\n // The strip already reverted the completed text on this keypress; do\n // not also clear the field.\n event.preventDefault();\n } else if (this._inputEl()?.value) {\n event.preventDefault();\n this._clearInput();\n }\n break;\n }\n default:\n break;\n }\n }\n\n // ─── Query resolution ───────────────────────────────────────────────────────\n\n /**\n * @private Resolves suggestions for `query` and opens / closes the popup.\n * Local sources (arrays / observables) filter synchronously; a remote source\n * (a `MlvDataSource` or an async {@link search}) shows the loading affordance\n * while keeping the previous results visible, and a newer query supersedes it.\n */\n private _runQuery(query: string, insertion = false): void {\n this._query.set(query);\n this._activeDescendant.reset();\n // Arm the inline completion only for inline-enabled insertions. Focus /\n // arrow-open (`insertion` false) and deletions never complete.\n this._completionArmed = insertion && this.inline();\n if (this._isInert()) return;\n\n if (query.length < this.minLength()) {\n this._results.set([]);\n this._closePopup();\n return;\n }\n\n if (this._adapter.mode() === 'local') {\n const options = resolveOptions(\n [...this._adapter.items()],\n this.toOption(),\n );\n this._results.set(filterOptions(options, query, this.matcher()));\n this._openPopup();\n if (this._completionArmed) {\n this._applyCompletion();\n this._completionArmed = false;\n }\n return;\n }\n\n // Remote: seed the panel from what the source already holds, open (the\n // spinner row sits over those stale results), then search. Seeding is what\n // makes a re-entry into an already-answered query repaint: the mirroring\n // effect only fires on an item-set *change*, so a `search` fn that memoises\n // and returns the identical array for a repeated query — or a data source\n // whose slice reference is unchanged — would otherwise leave the panel\n // empty after the min-length gate cleared `_results`. The adapter discards\n // superseded results; the effect renders new ones.\n this._results.set(\n this._adapter.items().map((item) => this.toOption()(item)),\n );\n this._openPopup();\n this._adapter.search(query);\n }\n\n // ─── Inline completion ─────────────────────────────────────────────────────\n\n /**\n * @private Offers an inline completion for the current results: if the top\n * suggestion's label is a genuine case-insensitive **prefix** of the typed\n * text and the caret sits at the end of the field, append the suggestion's\n * remainder (in its own casing) after the typed prefix (kept in the user's\n * casing) and leave that remainder **selected**. The completed value is pushed\n * through the same synthetic-`input` path a commit uses so `mlv-input` /\n * `ngModel` / a form control observe it, and the top item (index 0) becomes the\n * activedescendant-active row. No-op unless armed for an inline insertion with\n * an open panel; non-prefix (fuzzy) top matches are skipped silently.\n */\n private _applyCompletion(): void {\n if (!this.inline() || !this._open()) return;\n const el = this._inputEl();\n if (!el) return;\n const typed = el.value;\n const typedLength = typed.length;\n if (typedLength === 0) return;\n // Only complete when the caret is a plain cursor at the very end.\n if (el.selectionStart !== typedLength || el.selectionEnd !== typedLength) {\n return;\n }\n const top = this._results()[0];\n if (!top) return;\n const label = top.label;\n if (\n label.length <= typedLength ||\n !label.toLowerCase().startsWith(typed.toLowerCase())\n ) {\n return;\n }\n // Keep the user's typed casing; take the remainder from the suggestion.\n const completed = typed + label.slice(typedLength);\n el.value = completed;\n el.setSelectionRange(typedLength, completed.length);\n this._completionActive = true;\n // Highlight the completed top item so keyboard nav / Enter stay coherent.\n this._activeDescendant.first();\n // Propagate the completed value the same way a commit does (suppressing our\n // own re-filter of this synthetic event).\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n /**\n * @private Strips an active inline completion back to the typed prefix (the\n * text before the selected remainder), restoring the caret to the end and\n * notifying value listeners. Returns whether a completion was stripped.\n */\n private _stripCompletion(): boolean {\n if (!this._completionActive) return false;\n const el = this._inputEl();\n if (!el) return false;\n const start = el.selectionStart ?? 0;\n const end = el.selectionEnd ?? 0;\n // The completion is the trailing selection [start, value.length].\n if (end !== el.value.length || start >= end) {\n this._completionActive = false;\n return false;\n }\n const typed = el.value.slice(0, start);\n el.value = typed;\n el.setSelectionRange(typed.length, typed.length);\n this._completionActive = false;\n this._query.set(typed);\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n return true;\n }\n\n // ─── Selection ───────────────────────────────────────────────────────────────\n\n /**\n * Panel (pointer) selection handler — subscribed to the `mlv-dropdown-panel`\n * `valueChange`. The panel is never seeded with a committed selection\n * (`selectedValues` is always `[]`), so any non-empty emit is a genuine pick —\n * no aria reconciliation guard is needed. Public so the overlay subscription\n * (and unit tests) can invoke it.\n */\n selectFromPanel(values: readonly T[]): void {\n if (!values.length) return;\n const picked = values[values.length - 1];\n const option = this._results().find((o) => o.value === picked);\n if (option) this._commit(option);\n }\n\n /** @private Commits a suggestion: writes its full label into the input (caret to end), emits, and closes. */\n private _commit(option: MlvSelectOption<T>): void {\n this._completionActive = false;\n const el = this._inputEl();\n if (el) {\n el.value = option.label;\n // Full value, caret at the end (clears any completion selection).\n el.setSelectionRange(option.label.length, option.label.length);\n // Notify mlv-input / ngModel listeners without re-triggering our own filter.\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n this._query.set(option.label);\n this.selectedValue.set(option.value);\n this.optionSelected.emit(option);\n this._closePopup();\n }\n\n /** @private Clears the input text (second Escape) and notifies listeners. */\n private _clearInput(): void {\n const el = this._inputEl();\n if (!el) return;\n el.value = '';\n this._query.set('');\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n // ─── Overlay ─────────────────────────────────────────────────────────────────\n\n /** @private Creates (if needed) and shows the suggestion overlay. */\n private _openPopup(): void {\n if (this._isInert()) return;\n const el = this._inputEl();\n if (!el) return;\n\n if (!this._overlayRef) {\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(el)\n .withFlexibleDimensions(true)\n .withPush(false)\n .withPositions(AUTOCOMPLETE_POSITIONS);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n direction: this._rtlService.resolveDirection(el),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n width: el.getBoundingClientRect().width,\n hasBackdrop: false,\n });\n\n const ref = this._overlayRef.attach(\n new ComponentPortal(MlvDropdownPanel, this._vcr, this._injector),\n ) as ComponentRef<MlvDropdownPanel<T>>;\n\n // Paint a floating surface on the bare panel. `mlv-combobox` / `mlv-select`\n // nest the panel in a styled `mlv-popup`; the directive's overlay hosts it\n // directly, so it would otherwise be transparent over the page. Applied on\n // the panel's own host element (which already carries `mlv-dropdown-panel`)\n // as the BEM modifier — dropdown-panel.scss owns the `--surface` styles.\n this._renderer.addClass(\n ref.location.nativeElement,\n 'mlv-dropdown-panel--surface',\n );\n\n // `valueChange` is an `output()` (OutputRef) — subscribe directly; the\n // subscription is torn down when the overlay (and panel) is disposed.\n ref.instance.valueChange.subscribe((values) =>\n this.selectFromPanel(values),\n );\n\n // Lazy paging: the panel's scroll sentinel asks for the next data-source\n // page. The adapter is a no-op unless another page exists and the previous\n // one has landed.\n ref.instance.loadMore.subscribe(() => this._adapter.loadMore());\n\n // Keep DOM focus in the input while pointing at options: a mousedown on the\n // panel must not blur the field (which would close before the click lands).\n this._renderer.listen(\n this._overlayRef.overlayElement,\n 'mousedown',\n (event: MouseEvent) => event.preventDefault(),\n );\n\n // Backdrop-less dismissal: close on a genuine outside click (the input /\n // host is treated as \"inside\" so caret repositioning does not dismiss).\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n if (!this._hostEl.contains(event.target as Node)) this._closePopup();\n });\n\n this._panelRef.set(ref);\n }\n\n if (!this._open()) {\n this._open.set(true);\n this.openedChange.emit(true);\n }\n }\n\n /** @private Hides and disposes the overlay, resetting popup state. */\n private _closePopup(): void {\n const wasOpen = this._open();\n this._activeDescendant.reset();\n this._disposeOverlay();\n this._open.set(false);\n if (wasOpen) this.openedChange.emit(false);\n }\n\n /** @private Tears down the overlay + panel ref. */\n private _disposeOverlay(): void {\n this._panelRef.set(null);\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n /** @private Whether all interaction paths are suppressed. */\n private _isInert(): boolean {\n return this.disabled();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAoDA;AACA,MAAM,sBAAsB,GAAwB;AAClD,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACD,IAAA;AACE,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACZ,KAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;MASU,eAAe,CAAA;AAC1B;;;;;;;AAOG;IACM,OAAO,GAAG,KAAK,CAAqB,EAAE,+EAC7C,KAAK,EAAE,iBAAiB,EAAA,CACxB;AAEF;;;;;;AAMG;IACM,MAAM,GAAG,KAAK,CAAoC,IAAI,8EAC7D,KAAK,EAAE,uBAAuB,EAAA,CAC9B;AAEF;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CACvB,sBAAqD,gFACnD,KAAK,EAAE,yBAAyB,EAAA,CACnC;AAED;;;;AAIG;IACM,OAAO,GAAG,KAAK,CAAsB,oBAAoB,+EAChE,KAAK,EAAE,wBAAwB,EAAA,CAC/B;AAEF;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAS,GAAG,gFACnC,KAAK,EAAE,yBAAyB,EAAA,CAChC;AAEF;;;;;;AAMG;IACM,SAAS,GAAG,KAAK,CAAS,CAAC,iFAClC,KAAK,EAAE,0BAA0B,EAAA,CACjC;AAEF;;;;AAIG;AACM,IAAA,SAAS,GAAG,KAAK,CAAwB,IAAI,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EACpD,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;;;;;;;;AAYG;AACM,IAAA,MAAM,GAAG,KAAK,CAAwB,IAAI,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EACjD,KAAK,EAAE,uBAAuB;QAC9B,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;AAIG;AACM,IAAA,WAAW,GAAG,KAAK,CAAwB,IAAI,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,CAAA,EACtD,KAAK,EAAE,4BAA4B;QACnC,SAAS,EAAE,qBAAqB,EAAA,CAChC;;AAGO,IAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpD,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;;AAMG;IACM,WAAW,GAAG,KAAK,CAAS,UAAU,mFAC7C,KAAK,EAAE,4BAA4B,EAAA,CACnC;AAEF;;;;;AAKG;IACM,uBAAuB,GAAG,KAAK,CAAS,GAAG,+FAClD,KAAK,EAAE,wCAAwC,EAAA,CAC/C;AAEF;;;;;;;;;AASG;IACM,OAAO,GAAG,KAAK,CAAyB,SAAS,+EACxD,KAAK,EAAE,wBAAwB,EAAA,CAC/B;AAEF;;;AAGG;IACM,aAAa,GAAG,KAAK,CAAW,IAAI,qFAC3C,KAAK,EAAE,sBAAsB,EAAA,CAC7B;;IAGO,cAAc,GAAG,MAAM,EAAsB;;IAG7C,YAAY,GAAG,MAAM,EAAW;;;AAKxB,IAAA,OAAO,GACtB,MAAM,CAA0B,UAAU,CAAC,CAAC,aAAa;;AAE1C,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;;AAE7B,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;;AAE1B,IAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/B,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAE5B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAEhC,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,IAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;;AAGnC,IAAA,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE;AAC7D,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;;;IAKe,QAAQ,GAAG,MAAM,CAA0B,IAAI;iFAAC;;IAEhD,MAAM,GAAG,MAAM,CAAC,EAAE;+EAAC;;IAEnB,QAAQ,GAAG,MAAM,CAAuB,EAAE;iFAAC;AAC5D;;;;AAIG;IACc,QAAQ,GAAG,IAAI,iBAAiB,CAAI;QACnD,MAAM,EAAE,IAAI,CAAC,OAAO;QACpB,QAAQ,EAAE,IAAI,CAAC,MAAM;AACrB,QAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACrB,KAAA,CAAC;;IAEe,aAAa,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;sFACnE;AACD;;;;AAIG;AACc,IAAA,iBAAiB,GAAG,IAAI,mBAAmB,CAC1D,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAC7B;;IAEgB,KAAK,GAAG,MAAM,CAAC,KAAK;8EAAC;;IAErB,SAAS,GAAG,MAAM,CACjC,IAAI;kFACL;;AAGQ,IAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;;AAGxB,IAAA,UAAU,GAAG,SAAS,CAAC,0BAA0B,CAAC;AAEnE;;;;;AAKG;AACc,IAAA,OAAO,GAAG,IAAI,OAAO,EAGlC;;IAEI,kBAAkB,GAAG,KAAK;;IAE1B,WAAW,GAAsB,IAAI;AAC7C;;;;;;AAMG;IACK,iBAAiB,GAAkB,IAAI;;IAEvC,oBAAoB,GAAG,CAAC;;IAExB,gBAAgB,GAAG,KAAK;;IAExB,iBAAiB,GAAG,KAAK;;IAEzB,oBAAoB,GAAkB,IAAI;AAElD,IAAA,WAAA,GAAA;;;;;QAKE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5B,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;gBAChC;YACF;AACA,YAAA,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,aAA4B;YACpD,MAAM,IAAI,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA,CAAE;AACnG,YAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI;gBAAE;AACxC,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAC3D;YACA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAClC,QAAA,CAAC,CAAC;;;;AAIF,QAAA,IAAI,CAAC;aACF,IAAI,CACH,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnD,kBAAkB,EAAE;AAErB,aAAA,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;;;;QAKxE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAA2B,CAAC;QAChD;aAAO;YACL,eAAe,CAAC,MAAK;gBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9C,gBAAA,IAAI,EAAE;AAAE,oBAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1B,YAAA,CAAC,CAAC;QACJ;;QAGA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,EAAE;gBAAE;AACT,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC;;;;YAInD,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,EAAE,EACF,mBAAmB,EACnB,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAChC;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC;AACjE,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;gBACvC,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,uBAAuB,EAAE,QAAQ,CAAC;gBACpE;qBAAO;oBACL,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,uBAAuB,CAAC;gBAC7D;YACF;iBAAO;gBACL,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,uBAAuB,CAAC;YAC7D;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,GAAG;gBAAE;YACV,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxC,YAAA,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;AAC/B,YAAA,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC;AAClC,YAAA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC7C,YAAA,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC3D,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;YAC1C,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/C,YAAA,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAChD,YAAA,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACvE,GAAG,CAAC,QAAQ,CACV,gBAAgB,EAChB,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAC7C;AACH,QAAA,CAAC,CAAC;;;;;;;;;QAUF,MAAM,CAAC,MAAK;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACnC,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,oBAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;wBACrD,IAAI,CAAC,gBAAgB,EAAE;AACvB,wBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;oBAC/B;oBACA;gBACF;;;AAGA,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,aAAa,CACX,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC3C,IAAI,CAAC,MAAM,EAAE,EACb,IAAI,CAAC,OAAO,EAAE,CACf,CACF;;AAED,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AAC5D,oBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBAChC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC1D;AAEA;;;;AAIG;AACK,IAAA,OAAO,CAAC,EAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;;;;;AAK3C,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,KAAY,KAAI;AACxD,YAAA,IAAI,CAAC,iBAAiB;AACpB,gBAAA,WAAW,IAAI,KAAK,GAAI,KAAoB,CAAC,SAAS,GAAG,IAAI;QACjE,CAAC,CAAC,CACH;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC1D;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC1D;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CACxD;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAoB,KACxD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CACvB,CACF;IACH;AAEA;;;;AAIG;IACc,eAAe,GAAG,MAAK;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;QAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AACzC,IAAA,CAAC;;;IAKO,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;;AAE/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;YAC7B;QACF;;;AAGA,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;IACxE;AAEA;;;;;;AAMG;AACK,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,QAAA,MAAM,SAAS,GACb,SAAS,KAAK;AACZ,cAAE,SAAS,CAAC,UAAU,CAAC,QAAQ;cAC7B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB;AAC9C,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,MAAM;AACxC,QAAA,OAAO,SAAS;IAClB;;IAGQ,QAAQ,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;AAC5C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;IAC9C;;IAGQ,OAAO,GAAA;QACb,IAAI,CAAC,WAAW,EAAE;IACpB;;;AAKQ,IAAA,UAAU,CAAC,KAAoB,EAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,QAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG;AAC5D,YAAA,KAAK,UAAU;gBACb,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,IAAI,CAAC,KAAK,EAAE;AAAE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;;AAC3C,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjD;AACF,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,IAAI,CAAC,KAAK,EAAE;oBAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAC5C,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjD;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;oBAC1C,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBAChC;gBACA;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;oBAC1C,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC/B;gBACA;YACF,KAAK,OAAO,EAAE;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC5C,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE;oBACxD,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B;gBACA;YACF;YACA,KAAK,QAAQ,EAAE;;;AAGb,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACxC,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;oBAChB,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,WAAW,EAAE;gBACpB;qBAAO,IAAI,QAAQ,EAAE;;;oBAGnB,KAAK,CAAC,cAAc,EAAE;gBACxB;AAAO,qBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE;oBACjC,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,WAAW,EAAE;gBACpB;gBACA;YACF;AACA,YAAA;gBACE;;IAEN;;AAIA;;;;;AAKG;AACK,IAAA,SAAS,CAAC,KAAa,EAAE,SAAS,GAAG,KAAK,EAAA;AAChD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;;;QAG9B,IAAI,CAAC,gBAAgB,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAErB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE;YAClB;QACF;QAEA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE;AACpC,YAAA,MAAM,OAAO,GAAG,cAAc,CAC5B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAC1B,IAAI,CAAC,QAAQ,EAAE,CAChB;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC/B;YACA;QACF;;;;;;;;;AAUA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAC3D;QACD,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B;;AAIA;;;;;;;;;;AAUG;IACK,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE;AACrC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK;AACtB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM;QAChC,IAAI,WAAW,KAAK,CAAC;YAAE;;AAEvB,QAAA,IAAI,EAAE,CAAC,cAAc,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,KAAK,WAAW,EAAE;YACxE;QACF;QACA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK;AACvB,QAAA,IACE,KAAK,CAAC,MAAM,IAAI,WAAW;AAC3B,YAAA,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EACpD;YACA;QACF;;QAEA,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;AAClD,QAAA,EAAE,CAAC,KAAK,GAAG,SAAS;QACpB,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;AAE7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;;;AAG9B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD;AAEA;;;;AAIG;IACK,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,KAAK;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAA,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK;AACrB,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,IAAI,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC;;AAEhC,QAAA,IAAI,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE;AAC3C,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACtC,QAAA,EAAE,CAAC,KAAK,GAAG,KAAK;QAChB,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI;IACb;;AAIA;;;;;;AAMG;AACH,IAAA,eAAe,CAAC,MAAoB,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;AAC9D,QAAA,IAAI,MAAM;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC;;AAGQ,IAAA,OAAO,CAAC,MAA0B,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,IAAI,EAAE,EAAE;AACN,YAAA,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;;AAEvB,YAAA,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;;AAE9D,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD;QACA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,WAAW,EAAE;IACpB;;IAGQ,WAAW,GAAA;AACjB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,EAAE,CAAC,KAAK,GAAG,EAAE;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,QAAA,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD;;;IAKQ,UAAU,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAA,IAAI,CAAC,EAAE;YAAE;AAET,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,iBAAA,QAAQ;iBACR,mBAAmB,CAAC,EAAE;iBACtB,sBAAsB,CAAC,IAAI;iBAC3B,QAAQ,CAAC,KAAK;iBACd,aAAa,CAAC,sBAAsB,CAAC;YAExC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtC,gBAAgB;gBAChB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC3D,gBAAA,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK;AACvC,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACjC,IAAI,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAC5B;;;;;;AAOtC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,GAAG,CAAC,QAAQ,CAAC,aAAa,EAC1B,6BAA6B,CAC9B;;;AAID,YAAA,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,KACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAC7B;;;;AAKD,YAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;;;YAI/D,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,IAAI,CAAC,WAAW,CAAC,cAAc,EAC/B,WAAW,EACX,CAAC,KAAiB,KAAK,KAAK,CAAC,cAAc,EAAE,CAC9C;;;AAID,YAAA,IAAI,CAAC;AACF,iBAAA,oBAAoB;AACpB,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;oBAAE,IAAI,CAAC,WAAW,EAAE;AACtE,YAAA,CAAC,CAAC;AAEJ,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B;IACF;;IAGQ,WAAW,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAC9B,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,OAAO;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5C;;IAGQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;IACF;;IAGQ,QAAQ,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;uGA/xBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAFf,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAErB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2CAA2C;AACrD,oBAAA,QAAQ,EAAE,iBAAiB;;;;oBAI3B,SAAS,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA;;;ACjHD;;AAEG;;;;"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, inject, ElementRef, signal, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { MlvAvatar, MlvColorFromTextPipe } from '@malva-ui/core/avatar';
|
|
6
|
+
import { MlvResizeObserverService } from '@malva-ui/cdk/utils';
|
|
7
|
+
import { MLV_AVATAR_GROUP_I18N, MlvI18nResolverService } from '@malva-ui/i18n';
|
|
8
|
+
import { MlvPopup, MlvPopupTrigger, MlvPopupContent } from '@malva-ui/core/popup';
|
|
9
|
+
|
|
10
|
+
/** Avatar size to pixel mapping (matches mlv-avatar SCSS size tokens). */
|
|
11
|
+
const AVATAR_SIZE_PX = {
|
|
12
|
+
xs: 24,
|
|
13
|
+
s: 32,
|
|
14
|
+
m: 40,
|
|
15
|
+
l: 56,
|
|
16
|
+
xl: 80,
|
|
17
|
+
xxl: 96,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Overlap in pixels per size — the absolute value of the negative
|
|
21
|
+
* `margin-left` applied to stacked avatars in avatar-group.scss.
|
|
22
|
+
*/
|
|
23
|
+
const AVATAR_OVERLAP_PX = {
|
|
24
|
+
xs: 4,
|
|
25
|
+
s: 6,
|
|
26
|
+
m: 8,
|
|
27
|
+
l: 10,
|
|
28
|
+
xl: 12,
|
|
29
|
+
xxl: 14,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Avatar group component rendering a horizontal stack of overlapping `mlv-avatar` instances.
|
|
33
|
+
*
|
|
34
|
+
* The visible count is calculated automatically based on the component's container width —
|
|
35
|
+
* no manual `max` input is needed. When members overflow, an avatar-styled `+N` counter
|
|
36
|
+
* is appended. Hovering or focusing the counter opens a popup listing every member.
|
|
37
|
+
* Clicking anywhere on the host emits `groupClick`; clicking the `+N` counter also
|
|
38
|
+
* emits `overflowClick`.
|
|
39
|
+
*
|
|
40
|
+
* The component fills its parent (uses `width: 100%` flex layout). Set a width or
|
|
41
|
+
* `max-width` on the host to constrain the visible count.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```html
|
|
45
|
+
* <mlv-avatar-group
|
|
46
|
+
* [members]="team"
|
|
47
|
+
* size="m"
|
|
48
|
+
* (groupClick)="openMembersPanel($event)"
|
|
49
|
+
* style="max-width: 200px"
|
|
50
|
+
* />
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
class MlvAvatarGroup {
|
|
54
|
+
/**
|
|
55
|
+
* The full list of members to represent.
|
|
56
|
+
* How many are visible is determined automatically by the container width.
|
|
57
|
+
*/
|
|
58
|
+
members = input([], /* @ts-ignore */
|
|
59
|
+
...(ngDevMode ? [{ debugName: "members" }] : /* istanbul ignore next */ []));
|
|
60
|
+
/**
|
|
61
|
+
* Size variant applied to all avatars (including the overflow counter avatar).
|
|
62
|
+
* Matches `MlvAvatarSize`: `'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'`.
|
|
63
|
+
* Defaults to `'m'`.
|
|
64
|
+
*/
|
|
65
|
+
size = input('m', /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
67
|
+
/**
|
|
68
|
+
* Shape applied to all avatars in the group.
|
|
69
|
+
* Defaults to `'circle'`.
|
|
70
|
+
*/
|
|
71
|
+
shape = input('circle', /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
73
|
+
/**
|
|
74
|
+
* When `true`, the group is exposed as a keyboard-operable button.
|
|
75
|
+
*/
|
|
76
|
+
interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
77
|
+
/**
|
|
78
|
+
* Emits the full member array when the user clicks anywhere on the group host.
|
|
79
|
+
*/
|
|
80
|
+
groupClick = output();
|
|
81
|
+
/**
|
|
82
|
+
* Emits the hidden (overflow) members when the user clicks the `+N` counter avatar.
|
|
83
|
+
* Event propagation is stopped before the host `groupClick` fires separately.
|
|
84
|
+
*/
|
|
85
|
+
overflowClick = output();
|
|
86
|
+
// ── Private state ──────────────────────────────────────────────────────────
|
|
87
|
+
/** @private Host element ref, observed for width to auto-calculate the visible count. */
|
|
88
|
+
_el = inject((ElementRef));
|
|
89
|
+
/** @private Shared resize-observer service used to track the host width. */
|
|
90
|
+
_resizeService = inject(MlvResizeObserverService);
|
|
91
|
+
/** @private Localised avatar-group messages. */
|
|
92
|
+
_i18n = inject(MLV_AVATAR_GROUP_I18N);
|
|
93
|
+
/** @private ICU resolver for count-aware accessible labels. */
|
|
94
|
+
_resolver = inject(MlvI18nResolverService);
|
|
95
|
+
/** Measured width of the host element in pixels. 0 = not yet measured. */
|
|
96
|
+
_containerWidth = signal(0, /* @ts-ignore */
|
|
97
|
+
...(ngDevMode ? [{ debugName: "_containerWidth" }] : /* istanbul ignore next */ []));
|
|
98
|
+
/** Avatar size in pixels for the current `size()` input. */
|
|
99
|
+
_avatarSizePx = computed(() => AVATAR_SIZE_PX[this.size()], /* @ts-ignore */
|
|
100
|
+
...(ngDevMode ? [{ debugName: "_avatarSizePx" }] : /* istanbul ignore next */ []));
|
|
101
|
+
/**
|
|
102
|
+
* Maximum total avatars (visible + overflow) that fit in the current container.
|
|
103
|
+
* Returns `Infinity` before the first ResizeObserver measurement so that
|
|
104
|
+
* all members are shown during the initial render pass.
|
|
105
|
+
*/
|
|
106
|
+
_maxFit = computed(() => {
|
|
107
|
+
const w = this._containerWidth();
|
|
108
|
+
if (w <= 0)
|
|
109
|
+
return Infinity;
|
|
110
|
+
const avatarPx = this._avatarSizePx();
|
|
111
|
+
const overlapPx = AVATAR_OVERLAP_PX[this.size()];
|
|
112
|
+
const effectivePx = avatarPx - overlapPx; // width each additional avatar adds
|
|
113
|
+
if (effectivePx <= 0)
|
|
114
|
+
return 1;
|
|
115
|
+
return Math.max(1, Math.floor((w - avatarPx) / effectivePx) + 1);
|
|
116
|
+
}, /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "_maxFit" }] : /* istanbul ignore next */ []));
|
|
118
|
+
// ── Protected computed ─────────────────────────────────────────────────────
|
|
119
|
+
/** Members within the auto-calculated visible limit — rendered as individual avatars. */
|
|
120
|
+
_visibleMembers = computed(() => {
|
|
121
|
+
const all = this.members();
|
|
122
|
+
const maxFit = this._maxFit();
|
|
123
|
+
if (all.length <= maxFit)
|
|
124
|
+
return all;
|
|
125
|
+
// Reserve 1 slot for the overflow counter avatar; always show at least 1.
|
|
126
|
+
return all.slice(0, Math.max(1, maxFit - 1));
|
|
127
|
+
}, /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "_visibleMembers" }] : /* istanbul ignore next */ []));
|
|
129
|
+
/** Members beyond the visible limit — shown in the overflow popup. */
|
|
130
|
+
_hiddenMembers = computed(() => this.members().slice(this._visibleMembers().length), /* @ts-ignore */
|
|
131
|
+
...(ngDevMode ? [{ debugName: "_hiddenMembers" }] : /* istanbul ignore next */ []));
|
|
132
|
+
/** Number of hidden members. */
|
|
133
|
+
_overflowCount = computed(() => this._hiddenMembers().length, /* @ts-ignore */
|
|
134
|
+
...(ngDevMode ? [{ debugName: "_overflowCount" }] : /* istanbul ignore next */ []));
|
|
135
|
+
/** Whether the overflow counter avatar should render. */
|
|
136
|
+
_hasOverflow = computed(() => this._overflowCount() > 0, /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "_hasOverflow" }] : /* istanbul ignore next */ []));
|
|
138
|
+
/** Label shown inside the overflow counter avatar, e.g. `"+5"`. */
|
|
139
|
+
_overflowLabel = computed(() => `+${this._overflowCount()}`, /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "_overflowLabel" }] : /* istanbul ignore next */ []));
|
|
141
|
+
/** Accessible label for the group host element. */
|
|
142
|
+
_hostAriaLabel = computed(() => {
|
|
143
|
+
const total = this.members().length;
|
|
144
|
+
const visible = this._visibleMembers().length;
|
|
145
|
+
if (total === 0)
|
|
146
|
+
return this._i18n().noMembers;
|
|
147
|
+
const key = this._hasOverflow() ? 'visibleMembers' : 'memberCount';
|
|
148
|
+
return this._resolver.resolve(this._i18n(), key, { total, visible });
|
|
149
|
+
}, /* @ts-ignore */
|
|
150
|
+
...(ngDevMode ? [{ debugName: "_hostAriaLabel" }] : /* istanbul ignore next */ []));
|
|
151
|
+
/** Localised label for the overflow trigger. */
|
|
152
|
+
_overflowAriaLabel = computed(() => this._resolver.resolve(this._i18n(), 'moreMembers', { count: this._overflowCount() }), /* @ts-ignore */
|
|
153
|
+
...(ngDevMode ? [{ debugName: "_overflowAriaLabel" }] : /* istanbul ignore next */ []));
|
|
154
|
+
/** Localised label for the complete member list. */
|
|
155
|
+
_allMembersLabel = computed(() => this._i18n().allMembers, /* @ts-ignore */
|
|
156
|
+
...(ngDevMode ? [{ debugName: "_allMembersLabel" }] : /* istanbul ignore next */ []));
|
|
157
|
+
constructor() {
|
|
158
|
+
this._resizeService
|
|
159
|
+
.observe(this._el)
|
|
160
|
+
.pipe(takeUntilDestroyed())
|
|
161
|
+
.subscribe((entries) => {
|
|
162
|
+
const width = entries[0]?.contentRect.width ?? 0;
|
|
163
|
+
this._containerWidth.set(width);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
// ── Event handlers ─────────────────────────────────────────────────────────
|
|
167
|
+
/** Handles click on the overflow counter avatar. */
|
|
168
|
+
_onOverflowClick(event) {
|
|
169
|
+
event.stopPropagation();
|
|
170
|
+
this.overflowClick.emit(this._hiddenMembers());
|
|
171
|
+
}
|
|
172
|
+
/** Handles keydown on the overflow counter avatar. */
|
|
173
|
+
_onOverflowKeydown(event) {
|
|
174
|
+
if (event.key !== 'Enter' && event.key !== ' ')
|
|
175
|
+
return;
|
|
176
|
+
event.preventDefault();
|
|
177
|
+
event.stopPropagation();
|
|
178
|
+
this.overflowClick.emit(this._hiddenMembers());
|
|
179
|
+
}
|
|
180
|
+
/** Handles click on the group host. */
|
|
181
|
+
_onHostClick() {
|
|
182
|
+
if (this.members().length > 0) {
|
|
183
|
+
this.groupClick.emit(this.members());
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/** Activates an interactive group with the standard button keys. */
|
|
187
|
+
_onHostKeydown(event) {
|
|
188
|
+
if (!this.interactive() ||
|
|
189
|
+
this.members().length === 0 ||
|
|
190
|
+
(event.key !== 'Enter' && event.key !== ' ')) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
event.preventDefault();
|
|
194
|
+
this.groupClick.emit(this.members());
|
|
195
|
+
}
|
|
196
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvAvatarGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
197
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvAvatarGroup, isStandalone: true, selector: "mlv-avatar-group", inputs: { members: { classPropertyName: "members", publicName: "members", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { groupClick: "groupClick", overflowClick: "overflowClick" }, host: { listeners: { "click": "_onHostClick()", "keydown": "_onHostKeydown($event)" }, properties: { "class": "\"mlv-avatar-group--size-\" + size()", "class.mlv-avatar-group--interactive": "interactive()", "attr.role": "interactive() ? \"button\" : \"group\"", "attr.tabindex": "interactive() && members().length > 0 ? 0 : null", "attr.aria-label": "_hostAriaLabel()" }, classAttribute: "mlv-avatar-group" }, ngImport: i0, template: "<div class=\"mlv-avatar-group__list\">\n @for (member of _visibleMembers(); track member.name; let i = $index) {\n <div class=\"mlv-avatar-group__item\">\n <mlv-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n </div>\n } @if (_hasOverflow()) {\n <div\n class=\"mlv-avatar-group__overflow\"\n [mlvPopupTrigger]=\"memberPopup\"\n [triggerOn]=\"['hover', 'focus']\"\n [ariaHasPopup]=\"null\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"_overflowAriaLabel()\"\n (click)=\"_onOverflowClick($event)\"\n (keydown)=\"_onOverflowKeydown($any($event))\"\n >\n <mlv-avatar\n class=\"mlv-avatar-group__overflow-avatar\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [initials]=\"_overflowLabel()\"\n color=\"var(--mlv-background-neutral-2)\"\n />\n </div>\n\n <mlv-popup\n #memberPopup\n position=\"bottom-start\"\n [hasArrow]=\"false\"\n [hasShadow]=\"true\"\n >\n <ng-template mlvPopupContent>\n <div\n class=\"mlv-avatar-group__popup-list\"\n role=\"list\"\n [attr.aria-label]=\"_allMembersLabel()\"\n >\n @for (member of members(); track member.name) {\n <div class=\"mlv-avatar-group__popup-row\" role=\"listitem\">\n <mlv-avatar\n size=\"s\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n <span class=\"mlv-avatar-group__popup-name\">{{ member.name }}</span>\n </div>\n }\n </div>\n </ng-template>\n </mlv-popup>\n }\n</div>\n", styles: ["@layer mlv.components{.mlv-avatar-group{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-avatar-group *{box-sizing:border-box}.mlv-avatar-group,.mlv-avatar-group__list{display:flex;align-items:center;min-width:0}.mlv-avatar-group__item{display:inline-flex;align-items:center;margin-inline-start:var(--mlv-ag-overlap, -.5rem);position:relative}.mlv-avatar-group__item:first-child{margin-inline-start:0}.mlv-avatar-group__item:nth-child(1){z-index:20}.mlv-avatar-group__item:nth-child(2){z-index:19}.mlv-avatar-group__item:nth-child(3){z-index:18}.mlv-avatar-group__item:nth-child(4){z-index:17}.mlv-avatar-group__item:nth-child(5){z-index:16}.mlv-avatar-group__item:nth-child(6){z-index:15}.mlv-avatar-group__item:nth-child(7){z-index:14}.mlv-avatar-group__item:nth-child(8){z-index:13}.mlv-avatar-group__item:nth-child(9){z-index:12}.mlv-avatar-group__item:nth-child(10){z-index:11}.mlv-avatar-group__item:nth-child(11){z-index:10}.mlv-avatar-group__item:nth-child(12){z-index:9}.mlv-avatar-group__item:nth-child(13){z-index:8}.mlv-avatar-group__item:nth-child(14){z-index:7}.mlv-avatar-group__item:nth-child(15){z-index:6}.mlv-avatar-group__item:nth-child(16){z-index:5}.mlv-avatar-group__item:nth-child(17){z-index:4}.mlv-avatar-group__item:nth-child(18){z-index:3}.mlv-avatar-group__item:nth-child(19){z-index:2}.mlv-avatar-group__item:nth-child(20){z-index:1}.mlv-avatar-group__item mlv-avatar{outline:var(--mlv-ag-ring-width, .125rem) solid var(--mlv-ag-ring-color, var(--mlv-background-base));border-radius:var(--mlv-radius-full)}.mlv-avatar-group__overflow{display:inline-flex;align-items:center;margin-inline-start:var(--mlv-ag-overlap, -.5rem);position:relative;z-index:21;cursor:pointer;outline:none}.mlv-avatar-group__overflow mlv-avatar{outline:var(--mlv-ag-ring-width, .125rem) solid var(--mlv-ag-ring-color, var(--mlv-background-base));border-radius:var(--mlv-radius-full);pointer-events:none}.mlv-avatar-group__overflow .mlv-avatar__initials{font-size:calc(var(--mlv-avatar-font, .875rem) * .75);letter-spacing:-.01em;opacity:1;color:var(--mlv-text-secondary)}.mlv-avatar-group__overflow:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);border-radius:var(--mlv-radius-full)}.mlv-avatar-group__popup-list{display:flex;flex-direction:column;min-width:10rem;max-height:20rem;overflow-y:auto}.mlv-avatar-group__popup-row{display:flex;align-items:center;gap:.5rem;padding:var(--mlv-padding-s);min-height:var(--mlv-height-s);transition:background-color var(--mlv-duration-fast) var(--mlv-ease-out)}.mlv-avatar-group__popup-row:hover{background-color:var(--mlv-background-neutral-1)}.mlv-avatar-group__popup-name{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s);color:var(--mlv-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlv-avatar-group--size-xs{--mlv-ag-overlap: -.25rem}.mlv-avatar-group--size-s{--mlv-ag-overlap: -.375rem}.mlv-avatar-group--size-m{--mlv-ag-overlap: -.5rem}.mlv-avatar-group--size-l{--mlv-ag-overlap: -.625rem}.mlv-avatar-group--size-xl{--mlv-ag-overlap: -.75rem}.mlv-avatar-group--size-xxl{--mlv-ag-overlap: -.875rem}.mlv-avatar-group__item mlv-avatar.mlv-avatar--square,.mlv-avatar-group__overflow mlv-avatar.mlv-avatar--square{border-radius:var(--mlv-radius-m)}.mlv-avatar-group__overflow:has(mlv-avatar.mlv-avatar--square):focus-visible{border-radius:var(--mlv-radius-m)}.mlv-avatar-group--interactive{cursor:pointer}.mlv-avatar-group--interactive:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);border-radius:var(--mlv-radius-m)}@media(prefers-reduced-motion:reduce){.mlv-avatar-group,.mlv-avatar-group *,.mlv-avatar-group:before,.mlv-avatar-group:after,[class^=mlv-avatar-group__],[class*=\" mlv-avatar-group__\"],[class^=mlv-avatar-group--],[class*=\" mlv-avatar-group--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], dependencies: [{ kind: "component", type: MlvAvatar, selector: "mlv-avatar", inputs: ["size", "shape", "src", "name", "initials", "color", "label"] }, { kind: "component", type: MlvPopup, selector: "mlv-popup", inputs: ["position", "positions", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "hasArrow", "hasShadow", "class", "mlvDensity", "flexibleDimensions", "scrollStrategy", "hasBackdrop", "restrictPosition", "panelRole", "modal", "ariaLabel", "dismissExcludeElements", "mobileMode", "mobileBreakpoint", "mobileTitle", "mobileCloseLabel", "opened"], outputs: ["openedChange", "afterOpened", "afterClosed"] }, { kind: "directive", type: MlvPopupTrigger, selector: "[mlvPopupTrigger]", inputs: ["mlvPopupTrigger", "triggerOn", "ariaHasPopup"], exportAs: ["mlvPopupTrigger"] }, { kind: "directive", type: MlvPopupContent, selector: "[mlvPopupContent]" }, { kind: "pipe", type: MlvColorFromTextPipe, name: "mlvColorFromText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
198
|
+
}
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvAvatarGroup, decorators: [{
|
|
200
|
+
type: Component,
|
|
201
|
+
args: [{ selector: 'mlv-avatar-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
202
|
+
MlvAvatar,
|
|
203
|
+
MlvColorFromTextPipe,
|
|
204
|
+
MlvPopup,
|
|
205
|
+
MlvPopupTrigger,
|
|
206
|
+
MlvPopupContent,
|
|
207
|
+
], host: {
|
|
208
|
+
class: 'mlv-avatar-group',
|
|
209
|
+
'[class]': '"mlv-avatar-group--size-" + size()',
|
|
210
|
+
'[class.mlv-avatar-group--interactive]': 'interactive()',
|
|
211
|
+
'[attr.role]': 'interactive() ? "button" : "group"',
|
|
212
|
+
'[attr.tabindex]': 'interactive() && members().length > 0 ? 0 : null',
|
|
213
|
+
'[attr.aria-label]': '_hostAriaLabel()',
|
|
214
|
+
'(click)': '_onHostClick()',
|
|
215
|
+
'(keydown)': '_onHostKeydown($event)',
|
|
216
|
+
}, template: "<div class=\"mlv-avatar-group__list\">\n @for (member of _visibleMembers(); track member.name; let i = $index) {\n <div class=\"mlv-avatar-group__item\">\n <mlv-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n </div>\n } @if (_hasOverflow()) {\n <div\n class=\"mlv-avatar-group__overflow\"\n [mlvPopupTrigger]=\"memberPopup\"\n [triggerOn]=\"['hover', 'focus']\"\n [ariaHasPopup]=\"null\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"_overflowAriaLabel()\"\n (click)=\"_onOverflowClick($event)\"\n (keydown)=\"_onOverflowKeydown($any($event))\"\n >\n <mlv-avatar\n class=\"mlv-avatar-group__overflow-avatar\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [initials]=\"_overflowLabel()\"\n color=\"var(--mlv-background-neutral-2)\"\n />\n </div>\n\n <mlv-popup\n #memberPopup\n position=\"bottom-start\"\n [hasArrow]=\"false\"\n [hasShadow]=\"true\"\n >\n <ng-template mlvPopupContent>\n <div\n class=\"mlv-avatar-group__popup-list\"\n role=\"list\"\n [attr.aria-label]=\"_allMembersLabel()\"\n >\n @for (member of members(); track member.name) {\n <div class=\"mlv-avatar-group__popup-row\" role=\"listitem\">\n <mlv-avatar\n size=\"s\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n <span class=\"mlv-avatar-group__popup-name\">{{ member.name }}</span>\n </div>\n }\n </div>\n </ng-template>\n </mlv-popup>\n }\n</div>\n", styles: ["@layer mlv.components{.mlv-avatar-group{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-avatar-group *{box-sizing:border-box}.mlv-avatar-group,.mlv-avatar-group__list{display:flex;align-items:center;min-width:0}.mlv-avatar-group__item{display:inline-flex;align-items:center;margin-inline-start:var(--mlv-ag-overlap, -.5rem);position:relative}.mlv-avatar-group__item:first-child{margin-inline-start:0}.mlv-avatar-group__item:nth-child(1){z-index:20}.mlv-avatar-group__item:nth-child(2){z-index:19}.mlv-avatar-group__item:nth-child(3){z-index:18}.mlv-avatar-group__item:nth-child(4){z-index:17}.mlv-avatar-group__item:nth-child(5){z-index:16}.mlv-avatar-group__item:nth-child(6){z-index:15}.mlv-avatar-group__item:nth-child(7){z-index:14}.mlv-avatar-group__item:nth-child(8){z-index:13}.mlv-avatar-group__item:nth-child(9){z-index:12}.mlv-avatar-group__item:nth-child(10){z-index:11}.mlv-avatar-group__item:nth-child(11){z-index:10}.mlv-avatar-group__item:nth-child(12){z-index:9}.mlv-avatar-group__item:nth-child(13){z-index:8}.mlv-avatar-group__item:nth-child(14){z-index:7}.mlv-avatar-group__item:nth-child(15){z-index:6}.mlv-avatar-group__item:nth-child(16){z-index:5}.mlv-avatar-group__item:nth-child(17){z-index:4}.mlv-avatar-group__item:nth-child(18){z-index:3}.mlv-avatar-group__item:nth-child(19){z-index:2}.mlv-avatar-group__item:nth-child(20){z-index:1}.mlv-avatar-group__item mlv-avatar{outline:var(--mlv-ag-ring-width, .125rem) solid var(--mlv-ag-ring-color, var(--mlv-background-base));border-radius:var(--mlv-radius-full)}.mlv-avatar-group__overflow{display:inline-flex;align-items:center;margin-inline-start:var(--mlv-ag-overlap, -.5rem);position:relative;z-index:21;cursor:pointer;outline:none}.mlv-avatar-group__overflow mlv-avatar{outline:var(--mlv-ag-ring-width, .125rem) solid var(--mlv-ag-ring-color, var(--mlv-background-base));border-radius:var(--mlv-radius-full);pointer-events:none}.mlv-avatar-group__overflow .mlv-avatar__initials{font-size:calc(var(--mlv-avatar-font, .875rem) * .75);letter-spacing:-.01em;opacity:1;color:var(--mlv-text-secondary)}.mlv-avatar-group__overflow:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);border-radius:var(--mlv-radius-full)}.mlv-avatar-group__popup-list{display:flex;flex-direction:column;min-width:10rem;max-height:20rem;overflow-y:auto}.mlv-avatar-group__popup-row{display:flex;align-items:center;gap:.5rem;padding:var(--mlv-padding-s);min-height:var(--mlv-height-s);transition:background-color var(--mlv-duration-fast) var(--mlv-ease-out)}.mlv-avatar-group__popup-row:hover{background-color:var(--mlv-background-neutral-1)}.mlv-avatar-group__popup-name{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s);color:var(--mlv-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlv-avatar-group--size-xs{--mlv-ag-overlap: -.25rem}.mlv-avatar-group--size-s{--mlv-ag-overlap: -.375rem}.mlv-avatar-group--size-m{--mlv-ag-overlap: -.5rem}.mlv-avatar-group--size-l{--mlv-ag-overlap: -.625rem}.mlv-avatar-group--size-xl{--mlv-ag-overlap: -.75rem}.mlv-avatar-group--size-xxl{--mlv-ag-overlap: -.875rem}.mlv-avatar-group__item mlv-avatar.mlv-avatar--square,.mlv-avatar-group__overflow mlv-avatar.mlv-avatar--square{border-radius:var(--mlv-radius-m)}.mlv-avatar-group__overflow:has(mlv-avatar.mlv-avatar--square):focus-visible{border-radius:var(--mlv-radius-m)}.mlv-avatar-group--interactive{cursor:pointer}.mlv-avatar-group--interactive:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);border-radius:var(--mlv-radius-m)}@media(prefers-reduced-motion:reduce){.mlv-avatar-group,.mlv-avatar-group *,.mlv-avatar-group:before,.mlv-avatar-group:after,[class^=mlv-avatar-group__],[class*=\" mlv-avatar-group__\"],[class^=mlv-avatar-group--],[class*=\" mlv-avatar-group--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
217
|
+
}], ctorParameters: () => [], propDecorators: { members: [{ type: i0.Input, args: [{ isSignal: true, alias: "members", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], groupClick: [{ type: i0.Output, args: ["groupClick"] }], overflowClick: [{ type: i0.Output, args: ["overflowClick"] }] } });
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Generated bundle index. Do not edit.
|
|
221
|
+
*/
|
|
222
|
+
|
|
223
|
+
export { MlvAvatarGroup };
|
|
224
|
+
//# sourceMappingURL=malva-ui-core-avatar-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-avatar-group.mjs","sources":["../../../../libs/core/avatar-group/src/lib/avatar-group/avatar-group.ts","../../../../libs/core/avatar-group/src/lib/avatar-group/avatar-group.html","../../../../libs/core/avatar-group/src/malva-ui-core-avatar-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MlvAvatar, MlvColorFromTextPipe } from '@malva-ui/core/avatar';\nimport type { MlvAvatarSize, MlvAvatarShape } from '@malva-ui/core/avatar';\nimport { MlvResizeObserverService } from '@malva-ui/cdk/utils';\nimport { MLV_AVATAR_GROUP_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\nimport {\n MlvPopup,\n MlvPopupTrigger,\n MlvPopupContent,\n} from '@malva-ui/core/popup';\n\n/**\n * Represents a single member in the avatar group.\n * Provides enough data to render a `mlv-avatar` for each member.\n */\nexport interface MlvAvatarGroupMember {\n /** Full display name — used for initials derivation, popup label, and aria-label. */\n name: string;\n /** Optional image URL. Falls back to initials or color on error. */\n src?: string | null;\n /** Explicit initials string; overrides name-derived initials. */\n initials?: string;\n /** CSS color for the avatar background. Defaults to a deterministic color from name. */\n color?: string;\n}\n\n/** Avatar size to pixel mapping (matches mlv-avatar SCSS size tokens). */\nconst AVATAR_SIZE_PX: Record<MlvAvatarSize, number> = {\n xs: 24,\n s: 32,\n m: 40,\n l: 56,\n xl: 80,\n xxl: 96,\n};\n\n/**\n * Overlap in pixels per size — the absolute value of the negative\n * `margin-left` applied to stacked avatars in avatar-group.scss.\n */\nconst AVATAR_OVERLAP_PX: Record<MlvAvatarSize, number> = {\n xs: 4,\n s: 6,\n m: 8,\n l: 10,\n xl: 12,\n xxl: 14,\n};\n\n/**\n * Avatar group component rendering a horizontal stack of overlapping `mlv-avatar` instances.\n *\n * The visible count is calculated automatically based on the component's container width —\n * no manual `max` input is needed. When members overflow, an avatar-styled `+N` counter\n * is appended. Hovering or focusing the counter opens a popup listing every member.\n * Clicking anywhere on the host emits `groupClick`; clicking the `+N` counter also\n * emits `overflowClick`.\n *\n * The component fills its parent (uses `width: 100%` flex layout). Set a width or\n * `max-width` on the host to constrain the visible count.\n *\n * @example\n * ```html\n * <mlv-avatar-group\n * [members]=\"team\"\n * size=\"m\"\n * (groupClick)=\"openMembersPanel($event)\"\n * style=\"max-width: 200px\"\n * />\n * ```\n */\n@Component({\n selector: 'mlv-avatar-group',\n templateUrl: './avatar-group.html',\n styleUrl: './avatar-group.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MlvAvatar,\n MlvColorFromTextPipe,\n MlvPopup,\n MlvPopupTrigger,\n MlvPopupContent,\n ],\n host: {\n class: 'mlv-avatar-group',\n '[class]': '\"mlv-avatar-group--size-\" + size()',\n '[class.mlv-avatar-group--interactive]': 'interactive()',\n '[attr.role]': 'interactive() ? \"button\" : \"group\"',\n '[attr.tabindex]': 'interactive() && members().length > 0 ? 0 : null',\n '[attr.aria-label]': '_hostAriaLabel()',\n '(click)': '_onHostClick()',\n '(keydown)': '_onHostKeydown($event)',\n },\n})\nexport class MlvAvatarGroup {\n /**\n * The full list of members to represent.\n * How many are visible is determined automatically by the container width.\n */\n readonly members = input<MlvAvatarGroupMember[]>([]);\n\n /**\n * Size variant applied to all avatars (including the overflow counter avatar).\n * Matches `MlvAvatarSize`: `'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'`.\n * Defaults to `'m'`.\n */\n readonly size = input<MlvAvatarSize>('m');\n\n /**\n * Shape applied to all avatars in the group.\n * Defaults to `'circle'`.\n */\n readonly shape = input<MlvAvatarShape>('circle');\n\n /**\n * When `true`, the group is exposed as a keyboard-operable button.\n */\n readonly interactive = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Emits the full member array when the user clicks anywhere on the group host.\n */\n readonly groupClick = output<MlvAvatarGroupMember[]>();\n\n /**\n * Emits the hidden (overflow) members when the user clicks the `+N` counter avatar.\n * Event propagation is stopped before the host `groupClick` fires separately.\n */\n readonly overflowClick = output<MlvAvatarGroupMember[]>();\n\n // ── Private state ──────────────────────────────────────────────────────────\n\n /** @private Host element ref, observed for width to auto-calculate the visible count. */\n private readonly _el = inject(ElementRef<HTMLElement>);\n /** @private Shared resize-observer service used to track the host width. */\n private readonly _resizeService = inject(MlvResizeObserverService);\n /** @private Localised avatar-group messages. */\n private readonly _i18n = inject(MLV_AVATAR_GROUP_I18N);\n /** @private ICU resolver for count-aware accessible labels. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /** Measured width of the host element in pixels. 0 = not yet measured. */\n private readonly _containerWidth = signal(0);\n\n /** Avatar size in pixels for the current `size()` input. */\n private readonly _avatarSizePx = computed(() => AVATAR_SIZE_PX[this.size()]);\n\n /**\n * Maximum total avatars (visible + overflow) that fit in the current container.\n * Returns `Infinity` before the first ResizeObserver measurement so that\n * all members are shown during the initial render pass.\n */\n private readonly _maxFit = computed(() => {\n const w = this._containerWidth();\n if (w <= 0) return Infinity;\n\n const avatarPx = this._avatarSizePx();\n const overlapPx = AVATAR_OVERLAP_PX[this.size()];\n const effectivePx = avatarPx - overlapPx; // width each additional avatar adds\n\n if (effectivePx <= 0) return 1;\n return Math.max(1, Math.floor((w - avatarPx) / effectivePx) + 1);\n });\n\n // ── Protected computed ─────────────────────────────────────────────────────\n\n /** Members within the auto-calculated visible limit — rendered as individual avatars. */\n protected readonly _visibleMembers = computed(() => {\n const all = this.members();\n const maxFit = this._maxFit();\n if (all.length <= maxFit) return all;\n // Reserve 1 slot for the overflow counter avatar; always show at least 1.\n return all.slice(0, Math.max(1, maxFit - 1));\n });\n\n /** Members beyond the visible limit — shown in the overflow popup. */\n protected readonly _hiddenMembers = computed(() =>\n this.members().slice(this._visibleMembers().length),\n );\n\n /** Number of hidden members. */\n protected readonly _overflowCount = computed(\n () => this._hiddenMembers().length,\n );\n\n /** Whether the overflow counter avatar should render. */\n protected readonly _hasOverflow = computed(() => this._overflowCount() > 0);\n\n /** Label shown inside the overflow counter avatar, e.g. `\"+5\"`. */\n protected readonly _overflowLabel = computed(\n () => `+${this._overflowCount()}`,\n );\n\n /** Accessible label for the group host element. */\n protected readonly _hostAriaLabel = computed(() => {\n const total = this.members().length;\n const visible = this._visibleMembers().length;\n if (total === 0) return this._i18n().noMembers;\n const key = this._hasOverflow() ? 'visibleMembers' : 'memberCount';\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n key,\n { total, visible },\n );\n });\n\n /** Localised label for the overflow trigger. */\n protected readonly _overflowAriaLabel = computed(() =>\n this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n 'moreMembers',\n { count: this._overflowCount() },\n ),\n );\n\n /** Localised label for the complete member list. */\n protected readonly _allMembersLabel = computed(() => this._i18n().allMembers);\n\n constructor() {\n this._resizeService\n .observe(this._el)\n .pipe(takeUntilDestroyed())\n .subscribe((entries) => {\n const width = entries[0]?.contentRect.width ?? 0;\n this._containerWidth.set(width);\n });\n }\n\n // ── Event handlers ─────────────────────────────────────────────────────────\n\n /** Handles click on the overflow counter avatar. */\n protected _onOverflowClick(event: MouseEvent): void {\n event.stopPropagation();\n this.overflowClick.emit(this._hiddenMembers());\n }\n\n /** Handles keydown on the overflow counter avatar. */\n protected _onOverflowKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n event.stopPropagation();\n this.overflowClick.emit(this._hiddenMembers());\n }\n\n /** Handles click on the group host. */\n protected _onHostClick(): void {\n if (this.members().length > 0) {\n this.groupClick.emit(this.members());\n }\n }\n\n /** Activates an interactive group with the standard button keys. */\n protected _onHostKeydown(event: KeyboardEvent): void {\n if (\n !this.interactive() ||\n this.members().length === 0 ||\n (event.key !== 'Enter' && event.key !== ' ')\n ) {\n return;\n }\n\n event.preventDefault();\n this.groupClick.emit(this.members());\n }\n}\n","<div class=\"mlv-avatar-group__list\">\n @for (member of _visibleMembers(); track member.name; let i = $index) {\n <div class=\"mlv-avatar-group__item\">\n <mlv-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n </div>\n } @if (_hasOverflow()) {\n <div\n class=\"mlv-avatar-group__overflow\"\n [mlvPopupTrigger]=\"memberPopup\"\n [triggerOn]=\"['hover', 'focus']\"\n [ariaHasPopup]=\"null\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"_overflowAriaLabel()\"\n (click)=\"_onOverflowClick($event)\"\n (keydown)=\"_onOverflowKeydown($any($event))\"\n >\n <mlv-avatar\n class=\"mlv-avatar-group__overflow-avatar\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [initials]=\"_overflowLabel()\"\n color=\"var(--mlv-background-neutral-2)\"\n />\n </div>\n\n <mlv-popup\n #memberPopup\n position=\"bottom-start\"\n [hasArrow]=\"false\"\n [hasShadow]=\"true\"\n >\n <ng-template mlvPopupContent>\n <div\n class=\"mlv-avatar-group__popup-list\"\n role=\"list\"\n [attr.aria-label]=\"_allMembersLabel()\"\n >\n @for (member of members(); track member.name) {\n <div class=\"mlv-avatar-group__popup-row\" role=\"listitem\">\n <mlv-avatar\n size=\"s\"\n [shape]=\"shape()\"\n [name]=\"member.name\"\n [src]=\"member.src ?? null\"\n [initials]=\"member.initials ?? ''\"\n [color]=\"member.color ?? (member.name | mlvColorFromText)\"\n />\n <span class=\"mlv-avatar-group__popup-name\">{{ member.name }}</span>\n </div>\n }\n </div>\n </ng-template>\n </mlv-popup>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|