@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,855 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, model, input, computed, inject, signal, contentChild, viewChild, ElementRef, effect, untracked, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { MlvPopup, MlvPopupContent, MlvPopupContainer, MlvPopupPinnedContent } from '@malva-ui/core/popup';
|
|
6
|
+
import { MlvSignalFormControlBase, MlvSelectionService, toAriaValues, fromAriaValues, MlvDescription, MlvFormControlWrapper, MlvHint, MlvLabel, MlvFormControlWrapperControl, MlvMessage, MLV_FORM_CONTROL } from '@malva-ui/core/form-utils';
|
|
7
|
+
import { MlvStructural, MlvBreakpointService, MlvResizeObserver } from '@malva-ui/cdk/utils';
|
|
8
|
+
import { LucideChevronDown, LucideSearch } from '@lucide/angular';
|
|
9
|
+
import { MlvClick } from '@malva-ui/cdk/accessibility';
|
|
10
|
+
import { defaultOptionTransform, MlvOptionsAdapter, filterOptions, MlvActiveDescendant, optionId, MlvDropdownPanel, isReconciliationEmit, filteredOutCommitted } from '@malva-ui/core/dropdown';
|
|
11
|
+
export * from '@malva-ui/core/dropdown';
|
|
12
|
+
import { MlvButtonClose } from '@malva-ui/core/button';
|
|
13
|
+
import { MlvInput } from '@malva-ui/core/input';
|
|
14
|
+
import { MlvLoader } from '@malva-ui/core/loader';
|
|
15
|
+
import { MLV_SELECT_I18N, MLV_FORM_UTILS_I18N, MlvI18nResolverService } from '@malva-ui/i18n';
|
|
16
|
+
|
|
17
|
+
class MlvSelectListTemplate extends MlvStructural {
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectListTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectListTemplate, isStandalone: true, selector: "[mlvSelectListTemplate]", usesInheritance: true, ngImport: i0 });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectListTemplate, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: '[mlvSelectListTemplate]',
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
class MlvSelectItemTemplate extends MlvStructural {
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectItemTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectItemTemplate, isStandalone: true, selector: "[mlvSelectItemTemplate]", usesInheritance: true, ngImport: i0 });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectItemTemplate, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: '[mlvSelectItemTemplate]',
|
|
35
|
+
}]
|
|
36
|
+
}] });
|
|
37
|
+
class MlvSelectSelectedTemplate extends MlvStructural {
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectSelectedTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
39
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectSelectedTemplate, isStandalone: true, selector: "[mlvSelectSelectedTemplate]", usesInheritance: true, ngImport: i0 });
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectSelectedTemplate, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{
|
|
44
|
+
selector: '[mlvSelectSelectedTemplate]',
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
|
|
48
|
+
function coerceNativeMode(value) {
|
|
49
|
+
if (value === '' || value === true || value === 'true')
|
|
50
|
+
return true;
|
|
51
|
+
if (value === 'auto')
|
|
52
|
+
return 'auto';
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
class MlvSelect extends MlvSignalFormControlBase {
|
|
56
|
+
/** The scalar, array, or null selection used by all Angular forms APIs. */
|
|
57
|
+
value = model(null, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
59
|
+
/**
|
|
60
|
+
* Selectable options: a plain array, an observable of arrays, or an
|
|
61
|
+
* `MlvDataSource` (source-side search + lazy paging). Readonly arrays are
|
|
62
|
+
* accepted because options are never mutated.
|
|
63
|
+
*/
|
|
64
|
+
options = input([], /* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
66
|
+
/**
|
|
67
|
+
* Remote search used by the searchable dropdown:
|
|
68
|
+
* `(query) => T[] | Promise<T[]> | Observable<T[]>`. When set it supersedes
|
|
69
|
+
* {@link options} as the item source; the list is not filtered locally. Bind
|
|
70
|
+
* `[loading]` yourself for any spinner beyond the source-owned one.
|
|
71
|
+
*/
|
|
72
|
+
searchFn = input(null, /* @ts-ignore */
|
|
73
|
+
...(ngDevMode ? [{ debugName: "searchFn" }] : /* istanbul ignore next */ []));
|
|
74
|
+
/** Debounce (ms) for remote searches (`MlvDataSource` / {@link searchFn}). Local filtering stays instant. */
|
|
75
|
+
searchDebounce = input(200, /* @ts-ignore */
|
|
76
|
+
...(ngDevMode ? [{ debugName: "searchDebounce" }] : /* istanbul ignore next */ []));
|
|
77
|
+
/** Enables multi-selection mode. */
|
|
78
|
+
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
79
|
+
/**
|
|
80
|
+
* Renders a transparent native `<select>` over the visual trigger. The
|
|
81
|
+
* native control is populated from `[options]`; custom item and selected
|
|
82
|
+
* templates are ignored. `true` always uses the native control, `false`
|
|
83
|
+
* keeps the custom dropdown, and `'auto'` uses the native control below the
|
|
84
|
+
* `md` breakpoint. A bare `native` attribute is equivalent to
|
|
85
|
+
* `native="true"`.
|
|
86
|
+
*/
|
|
87
|
+
native = input(false, { ...(ngDevMode ? { debugName: "native" } : /* istanbul ignore next */ {}), transform: coerceNativeMode });
|
|
88
|
+
/** Custom placeholder override. Falls back to the i18n-provided placeholder. */
|
|
89
|
+
placeholder = input(undefined, /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
91
|
+
toOption = input(defaultOptionTransform, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "toOption" }] : /* istanbul ignore next */ []));
|
|
93
|
+
/**
|
|
94
|
+
* Equality predicate used to match option values against the current
|
|
95
|
+
* selection and against values written through any forms binding. Defaults
|
|
96
|
+
* to reference equality. Provide e.g. `(a, b) => a.id === b.id` so a
|
|
97
|
+
* deserialised object value collapses onto its option instance (label and
|
|
98
|
+
* check-mark agree, and a value that arrives before its options resolves once
|
|
99
|
+
* they load).
|
|
100
|
+
*/
|
|
101
|
+
compareWith = input((a, b) => a === b, /* @ts-ignore */
|
|
102
|
+
...(ngDevMode ? [{ debugName: "compareWith" }] : /* istanbul ignore next */ []));
|
|
103
|
+
/**
|
|
104
|
+
* Renders a search field as the first row of the open dropdown. Local sources
|
|
105
|
+
* (array / observable) are filtered by label; remote sources (`MlvDataSource`
|
|
106
|
+
* / {@link searchFn}) search server-side through the shared adapter.
|
|
107
|
+
*
|
|
108
|
+
* While the searchable dropdown is open the combobox semantics move from the
|
|
109
|
+
* trigger onto the search input and navigation switches to the WAI-ARIA
|
|
110
|
+
* activedescendant model (DOM focus stays in the search field). A
|
|
111
|
+
* non-searchable select is untouched.
|
|
112
|
+
*/
|
|
113
|
+
searchable = input(false, { ...(ngDevMode ? { debugName: "searchable" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
114
|
+
/** Placeholder of the in-dropdown search field. Falls back to the i18n default. */
|
|
115
|
+
searchPlaceholder = input(undefined, /* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
|
|
117
|
+
/**
|
|
118
|
+
* Custom local-filter predicate (fuzzy / secondary-field matching). Threaded
|
|
119
|
+
* into the shared `filterOptions`, whose results are always ranked
|
|
120
|
+
* prefix-matches-first. Ignored for remote sources, which own their filtering.
|
|
121
|
+
*/
|
|
122
|
+
matcher = input(undefined, /* @ts-ignore */
|
|
123
|
+
...(ngDevMode ? [{ debugName: "matcher" }] : /* istanbul ignore next */ []));
|
|
124
|
+
/**
|
|
125
|
+
* Controls whether the dropdown renders as a full-screen mobile sheet.
|
|
126
|
+
*
|
|
127
|
+
* Passed straight through to the underlying `mlv-popup`. Defaults to
|
|
128
|
+
* `'auto'` — the dropdown is full-screen below the `md` breakpoint
|
|
129
|
+
* (viewport < 768px) and trigger-anchored above it, matching the date/time
|
|
130
|
+
* pickers. Set to `'off'` to always anchor to the trigger, or `'fullscreen'`
|
|
131
|
+
* to always render the sheet (e.g. demos). Unlike `mlv-combobox` (whose
|
|
132
|
+
* search input lives outside the overlay panel), the select trigger is a plain
|
|
133
|
+
* button and its dropdown is the entire interaction surface, so full-screen
|
|
134
|
+
* mode composes cleanly.
|
|
135
|
+
*/
|
|
136
|
+
mobileMode = input('auto', /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "mobileMode" }] : /* istanbul ignore next */ []));
|
|
138
|
+
/**
|
|
139
|
+
* Density applied to the dropdown's option list.
|
|
140
|
+
*
|
|
141
|
+
* The dropdown panel is portaled to the CDK overlay container, outside the
|
|
142
|
+
* component's DOM tree, so ancestor density classes cannot cascade into it.
|
|
143
|
+
* This input is forwarded to the underlying `mlv-popup`, which stamps the
|
|
144
|
+
* resolved `mlv--{density}` class on the detached panel. When omitted, the
|
|
145
|
+
* nearest ancestor `MLV_DENSITY_CONTEXT` (e.g. a `form[mlvForm]`) applies,
|
|
146
|
+
* then the global `MlvDensityService`.
|
|
147
|
+
*/
|
|
148
|
+
mlvDensity = input(undefined, /* @ts-ignore */
|
|
149
|
+
...(ngDevMode ? [{ debugName: "mlvDensity" }] : /* istanbul ignore next */ []));
|
|
150
|
+
/**
|
|
151
|
+
* Optional visible heading rendered in the full-screen sheet's header bar.
|
|
152
|
+
* When omitted, falls back to the field's `label` (or, when unset, the
|
|
153
|
+
* resolved placeholder). Only shown while the dropdown is full-screen.
|
|
154
|
+
*/
|
|
155
|
+
mobileTitle = input(undefined, /* @ts-ignore */
|
|
156
|
+
...(ngDevMode ? [{ debugName: "mobileTitle" }] : /* istanbul ignore next */ []));
|
|
157
|
+
/**
|
|
158
|
+
* @protected Resolved full-screen sheet title: explicit `mobileTitle` input
|
|
159
|
+
* takes precedence over the field's label, then the resolved placeholder.
|
|
160
|
+
*/
|
|
161
|
+
_resolvedMobileTitle = computed(() => this.mobileTitle() ?? (this.label() || this._resolvedPlaceholder()), /* @ts-ignore */
|
|
162
|
+
...(ngDevMode ? [{ debugName: "_resolvedMobileTitle" }] : /* istanbul ignore next */ []));
|
|
163
|
+
/** @protected The component's i18n strings signal. */
|
|
164
|
+
_i18n = inject(MLV_SELECT_I18N);
|
|
165
|
+
/** @private Shared responsive breakpoint state used by native `'auto'` mode. */
|
|
166
|
+
_breakpoint = inject(MlvBreakpointService);
|
|
167
|
+
_formI18n = inject(MLV_FORM_UTILS_I18N);
|
|
168
|
+
/** @protected Resolved placeholder: explicit input takes precedence over i18n default. */
|
|
169
|
+
_resolvedPlaceholder = computed(() => this.placeholder() ?? this._i18n().placeholder, /* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [{ debugName: "_resolvedPlaceholder" }] : /* istanbul ignore next */ []));
|
|
171
|
+
/**
|
|
172
|
+
* @protected Accessible name forwarded to the dropdown panel's inner
|
|
173
|
+
* `role="listbox"` (`mlv-dropdown-panel`'s `ariaLabel`). Mirrors the
|
|
174
|
+
* trigger's own resolution — the visible {@link label} when set (linked
|
|
175
|
+
* there via `aria-labelledby`), else the explicit {@link ariaLabel} input
|
|
176
|
+
* (rendered as the trigger's own `aria-label`) — so the listbox shares the
|
|
177
|
+
* same accessible name as the field it belongs to. `null` when neither is
|
|
178
|
+
* set, same as an unlabelled trigger.
|
|
179
|
+
*/
|
|
180
|
+
_panelAriaLabel = computed(() => this.label() || this.ariaLabel(), /* @ts-ignore */
|
|
181
|
+
...(ngDevMode ? [{ debugName: "_panelAriaLabel" }] : /* istanbul ignore next */ []));
|
|
182
|
+
// Override focused to also be true when the popup is open
|
|
183
|
+
focused = computed(() => this._focused() || this.isOpen(), /* @ts-ignore */
|
|
184
|
+
...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
|
|
185
|
+
/**
|
|
186
|
+
* @private Latches `true` the first time a **remote** source reports
|
|
187
|
+
* `ready()`, and never flips back. It gates {@link _adapter}'s `eager` flag
|
|
188
|
+
* off for good.
|
|
189
|
+
*
|
|
190
|
+
* Without the latch, a `searchFn` bound to an inline arrow — a fresh
|
|
191
|
+
* reference on every change detection run — re-arms the adapter's lazy gate
|
|
192
|
+
* on every pass; while `eager` is still `true` (a committed value the first
|
|
193
|
+
* response did not contain) each pass would fire another request, whose
|
|
194
|
+
* result triggers the next pass. The latch bounds that to exactly one eager
|
|
195
|
+
* load per mount.
|
|
196
|
+
*/
|
|
197
|
+
_eagerDone = signal(false, /* @ts-ignore */
|
|
198
|
+
...(ngDevMode ? [{ debugName: "_eagerDone" }] : /* istanbul ignore next */ []));
|
|
199
|
+
/**
|
|
200
|
+
* @protected Shared source adapter — arrays / observables are local, a data
|
|
201
|
+
* source or a `searchFn` is remote (the source filters and the items render
|
|
202
|
+
* as-is). Template-facing: the paging bindings (`hasMore` / `loadingMore` /
|
|
203
|
+
* `loadMore`) read straight off it.
|
|
204
|
+
*
|
|
205
|
+
* The `eager` closure reads {@link hasValue} / {@link _allValuesMatched}
|
|
206
|
+
* lazily, so declaring those below is fine — the adapter's effects run after
|
|
207
|
+
* construction. A committed value with no resolvable label is what makes a
|
|
208
|
+
* `searchFn` load without waiting for the first open. The explicit type
|
|
209
|
+
* annotation breaks the inference cycle that closure creates
|
|
210
|
+
* (`_adapter` → `eager` → `_allValuesMatched` → `resolvedOptions` → `_adapter`).
|
|
211
|
+
*/
|
|
212
|
+
_adapter = new MlvOptionsAdapter({
|
|
213
|
+
source: this.options,
|
|
214
|
+
searchFn: this.searchFn,
|
|
215
|
+
debounce: this.searchDebounce,
|
|
216
|
+
eager: computed(() => this.hasValue() && !this._allValuesMatched() && !this._eagerDone()),
|
|
217
|
+
});
|
|
218
|
+
resolvedOptions = computed(() => this._adapter.items().map((item) => this.toOption()(item)), /* @ts-ignore */
|
|
219
|
+
...(ngDevMode ? [{ debugName: "resolvedOptions" }] : /* istanbul ignore next */ []));
|
|
220
|
+
/**
|
|
221
|
+
* @protected Whether the native select is the active interaction surface.
|
|
222
|
+
* `'auto'` follows the shared `md` breakpoint and updates when the viewport
|
|
223
|
+
* changes.
|
|
224
|
+
*/
|
|
225
|
+
_nativeActive = computed(() => {
|
|
226
|
+
const mode = this.native();
|
|
227
|
+
return mode === true || (mode === 'auto' && this._breakpoint.isDown('md')());
|
|
228
|
+
}, /* @ts-ignore */
|
|
229
|
+
...(ngDevMode ? [{ debugName: "_nativeActive" }] : /* istanbul ignore next */ []));
|
|
230
|
+
/**
|
|
231
|
+
* @protected Normalized native option groups. Each option receives an
|
|
232
|
+
* internal index key so arbitrary `T` values can travel through the native
|
|
233
|
+
* select without stringifying the public form value.
|
|
234
|
+
*/
|
|
235
|
+
_nativeOptionGroups = computed(() => {
|
|
236
|
+
const groups = [];
|
|
237
|
+
this.resolvedOptions().forEach((option, index) => {
|
|
238
|
+
const nativeOption = {
|
|
239
|
+
key: String(index),
|
|
240
|
+
label: option.label,
|
|
241
|
+
value: option.value,
|
|
242
|
+
group: option.group,
|
|
243
|
+
disabled: option.disabled,
|
|
244
|
+
};
|
|
245
|
+
const label = option.group || null;
|
|
246
|
+
const previous = groups[groups.length - 1];
|
|
247
|
+
if (previous?.label === label) {
|
|
248
|
+
groups[groups.length - 1] = {
|
|
249
|
+
label,
|
|
250
|
+
options: [...previous.options, nativeOption],
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
groups.push({ label, options: [nativeOption] });
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
return groups;
|
|
258
|
+
}, /* @ts-ignore */
|
|
259
|
+
...(ngDevMode ? [{ debugName: "_nativeOptionGroups" }] : /* istanbul ignore next */ []));
|
|
260
|
+
/** @protected Whether every committed value has a matching option (by `compareWith`). */
|
|
261
|
+
_allValuesMatched = computed(() => {
|
|
262
|
+
const compare = this.compareWith();
|
|
263
|
+
const opts = this.resolvedOptions();
|
|
264
|
+
return this.selectionService
|
|
265
|
+
.selectedValues()
|
|
266
|
+
.every((v) => opts.some((o) => compare(o.value, v)));
|
|
267
|
+
}, /* @ts-ignore */
|
|
268
|
+
...(ngDevMode ? [{ debugName: "_allValuesMatched" }] : /* istanbul ignore next */ []));
|
|
269
|
+
/** @protected First payload arrived and the consumer is not reporting `loading`. */
|
|
270
|
+
_ready = computed(() => this._adapter.ready() && !this.loading(), /* @ts-ignore */
|
|
271
|
+
...(ngDevMode ? [{ debugName: "_ready" }] : /* istanbul ignore next */ []));
|
|
272
|
+
/**
|
|
273
|
+
* @protected Loading variant: a value is committed but no option resolves its
|
|
274
|
+
* label yet. The trigger is inert (no open) but stays tabbable, shows a
|
|
275
|
+
* spinner instead of the chevron and the i18n loading text instead of a raw
|
|
276
|
+
* value.
|
|
277
|
+
*/
|
|
278
|
+
_awaitingValueLabel = computed(() => this.hasValue() && !this._ready() && !this._allValuesMatched(), /* @ts-ignore */
|
|
279
|
+
...(ngDevMode ? [{ debugName: "_awaitingValueLabel" }] : /* istanbul ignore next */ []));
|
|
280
|
+
/** @protected Panel spinner row: source-owned loading OR the consumer's `[loading]`. */
|
|
281
|
+
_panelLoading = computed(() => this._adapter.loading() || this.loading(), /* @ts-ignore */
|
|
282
|
+
...(ngDevMode ? [{ debugName: "_panelLoading" }] : /* istanbul ignore next */ []));
|
|
283
|
+
isOpen = signal(false, /* @ts-ignore */
|
|
284
|
+
...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
285
|
+
triggerWidth = signal(0, /* @ts-ignore */
|
|
286
|
+
...(ngDevMode ? [{ debugName: "triggerWidth" }] : /* istanbul ignore next */ []));
|
|
287
|
+
/**
|
|
288
|
+
* Current text of the in-dropdown search field. Always `''` while the
|
|
289
|
+
* dropdown is closed — closing resets it (see `_onPopupClosed`).
|
|
290
|
+
*/
|
|
291
|
+
searchQuery = signal('', /* @ts-ignore */
|
|
292
|
+
...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
|
|
293
|
+
/**
|
|
294
|
+
* The options actually rendered in the panel: locally filtered by
|
|
295
|
+
* {@link searchQuery} while searchable over a local source, the source's
|
|
296
|
+
* items as-is otherwise (a remote source filters server-side, and a
|
|
297
|
+
* non-searchable select never filters).
|
|
298
|
+
*/
|
|
299
|
+
filteredOptions = computed(() => {
|
|
300
|
+
const resolved = this.resolvedOptions();
|
|
301
|
+
if (!this.searchable() || this._adapter.mode() === 'remote')
|
|
302
|
+
return resolved;
|
|
303
|
+
return filterOptions(resolved, this.searchQuery(), this.matcher());
|
|
304
|
+
}, /* @ts-ignore */
|
|
305
|
+
...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
|
|
306
|
+
/**
|
|
307
|
+
* @private Shared activedescendant bookkeeping over {@link filteredOptions}
|
|
308
|
+
* (searchable mode only) — the same engine behind `mlv-combobox` and
|
|
309
|
+
* `[mlvAutocomplete]`. The count is read lazily, so it always reflects the
|
|
310
|
+
* live filtered list.
|
|
311
|
+
*/
|
|
312
|
+
_activeDescendant = new MlvActiveDescendant(() => this.filteredOptions().length);
|
|
313
|
+
/**
|
|
314
|
+
* @protected Active option index handed to the panel. Pinned to `-1` while
|
|
315
|
+
* not searchable so the roving-focus panel never renders an active row.
|
|
316
|
+
*/
|
|
317
|
+
_activeIndex = computed(() => this.searchable() ? this._activeDescendant.index() : -1, /* @ts-ignore */
|
|
318
|
+
...(ngDevMode ? [{ debugName: "_activeIndex" }] : /* istanbul ignore next */ []));
|
|
319
|
+
/** @protected `aria-activedescendant` target of the search input, or `null`. */
|
|
320
|
+
_activeOptionId = computed(() => {
|
|
321
|
+
const index = this._activeDescendant.index();
|
|
322
|
+
if (index < 0 || index >= this.filteredOptions().length)
|
|
323
|
+
return null;
|
|
324
|
+
return optionId(this.listboxId(), index);
|
|
325
|
+
}, /* @ts-ignore */
|
|
326
|
+
...(ngDevMode ? [{ debugName: "_activeOptionId" }] : /* istanbul ignore next */ []));
|
|
327
|
+
/**
|
|
328
|
+
* @protected DOM `id` of the in-dropdown search input. Distinct from the
|
|
329
|
+
* trigger's `id()` so both can coexist, and deterministic so the field can be
|
|
330
|
+
* focus-targeted by id once the popup has opened.
|
|
331
|
+
*/
|
|
332
|
+
_searchInputId = computed(() => `${this.id()}-search`, /* @ts-ignore */
|
|
333
|
+
...(ngDevMode ? [{ debugName: "_searchInputId" }] : /* istanbul ignore next */ []));
|
|
334
|
+
/**
|
|
335
|
+
* @protected Whether the trigger owns the combobox semantics. `false` only
|
|
336
|
+
* while the searchable dropdown is open — the search input is the live
|
|
337
|
+
* combobox then, so exactly one `role="combobox"` is ever exposed. The
|
|
338
|
+
* trigger becomes a plain `role="button"` there rather than losing its role:
|
|
339
|
+
* a role-less `<div>` may carry no ARIA state at all, whereas a button that
|
|
340
|
+
* opened a popup legitimately keeps `aria-expanded` / `aria-haspopup` /
|
|
341
|
+
* `aria-controls`. Only `aria-required` (invalid on `button`) is dropped.
|
|
342
|
+
*/
|
|
343
|
+
_outerIsCombobox = computed(() => !(this.searchable() && this.isOpen()), /* @ts-ignore */
|
|
344
|
+
...(ngDevMode ? [{ debugName: "_outerIsCombobox" }] : /* istanbul ignore next */ []));
|
|
345
|
+
/**
|
|
346
|
+
* @protected Matched-substring emphasis for the option rows. Only while
|
|
347
|
+
* searching a **local** source — a remote source's results need not contain
|
|
348
|
+
* the query at all.
|
|
349
|
+
*/
|
|
350
|
+
_highlightQuery = computed(() => this.searchable() && this._adapter.mode() === 'local'
|
|
351
|
+
? this.searchQuery().trim()
|
|
352
|
+
: '', /* @ts-ignore */
|
|
353
|
+
...(ngDevMode ? [{ debugName: "_highlightQuery" }] : /* istanbul ignore next */ []));
|
|
354
|
+
/** @protected Resolved search placeholder: explicit input takes precedence over i18n default. */
|
|
355
|
+
_resolvedSearchPlaceholder = computed(() => this.searchPlaceholder() ?? this._i18n().searchPlaceholder, /* @ts-ignore */
|
|
356
|
+
...(ngDevMode ? [{ debugName: "_resolvedSearchPlaceholder" }] : /* istanbul ignore next */ []));
|
|
357
|
+
/** @private ICU resolver for parameterised i18n strings. */
|
|
358
|
+
_resolver = inject(MlvI18nResolverService);
|
|
359
|
+
/**
|
|
360
|
+
* @protected Polite screen-reader announcement of the current result count.
|
|
361
|
+
* Empty unless the searchable dropdown is open, so no stale count is read out.
|
|
362
|
+
* Mirrors the visible empty-state copy rendered inside the panel.
|
|
363
|
+
*/
|
|
364
|
+
_resultsAnnouncement = computed(() => {
|
|
365
|
+
if (!this.isOpen() || !this.searchable())
|
|
366
|
+
return '';
|
|
367
|
+
const count = this.filteredOptions().length;
|
|
368
|
+
if (count === 0)
|
|
369
|
+
return this._i18n().noResults;
|
|
370
|
+
return this._resolver.resolve(this._i18n(), 'resultsAvailable', { count });
|
|
371
|
+
}, /* @ts-ignore */
|
|
372
|
+
...(ngDevMode ? [{ debugName: "_resultsAnnouncement" }] : /* istanbul ignore next */ []));
|
|
373
|
+
/** The HTML `id` assigned to the inner listbox element for `aria-controls` linking. */
|
|
374
|
+
listboxId = computed(() => `${this.id()}-listbox`, /* @ts-ignore */
|
|
375
|
+
...(ngDevMode ? [{ debugName: "listboxId" }] : /* istanbul ignore next */ []));
|
|
376
|
+
/**
|
|
377
|
+
* The HTML `id` assigned to the visible `<mlv-label>` element. The trigger
|
|
378
|
+
* references it via `aria-labelledby` (a `<label for>` cannot name a `<div>`).
|
|
379
|
+
*/
|
|
380
|
+
labelId = computed(() => `${this.id()}-label`, /* @ts-ignore */
|
|
381
|
+
...(ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []));
|
|
382
|
+
dropdownPositions = [
|
|
383
|
+
{
|
|
384
|
+
originX: 'start',
|
|
385
|
+
originY: 'bottom',
|
|
386
|
+
overlayX: 'start',
|
|
387
|
+
overlayY: 'top',
|
|
388
|
+
offsetY: 8,
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
originX: 'start',
|
|
392
|
+
originY: 'top',
|
|
393
|
+
overlayX: 'start',
|
|
394
|
+
overlayY: 'bottom',
|
|
395
|
+
offsetY: -8,
|
|
396
|
+
},
|
|
397
|
+
];
|
|
398
|
+
selectionService = inject(MlvSelectionService);
|
|
399
|
+
itemTemplate = contentChild(MlvSelectItemTemplate, /* @ts-ignore */
|
|
400
|
+
...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
|
|
401
|
+
selectedTemplate = contentChild(MlvSelectSelectedTemplate, /* @ts-ignore */
|
|
402
|
+
...(ngDevMode ? [{ debugName: "selectedTemplate" }] : /* istanbul ignore next */ []));
|
|
403
|
+
/** @private Reference to the trigger element, used to restore focus after selection. */
|
|
404
|
+
_triggerElement = viewChild('trigger', { ...(ngDevMode ? { debugName: "_triggerElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
405
|
+
/** @private Reference to the transparent native select when native mode is active. */
|
|
406
|
+
_nativeSelect = viewChild('nativeSelect', /* @ts-ignore */
|
|
407
|
+
...(ngDevMode ? [{ debugName: "_nativeSelect" }] : /* istanbul ignore next */ []));
|
|
408
|
+
/** @private Reference to the rendered dropdown panel component. */
|
|
409
|
+
_dropdownPanel = viewChild(MlvDropdownPanel, /* @ts-ignore */
|
|
410
|
+
...(ngDevMode ? [{ debugName: "_dropdownPanel" }] : /* istanbul ignore next */ []));
|
|
411
|
+
/** @private Raw values last written through a forms binding, pre-normalisation. */
|
|
412
|
+
_pendingValues = [];
|
|
413
|
+
constructor() {
|
|
414
|
+
super();
|
|
415
|
+
effect(() => {
|
|
416
|
+
this.selectionService.multiple.set(this.multiple());
|
|
417
|
+
});
|
|
418
|
+
effect(() => {
|
|
419
|
+
this.selectionService.compareWith.set(this.compareWith());
|
|
420
|
+
});
|
|
421
|
+
effect(() => {
|
|
422
|
+
if (this._nativeActive()) {
|
|
423
|
+
untracked(() => {
|
|
424
|
+
this.isOpen.set(false);
|
|
425
|
+
this._adapter.ensureLoaded();
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
effect(() => {
|
|
430
|
+
this._pendingValues = toAriaValues(this.value());
|
|
431
|
+
// Reads resolvedOptions()/compareWith() → re-runs when options arrive later.
|
|
432
|
+
this._applyPendingValues();
|
|
433
|
+
});
|
|
434
|
+
// A `searchFn` is lazy: the first open is what triggers its initial load.
|
|
435
|
+
effect(() => {
|
|
436
|
+
if (this.isOpen())
|
|
437
|
+
untracked(() => this._adapter.ensureLoaded());
|
|
438
|
+
});
|
|
439
|
+
// Latch the eager gate off once a *remote* source has answered — see
|
|
440
|
+
// `_eagerDone`. The mode check matters: an array source is `ready()` from
|
|
441
|
+
// the first tick, so latching on readiness alone would disarm the gate
|
|
442
|
+
// before a `searchFn` bound through a signal/late input ever became the
|
|
443
|
+
// active branch.
|
|
444
|
+
effect(() => {
|
|
445
|
+
if (this._adapter.mode() === 'remote' && this._adapter.ready()) {
|
|
446
|
+
untracked(() => this._eagerDone.set(true));
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
// A remote response (or a narrowing local filter) can shrink the list out
|
|
450
|
+
// from under a stale active index. Drop it rather than leave
|
|
451
|
+
// `aria-activedescendant` pointing at a row that no longer exists — and so
|
|
452
|
+
// the next arrow press restarts from the top of the new list.
|
|
453
|
+
effect(() => {
|
|
454
|
+
const count = this.filteredOptions().length;
|
|
455
|
+
untracked(() => {
|
|
456
|
+
if (this._activeDescendant.index() >= count) {
|
|
457
|
+
this._activeDescendant.reset();
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
get displayValue() {
|
|
463
|
+
const values = this.selectionService.selectedValues();
|
|
464
|
+
if (values.length === 0)
|
|
465
|
+
return '';
|
|
466
|
+
const transform = this.toOption();
|
|
467
|
+
if (values.length === 1)
|
|
468
|
+
return transform(values[0]).label;
|
|
469
|
+
return `${values.length} items selected`;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Toggles the dropdown. Closing is always allowed — a panel opened before the
|
|
473
|
+
* control turned inert (a late `[loading]`, a value written under an open
|
|
474
|
+
* list) must stay dismissable from its own trigger; only opening is gated.
|
|
475
|
+
*/
|
|
476
|
+
toggleDropdown() {
|
|
477
|
+
if (this._nativeActive()) {
|
|
478
|
+
this._nativeSelect()?.nativeElement.focus();
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
if (this.isOpen()) {
|
|
482
|
+
this.isOpen.set(false);
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
if (this._isInert())
|
|
486
|
+
return;
|
|
487
|
+
this.isOpen.set(true);
|
|
488
|
+
}
|
|
489
|
+
setInitialFocus() {
|
|
490
|
+
this._triggerElement()?.nativeElement.focus();
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Focuses the trigger and opens the dropdown. Focus moves even while merely
|
|
494
|
+
* awaiting a value's label — this is the label's click target, and a click on
|
|
495
|
+
* a field's label must always land the caret on that field; only the open is
|
|
496
|
+
* suppressed. A **disabled** field is the exception: it takes neither the
|
|
497
|
+
* caret nor the open (the trigger's `tabindex="-1"` would still accept
|
|
498
|
+
* programmatic focus).
|
|
499
|
+
*/
|
|
500
|
+
openDropdown() {
|
|
501
|
+
if (this.computedDisabled())
|
|
502
|
+
return;
|
|
503
|
+
if (this._nativeActive()) {
|
|
504
|
+
this._nativeSelect()?.nativeElement.focus();
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
this.setInitialFocus();
|
|
508
|
+
if (this._isInert())
|
|
509
|
+
return;
|
|
510
|
+
this.isOpen.set(true);
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* @protected Trigger keyboard open. ArrowUp / ArrowDown open the dropdown and
|
|
514
|
+
* move focus onto the first option (`focusFirst`); Home / End only open it,
|
|
515
|
+
* leaving the roving focus where the panel puts it. No-op while inert, but the
|
|
516
|
+
* default is always prevented so a still-resolving trigger never scrolls the
|
|
517
|
+
* page instead.
|
|
518
|
+
*
|
|
519
|
+
* The focus request is roving-mode only: a searchable dropdown hands focus to
|
|
520
|
+
* its search input instead (`_onPopupOpened`), and pulling it onto an option
|
|
521
|
+
* would break the activedescendant model.
|
|
522
|
+
*/
|
|
523
|
+
_openFromKey(event, focusFirst) {
|
|
524
|
+
event.preventDefault();
|
|
525
|
+
if (this._nativeActive()) {
|
|
526
|
+
this._nativeSelect()?.nativeElement.focus();
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
if (this._isInert())
|
|
530
|
+
return;
|
|
531
|
+
this.isOpen.set(true);
|
|
532
|
+
if (focusFirst && !this.searchable()) {
|
|
533
|
+
this.selectionService.requestFocusFirst();
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* @protected Whether every open / interaction path is suppressed: the control
|
|
538
|
+
* is disabled, or a committed value's label is still resolving (the trigger
|
|
539
|
+
* stays tabbable and readable, but must not open a list that cannot yet show
|
|
540
|
+
* the current selection).
|
|
541
|
+
*/
|
|
542
|
+
_isInert() {
|
|
543
|
+
return this.computedDisabled() || this._awaitingValueLabel();
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Handles a selection change emitted by the aria listbox panel. The panel
|
|
547
|
+
* always emits the flat `V[]` array that `@angular/aria`'s `ngListbox`
|
|
548
|
+
* models; {@link fromAriaValues} collapses it back to the public forms value
|
|
549
|
+
* shape (`T` for single-select, `T[]` for multi-select, `null` when cleared).
|
|
550
|
+
*
|
|
551
|
+
* aria re-emits its value whenever the *rendered* option set changes (an
|
|
552
|
+
* async load landing while the panel is open, later search filtering) — those
|
|
553
|
+
* reconciliation emits are ignored via the shared guard, so they can never
|
|
554
|
+
* wipe the committed value. A genuine multi-select pick re-adds the committed
|
|
555
|
+
* values aria dropped only because their option is not rendered.
|
|
556
|
+
*/
|
|
557
|
+
selectOption(values) {
|
|
558
|
+
const committed = this.selectionService.selectedValues();
|
|
559
|
+
const visible = this._visibleValues();
|
|
560
|
+
const compare = this.compareWith();
|
|
561
|
+
if (isReconciliationEmit(values, committed, visible, compare))
|
|
562
|
+
return;
|
|
563
|
+
const next = this.multiple()
|
|
564
|
+
? [
|
|
565
|
+
...values,
|
|
566
|
+
...filteredOutCommitted(values, committed, visible, compare),
|
|
567
|
+
]
|
|
568
|
+
: [...values];
|
|
569
|
+
this._commitSelection(next);
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* @private Writes a genuine selection — the single commit path shared by the
|
|
573
|
+
* panel's `valueChange` and the search field's Enter. Single-select closes the
|
|
574
|
+
* dropdown and returns focus to the trigger; multi-select stays open so the
|
|
575
|
+
* next option can be picked.
|
|
576
|
+
*/
|
|
577
|
+
_commitSelection(next, restoreFocus = true) {
|
|
578
|
+
if (!this.multiple() && restoreFocus) {
|
|
579
|
+
this.isOpen.set(false);
|
|
580
|
+
this.setInitialFocus();
|
|
581
|
+
}
|
|
582
|
+
this.value.set(fromAriaValues(next, this.multiple()));
|
|
583
|
+
this.selectionService.setValues(next);
|
|
584
|
+
this._markTouched();
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* @protected Values of the options currently rendered in the panel (the
|
|
588
|
+
* reconciliation guard's "visible" set) — the filtered set while searching.
|
|
589
|
+
*/
|
|
590
|
+
_visibleValues() {
|
|
591
|
+
return this.filteredOptions().map((o) => o.value);
|
|
592
|
+
}
|
|
593
|
+
// ─── In-dropdown search field ────────────────────────────────────────────
|
|
594
|
+
/**
|
|
595
|
+
* @protected Search-field input. Local sources narrow {@link filteredOptions}
|
|
596
|
+
* instantly; remote ones are asked (debounced) instead, because filtering
|
|
597
|
+
* locally as well would hide server results and empty the list while a newer
|
|
598
|
+
* query is still in flight.
|
|
599
|
+
*/
|
|
600
|
+
_onSearchInput(event) {
|
|
601
|
+
const value = event.target.value;
|
|
602
|
+
this.searchQuery.set(value);
|
|
603
|
+
this._activeDescendant.reset();
|
|
604
|
+
if (this._adapter.mode() === 'remote')
|
|
605
|
+
this._adapter.search(value);
|
|
606
|
+
}
|
|
607
|
+
/** @protected ArrowDown — activate the next option (wrap-around). */
|
|
608
|
+
_onSearchArrowDown(event) {
|
|
609
|
+
event.preventDefault();
|
|
610
|
+
this._activeDescendant.move(1);
|
|
611
|
+
}
|
|
612
|
+
/** @protected ArrowUp — activate the previous option (wrap-around). */
|
|
613
|
+
_onSearchArrowUp(event) {
|
|
614
|
+
event.preventDefault();
|
|
615
|
+
this._activeDescendant.move(-1);
|
|
616
|
+
}
|
|
617
|
+
/** @protected Home — activate the first option. */
|
|
618
|
+
_onSearchHome(event) {
|
|
619
|
+
event.preventDefault();
|
|
620
|
+
this._activeDescendant.first();
|
|
621
|
+
}
|
|
622
|
+
/** @protected End — activate the last option. */
|
|
623
|
+
_onSearchEnd(event) {
|
|
624
|
+
event.preventDefault();
|
|
625
|
+
this._activeDescendant.last();
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* @protected Enter — commit the active option (APG "Enter selects active").
|
|
629
|
+
* No-op when nothing is active. Multi-select toggles the option and resets the
|
|
630
|
+
* active index so the narrowed list is navigated from the top again.
|
|
631
|
+
*/
|
|
632
|
+
_onSearchEnter(event) {
|
|
633
|
+
event.preventDefault();
|
|
634
|
+
const index = this._activeDescendant.index();
|
|
635
|
+
const opts = this.filteredOptions();
|
|
636
|
+
if (index < 0 || index >= opts.length)
|
|
637
|
+
return;
|
|
638
|
+
const picked = opts[index].value;
|
|
639
|
+
const compare = this.compareWith();
|
|
640
|
+
const committed = this.selectionService.selectedValues();
|
|
641
|
+
const next = this.multiple()
|
|
642
|
+
? committed.some((v) => compare(v, picked))
|
|
643
|
+
? committed.filter((v) => !compare(v, picked))
|
|
644
|
+
: [...committed, picked]
|
|
645
|
+
: [picked];
|
|
646
|
+
this._commitSelection(next);
|
|
647
|
+
if (this.multiple())
|
|
648
|
+
this._activeDescendant.reset();
|
|
649
|
+
}
|
|
650
|
+
/** @protected Escape — closes the dropdown (the close resets the query). */
|
|
651
|
+
_onSearchEscape(event) {
|
|
652
|
+
event.preventDefault();
|
|
653
|
+
this.isOpen.set(false);
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* @protected Tab / Shift+Tab — closes the dropdown. The default is prevented
|
|
657
|
+
* because the search field lives in a detached overlay: letting Tab run would
|
|
658
|
+
* move focus to whatever follows the overlay in the DOM rather than to the
|
|
659
|
+
* field after the select. `_onPopupClosed` puts focus back on the trigger.
|
|
660
|
+
*/
|
|
661
|
+
_onSearchTab(event) {
|
|
662
|
+
event.preventDefault();
|
|
663
|
+
this.isOpen.set(false);
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* @protected Panel `mousedown`. In searchable mode the default is prevented
|
|
667
|
+
* so pointing at an option (or the scrollbar) cannot blur the search input —
|
|
668
|
+
* the activedescendant model and the open state both depend on focus staying
|
|
669
|
+
* there. It must stay a **method**: an inline `searchable() && preventDefault()`
|
|
670
|
+
* expression evaluates to `false` on the non-searchable path, and Angular
|
|
671
|
+
* treats a `false` listener return as `preventDefault()`, which would swallow
|
|
672
|
+
* the default for every select dropdown (breaking roving focus transfer to a
|
|
673
|
+
* clicked option and text selection).
|
|
674
|
+
*/
|
|
675
|
+
_onPanelMousedown(event) {
|
|
676
|
+
if (this.searchable())
|
|
677
|
+
event.preventDefault();
|
|
678
|
+
}
|
|
679
|
+
/** @protected Handles a value change from the native select. */
|
|
680
|
+
_onNativeChange(event) {
|
|
681
|
+
const nativeSelect = event.target;
|
|
682
|
+
const next = Array.from(nativeSelect.selectedOptions)
|
|
683
|
+
.map((option) => this._nativeOptionFromKey(option.value))
|
|
684
|
+
.filter((option) => option !== null)
|
|
685
|
+
.map((option) => option.value);
|
|
686
|
+
this._commitSelection(next, false);
|
|
687
|
+
}
|
|
688
|
+
/** @protected Focuses the active interaction surface when the label is clicked. */
|
|
689
|
+
_onLabelClick() {
|
|
690
|
+
if (this._nativeActive()) {
|
|
691
|
+
this._nativeSelect()?.nativeElement.focus();
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
this.openDropdown();
|
|
695
|
+
}
|
|
696
|
+
/** @protected Marks the native select as focused for the form wrapper. */
|
|
697
|
+
_onNativeFocus() {
|
|
698
|
+
this.setFocused(true);
|
|
699
|
+
}
|
|
700
|
+
/** @protected Marks the native select blur as the end of field interaction. */
|
|
701
|
+
_onNativeBlur() {
|
|
702
|
+
this.setFocused(false);
|
|
703
|
+
this._markTouched();
|
|
704
|
+
}
|
|
705
|
+
/** @protected Whether a normalized option matches one of the committed values. */
|
|
706
|
+
_isNativeOptionSelected(value) {
|
|
707
|
+
const compare = this.compareWith();
|
|
708
|
+
return this.selectionService
|
|
709
|
+
.selectedValues()
|
|
710
|
+
.some((selected) => compare(selected, value));
|
|
711
|
+
}
|
|
712
|
+
/** @private Resolves an internal native option key back to its public option. */
|
|
713
|
+
_nativeOptionFromKey(key) {
|
|
714
|
+
const index = Number(key);
|
|
715
|
+
if (!Number.isInteger(index))
|
|
716
|
+
return null;
|
|
717
|
+
return this.resolvedOptions()[index] ?? null;
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* @protected After the popup opens: hand focus to the search field. The input
|
|
721
|
+
* is stamped inside the overlay (a detached embedded view), so it is not
|
|
722
|
+
* reachable through this component's view queries — locate it by its
|
|
723
|
+
* deterministic id, the same pattern `mlv-combobox` / `mlv-day-picker` use.
|
|
724
|
+
* The lazy first load is triggered by the `isOpen` effect, not here.
|
|
725
|
+
*/
|
|
726
|
+
_onPopupOpened() {
|
|
727
|
+
if (!this.searchable())
|
|
728
|
+
return;
|
|
729
|
+
document.getElementById(this._searchInputId())?.focus();
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* @protected After the popup closes: restore focus to the trigger and (when
|
|
733
|
+
* searchable) drop the query, so the next open starts from the full list. A
|
|
734
|
+
* remote source is re-asked for `''` once, otherwise a blank search field
|
|
735
|
+
* would sit above a list still filtered by the previous query.
|
|
736
|
+
*/
|
|
737
|
+
_onPopupClosed() {
|
|
738
|
+
this.setInitialFocus();
|
|
739
|
+
if (!this.searchable())
|
|
740
|
+
return;
|
|
741
|
+
this._activeDescendant.reset();
|
|
742
|
+
if (this.searchQuery() !== '') {
|
|
743
|
+
this.searchQuery.set('');
|
|
744
|
+
if (this._adapter.mode() === 'remote')
|
|
745
|
+
this._adapter.search('');
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
setFocused(isFocused = true) {
|
|
749
|
+
this._focused.set(isFocused);
|
|
750
|
+
}
|
|
751
|
+
/** @protected Marks the select touched when its trigger loses focus. */
|
|
752
|
+
_onTriggerBlur() {
|
|
753
|
+
this.setFocused(false);
|
|
754
|
+
this._markTouched();
|
|
755
|
+
}
|
|
756
|
+
updateTriggerWidth(evt) {
|
|
757
|
+
this.triggerWidth.set(evt[0].target.getBoundingClientRect().width);
|
|
758
|
+
}
|
|
759
|
+
/** Whether the control holds a clearable value — At least one option selected. */
|
|
760
|
+
hasValue = computed(() => this.selectionService.selectedValues().length > 0, /* @ts-ignore */
|
|
761
|
+
...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
|
|
762
|
+
/**
|
|
763
|
+
* The select renders its own clear button overlaid in the trigger row,
|
|
764
|
+
* before the chevron — the wrapper must not render its trailing copy.
|
|
765
|
+
*/
|
|
766
|
+
ownsClearButton = computed(() => true, /* @ts-ignore */
|
|
767
|
+
...(ngDevMode ? [{ debugName: "ownsClearButton" }] : /* istanbul ignore next */ []));
|
|
768
|
+
/**
|
|
769
|
+
* @protected Whether the inline clear affordance is visible: clearable, a
|
|
770
|
+
* value present, and the control interactive. Shared by the template's @if
|
|
771
|
+
* and the trigger's padding-reserve class.
|
|
772
|
+
*
|
|
773
|
+
* Deliberately **not** gated on {@link _awaitingValueLabel}: the loading
|
|
774
|
+
* variant makes every open path inert, so the clear button is the only
|
|
775
|
+
* escape hatch left when a source never answers. `onClear()` works there —
|
|
776
|
+
* dropping the value clears `hasValue()`, which ends the variant.
|
|
777
|
+
*/
|
|
778
|
+
_showClear = computed(() => this.clearable() &&
|
|
779
|
+
this.hasValue() &&
|
|
780
|
+
!this.computedDisabled() &&
|
|
781
|
+
!this.readonly(), /* @ts-ignore */
|
|
782
|
+
...(ngDevMode ? [{ debugName: "_showClear" }] : /* istanbul ignore next */ []));
|
|
783
|
+
/** Clears the selection, writes the cleared forms value, and marks touched. */
|
|
784
|
+
onClear() {
|
|
785
|
+
this.selectionService.clear();
|
|
786
|
+
this.value.set(fromAriaValues([], this.multiple()));
|
|
787
|
+
this._markTouched();
|
|
788
|
+
}
|
|
789
|
+
/**
|
|
790
|
+
* @private Syncs the selection service (the aria listbox panel's `value`
|
|
791
|
+
* source) from the values last written through a forms binding. Each pending
|
|
792
|
+
* value is matched against the current options via {@link compareWith} and
|
|
793
|
+
* replaced by the option's own instance, so the check-marks and the displayed
|
|
794
|
+
* label agree — and a value written before its options exist resolves as soon
|
|
795
|
+
* as they arrive (the caller effect tracks `resolvedOptions()`).
|
|
796
|
+
*/
|
|
797
|
+
_applyPendingValues() {
|
|
798
|
+
const compare = this.compareWith();
|
|
799
|
+
const opts = this.resolvedOptions();
|
|
800
|
+
const normalized = this._pendingValues.map((v) => opts.find((o) => compare(o.value, v))?.value ?? v);
|
|
801
|
+
this.selectionService.setValues(normalized);
|
|
802
|
+
}
|
|
803
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
804
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvSelect, isStandalone: true, selector: "mlv-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: false, transformFunction: null }, searchDebounce: { classPropertyName: "searchDebounce", publicName: "searchDebounce", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, native: { classPropertyName: "native", publicName: "native", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, toOption: { classPropertyName: "toOption", publicName: "toOption", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, matcher: { classPropertyName: "matcher", publicName: "matcher", isSignal: true, isRequired: false, transformFunction: null }, mobileMode: { classPropertyName: "mobileMode", publicName: "mobileMode", isSignal: true, isRequired: false, transformFunction: null }, mlvDensity: { classPropertyName: "mlvDensity", publicName: "mlvDensity", isSignal: true, isRequired: false, transformFunction: null }, mobileTitle: { classPropertyName: "mobileTitle", publicName: "mobileTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "\"mlv-select--\" + resolvedState()", "class.mlv-select--disabled": "computedDisabled()", "class.mlv-select--open": "isOpen()", "class.mlv-select--native": "_nativeActive()", "class.mlv-select--loading": "_awaitingValueLabel()" }, classAttribute: "mlv-select" }, providers: [
|
|
805
|
+
MlvSelectionService,
|
|
806
|
+
{
|
|
807
|
+
provide: MLV_FORM_CONTROL,
|
|
808
|
+
useExisting: forwardRef(() => MlvSelect),
|
|
809
|
+
},
|
|
810
|
+
], queries: [{ propertyName: "itemTemplate", first: true, predicate: MlvSelectItemTemplate, descendants: true, isSignal: true }, { propertyName: "selectedTemplate", first: true, predicate: MlvSelectSelectedTemplate, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_triggerElement", first: true, predicate: ["trigger"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_nativeSelect", first: true, predicate: ["nativeSelect"], descendants: true, isSignal: true }, { propertyName: "_dropdownPanel", first: true, predicate: MlvDropdownPanel, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mlv-form-control-wrapper>\n @if (label() || hint()) {\n <mlv-label\n [id]=\"labelId()\"\n [for]=\"id()\"\n [required]=\"required()\"\n (click)=\"_onLabelClick()\"\n >\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n <mlv-popup-container class=\"mlv-select__popup-container\">\n <div\n class=\"mlv-select__trigger\"\n [class.mlv-select__trigger--with-clear]=\"_showClear()\"\n [id]=\"_nativeActive() ? null : id()\"\n [hostRole]=\"_nativeActive() ? null : (_outerIsCombobox() ? 'combobox' : 'button')\"\n [disabled]=\"computedDisabled() || _nativeActive()\"\n [attr.aria-hidden]=\"_nativeActive() ? 'true' : null\"\n [attr.aria-expanded]=\"_nativeActive() ? null : isOpen()\"\n [attr.aria-haspopup]=\"_nativeActive() ? null : 'listbox'\"\n [attr.aria-controls]=\"_nativeActive() ? null : (isOpen() ? listboxId() : null)\"\n [attr.aria-disabled]=\"_nativeActive() ? null : (computedDisabled() || null)\"\n [attr.aria-labelledby]=\"_nativeActive() ? null : (label() ? labelId() : null)\"\n [attr.aria-label]=\"_nativeActive() ? null : (label() ? null : ariaLabel())\"\n [attr.aria-required]=\"_nativeActive() ? null : (_outerIsCombobox() && required() ? true : null)\"\n [attr.aria-describedby]=\"_nativeActive() ? null : _describedBy()\"\n [attr.aria-busy]=\"_nativeActive() ? null : (_awaitingValueLabel() || null)\"\n mlvResizeObserver\n #trigger\n (resized)=\"updateTriggerWidth($event)\"\n (mlvClick)=\"toggleDropdown()\"\n (keydown.arrowDown)=\"_openFromKey($event, true)\"\n (keydown.arrowUp)=\"_openFromKey($event, true)\"\n (keydown.home)=\"_openFromKey($event, false)\"\n (keydown.end)=\"_openFromKey($event, false)\"\n (keydown.escape)=\"isOpen.set(false)\"\n (focus)=\"setFocused(true)\"\n (blur)=\"_onTriggerBlur()\"\n >\n <!-- While a committed value's label is still resolving the trigger shows\n the i18n loading text instead of a raw (often unreadable) value. -->\n @if (_awaitingValueLabel()) {\n <span class=\"mlv-select__placeholder\">{{ _i18n().loading }}</span>\n } @else if (displayValue) {\n <span class=\"mlv-select__value\">\n @if (!_nativeActive() && selectedTemplate(); as templateTpl) {\n <ng-container\n *ngTemplateOutlet=\"templateTpl.templateRef; context: { $implicit: selectionService.selectedValues() }\"\n />\n } @else { {{ displayValue }} }\n </span>\n } @else {\n <span class=\"mlv-select__placeholder\"\n >{{ _resolvedPlaceholder() }}</span\n >\n }\n <span class=\"mlv-select__arrow\">\n <!-- The chevron is replaced by a spinner while the value's label\n resolves \u2014 the trigger is inert then, so the affordance would be\n a dead control. -->\n @if (_awaitingValueLabel()) {\n <mlv-loader\n variant=\"circle\"\n indeterminate\n [size]=\"18\"\n [strokeWidth]=\"2\"\n [ariaLabel]=\"_i18n().loading\"\n />\n } @else {\n <svg size=\"20\" lucideChevronDown></svg>\n }\n </span>\n </div>\n\n @if (_nativeActive()) {\n <select\n #nativeSelect\n class=\"mlv-select__native\"\n [id]=\"id()\"\n [multiple]=\"multiple()\"\n [required]=\"required()\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n [attr.aria-label]=\"label() ? null : ariaLabel()\"\n [attr.aria-describedby]=\"_describedBy()\"\n [attr.aria-busy]=\"_awaitingValueLabel() || null\"\n (focus)=\"_onNativeFocus()\"\n (blur)=\"_onNativeBlur()\"\n (change)=\"_onNativeChange($event)\"\n >\n @if (!multiple()) {\n <option value=\"\" disabled [selected]=\"!hasValue()\">\n {{ _resolvedPlaceholder() }}\n </option>\n }\n @for (group of _nativeOptionGroups(); track $index) {\n @if (group.label) {\n <optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <option\n [value]=\"option.key\"\n [disabled]=\"option.disabled || false\"\n [selected]=\"_isNativeOptionSelected(option.value)\"\n >\n {{ option.label }}\n </option>\n }\n </optgroup>\n } @else {\n @for (option of group.options; track option.key) {\n <option\n [value]=\"option.key\"\n [disabled]=\"option.disabled || false\"\n [selected]=\"_isNativeOptionSelected(option.value)\"\n >\n {{ option.label }}\n </option>\n }\n }\n }\n </select>\n }\n\n @if (_showClear()) {\n <!-- DOM sibling of the role=\"combobox\" trigger (a button nested inside it\n would trip nested-interactive); CSS overlays it just BEFORE the\n chevron. Tab order: trigger, then clear. -->\n <mlv-button-close\n class=\"mlv-select__clear\"\n (click)=\"onClear()\"\n mlvDensity=\"tight\"\n [ariaLabel]=\"_formI18n().clear\"\n />\n }\n\n <mlv-popup\n [(opened)]=\"isOpen\"\n [width]=\"triggerWidth()\"\n [hasShadow]=\"true\"\n [flexibleDimensions]=\"true\"\n [positions]=\"dropdownPositions\"\n [mobileMode]=\"mobileMode()\"\n [mobileTitle]=\"_resolvedMobileTitle()\"\n [mlvDensity]=\"mlvDensity()\"\n class=\"mlv-select__popup\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n @if (searchable()) {\n <!-- Pinned first row of the dropdown: projected into the popup's pinned\n slot, so it sits above the scroll region and a long option list can\n never push it out of view. While the dropdown is open this input \u2014\n not the trigger \u2014 is the single exposed role=\"combobox\". -->\n <ng-template mlvPopupPinnedContent>\n <div class=\"mlv-select__search\">\n <svg\n class=\"mlv-select__search-icon\"\n lucideSearch\n size=\"16\"\n aria-hidden=\"true\"\n ></svg>\n <mlv-input\n bare\n class=\"mlv-select__search-input\"\n [id]=\"_searchInputId()\"\n [role]=\"'combobox'\"\n [ariaExpanded]=\"true\"\n [ariaHasPopup]=\"'listbox'\"\n [ariaAutocomplete]=\"'list'\"\n [ariaControls]=\"listboxId()\"\n [ariaActiveDescendant]=\"_activeOptionId()\"\n [ariaLabel]=\"label() || _resolvedPlaceholder()\"\n [required]=\"required()\"\n [placeholder]=\"_resolvedSearchPlaceholder()\"\n [value]=\"searchQuery()\"\n [autocomplete]=\"'off'\"\n (input)=\"_onSearchInput($event)\"\n (keydown.arrowDown)=\"_onSearchArrowDown($event)\"\n (keydown.arrowUp)=\"_onSearchArrowUp($event)\"\n (keydown.home)=\"_onSearchHome($event)\"\n (keydown.end)=\"_onSearchEnd($event)\"\n (keydown.enter)=\"_onSearchEnter($event)\"\n (keydown.escape)=\"_onSearchEscape($event)\"\n (keydown.tab)=\"_onSearchTab($event)\"\n (keydown.shift.tab)=\"_onSearchTab($event)\"\n />\n </div>\n </ng-template>\n }\n\n <ng-template mlvPopupContent>\n <!-- Keep DOM focus in the search input while pointing at options\n (activedescendant model): prevent the mousedown from blurring it\n so the active index and the open state survive option clicks.\n Routed through a method, not an inline `searchable() && \u2026`\n expression \u2014 a `false` listener return means preventDefault() to\n Angular, which would swallow the default on the non-searchable\n path too. The pinned search row deliberately stays outside this\n wrapper: swallowing its mousedown would make the input\n unclickable. -->\n <div\n class=\"mlv-select__panel\"\n (mousedown)=\"_onPanelMousedown($event)\"\n >\n <mlv-dropdown-panel\n scrollMode=\"parent\"\n [options]=\"filteredOptions()\"\n [multiple]=\"multiple()\"\n [selectedValues]=\"selectionService.selectedValues()\"\n [itemTemplate]=\"itemTemplate()?.templateRef ?? null\"\n [listboxId]=\"listboxId()\"\n [ariaLabel]=\"_panelAriaLabel()\"\n [focusMode]=\"searchable() ? 'activedescendant' : 'roving'\"\n [activeIndex]=\"_activeIndex()\"\n [highlightQuery]=\"_highlightQuery()\"\n [loading]=\"_panelLoading()\"\n [loadingText]=\"_i18n().loading\"\n [hasMore]=\"_adapter.hasMore()\"\n [loadingMore]=\"_adapter.loadingMore()\"\n (loadMore)=\"_adapter.loadMore()\"\n (valueChange)=\"selectOption($event)\"\n >\n @if (searchable()) {\n <div class=\"mlv-select__empty\">{{ _i18n().noResults }}</div>\n }\n </mlv-dropdown-panel>\n </div>\n </ng-template>\n </mlv-popup>\n </mlv-popup-container>\n\n <!-- Polite announcement of the current result count for screen-reader\n users (searchable + open only). -->\n <div class=\"mlv-select__sr-status\" aria-live=\"polite\" role=\"status\">\n {{ _resultsAnnouncement() }}\n </div>\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n", styles: ["@layer mlv.components{.mlv-select{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-select *{box-sizing:border-box}.mlv-select__popup-container{display:flex;flex-grow:1;height:100%;position:relative}.mlv-select__clear{position:absolute;top:50%;inset-inline-end:2rem;transform:translateY(-50%);display:inline-flex}.mlv-select__trigger--with-clear{padding-inline-end:3.5rem}.mlv-select .mlv-form-control-wrapper__control-container{padding:0}.mlv-select__trigger{display:flex;width:100%;justify-content:space-between;align-items:center;cursor:pointer;outline:none;padding:var(--mlv-control-padding);height:100%}.mlv-select__native{position:absolute;inset:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.mlv-select__arrow{width:var(--form-ctrl-icon-size, 1.25rem);height:var(--form-ctrl-icon-size, 1.25rem);display:block;transform-origin:center;transition:color var(--mlv-duration-fast) var(--mlv-ease-out-strong),transform var(--mlv-duration-normal) var(--mlv-ease-out-strong);color:var(--mlv-text-tertiary)}.mlv-select__arrow svg{width:100%;height:100%}.mlv-select__value{color:var(--mlv-text-primary)}.mlv-select__placeholder{color:var(--mlv-text-secondary)}.mlv-select--open .mlv-select__arrow,.mlv-select:hover .mlv-select__arrow,.mlv-form-control-wrapper--focused .mlv-select__arrow{color:var(--mlv-text-primary)}.mlv-select--open .mlv-select__arrow{transform:rotate(180deg)}.mlv-select--native .mlv-select__trigger{pointer-events:none}.mlv-select--native .mlv-select__clear{z-index:2}.mlv-select__search{display:flex;align-items:center;gap:var(--mlv-spacing-2);padding:var(--mlv-spacing-2) var(--mlv-spacing-3);background:var(--mlv-background-raised);border-bottom:var(--mlv-stroke-width) solid var(--mlv-border-subtle)}.mlv-select__search-icon{flex-shrink:0;color:var(--mlv-text-tertiary)}.mlv-select__search-input{flex:1;min-width:0}.mlv-select__empty{padding:var(--mlv-spacing-2) var(--mlv-spacing-3);color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size)}.mlv-select__sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mlv-select--loading .mlv-select__trigger{cursor:progress}.mlv-select--loading .mlv-select__arrow{display:inline-flex;align-items:center;justify-content:center}@media(prefers-reduced-motion:reduce){.mlv-select,.mlv-select *,.mlv-select:before,.mlv-select:after,[class^=mlv-select__],[class*=\" mlv-select__\"],[class^=mlv-select--],[class*=\" mlv-select--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: MlvPopupContent, selector: "[mlvPopupContent]" }, { kind: "component", type: MlvPopupContainer, selector: "mlv-popup-container" }, { kind: "directive", type: MlvPopupPinnedContent, selector: "[mlvPopupPinnedContent]" }, { kind: "component", type: MlvDescription, selector: "mlv-description" }, { kind: "component", type: MlvFormControlWrapper, selector: "mlv-form-control-wrapper", outputs: ["clear"] }, { kind: "component", type: MlvHint, selector: "mlv-hint" }, { kind: "component", type: MlvLabel, selector: "mlv-label", inputs: ["for", "required"] }, { kind: "directive", type: MlvFormControlWrapperControl, selector: "[mlvFormControlWrapperControl]" }, { kind: "component", type: MlvMessage, selector: "mlv-message", inputs: ["state"] }, { kind: "directive", type: MlvClick, selector: "[mlvClick]", inputs: ["disabled", "hostRole"], outputs: ["mlvClick"] }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "directive", type: MlvResizeObserver, selector: "[mlvResizeObserver]", outputs: ["resized"], exportAs: ["uiResizeObserver"] }, { kind: "component", type: MlvDropdownPanel, selector: "mlv-dropdown-panel", inputs: ["scrollMode", "minHeight", "maxHeight", "options", "multiple", "selectedValues", "itemTemplate", "focusMode", "activeIndex", "listboxId", "ariaLabel", "highlightQuery", "loading", "loadingText", "loadingMore", "hasMore", "infiniteScrollThreshold"], outputs: ["loadMore", "valueChange"] }, { kind: "component", type: MlvButtonClose, selector: "mlv-button-close", inputs: ["variant", "shape", "ariaLabel"] }, { kind: "component", type: MlvInput, selector: "mlv-input", inputs: ["type", "placeholder", "autocomplete", "inputMode", "maxLength", "minLength", "pattern", "name", "autofocus", "min", "max", "step", "bare", "projectControl", "role", "ariaExpanded", "ariaHasPopup", "ariaAutocomplete", "ariaControls", "ariaActiveDescendant", "ariaDescribedBy", "value"], outputs: ["valueChange", "inputFocus", "inputBlur"] }, { kind: "component", type: MlvLoader, selector: "mlv-loader", inputs: ["variant", "tone", "value", "max", "indeterminate", "size", "strokeWidth", "ariaLabel", "showHint", "color", "trackColor", "glow"] }, { kind: "component", type: LucideSearch, selector: "svg[lucideSearch]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
811
|
+
}
|
|
812
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelect, decorators: [{
|
|
813
|
+
type: Component,
|
|
814
|
+
args: [{ selector: 'mlv-select', imports: [
|
|
815
|
+
NgTemplateOutlet,
|
|
816
|
+
MlvPopup,
|
|
817
|
+
MlvPopupContent,
|
|
818
|
+
MlvPopupContainer,
|
|
819
|
+
MlvPopupPinnedContent,
|
|
820
|
+
MlvDescription,
|
|
821
|
+
MlvFormControlWrapper,
|
|
822
|
+
MlvHint,
|
|
823
|
+
MlvLabel,
|
|
824
|
+
MlvFormControlWrapperControl,
|
|
825
|
+
MlvMessage,
|
|
826
|
+
MlvClick,
|
|
827
|
+
LucideChevronDown,
|
|
828
|
+
MlvResizeObserver,
|
|
829
|
+
MlvDropdownPanel,
|
|
830
|
+
MlvButtonClose,
|
|
831
|
+
MlvInput,
|
|
832
|
+
MlvLoader,
|
|
833
|
+
LucideSearch,
|
|
834
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
835
|
+
MlvSelectionService,
|
|
836
|
+
{
|
|
837
|
+
provide: MLV_FORM_CONTROL,
|
|
838
|
+
useExisting: forwardRef(() => MlvSelect),
|
|
839
|
+
},
|
|
840
|
+
], host: {
|
|
841
|
+
class: 'mlv-select',
|
|
842
|
+
'[class]': '"mlv-select--" + resolvedState()',
|
|
843
|
+
'[class.mlv-select--disabled]': 'computedDisabled()',
|
|
844
|
+
'[class.mlv-select--open]': 'isOpen()',
|
|
845
|
+
'[class.mlv-select--native]': '_nativeActive()',
|
|
846
|
+
'[class.mlv-select--loading]': '_awaitingValueLabel()',
|
|
847
|
+
}, template: "<mlv-form-control-wrapper>\n @if (label() || hint()) {\n <mlv-label\n [id]=\"labelId()\"\n [for]=\"id()\"\n [required]=\"required()\"\n (click)=\"_onLabelClick()\"\n >\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n <mlv-popup-container class=\"mlv-select__popup-container\">\n <div\n class=\"mlv-select__trigger\"\n [class.mlv-select__trigger--with-clear]=\"_showClear()\"\n [id]=\"_nativeActive() ? null : id()\"\n [hostRole]=\"_nativeActive() ? null : (_outerIsCombobox() ? 'combobox' : 'button')\"\n [disabled]=\"computedDisabled() || _nativeActive()\"\n [attr.aria-hidden]=\"_nativeActive() ? 'true' : null\"\n [attr.aria-expanded]=\"_nativeActive() ? null : isOpen()\"\n [attr.aria-haspopup]=\"_nativeActive() ? null : 'listbox'\"\n [attr.aria-controls]=\"_nativeActive() ? null : (isOpen() ? listboxId() : null)\"\n [attr.aria-disabled]=\"_nativeActive() ? null : (computedDisabled() || null)\"\n [attr.aria-labelledby]=\"_nativeActive() ? null : (label() ? labelId() : null)\"\n [attr.aria-label]=\"_nativeActive() ? null : (label() ? null : ariaLabel())\"\n [attr.aria-required]=\"_nativeActive() ? null : (_outerIsCombobox() && required() ? true : null)\"\n [attr.aria-describedby]=\"_nativeActive() ? null : _describedBy()\"\n [attr.aria-busy]=\"_nativeActive() ? null : (_awaitingValueLabel() || null)\"\n mlvResizeObserver\n #trigger\n (resized)=\"updateTriggerWidth($event)\"\n (mlvClick)=\"toggleDropdown()\"\n (keydown.arrowDown)=\"_openFromKey($event, true)\"\n (keydown.arrowUp)=\"_openFromKey($event, true)\"\n (keydown.home)=\"_openFromKey($event, false)\"\n (keydown.end)=\"_openFromKey($event, false)\"\n (keydown.escape)=\"isOpen.set(false)\"\n (focus)=\"setFocused(true)\"\n (blur)=\"_onTriggerBlur()\"\n >\n <!-- While a committed value's label is still resolving the trigger shows\n the i18n loading text instead of a raw (often unreadable) value. -->\n @if (_awaitingValueLabel()) {\n <span class=\"mlv-select__placeholder\">{{ _i18n().loading }}</span>\n } @else if (displayValue) {\n <span class=\"mlv-select__value\">\n @if (!_nativeActive() && selectedTemplate(); as templateTpl) {\n <ng-container\n *ngTemplateOutlet=\"templateTpl.templateRef; context: { $implicit: selectionService.selectedValues() }\"\n />\n } @else { {{ displayValue }} }\n </span>\n } @else {\n <span class=\"mlv-select__placeholder\"\n >{{ _resolvedPlaceholder() }}</span\n >\n }\n <span class=\"mlv-select__arrow\">\n <!-- The chevron is replaced by a spinner while the value's label\n resolves \u2014 the trigger is inert then, so the affordance would be\n a dead control. -->\n @if (_awaitingValueLabel()) {\n <mlv-loader\n variant=\"circle\"\n indeterminate\n [size]=\"18\"\n [strokeWidth]=\"2\"\n [ariaLabel]=\"_i18n().loading\"\n />\n } @else {\n <svg size=\"20\" lucideChevronDown></svg>\n }\n </span>\n </div>\n\n @if (_nativeActive()) {\n <select\n #nativeSelect\n class=\"mlv-select__native\"\n [id]=\"id()\"\n [multiple]=\"multiple()\"\n [required]=\"required()\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n [attr.aria-label]=\"label() ? null : ariaLabel()\"\n [attr.aria-describedby]=\"_describedBy()\"\n [attr.aria-busy]=\"_awaitingValueLabel() || null\"\n (focus)=\"_onNativeFocus()\"\n (blur)=\"_onNativeBlur()\"\n (change)=\"_onNativeChange($event)\"\n >\n @if (!multiple()) {\n <option value=\"\" disabled [selected]=\"!hasValue()\">\n {{ _resolvedPlaceholder() }}\n </option>\n }\n @for (group of _nativeOptionGroups(); track $index) {\n @if (group.label) {\n <optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <option\n [value]=\"option.key\"\n [disabled]=\"option.disabled || false\"\n [selected]=\"_isNativeOptionSelected(option.value)\"\n >\n {{ option.label }}\n </option>\n }\n </optgroup>\n } @else {\n @for (option of group.options; track option.key) {\n <option\n [value]=\"option.key\"\n [disabled]=\"option.disabled || false\"\n [selected]=\"_isNativeOptionSelected(option.value)\"\n >\n {{ option.label }}\n </option>\n }\n }\n }\n </select>\n }\n\n @if (_showClear()) {\n <!-- DOM sibling of the role=\"combobox\" trigger (a button nested inside it\n would trip nested-interactive); CSS overlays it just BEFORE the\n chevron. Tab order: trigger, then clear. -->\n <mlv-button-close\n class=\"mlv-select__clear\"\n (click)=\"onClear()\"\n mlvDensity=\"tight\"\n [ariaLabel]=\"_formI18n().clear\"\n />\n }\n\n <mlv-popup\n [(opened)]=\"isOpen\"\n [width]=\"triggerWidth()\"\n [hasShadow]=\"true\"\n [flexibleDimensions]=\"true\"\n [positions]=\"dropdownPositions\"\n [mobileMode]=\"mobileMode()\"\n [mobileTitle]=\"_resolvedMobileTitle()\"\n [mlvDensity]=\"mlvDensity()\"\n class=\"mlv-select__popup\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n @if (searchable()) {\n <!-- Pinned first row of the dropdown: projected into the popup's pinned\n slot, so it sits above the scroll region and a long option list can\n never push it out of view. While the dropdown is open this input \u2014\n not the trigger \u2014 is the single exposed role=\"combobox\". -->\n <ng-template mlvPopupPinnedContent>\n <div class=\"mlv-select__search\">\n <svg\n class=\"mlv-select__search-icon\"\n lucideSearch\n size=\"16\"\n aria-hidden=\"true\"\n ></svg>\n <mlv-input\n bare\n class=\"mlv-select__search-input\"\n [id]=\"_searchInputId()\"\n [role]=\"'combobox'\"\n [ariaExpanded]=\"true\"\n [ariaHasPopup]=\"'listbox'\"\n [ariaAutocomplete]=\"'list'\"\n [ariaControls]=\"listboxId()\"\n [ariaActiveDescendant]=\"_activeOptionId()\"\n [ariaLabel]=\"label() || _resolvedPlaceholder()\"\n [required]=\"required()\"\n [placeholder]=\"_resolvedSearchPlaceholder()\"\n [value]=\"searchQuery()\"\n [autocomplete]=\"'off'\"\n (input)=\"_onSearchInput($event)\"\n (keydown.arrowDown)=\"_onSearchArrowDown($event)\"\n (keydown.arrowUp)=\"_onSearchArrowUp($event)\"\n (keydown.home)=\"_onSearchHome($event)\"\n (keydown.end)=\"_onSearchEnd($event)\"\n (keydown.enter)=\"_onSearchEnter($event)\"\n (keydown.escape)=\"_onSearchEscape($event)\"\n (keydown.tab)=\"_onSearchTab($event)\"\n (keydown.shift.tab)=\"_onSearchTab($event)\"\n />\n </div>\n </ng-template>\n }\n\n <ng-template mlvPopupContent>\n <!-- Keep DOM focus in the search input while pointing at options\n (activedescendant model): prevent the mousedown from blurring it\n so the active index and the open state survive option clicks.\n Routed through a method, not an inline `searchable() && \u2026`\n expression \u2014 a `false` listener return means preventDefault() to\n Angular, which would swallow the default on the non-searchable\n path too. The pinned search row deliberately stays outside this\n wrapper: swallowing its mousedown would make the input\n unclickable. -->\n <div\n class=\"mlv-select__panel\"\n (mousedown)=\"_onPanelMousedown($event)\"\n >\n <mlv-dropdown-panel\n scrollMode=\"parent\"\n [options]=\"filteredOptions()\"\n [multiple]=\"multiple()\"\n [selectedValues]=\"selectionService.selectedValues()\"\n [itemTemplate]=\"itemTemplate()?.templateRef ?? null\"\n [listboxId]=\"listboxId()\"\n [ariaLabel]=\"_panelAriaLabel()\"\n [focusMode]=\"searchable() ? 'activedescendant' : 'roving'\"\n [activeIndex]=\"_activeIndex()\"\n [highlightQuery]=\"_highlightQuery()\"\n [loading]=\"_panelLoading()\"\n [loadingText]=\"_i18n().loading\"\n [hasMore]=\"_adapter.hasMore()\"\n [loadingMore]=\"_adapter.loadingMore()\"\n (loadMore)=\"_adapter.loadMore()\"\n (valueChange)=\"selectOption($event)\"\n >\n @if (searchable()) {\n <div class=\"mlv-select__empty\">{{ _i18n().noResults }}</div>\n }\n </mlv-dropdown-panel>\n </div>\n </ng-template>\n </mlv-popup>\n </mlv-popup-container>\n\n <!-- Polite announcement of the current result count for screen-reader\n users (searchable + open only). -->\n <div class=\"mlv-select__sr-status\" aria-live=\"polite\" role=\"status\">\n {{ _resultsAnnouncement() }}\n </div>\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n", styles: ["@layer mlv.components{.mlv-select{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-select *{box-sizing:border-box}.mlv-select__popup-container{display:flex;flex-grow:1;height:100%;position:relative}.mlv-select__clear{position:absolute;top:50%;inset-inline-end:2rem;transform:translateY(-50%);display:inline-flex}.mlv-select__trigger--with-clear{padding-inline-end:3.5rem}.mlv-select .mlv-form-control-wrapper__control-container{padding:0}.mlv-select__trigger{display:flex;width:100%;justify-content:space-between;align-items:center;cursor:pointer;outline:none;padding:var(--mlv-control-padding);height:100%}.mlv-select__native{position:absolute;inset:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.mlv-select__arrow{width:var(--form-ctrl-icon-size, 1.25rem);height:var(--form-ctrl-icon-size, 1.25rem);display:block;transform-origin:center;transition:color var(--mlv-duration-fast) var(--mlv-ease-out-strong),transform var(--mlv-duration-normal) var(--mlv-ease-out-strong);color:var(--mlv-text-tertiary)}.mlv-select__arrow svg{width:100%;height:100%}.mlv-select__value{color:var(--mlv-text-primary)}.mlv-select__placeholder{color:var(--mlv-text-secondary)}.mlv-select--open .mlv-select__arrow,.mlv-select:hover .mlv-select__arrow,.mlv-form-control-wrapper--focused .mlv-select__arrow{color:var(--mlv-text-primary)}.mlv-select--open .mlv-select__arrow{transform:rotate(180deg)}.mlv-select--native .mlv-select__trigger{pointer-events:none}.mlv-select--native .mlv-select__clear{z-index:2}.mlv-select__search{display:flex;align-items:center;gap:var(--mlv-spacing-2);padding:var(--mlv-spacing-2) var(--mlv-spacing-3);background:var(--mlv-background-raised);border-bottom:var(--mlv-stroke-width) solid var(--mlv-border-subtle)}.mlv-select__search-icon{flex-shrink:0;color:var(--mlv-text-tertiary)}.mlv-select__search-input{flex:1;min-width:0}.mlv-select__empty{padding:var(--mlv-spacing-2) var(--mlv-spacing-3);color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size)}.mlv-select__sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mlv-select--loading .mlv-select__trigger{cursor:progress}.mlv-select--loading .mlv-select__arrow{display:inline-flex;align-items:center;justify-content:center}@media(prefers-reduced-motion:reduce){.mlv-select,.mlv-select *,.mlv-select:before,.mlv-select:after,[class^=mlv-select__],[class*=\" mlv-select__\"],[class^=mlv-select--],[class*=\" mlv-select--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
848
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], searchFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchFn", required: false }] }], searchDebounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchDebounce", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], native: [{ type: i0.Input, args: [{ isSignal: true, alias: "native", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], toOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "toOption", required: false }] }], compareWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "compareWith", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], matcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "matcher", required: false }] }], mobileMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileMode", required: false }] }], mlvDensity: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvDensity", required: false }] }], mobileTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileTitle", required: false }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvSelectItemTemplate), { isSignal: true }] }], selectedTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvSelectSelectedTemplate), { isSignal: true }] }], _triggerElement: [{ type: i0.ViewChild, args: ['trigger', { ...{ read: ElementRef }, isSignal: true }] }], _nativeSelect: [{ type: i0.ViewChild, args: ['nativeSelect', { isSignal: true }] }], _dropdownPanel: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MlvDropdownPanel), { isSignal: true }] }] } });
|
|
849
|
+
|
|
850
|
+
/**
|
|
851
|
+
* Generated bundle index. Do not edit.
|
|
852
|
+
*/
|
|
853
|
+
|
|
854
|
+
export { MlvSelect, MlvSelectItemTemplate, MlvSelectListTemplate, MlvSelectSelectedTemplate };
|
|
855
|
+
//# sourceMappingURL=malva-ui-core-select.mjs.map
|