@malva-ui/core 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -1
- package/README.md +15 -0
- package/docs/ai/avatar.md +2 -0
- package/docs/ai/breadcrumb.md +67 -7
- package/docs/ai/button.md +74 -19
- package/docs/ai/card.md +8 -6
- package/docs/ai/chat.md +59 -45
- package/docs/ai/checkbox.md +12 -0
- package/docs/ai/combobox.md +18 -2
- package/docs/ai/copy-to-clipboard.md +1 -1
- package/docs/ai/core.md +15 -0
- package/docs/ai/data-table.md +89 -54
- package/docs/ai/dialog.md +76 -67
- package/docs/ai/drawer.md +15 -12
- package/docs/ai/dropdown.md +24 -19
- package/docs/ai/empty-state.md +3 -3
- package/docs/ai/filter.md +24 -5
- package/docs/ai/form-utils.md +160 -5
- package/docs/ai/icon-toggle.md +160 -0
- package/docs/ai/input.md +30 -0
- package/docs/ai/layout.md +23 -0
- package/docs/ai/list.md +10 -6
- package/docs/ai/menu.md +75 -1
- package/docs/ai/page.md +220 -60
- package/docs/ai/radio.md +9 -0
- package/docs/ai/scrollbar.md +30 -8
- package/docs/ai/segmented.md +35 -35
- package/docs/ai/select.md +30 -5
- package/docs/ai/sidebar.md +45 -27
- package/docs/ai/switch.md +114 -19
- package/docs/ai/table.md +69 -0
- package/docs/ai/tabs.md +2 -1
- package/docs/ai/tile.md +311 -85
- package/docs/ai/timeline.md +63 -39
- package/docs/ai/tokenizer.md +21 -5
- package/docs/ai/tooltip.md +5 -5
- package/docs/ai/view-variant.md +75 -0
- package/fesm2022/malva-ui-core-accordion.mjs +167 -0
- package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
- package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
- package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-alert.mjs +173 -0
- package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar.mjs +247 -0
- package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-badge.mjs +122 -0
- package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
- package/fesm2022/malva-ui-core-button.mjs +406 -0
- package/fesm2022/malva-ui-core-button.mjs.map +1 -0
- package/fesm2022/malva-ui-core-calendar.mjs +938 -0
- package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-card.mjs +164 -0
- package/fesm2022/malva-ui-core-card.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chat.mjs +825 -0
- package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
- package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
- package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chip.mjs +176 -0
- package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
- package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-combobox.mjs +945 -0
- package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
- package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
- package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
- package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
- package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
- package/fesm2022/malva-ui-core-divider.mjs +80 -0
- package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer.mjs +814 -0
- package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
- package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
- package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
- package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
- package/fesm2022/malva-ui-core-expand.mjs +130 -0
- package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
- package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
- package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
- package/fesm2022/malva-ui-core-filter.mjs +1627 -0
- package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
- package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form.mjs +283 -0
- package/fesm2022/malva-ui-core-form.mjs.map +1 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
- package/fesm2022/malva-ui-core-input.mjs +375 -0
- package/fesm2022/malva-ui-core-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-kbd.mjs +131 -0
- package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
- package/fesm2022/malva-ui-core-layout.mjs +212 -0
- package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
- package/fesm2022/malva-ui-core-link.mjs +89 -0
- package/fesm2022/malva-ui-core-link.mjs.map +1 -0
- package/fesm2022/malva-ui-core-list.mjs +413 -0
- package/fesm2022/malva-ui-core-list.mjs.map +1 -0
- package/fesm2022/malva-ui-core-loader.mjs +141 -0
- package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
- package/fesm2022/malva-ui-core-menu.mjs +2540 -0
- package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
- package/fesm2022/malva-ui-core-notification.mjs +201 -0
- package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
- package/fesm2022/malva-ui-core-number-input.mjs +404 -0
- package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-page.mjs +1898 -0
- package/fesm2022/malva-ui-core-page.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pagination.mjs +458 -0
- package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
- package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-popup.mjs +1488 -0
- package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
- package/fesm2022/malva-ui-core-progress.mjs +109 -0
- package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
- package/fesm2022/malva-ui-core-radio.mjs +317 -0
- package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
- package/fesm2022/malva-ui-core-rating.mjs +236 -0
- package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-search-field.mjs +578 -0
- package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
- package/fesm2022/malva-ui-core-segmented.mjs +458 -0
- package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
- package/fesm2022/malva-ui-core-select.mjs +855 -0
- package/fesm2022/malva-ui-core-select.mjs.map +1 -0
- package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
- package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
- package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
- package/fesm2022/malva-ui-core-slider.mjs +514 -0
- package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
- package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
- package/fesm2022/malva-ui-core-stepper.mjs +332 -0
- package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
- package/fesm2022/malva-ui-core-switch.mjs +272 -0
- package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
- package/fesm2022/malva-ui-core-table.mjs +79 -0
- package/fesm2022/malva-ui-core-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tabs.mjs +794 -0
- package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
- package/fesm2022/malva-ui-core-textarea.mjs +201 -0
- package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tile.mjs +1404 -0
- package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
- package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
- package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-timeline.mjs +216 -0
- package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
- package/fesm2022/malva-ui-core-title.mjs +178 -0
- package/fesm2022/malva-ui-core-title.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toast.mjs +749 -0
- package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
- package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
- package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tree.mjs +505 -0
- package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
- package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
- package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
- package/fesm2022/malva-ui-core.mjs +77 -0
- package/fesm2022/malva-ui-core.mjs.map +1 -0
- package/package.json +179 -156
- package/styles/malva-ui.css +253 -220
- package/styles/tokens.md +174 -173
- package/table/README.md +46 -0
- package/types/malva-ui-core-accordion.d.ts +121 -0
- package/types/malva-ui-core-action-bar.d.ts +82 -0
- package/types/malva-ui-core-alert.d.ts +131 -0
- package/types/malva-ui-core-autocomplete.d.ts +301 -0
- package/types/malva-ui-core-avatar-group.d.ts +119 -0
- package/types/malva-ui-core-avatar.d.ts +156 -0
- package/types/malva-ui-core-badge.d.ts +97 -0
- package/types/malva-ui-core-bottom-nav.d.ts +104 -0
- package/types/malva-ui-core-breadcrumb.d.ts +308 -0
- package/types/malva-ui-core-button.d.ts +194 -0
- package/types/malva-ui-core-calendar.d.ts +339 -0
- package/types/malva-ui-core-card.d.ts +88 -0
- package/types/malva-ui-core-chat.d.ts +375 -0
- package/types/malva-ui-core-checkbox.d.ts +158 -0
- package/types/malva-ui-core-chip.d.ts +128 -0
- package/types/malva-ui-core-color-picker.d.ts +442 -0
- package/types/malva-ui-core-combobox.d.ts +419 -0
- package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
- package/types/malva-ui-core-data-table.d.ts +1074 -0
- package/types/malva-ui-core-date-range-picker.d.ts +149 -0
- package/types/malva-ui-core-day-picker.d.ts +55 -0
- package/types/malva-ui-core-dialog.d.ts +597 -0
- package/types/malva-ui-core-divider.d.ts +68 -0
- package/types/malva-ui-core-drawer.d.ts +333 -0
- package/types/malva-ui-core-dropdown.d.ts +592 -0
- package/types/malva-ui-core-empty-state.d.ts +37 -0
- package/types/malva-ui-core-expand.d.ts +102 -0
- package/types/malva-ui-core-file-upload.d.ts +267 -0
- package/types/malva-ui-core-filter.d.ts +552 -0
- package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
- package/types/malva-ui-core-form-utils.d.ts +579 -0
- package/types/malva-ui-core-form.d.ts +176 -0
- package/types/malva-ui-core-icon-toggle.d.ts +80 -0
- package/types/malva-ui-core-input.d.ts +262 -0
- package/types/malva-ui-core-kbd.d.ts +56 -0
- package/types/malva-ui-core-layout.d.ts +70 -0
- package/types/malva-ui-core-link.d.ts +28 -0
- package/types/malva-ui-core-list.d.ts +252 -0
- package/types/malva-ui-core-loader.d.ts +89 -0
- package/types/malva-ui-core-menu.d.ts +954 -0
- package/types/malva-ui-core-notification.d.ts +122 -0
- package/types/malva-ui-core-number-input.d.ts +167 -0
- package/types/malva-ui-core-page.d.ts +799 -0
- package/types/malva-ui-core-pagination.d.ts +261 -0
- package/types/malva-ui-core-pin-input.d.ts +203 -0
- package/types/malva-ui-core-popup.d.ts +834 -0
- package/types/malva-ui-core-progress.d.ts +73 -0
- package/types/malva-ui-core-radio.d.ts +130 -0
- package/types/malva-ui-core-rating.d.ts +115 -0
- package/types/malva-ui-core-scrollbar.d.ts +203 -0
- package/types/malva-ui-core-search-field.d.ts +408 -0
- package/types/malva-ui-core-segmented.d.ts +206 -0
- package/types/malva-ui-core-select.d.ts +456 -0
- package/types/malva-ui-core-sidebar.d.ts +698 -0
- package/types/malva-ui-core-skeleton.d.ts +64 -0
- package/types/malva-ui-core-slider.d.ts +219 -0
- package/types/malva-ui-core-split-pane.d.ts +149 -0
- package/types/malva-ui-core-status-indicator.d.ts +65 -0
- package/types/malva-ui-core-stepper.d.ts +168 -0
- package/types/malva-ui-core-switch.d.ts +146 -0
- package/types/malva-ui-core-table.d.ts +37 -0
- package/types/malva-ui-core-tabs.d.ts +339 -0
- package/types/malva-ui-core-textarea.d.ts +79 -0
- package/types/malva-ui-core-tile.d.ts +373 -0
- package/types/malva-ui-core-time-picker.d.ts +141 -0
- package/types/malva-ui-core-timeline.d.ts +188 -0
- package/types/malva-ui-core-title.d.ts +66 -0
- package/types/malva-ui-core-toast.d.ts +432 -0
- package/types/malva-ui-core-tokenizer.d.ts +217 -0
- package/types/malva-ui-core-toolbar.d.ts +91 -0
- package/types/malva-ui-core-tooltip.d.ts +200 -0
- package/types/malva-ui-core-tree.d.ts +289 -0
- package/types/malva-ui-core-view-variant.d.ts +207 -0
- package/types/malva-ui-core.d.ts +72 -0
- package/view-variant/README.md +3 -0
- package/accordion/index.d.ts +0 -3
- package/accordion/lib/accordion/accordion.d.ts +0 -47
- package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
- package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
- package/accordion/malva-ui-core-accordion.d.ts +0 -5
- package/action-bar/index.d.ts +0 -4
- package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
- package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
- package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
- package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
- package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
- package/alert/index.d.ts +0 -2
- package/alert/lib/alert/alert.d.ts +0 -84
- package/alert/lib/alert/alert.directives.d.ts +0 -44
- package/alert/malva-ui-core-alert.d.ts +0 -5
- package/autocomplete/index.d.ts +0 -1
- package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
- package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
- package/avatar/index.d.ts +0 -2
- package/avatar/lib/avatar/avatar.d.ts +0 -125
- package/avatar/lib/color-from-text.pipe.d.ts +0 -21
- package/avatar/malva-ui-core-avatar.d.ts +0 -5
- package/avatar-group/index.d.ts +0 -1
- package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
- package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
- package/badge/index.d.ts +0 -2
- package/badge/lib/badge/badge.d.ts +0 -59
- package/badge/lib/badge-icon.d.ts +0 -35
- package/badge/malva-ui-core-badge.d.ts +0 -5
- package/bottom-nav/index.d.ts +0 -1
- package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
- package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
- package/breadcrumb/index.d.ts +0 -5
- package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
- package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
- package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
- package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
- package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
- package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
- package/button/index.d.ts +0 -7
- package/button/lib/button/button.d.ts +0 -61
- package/button/lib/button-close/button-close.d.ts +0 -24
- package/button/lib/button-group/button-group.d.ts +0 -21
- package/button/lib/button-split/button-split.d.ts +0 -21
- package/button/lib/button-toggle/button-toggle.d.ts +0 -33
- package/button/lib/button-variant.token.d.ts +0 -13
- package/button/lib/button.directives.d.ts +0 -14
- package/button/lib/button.types.d.ts +0 -8
- package/button/malva-ui-core-button.d.ts +0 -5
- package/calendar/index.d.ts +0 -3
- package/calendar/lib/calendar/calendar.d.ts +0 -182
- package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
- package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
- package/calendar/malva-ui-core-calendar.d.ts +0 -5
- package/card/index.d.ts +0 -5
- package/card/lib/card/card.d.ts +0 -43
- package/card/lib/card-actions-def.d.ts +0 -10
- package/card/lib/card-footer-def.d.ts +0 -13
- package/card/lib/card-header-def.d.ts +0 -10
- package/card/lib/card-subheader-def.d.ts +0 -16
- package/card/malva-ui-core-card.d.ts +0 -5
- package/chat/index.d.ts +0 -9
- package/chat/lib/chat/chat.d.ts +0 -133
- package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
- package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
- package/chat/lib/chat-date/chat-date.d.ts +0 -16
- package/chat/lib/chat-format.d.ts +0 -5
- package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
- package/chat/lib/chat-message/chat-message.d.ts +0 -45
- package/chat/lib/chat-render-list.d.ts +0 -16
- package/chat/lib/chat-tokens.d.ts +0 -25
- package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
- package/chat/lib/chat.types.d.ts +0 -80
- package/chat/lib/defs/chat-author-def.d.ts +0 -30
- package/chat/lib/defs/chat-date-def.d.ts +0 -22
- package/chat/lib/defs/chat-message-def.d.ts +0 -23
- package/chat/malva-ui-core-chat.d.ts +0 -5
- package/checkbox/index.d.ts +0 -3
- package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
- package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
- package/checkbox/lib/checkbox-group-token.d.ts +0 -6
- package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
- package/chip/index.d.ts +0 -2
- package/chip/lib/chip/chip.d.ts +0 -107
- package/chip/lib/chip/chip.directives.d.ts +0 -18
- package/chip/malva-ui-core-chip.d.ts +0 -5
- package/color-picker/index.d.ts +0 -3
- package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
- package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
- package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
- package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
- package/combobox/index.d.ts +0 -2
- package/combobox/lib/combobox/combobox.d.ts +0 -400
- package/combobox/lib/combobox-template.directives.d.ts +0 -10
- package/combobox/malva-ui-core-combobox.d.ts +0 -5
- package/copy-to-clipboard/index.d.ts +0 -1
- package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
- package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
- package/data-table/index.d.ts +0 -8
- package/data-table/lib/data-source.d.ts +0 -5
- package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
- package/data-table/lib/data-table/data-table.d.ts +0 -699
- package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
- package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
- package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
- package/data-table/lib/data-table-cell.d.ts +0 -44
- package/data-table/lib/data-table-edit-cell.d.ts +0 -44
- package/data-table/lib/data-table-error.d.ts +0 -37
- package/data-table/lib/data-table-footer.d.ts +0 -26
- package/data-table/lib/data-table-no-data.d.ts +0 -19
- package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
- package/data-table/lib/types.d.ts +0 -134
- package/data-table/malva-ui-core-data-table.d.ts +0 -5
- package/date-range-picker/index.d.ts +0 -1
- package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
- package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
- package/day-picker/index.d.ts +0 -1
- package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
- package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
- package/dialog/index.d.ts +0 -11
- package/dialog/lib/confirm-dialog-options.d.ts +0 -41
- package/dialog/lib/confirm-dialog.d.ts +0 -52
- package/dialog/lib/dialog/dialog.d.ts +0 -22
- package/dialog/lib/dialog-body.d.ts +0 -9
- package/dialog/lib/dialog-close.d.ts +0 -27
- package/dialog/lib/dialog-config.d.ts +0 -112
- package/dialog/lib/dialog-container.d.ts +0 -40
- package/dialog/lib/dialog-footer.d.ts +0 -13
- package/dialog/lib/dialog-header.d.ts +0 -74
- package/dialog/lib/dialog-ref.d.ts +0 -95
- package/dialog/lib/dialog-template.d.ts +0 -65
- package/dialog/lib/dialog-text-content.d.ts +0 -24
- package/dialog/lib/dialog.service.d.ts +0 -63
- package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
- package/dialog/lib/inject-dialog-ref.d.ts +0 -8
- package/dialog/lib/routable-dialog.d.ts +0 -30
- package/dialog/malva-ui-core-dialog.d.ts +0 -5
- package/divider/index.d.ts +0 -1
- package/divider/lib/divider/divider.d.ts +0 -64
- package/divider/malva-ui-core-divider.d.ts +0 -5
- package/drawer/index.d.ts +0 -11
- package/drawer/lib/drawer/drawer.d.ts +0 -106
- package/drawer/lib/drawer-body.d.ts +0 -8
- package/drawer/lib/drawer-content.d.ts +0 -6
- package/drawer/lib/drawer-footer.d.ts +0 -5
- package/drawer/lib/drawer-header.d.ts +0 -5
- package/drawer/lib/drawer-ref.d.ts +0 -29
- package/drawer/lib/drawer-resize.d.ts +0 -65
- package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
- package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
- package/drawer/lib/drawer-sections.service.d.ts +0 -42
- package/drawer/lib/drawer.service.d.ts +0 -66
- package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
- package/drawer/lib/routable-drawer.d.ts +0 -30
- package/drawer/malva-ui-core-drawer.d.ts +0 -5
- package/dropdown/index.d.ts +0 -9
- package/dropdown/lib/active-descendant.d.ts +0 -64
- package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
- package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
- package/dropdown/lib/option-matcher.d.ts +0 -87
- package/dropdown/lib/options-adapter.d.ts +0 -142
- package/dropdown/lib/options-result.d.ts +0 -6
- package/dropdown/lib/reconciliation.d.ts +0 -19
- package/dropdown/lib/select-data-source.d.ts +0 -18
- package/dropdown/lib/select-option.d.ts +0 -37
- package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
- package/empty-state/index.d.ts +0 -1
- package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
- package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
- package/esm2022/accordion/index.js +0 -4
- package/esm2022/accordion/index.js.map +0 -1
- package/esm2022/accordion/lib/accordion/accordion.js +0 -65
- package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
- package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
- package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
- package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
- package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
- package/esm2022/action-bar/index.js +0 -5
- package/esm2022/action-bar/index.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
- package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
- package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
- package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
- package/esm2022/alert/index.js +0 -3
- package/esm2022/alert/index.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.directives.js +0 -53
- package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.js +0 -118
- package/esm2022/alert/lib/alert/alert.js.map +0 -1
- package/esm2022/alert/malva-ui-core-alert.js +0 -5
- package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
- package/esm2022/autocomplete/index.js +0 -2
- package/esm2022/autocomplete/index.js.map +0 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
- package/esm2022/avatar/index.js +0 -3
- package/esm2022/avatar/index.js.map +0 -1
- package/esm2022/avatar/lib/avatar/avatar.js +0 -192
- package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
- package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
- package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
- package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
- package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
- package/esm2022/avatar-group/index.js +0 -2
- package/esm2022/avatar-group/index.js.map +0 -1
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
- package/esm2022/badge/index.js +0 -3
- package/esm2022/badge/index.js.map +0 -1
- package/esm2022/badge/lib/badge/badge.js +0 -71
- package/esm2022/badge/lib/badge/badge.js.map +0 -1
- package/esm2022/badge/lib/badge-icon.js +0 -47
- package/esm2022/badge/lib/badge-icon.js.map +0 -1
- package/esm2022/badge/malva-ui-core-badge.js +0 -5
- package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
- package/esm2022/bottom-nav/index.js +0 -2
- package/esm2022/bottom-nav/index.js.map +0 -1
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
- package/esm2022/breadcrumb/index.js +0 -6
- package/esm2022/breadcrumb/index.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
- package/esm2022/button/index.js +0 -8
- package/esm2022/button/index.js.map +0 -1
- package/esm2022/button/lib/button/button.js +0 -137
- package/esm2022/button/lib/button/button.js.map +0 -1
- package/esm2022/button/lib/button-close/button-close.js +0 -52
- package/esm2022/button/lib/button-close/button-close.js.map +0 -1
- package/esm2022/button/lib/button-group/button-group.js +0 -44
- package/esm2022/button/lib/button-group/button-group.js.map +0 -1
- package/esm2022/button/lib/button-split/button-split.js +0 -44
- package/esm2022/button/lib/button-split/button-split.js.map +0 -1
- package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
- package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
- package/esm2022/button/lib/button-variant.token.js +0 -4
- package/esm2022/button/lib/button-variant.token.js.map +0 -1
- package/esm2022/button/lib/button.directives.js +0 -37
- package/esm2022/button/lib/button.directives.js.map +0 -1
- package/esm2022/button/lib/button.types.js +0 -1
- package/esm2022/button/lib/button.types.js.map +0 -1
- package/esm2022/button/malva-ui-core-button.js +0 -5
- package/esm2022/button/malva-ui-core-button.js.map +0 -1
- package/esm2022/calendar/index.js +0 -4
- package/esm2022/calendar/index.js.map +0 -1
- package/esm2022/calendar/lib/calendar/calendar.js +0 -672
- package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
- package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
- package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
- package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
- package/esm2022/card/index.js +0 -6
- package/esm2022/card/index.js.map +0 -1
- package/esm2022/card/lib/card/card.js +0 -54
- package/esm2022/card/lib/card/card.js.map +0 -1
- package/esm2022/card/lib/card-actions-def.js +0 -27
- package/esm2022/card/lib/card-actions-def.js.map +0 -1
- package/esm2022/card/lib/card-footer-def.js +0 -32
- package/esm2022/card/lib/card-footer-def.js.map +0 -1
- package/esm2022/card/lib/card-header-def.js +0 -27
- package/esm2022/card/lib/card-header-def.js.map +0 -1
- package/esm2022/card/lib/card-subheader-def.js +0 -33
- package/esm2022/card/lib/card-subheader-def.js.map +0 -1
- package/esm2022/card/malva-ui-core-card.js +0 -5
- package/esm2022/card/malva-ui-core-card.js.map +0 -1
- package/esm2022/chat/index.js +0 -10
- package/esm2022/chat/index.js.map +0 -1
- package/esm2022/chat/lib/chat/chat.js +0 -326
- package/esm2022/chat/lib/chat/chat.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
- package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
- package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
- package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
- package/esm2022/chat/lib/chat-format.js +0 -11
- package/esm2022/chat/lib/chat-format.js.map +0 -1
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
- package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
- package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
- package/esm2022/chat/lib/chat-render-list.js +0 -55
- package/esm2022/chat/lib/chat-render-list.js.map +0 -1
- package/esm2022/chat/lib/chat-tokens.js +0 -9
- package/esm2022/chat/lib/chat-tokens.js.map +0 -1
- package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
- package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
- package/esm2022/chat/lib/chat.types.js +0 -1
- package/esm2022/chat/lib/chat.types.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
- package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
- package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
- package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
- package/esm2022/chat/malva-ui-core-chat.js +0 -5
- package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
- package/esm2022/checkbox/index.js +0 -4
- package/esm2022/checkbox/index.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
- package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
- package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
- package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
- package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
- package/esm2022/chip/index.js +0 -3
- package/esm2022/chip/index.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.directives.js +0 -32
- package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.js +0 -140
- package/esm2022/chip/lib/chip/chip.js.map +0 -1
- package/esm2022/chip/malva-ui-core-chip.js +0 -5
- package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
- package/esm2022/color-picker/index.js +0 -4
- package/esm2022/color-picker/index.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
- package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
- package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
- package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
- package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
- package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
- package/esm2022/combobox/index.js +0 -3
- package/esm2022/combobox/index.js.map +0 -1
- package/esm2022/combobox/lib/combobox/combobox.js +0 -911
- package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
- package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
- package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
- package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
- package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
- package/esm2022/copy-to-clipboard/index.js +0 -2
- package/esm2022/copy-to-clipboard/index.js.map +0 -1
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
- package/esm2022/data-table/index.js +0 -9
- package/esm2022/data-table/index.js.map +0 -1
- package/esm2022/data-table/lib/data-source.js +0 -6
- package/esm2022/data-table/lib/data-source.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
- package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
- package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-error.js +0 -37
- package/esm2022/data-table/lib/data-table-error.js.map +0 -1
- package/esm2022/data-table/lib/data-table-footer.js +0 -33
- package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
- package/esm2022/data-table/lib/data-table-no-data.js +0 -26
- package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
- package/esm2022/data-table/lib/types.js +0 -1
- package/esm2022/data-table/lib/types.js.map +0 -1
- package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
- package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
- package/esm2022/date-range-picker/index.js +0 -2
- package/esm2022/date-range-picker/index.js.map +0 -1
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
- package/esm2022/day-picker/index.js +0 -2
- package/esm2022/day-picker/index.js.map +0 -1
- package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
- package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
- package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
- package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
- package/esm2022/dialog/index.js +0 -12
- package/esm2022/dialog/index.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog.js +0 -155
- package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog/dialog.js +0 -40
- package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog-body.js +0 -33
- package/esm2022/dialog/lib/dialog-body.js.map +0 -1
- package/esm2022/dialog/lib/dialog-close.js +0 -45
- package/esm2022/dialog/lib/dialog-close.js.map +0 -1
- package/esm2022/dialog/lib/dialog-config.js +0 -23
- package/esm2022/dialog/lib/dialog-config.js.map +0 -1
- package/esm2022/dialog/lib/dialog-container.js +0 -69
- package/esm2022/dialog/lib/dialog-container.js.map +0 -1
- package/esm2022/dialog/lib/dialog-footer.js +0 -29
- package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
- package/esm2022/dialog/lib/dialog-header.js +0 -181
- package/esm2022/dialog/lib/dialog-header.js.map +0 -1
- package/esm2022/dialog/lib/dialog-ref.js +0 -167
- package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/dialog-template.js +0 -136
- package/esm2022/dialog/lib/dialog-template.js.map +0 -1
- package/esm2022/dialog/lib/dialog-text-content.js +0 -59
- package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
- package/esm2022/dialog/lib/dialog.service.js +0 -205
- package/esm2022/dialog/lib/dialog.service.js.map +0 -1
- package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
- package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
- package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
- package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/routable-dialog.js +0 -91
- package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
- package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
- package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
- package/esm2022/divider/index.js +0 -2
- package/esm2022/divider/index.js.map +0 -1
- package/esm2022/divider/lib/divider/divider.js +0 -73
- package/esm2022/divider/lib/divider/divider.js.map +0 -1
- package/esm2022/divider/malva-ui-core-divider.js +0 -5
- package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
- package/esm2022/drawer/index.js +0 -12
- package/esm2022/drawer/index.js.map +0 -1
- package/esm2022/drawer/lib/drawer/drawer.js +0 -180
- package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-body.js +0 -32
- package/esm2022/drawer/lib/drawer-body.js.map +0 -1
- package/esm2022/drawer/lib/drawer-content.js +0 -14
- package/esm2022/drawer/lib/drawer-content.js.map +0 -1
- package/esm2022/drawer/lib/drawer-footer.js +0 -14
- package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-header.js +0 -14
- package/esm2022/drawer/lib/drawer-header.js.map +0 -1
- package/esm2022/drawer/lib/drawer-ref.js +0 -31
- package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
- package/esm2022/drawer/lib/drawer-resize.js +0 -243
- package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
- package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
- package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
- package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
- package/esm2022/drawer/lib/drawer.service.js +0 -86
- package/esm2022/drawer/lib/drawer.service.js.map +0 -1
- package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
- package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
- package/esm2022/drawer/lib/routable-drawer.js +0 -91
- package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
- package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
- package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
- package/esm2022/dropdown/index.js +0 -10
- package/esm2022/dropdown/index.js.map +0 -1
- package/esm2022/dropdown/lib/active-descendant.js +0 -92
- package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
- package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
- package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
- package/esm2022/dropdown/lib/option-matcher.js +0 -124
- package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
- package/esm2022/dropdown/lib/options-adapter.js +0 -356
- package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
- package/esm2022/dropdown/lib/options-result.js +0 -11
- package/esm2022/dropdown/lib/options-result.js.map +0 -1
- package/esm2022/dropdown/lib/reconciliation.js +0 -32
- package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
- package/esm2022/dropdown/lib/select-data-source.js +0 -21
- package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
- package/esm2022/dropdown/lib/select-option.js +0 -25
- package/esm2022/dropdown/lib/select-option.js.map +0 -1
- package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
- package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
- package/esm2022/empty-state/index.js +0 -2
- package/esm2022/empty-state/index.js.map +0 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
- package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
- package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
- package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
- package/esm2022/expand/index.js +0 -3
- package/esm2022/expand/index.js.map +0 -1
- package/esm2022/expand/lib/expand/expand-content.js +0 -33
- package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
- package/esm2022/expand/lib/expand/expand.js +0 -93
- package/esm2022/expand/lib/expand/expand.js.map +0 -1
- package/esm2022/expand/malva-ui-core-expand.js +0 -5
- package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
- package/esm2022/file-upload/index.js +0 -5
- package/esm2022/file-upload/index.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
- package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-action.js +0 -65
- package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
- package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
- package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
- package/esm2022/filter/index.js +0 -4
- package/esm2022/filter/index.js.map +0 -1
- package/esm2022/filter/lib/filter/filter.js +0 -552
- package/esm2022/filter/lib/filter/filter.js.map +0 -1
- package/esm2022/filter/lib/filter.types.js +0 -1
- package/esm2022/filter/lib/filter.types.js.map +0 -1
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
- package/esm2022/filter/malva-ui-core-filter.js +0 -5
- package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
- package/esm2022/form/index.js +0 -7
- package/esm2022/form/index.js.map +0 -1
- package/esm2022/form/lib/fieldset/fieldset.js +0 -101
- package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
- package/esm2022/form/lib/fieldset-span.js +0 -49
- package/esm2022/form/lib/fieldset-span.js.map +0 -1
- package/esm2022/form/lib/form/form.js +0 -60
- package/esm2022/form/lib/form/form.js.map +0 -1
- package/esm2022/form/lib/form-actions.js +0 -34
- package/esm2022/form/lib/form-actions.js.map +0 -1
- package/esm2022/form/lib/form-gap.js +0 -15
- package/esm2022/form/lib/form-gap.js.map +0 -1
- package/esm2022/form/lib/form-header.js +0 -27
- package/esm2022/form/lib/form-header.js.map +0 -1
- package/esm2022/form/lib/form.types.js +0 -1
- package/esm2022/form/lib/form.types.js.map +0 -1
- package/esm2022/form/malva-ui-core-form.js +0 -5
- package/esm2022/form/malva-ui-core-form.js.map +0 -1
- package/esm2022/form-utils/index.js +0 -16
- package/esm2022/form-utils/index.js.map +0 -1
- package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
- package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
- package/esm2022/form-utils/lib/description/description.js +0 -24
- package/esm2022/form-utils/lib/description/description.js.map +0 -1
- package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
- package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-sides.js +0 -34
- package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
- package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
- package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
- package/esm2022/form-utils/lib/hint/hint.js +0 -11
- package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
- package/esm2022/form-utils/lib/label/label.js +0 -55
- package/esm2022/form-utils/lib/label/label.js.map +0 -1
- package/esm2022/form-utils/lib/message/message.js +0 -20
- package/esm2022/form-utils/lib/message/message.js.map +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
- package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-state.js +0 -1
- package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
- package/esm2022/form-utils/lib/selection.service.js +0 -81
- package/esm2022/form-utils/lib/selection.service.js.map +0 -1
- package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
- package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
- package/esm2022/form-utils/testing/index.js +0 -2
- package/esm2022/form-utils/testing/index.js.map +0 -1
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
- package/esm2022/index.js +0 -70
- package/esm2022/index.js.map +0 -1
- package/esm2022/input/index.js +0 -4
- package/esm2022/input/index.js.map +0 -1
- package/esm2022/input/lib/input/input-native.js +0 -49
- package/esm2022/input/lib/input/input-native.js.map +0 -1
- package/esm2022/input/lib/input/input-value-accessor.js +0 -4
- package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
- package/esm2022/input/lib/input/input.js +0 -277
- package/esm2022/input/lib/input/input.js.map +0 -1
- package/esm2022/input/lib/input/password-strength.js +0 -46
- package/esm2022/input/lib/input/password-strength.js.map +0 -1
- package/esm2022/input/malva-ui-core-input.js +0 -5
- package/esm2022/input/malva-ui-core-input.js.map +0 -1
- package/esm2022/kbd/index.js +0 -2
- package/esm2022/kbd/index.js.map +0 -1
- package/esm2022/kbd/lib/kbd/kbd.js +0 -124
- package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
- package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
- package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
- package/esm2022/layout/index.js +0 -5
- package/esm2022/layout/index.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
- package/esm2022/layout/lib/layout/layout.js +0 -43
- package/esm2022/layout/lib/layout/layout.js.map +0 -1
- package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
- package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
- package/esm2022/layout/malva-ui-core-layout.js +0 -5
- package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
- package/esm2022/link/index.js +0 -3
- package/esm2022/link/index.js.map +0 -1
- package/esm2022/link/lib/link/link.directives.js +0 -24
- package/esm2022/link/lib/link/link.directives.js.map +0 -1
- package/esm2022/link/lib/link/link.js +0 -61
- package/esm2022/link/lib/link/link.js.map +0 -1
- package/esm2022/link/malva-ui-core-link.js +0 -5
- package/esm2022/link/malva-ui-core-link.js.map +0 -1
- package/esm2022/list/index.js +0 -14
- package/esm2022/list/index.js.map +0 -1
- package/esm2022/list/lib/list/list.js +0 -28
- package/esm2022/list/lib/list/list.js.map +0 -1
- package/esm2022/list/lib/list-item/list-item.js +0 -125
- package/esm2022/list/lib/list-item/list-item.js.map +0 -1
- package/esm2022/list/lib/list-item-actions.js +0 -23
- package/esm2022/list/lib/list-item-actions.js.map +0 -1
- package/esm2022/list/lib/list-item-byline.js +0 -13
- package/esm2022/list/lib/list-item-byline.js.map +0 -1
- package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
- package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
- package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
- package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
- package/esm2022/list/lib/list-item-media.js +0 -13
- package/esm2022/list/lib/list-item-media.js.map +0 -1
- package/esm2022/list/lib/list-item-meta.js +0 -13
- package/esm2022/list/lib/list-item-meta.js.map +0 -1
- package/esm2022/list/lib/list-item-prefix.js +0 -13
- package/esm2022/list/lib/list-item-prefix.js.map +0 -1
- package/esm2022/list/lib/list-item-suffix.js +0 -13
- package/esm2022/list/lib/list-item-suffix.js.map +0 -1
- package/esm2022/list/lib/list-item-template.js +0 -14
- package/esm2022/list/lib/list-item-template.js.map +0 -1
- package/esm2022/list/lib/list-item-title.js +0 -13
- package/esm2022/list/lib/list-item-title.js.map +0 -1
- package/esm2022/list/lib/list-selectable.js +0 -116
- package/esm2022/list/lib/list-selectable.js.map +0 -1
- package/esm2022/list/malva-ui-core-list.js +0 -5
- package/esm2022/list/malva-ui-core-list.js.map +0 -1
- package/esm2022/loader/index.js +0 -2
- package/esm2022/loader/index.js.map +0 -1
- package/esm2022/loader/lib/loader/loader.js +0 -134
- package/esm2022/loader/lib/loader/loader.js.map +0 -1
- package/esm2022/loader/malva-ui-core-loader.js +0 -5
- package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
- package/esm2022/malva-ui-core.js +0 -5
- package/esm2022/malva-ui-core.js.map +0 -1
- package/esm2022/menu/index.js +0 -10
- package/esm2022/menu/index.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
- package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group.js +0 -44
- package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-item.js +0 -117
- package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-separator.js +0 -41
- package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
- package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.js +0 -308
- package/esm2022/menu/lib/menu/menu.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.types.js +0 -4
- package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.js +0 -257
- package/esm2022/menu/lib/menu/menubar.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.types.js +0 -4
- package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
- package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
- package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
- package/esm2022/menu/malva-ui-core-menu.js +0 -5
- package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
- package/esm2022/notification/index.js +0 -5
- package/esm2022/notification/index.js.map +0 -1
- package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
- package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
- package/esm2022/notification/lib/notification-ref.js +0 -13
- package/esm2022/notification/lib/notification-ref.js.map +0 -1
- package/esm2022/notification/lib/notification.service.js +0 -118
- package/esm2022/notification/lib/notification.service.js.map +0 -1
- package/esm2022/notification/lib/notification.types.js +0 -6
- package/esm2022/notification/lib/notification.types.js.map +0 -1
- package/esm2022/notification/malva-ui-core-notification.js +0 -5
- package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
- package/esm2022/number-input/index.js +0 -2
- package/esm2022/number-input/index.js.map +0 -1
- package/esm2022/number-input/lib/number-input/number-input.js +0 -395
- package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
- package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
- package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
- package/esm2022/page/index.js +0 -15
- package/esm2022/page/index.js.map +0 -1
- package/esm2022/page/lib/page/page-scroll.token.js +0 -9
- package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
- package/esm2022/page/lib/page/page-snap-controller.js +0 -170
- package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
- package/esm2022/page/lib/page/page-snap.directive.js +0 -65
- package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
- package/esm2022/page/lib/page/page.js +0 -173
- package/esm2022/page/lib/page/page.js.map +0 -1
- package/esm2022/page/lib/page-content/page-aside.js +0 -13
- package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
- package/esm2022/page/lib/page-content/page-content.js +0 -72
- package/esm2022/page/lib/page-content/page-content.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.js +0 -128
- package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
- package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
- package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.js +0 -124
- package/esm2022/page/lib/page-header/page-header.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
- package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
- package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.js +0 -131
- package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
- package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
- package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary.js +0 -87
- package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
- package/esm2022/page/malva-ui-core-page.js +0 -5
- package/esm2022/page/malva-ui-core-page.js.map +0 -1
- package/esm2022/pagination/index.js +0 -5
- package/esm2022/pagination/index.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
- package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.js +0 -293
- package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
- package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
- package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
- package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
- package/esm2022/pin-input/index.js +0 -3
- package/esm2022/pin-input/index.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
- package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
- package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
- package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
- package/esm2022/popup/index.js +0 -10
- package/esm2022/popup/index.js.map +0 -1
- package/esm2022/popup/lib/popup/popup.js +0 -500
- package/esm2022/popup/lib/popup/popup.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
- package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
- package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
- package/esm2022/popup/lib/popup-content.js +0 -14
- package/esm2022/popup/lib/popup-content.js.map +0 -1
- package/esm2022/popup/lib/popup-header-content.js +0 -26
- package/esm2022/popup/lib/popup-header-content.js.map +0 -1
- package/esm2022/popup/lib/popup-pinned-content.js +0 -25
- package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
- package/esm2022/popup/lib/popup-positions.js +0 -252
- package/esm2022/popup/lib/popup-positions.js.map +0 -1
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
- package/esm2022/popup/lib/popup.service.js +0 -188
- package/esm2022/popup/lib/popup.service.js.map +0 -1
- package/esm2022/popup/malva-ui-core-popup.js +0 -5
- package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
- package/esm2022/progress/index.js +0 -2
- package/esm2022/progress/index.js.map +0 -1
- package/esm2022/progress/lib/progress/progress.js +0 -102
- package/esm2022/progress/lib/progress/progress.js.map +0 -1
- package/esm2022/progress/malva-ui-core-progress.js +0 -5
- package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
- package/esm2022/radio/index.js +0 -3
- package/esm2022/radio/index.js.map +0 -1
- package/esm2022/radio/lib/radio/radio.js +0 -134
- package/esm2022/radio/lib/radio/radio.js.map +0 -1
- package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
- package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
- package/esm2022/radio/lib/radio-group-token.js +0 -3
- package/esm2022/radio/lib/radio-group-token.js.map +0 -1
- package/esm2022/radio/malva-ui-core-radio.js +0 -5
- package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
- package/esm2022/rating/index.js +0 -2
- package/esm2022/rating/index.js.map +0 -1
- package/esm2022/rating/lib/rating/rating.js +0 -208
- package/esm2022/rating/lib/rating/rating.js.map +0 -1
- package/esm2022/rating/malva-ui-core-rating.js +0 -5
- package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
- package/esm2022/scrollbar/index.js +0 -2
- package/esm2022/scrollbar/index.js.map +0 -1
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
- package/esm2022/search-field/index.js +0 -3
- package/esm2022/search-field/index.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-field.js +0 -535
- package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
- package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
- package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
- package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
- package/esm2022/segmented/index.js +0 -5
- package/esm2022/segmented/index.js.map +0 -1
- package/esm2022/segmented/lib/segmented/segmented.js +0 -248
- package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
- package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
- package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
- package/esm2022/segmented/lib/segmented-token.js +0 -4
- package/esm2022/segmented/lib/segmented-token.js.map +0 -1
- package/esm2022/segmented/lib/segmented.types.js +0 -1
- package/esm2022/segmented/lib/segmented.types.js.map +0 -1
- package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
- package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
- package/esm2022/select/index.js +0 -4
- package/esm2022/select/index.js.map +0 -1
- package/esm2022/select/lib/select/select.js +0 -685
- package/esm2022/select/lib/select/select.js.map +0 -1
- package/esm2022/select/lib/select-option.js +0 -2
- package/esm2022/select/lib/select-option.js.map +0 -1
- package/esm2022/select/lib/select-template.directives.js +0 -34
- package/esm2022/select/lib/select-template.directives.js.map +0 -1
- package/esm2022/select/malva-ui-core-select.js +0 -5
- package/esm2022/select/malva-ui-core-select.js.map +0 -1
- package/esm2022/sidebar/index.js +0 -16
- package/esm2022/sidebar/index.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
- package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-content.js +0 -37
- package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-context.js +0 -3
- package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
- package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-header.js +0 -20
- package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
- package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
- package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
- package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
- package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
- package/esm2022/skeleton/index.js +0 -2
- package/esm2022/skeleton/index.js.map +0 -1
- package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
- package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
- package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
- package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
- package/esm2022/slider/index.js +0 -3
- package/esm2022/slider/index.js.map +0 -1
- package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
- package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
- package/esm2022/slider/lib/slider/slider.js +0 -468
- package/esm2022/slider/lib/slider/slider.js.map +0 -1
- package/esm2022/slider/malva-ui-core-slider.js +0 -5
- package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
- package/esm2022/split-pane/index.js +0 -4
- package/esm2022/split-pane/index.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
- package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
- package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
- package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
- package/esm2022/status-indicator/index.js +0 -2
- package/esm2022/status-indicator/index.js.map +0 -1
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
- package/esm2022/stepper/index.js +0 -5
- package/esm2022/stepper/index.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step-header.js +0 -46
- package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step.js +0 -65
- package/esm2022/stepper/lib/stepper/step.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
- package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.js +0 -216
- package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
- package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
- package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
- package/esm2022/switch/index.js +0 -3
- package/esm2022/switch/index.js.map +0 -1
- package/esm2022/switch/lib/switch/switch.js +0 -190
- package/esm2022/switch/lib/switch/switch.js.map +0 -1
- package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
- package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
- package/esm2022/switch/lib/switch-group-token.js +0 -3
- package/esm2022/switch/lib/switch-group-token.js.map +0 -1
- package/esm2022/switch/malva-ui-core-switch.js +0 -5
- package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
- package/esm2022/tabs/index.js +0 -9
- package/esm2022/tabs/index.js.map +0 -1
- package/esm2022/tabs/lib/tab/tab.js +0 -72
- package/esm2022/tabs/lib/tab/tab.js.map +0 -1
- package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
- package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
- package/esm2022/tabs/lib/tab-content-def.js +0 -14
- package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-def.js +0 -17
- package/esm2022/tabs/lib/tab-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-group-token.js +0 -3
- package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
- package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
- package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
- package/esm2022/tabs/lib/tabs/tabs.js +0 -542
- package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
- package/esm2022/tabs/lib/tabs.service.js +0 -83
- package/esm2022/tabs/lib/tabs.service.js.map +0 -1
- package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
- package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
- package/esm2022/textarea/index.js +0 -2
- package/esm2022/textarea/index.js.map +0 -1
- package/esm2022/textarea/lib/textarea/textarea.js +0 -194
- package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
- package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
- package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
- package/esm2022/tile/index.js +0 -3
- package/esm2022/tile/index.js.map +0 -1
- package/esm2022/tile/lib/tile/tile.js +0 -39
- package/esm2022/tile/lib/tile/tile.js.map +0 -1
- package/esm2022/tile/lib/tile-header.js +0 -14
- package/esm2022/tile/lib/tile-header.js.map +0 -1
- package/esm2022/tile/malva-ui-core-tile.js +0 -5
- package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
- package/esm2022/time-picker/index.js +0 -2
- package/esm2022/time-picker/index.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
- package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
- package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
- package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
- package/esm2022/timeline/index.js +0 -6
- package/esm2022/timeline/index.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
- package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.js +0 -36
- package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
- package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
- package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
- package/esm2022/title/index.js +0 -2
- package/esm2022/title/index.js.map +0 -1
- package/esm2022/title/lib/title/title.js +0 -171
- package/esm2022/title/lib/title/title.js.map +0 -1
- package/esm2022/title/malva-ui-core-title.js +0 -5
- package/esm2022/title/malva-ui-core-title.js.map +0 -1
- package/esm2022/toast/index.js +0 -13
- package/esm2022/toast/index.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-container.js +0 -50
- package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-item.js +0 -75
- package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast.service.js +0 -176
- package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
- package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
- package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
- package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
- package/esm2022/toast/lib/toast-ref.js +0 -54
- package/esm2022/toast/lib/toast-ref.js.map +0 -1
- package/esm2022/toast/lib/toast-timer.js +0 -37
- package/esm2022/toast/lib/toast-timer.js.map +0 -1
- package/esm2022/toast/lib/toast.directives.js +0 -76
- package/esm2022/toast/lib/toast.directives.js.map +0 -1
- package/esm2022/toast/lib/toast.service.js +0 -127
- package/esm2022/toast/lib/toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast.types.js +0 -39
- package/esm2022/toast/lib/toast.types.js.map +0 -1
- package/esm2022/toast/malva-ui-core-toast.js +0 -5
- package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
- package/esm2022/tokenizer/index.js +0 -4
- package/esm2022/tokenizer/index.js.map +0 -1
- package/esm2022/tokenizer/lib/token/token.js +0 -123
- package/esm2022/tokenizer/lib/token/token.js.map +0 -1
- package/esm2022/tokenizer/lib/token-template.js +0 -23
- package/esm2022/tokenizer/lib/token-template.js.map +0 -1
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
- package/esm2022/toolbar/index.js +0 -4
- package/esm2022/toolbar/index.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
- package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
- package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
- package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
- package/esm2022/tooltip/index.js +0 -4
- package/esm2022/tooltip/index.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
- package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
- package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
- package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
- package/esm2022/tree/index.js +0 -5
- package/esm2022/tree/index.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-context.js +0 -7
- package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
- package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node.js +0 -1
- package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
- package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
- package/esm2022/tree/lib/tree/tree.js +0 -362
- package/esm2022/tree/lib/tree/tree.js.map +0 -1
- package/esm2022/tree/malva-ui-core-tree.js +0 -5
- package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
- package/expand/index.d.ts +0 -2
- package/expand/lib/expand/expand-content.d.ts +0 -26
- package/expand/lib/expand/expand.d.ts +0 -74
- package/expand/malva-ui-core-expand.d.ts +0 -5
- package/file-upload/index.d.ts +0 -4
- package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
- package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
- package/file-upload/lib/file-upload-action.d.ts +0 -53
- package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
- package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
- package/filter/index.d.ts +0 -3
- package/filter/lib/filter/filter.d.ts +0 -156
- package/filter/lib/filter.types.d.ts +0 -75
- package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
- package/filter/malva-ui-core-filter.d.ts +0 -5
- package/form/index.d.ts +0 -6
- package/form/lib/fieldset/fieldset.d.ts +0 -58
- package/form/lib/fieldset-span.d.ts +0 -28
- package/form/lib/form/form.d.ts +0 -37
- package/form/lib/form-actions.d.ts +0 -20
- package/form/lib/form-gap.d.ts +0 -5
- package/form/lib/form-header.d.ts +0 -18
- package/form/lib/form.types.d.ts +0 -13
- package/form/malva-ui-core-form.d.ts +0 -5
- package/form-utils/index.d.ts +0 -15
- package/form-utils/lib/aria-value-bridge.d.ts +0 -45
- package/form-utils/lib/description/description.d.ts +0 -16
- package/form-utils/lib/focusable-group-base.d.ts +0 -76
- package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
- package/form-utils/lib/form-control-sides.d.ts +0 -20
- package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
- package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
- package/form-utils/lib/form-field/form-field.d.ts +0 -68
- package/form-utils/lib/hint/hint.d.ts +0 -5
- package/form-utils/lib/label/label.d.ts +0 -22
- package/form-utils/lib/message/message.d.ts +0 -7
- package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
- package/form-utils/lib/models/form-control-connector.d.ts +0 -41
- package/form-utils/lib/models/form-state.d.ts +0 -1
- package/form-utils/lib/selection.service.d.ts +0 -27
- package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
- package/form-utils/testing/index.d.ts +0 -1
- package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
- package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
- package/index.d.ts +0 -69
- package/input/index.d.ts +0 -3
- package/input/lib/input/input-native.d.ts +0 -36
- package/input/lib/input/input-value-accessor.d.ts +0 -11
- package/input/lib/input/input.d.ts +0 -189
- package/input/lib/input/password-strength.d.ts +0 -34
- package/input/malva-ui-core-input.d.ts +0 -5
- package/kbd/index.d.ts +0 -1
- package/kbd/lib/kbd/kbd.d.ts +0 -52
- package/kbd/malva-ui-core-kbd.d.ts +0 -5
- package/layout/index.d.ts +0 -4
- package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
- package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
- package/layout/lib/layout/layout.d.ts +0 -20
- package/layout/lib/layout/services/theme.service.d.ts +0 -33
- package/layout/malva-ui-core-layout.d.ts +0 -5
- package/link/index.d.ts +0 -2
- package/link/lib/link/link.d.ts +0 -15
- package/link/lib/link/link.directives.d.ts +0 -10
- package/link/malva-ui-core-link.d.ts +0 -5
- package/list/index.d.ts +0 -13
- package/list/lib/list/list.d.ts +0 -25
- package/list/lib/list-item/list-item.d.ts +0 -67
- package/list/lib/list-item-actions.d.ts +0 -12
- package/list/lib/list-item-byline.d.ts +0 -5
- package/list/lib/list-item-group/list-item-group.d.ts +0 -11
- package/list/lib/list-item-link/list-item-link.d.ts +0 -8
- package/list/lib/list-item-media.d.ts +0 -5
- package/list/lib/list-item-meta.d.ts +0 -5
- package/list/lib/list-item-prefix.d.ts +0 -5
- package/list/lib/list-item-suffix.d.ts +0 -5
- package/list/lib/list-item-template.d.ts +0 -10
- package/list/lib/list-item-title.d.ts +0 -5
- package/list/lib/list-selectable.d.ts +0 -73
- package/list/malva-ui-core-list.d.ts +0 -5
- package/loader/index.d.ts +0 -1
- package/loader/lib/loader/loader.d.ts +0 -84
- package/loader/malva-ui-core-loader.d.ts +0 -5
- package/malva-ui-core.d.ts +0 -5
- package/menu/index.d.ts +0 -9
- package/menu/lib/menu/menu-group-label.d.ts +0 -22
- package/menu/lib/menu/menu-group.d.ts +0 -27
- package/menu/lib/menu/menu-item.d.ts +0 -76
- package/menu/lib/menu/menu-separator.d.ts +0 -18
- package/menu/lib/menu/menu-trigger.d.ts +0 -255
- package/menu/lib/menu/menu.d.ts +0 -149
- package/menu/lib/menu/menu.types.d.ts +0 -13
- package/menu/lib/menu/menubar.d.ts +0 -131
- package/menu/lib/menu/menubar.types.d.ts +0 -82
- package/menu/lib/menu/submenu-aim.d.ts +0 -10
- package/menu/malva-ui-core-menu.d.ts +0 -5
- package/notification/index.d.ts +0 -4
- package/notification/lib/notification-item/notification-item.d.ts +0 -20
- package/notification/lib/notification-ref.d.ts +0 -12
- package/notification/lib/notification.service.d.ts +0 -43
- package/notification/lib/notification.types.d.ts +0 -52
- package/notification/malva-ui-core-notification.d.ts +0 -5
- package/number-input/index.d.ts +0 -1
- package/number-input/lib/number-input/number-input.d.ts +0 -162
- package/number-input/malva-ui-core-number-input.d.ts +0 -5
- package/page/index.d.ts +0 -14
- package/page/lib/page/page-scroll.token.d.ts +0 -19
- package/page/lib/page/page-snap-controller.d.ts +0 -87
- package/page/lib/page/page-snap.directive.d.ts +0 -40
- package/page/lib/page/page.d.ts +0 -74
- package/page/lib/page-content/page-aside.d.ts +0 -7
- package/page/lib/page-content/page-content.d.ts +0 -37
- package/page/lib/page-dock/page-dock.d.ts +0 -50
- package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
- package/page/lib/page-header/page-header.d.ts +0 -77
- package/page/lib/page-header/page-header.directives.d.ts +0 -50
- package/page/lib/page-shell/page-shell-color.d.ts +0 -48
- package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
- package/page/lib/page-shell/page-shell.d.ts +0 -44
- package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
- package/page/lib/page-summary/page-summary-item.d.ts +0 -11
- package/page/lib/page-summary/page-summary.d.ts +0 -36
- package/page/malva-ui-core-page.d.ts +0 -5
- package/pagination/index.d.ts +0 -4
- package/pagination/lib/pagination/pagination.d.ts +0 -182
- package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
- package/pagination/lib/pagination/pagination.model.d.ts +0 -6
- package/pagination/lib/pagination/pagination.service.d.ts +0 -26
- package/pagination/malva-ui-core-pagination.d.ts +0 -5
- package/pin-input/index.d.ts +0 -2
- package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
- package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
- package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
- package/popup/index.d.ts +0 -9
- package/popup/lib/popup/popup.d.ts +0 -343
- package/popup/lib/popup-container/popup-container.d.ts +0 -61
- package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
- package/popup/lib/popup-content.d.ts +0 -6
- package/popup/lib/popup-header-content.d.ts +0 -18
- package/popup/lib/popup-pinned-content.d.ts +0 -17
- package/popup/lib/popup-positions.d.ts +0 -105
- package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
- package/popup/lib/popup.service.d.ts +0 -159
- package/popup/malva-ui-core-popup.d.ts +0 -5
- package/progress/index.d.ts +0 -1
- package/progress/lib/progress/progress.d.ts +0 -69
- package/progress/malva-ui-core-progress.d.ts +0 -5
- package/radio/index.d.ts +0 -2
- package/radio/lib/radio/radio.d.ts +0 -87
- package/radio/lib/radio-group/radio-group.d.ts +0 -35
- package/radio/lib/radio-group-token.d.ts +0 -7
- package/radio/malva-ui-core-radio.d.ts +0 -5
- package/rating/index.d.ts +0 -1
- package/rating/lib/rating/rating.d.ts +0 -100
- package/rating/malva-ui-core-rating.d.ts +0 -5
- package/scrollbar/index.d.ts +0 -1
- package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
- package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
- package/search-field/index.d.ts +0 -2
- package/search-field/lib/search-field/search-field.d.ts +0 -347
- package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
- package/search-field/malva-ui-core-search-field.d.ts +0 -5
- package/segmented/index.d.ts +0 -4
- package/segmented/lib/segmented/segmented.d.ts +0 -80
- package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
- package/segmented/lib/segmented-token.d.ts +0 -22
- package/segmented/lib/segmented.types.d.ts +0 -9
- package/segmented/malva-ui-core-segmented.d.ts +0 -5
- package/select/index.d.ts +0 -3
- package/select/lib/select/select.d.ts +0 -379
- package/select/lib/select-option.d.ts +0 -1
- package/select/lib/select-template.directives.d.ts +0 -14
- package/select/malva-ui-core-select.d.ts +0 -5
- package/sidebar/index.d.ts +0 -15
- package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
- package/sidebar/lib/sidebar-content.d.ts +0 -11
- package/sidebar/lib/sidebar-context.d.ts +0 -23
- package/sidebar/lib/sidebar-footer.d.ts +0 -9
- package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
- package/sidebar/lib/sidebar-header.d.ts +0 -9
- package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
- package/sidebar/lib/sidebar-item-host.d.ts +0 -18
- package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
- package/sidebar/lib/sidebar-mode.d.ts +0 -2
- package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
- package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
- package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
- package/skeleton/index.d.ts +0 -1
- package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
- package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
- package/slider/index.d.ts +0 -2
- package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
- package/slider/lib/slider/slider.d.ts +0 -171
- package/slider/malva-ui-core-slider.d.ts +0 -5
- package/split-pane/index.d.ts +0 -3
- package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
- package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
- package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
- package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
- package/status-indicator/index.d.ts +0 -1
- package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
- package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
- package/stepper/index.d.ts +0 -4
- package/stepper/lib/stepper/step-header.d.ts +0 -34
- package/stepper/lib/stepper/step.d.ts +0 -51
- package/stepper/lib/stepper/stepper-token.d.ts +0 -13
- package/stepper/lib/stepper/stepper.d.ts +0 -98
- package/stepper/lib/stepper/stepper.types.d.ts +0 -4
- package/stepper/malva-ui-core-stepper.d.ts +0 -5
- package/switch/index.d.ts +0 -2
- package/switch/lib/switch/switch.d.ts +0 -118
- package/switch/lib/switch-group/switch-group.d.ts +0 -24
- package/switch/lib/switch-group-token.d.ts +0 -6
- package/switch/malva-ui-core-switch.d.ts +0 -5
- package/tabs/index.d.ts +0 -8
- package/tabs/lib/tab/tab.d.ts +0 -46
- package/tabs/lib/tab-content/tab-content.d.ts +0 -11
- package/tabs/lib/tab-content-def.d.ts +0 -6
- package/tabs/lib/tab-def.d.ts +0 -11
- package/tabs/lib/tab-group-token.d.ts +0 -10
- package/tabs/lib/tab-item/tab-item.d.ts +0 -28
- package/tabs/lib/tabs/tabs.d.ts +0 -202
- package/tabs/lib/tabs.service.d.ts +0 -24
- package/tabs/malva-ui-core-tabs.d.ts +0 -5
- package/textarea/index.d.ts +0 -1
- package/textarea/lib/textarea/textarea.d.ts +0 -77
- package/textarea/malva-ui-core-textarea.d.ts +0 -5
- package/tile/index.d.ts +0 -2
- package/tile/lib/tile/tile.d.ts +0 -20
- package/tile/lib/tile-header.d.ts +0 -6
- package/tile/malva-ui-core-tile.d.ts +0 -5
- package/time-picker/index.d.ts +0 -1
- package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
- package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
- package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
- package/timeline/index.d.ts +0 -5
- package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item.d.ts +0 -52
- package/timeline/lib/timeline/timeline.d.ts +0 -27
- package/timeline/lib/timeline/timeline.types.d.ts +0 -18
- package/timeline/malva-ui-core-timeline.d.ts +0 -5
- package/title/index.d.ts +0 -1
- package/title/lib/title/title.d.ts +0 -63
- package/title/malva-ui-core-title.d.ts +0 -5
- package/toast/index.d.ts +0 -10
- package/toast/lib/abstract-toast-container.d.ts +0 -29
- package/toast/lib/abstract-toast-item.d.ts +0 -44
- package/toast/lib/abstract-toast.service.d.ts +0 -75
- package/toast/lib/toast-container/toast-container.d.ts +0 -23
- package/toast/lib/toast-item/toast-item.d.ts +0 -25
- package/toast/lib/toast-ref.d.ts +0 -33
- package/toast/lib/toast-timer.d.ts +0 -24
- package/toast/lib/toast.directives.d.ts +0 -13
- package/toast/lib/toast.service.d.ts +0 -41
- package/toast/lib/toast.types.d.ts +0 -139
- package/toast/malva-ui-core-toast.d.ts +0 -5
- package/tokenizer/index.d.ts +0 -3
- package/tokenizer/lib/token/token.d.ts +0 -60
- package/tokenizer/lib/token-template.d.ts +0 -29
- package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
- package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
- package/toolbar/index.d.ts +0 -3
- package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
- package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
- package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
- package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
- package/tooltip/index.d.ts +0 -3
- package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
- package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
- package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
- package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
- package/tree/index.d.ts +0 -4
- package/tree/lib/tree/tree-context.d.ts +0 -62
- package/tree/lib/tree/tree-node-def.d.ts +0 -33
- package/tree/lib/tree/tree-node.d.ts +0 -45
- package/tree/lib/tree/tree-subtree.d.ts +0 -63
- package/tree/lib/tree/tree.d.ts +0 -156
- package/tree/malva-ui-core-tree.d.ts +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-filter.mjs","sources":["../../../../libs/core/filter/src/lib/filter-expression.ts","../../../../libs/core/filter/src/lib/filter/filter-value-editor.ts","../../../../libs/core/filter/src/lib/filter/filter.ts","../../../../libs/core/filter/src/lib/filter/filter.html","../../../../libs/core/filter/src/lib/smart-filter-bar/smart-filter-bar.ts","../../../../libs/core/filter/src/lib/smart-filter-bar/smart-filter-bar.html","../../../../libs/core/filter/src/malva-ui-core-filter.ts"],"sourcesContent":["import { normalizeForMatch } from '@malva-ui/cdk/utils';\nimport type {\n MlvFilterCondition,\n MlvFilterConditionStrategy,\n MlvFilterExpression,\n MlvFilterFieldState,\n} from './filter.types';\n\ninterface MlvFieldTerms {\n readonly key: string;\n readonly strategy: MlvFilterConditionStrategy;\n readonly conditions: readonly MlvFilterCondition[];\n}\n\n/** @private Result of normalizing an expression for lossless flat conversion. */\ntype MlvFlatCollection =\n | { readonly kind: 'true' }\n | { readonly kind: 'false' }\n | { readonly kind: 'unrepresentable' }\n | { readonly kind: 'terms'; readonly terms: readonly MlvFieldTerms[] };\n\n/**\n * Converts the flat Smart Filter Bar model to its equivalent expression tree.\n * Empty field states are omitted because they do not constrain a flat query.\n */\nexport function mlvFilterFieldsToExpression(\n fields: readonly MlvFilterFieldState[],\n): MlvFilterExpression {\n return {\n kind: 'group',\n combinator: 'and',\n children: fields.flatMap<MlvFilterExpression>((field) => {\n const children = field.conditions.map((condition) => ({\n kind: 'condition' as const,\n key: field.key,\n condition,\n }));\n if (children.length === 0) return [];\n if (children.length === 1) return children;\n return [\n {\n kind: 'group' as const,\n combinator: field.strategy,\n children,\n },\n ];\n }),\n };\n}\n\n/**\n * Converts an expression to flat field state only when no grouping information\n * would be lost. Direct leaves and singleton groups are canonicalized to the\n * semantically-neutral `and` strategy. Returns `null` for cross-field ORs,\n * contradictory field compositions, and false (empty OR) groups.\n */\nexport function mlvFilterExpressionToFields(\n expression: MlvFilterExpression,\n): MlvFilterFieldState[] | null {\n const collection = _collectFlatExpression(expression);\n if (collection.kind === 'true') return [];\n if (collection.kind !== 'terms') return null;\n\n const fields: MlvFilterFieldState[] = [];\n const fieldIndexes = new Map<string, number>();\n for (const term of collection.terms) {\n const index = fieldIndexes.get(term.key);\n if (index === undefined) {\n fieldIndexes.set(term.key, fields.length);\n fields.push({\n key: term.key,\n strategy: term.strategy,\n conditions: [...term.conditions],\n });\n continue;\n }\n\n const existing = fields[index];\n if (\n existing === undefined ||\n existing.strategy !== 'and' ||\n term.strategy !== 'and'\n ) {\n return null;\n }\n fields[index] = {\n ...existing,\n conditions: [...existing.conditions, ...term.conditions],\n };\n }\n return fields;\n}\n\n/**\n * Evaluates an expression using a domain-owned value reader. String predicates\n * are case- and diacritic-insensitive; equality and membership remain strict.\n */\nexport function mlvMatchesFilterExpression<T>(\n value: T,\n expression: MlvFilterExpression,\n readValue: (value: T, key: string) => unknown,\n): boolean {\n if (expression.kind === 'condition') {\n return _matchesCondition(\n readValue(value, expression.key),\n expression.condition,\n );\n }\n return expression.combinator === 'and'\n ? expression.children.every((child) =>\n mlvMatchesFilterExpression(value, child, readValue),\n )\n : expression.children.some((child) =>\n mlvMatchesFilterExpression(value, child, readValue),\n );\n}\n\n/**\n * @private Normalizes an expression into a boolean identity or flat terms.\n * A distinct unrepresentable state prevents false identities from being\n * confused with shapes that would lose grouping semantics when flattened.\n */\nfunction _collectFlatExpression(\n expression: MlvFilterExpression,\n): MlvFlatCollection {\n if (expression.kind === 'condition') {\n return {\n kind: 'terms',\n terms: [\n {\n key: expression.key,\n strategy: 'and',\n conditions: [expression.condition],\n },\n ],\n };\n }\n return expression.combinator === 'and'\n ? _collectAndGroup(expression.children)\n : _collectOrGroup(expression.children);\n}\n\n/** @private Combines child collections using AND's true/false identities. */\nfunction _collectAndGroup(\n children: readonly MlvFilterExpression[],\n): MlvFlatCollection {\n const terms: MlvFieldTerms[] = [];\n let hasFalseChild = false;\n let hasUnrepresentableChild = false;\n for (const child of children) {\n const collection = _collectFlatExpression(child);\n if (collection.kind === 'false') {\n hasFalseChild = true;\n continue;\n }\n if (collection.kind === 'unrepresentable') {\n hasUnrepresentableChild = true;\n continue;\n }\n if (collection.kind === 'terms') terms.push(...collection.terms);\n }\n if (hasFalseChild) return { kind: 'false' };\n if (hasUnrepresentableChild) return { kind: 'unrepresentable' };\n return terms.length === 0 ? { kind: 'true' } : { kind: 'terms', terms };\n}\n\n/**\n * @private Combines child collections using OR's true/false identities, then\n * flattens only multiple alternatives for one field.\n */\nfunction _collectOrGroup(\n children: readonly MlvFilterExpression[],\n): MlvFlatCollection {\n const alternatives: MlvFieldTerms[][] = [];\n let hasUnrepresentableChild = false;\n for (const child of children) {\n const collection = _collectFlatExpression(child);\n if (collection.kind === 'true') return collection;\n if (collection.kind === 'false') continue;\n if (collection.kind === 'unrepresentable') {\n hasUnrepresentableChild = true;\n continue;\n }\n alternatives.push([...collection.terms]);\n }\n\n if (hasUnrepresentableChild) return { kind: 'unrepresentable' };\n if (alternatives.length === 0) return { kind: 'false' };\n if (alternatives.length === 1) {\n const onlyAlternative = alternatives[0];\n return onlyAlternative === undefined\n ? { kind: 'false' }\n : { kind: 'terms', terms: onlyAlternative };\n }\n\n const terms = alternatives.flat();\n const first = terms[0];\n if (\n first === undefined ||\n terms.length !== alternatives.length ||\n terms.some((term) => term.key !== first.key)\n ) {\n return { kind: 'unrepresentable' };\n }\n\n return {\n kind: 'terms',\n terms: [\n {\n key: first.key,\n strategy: 'or',\n conditions: terms.flatMap((term) => term.conditions),\n },\n ],\n };\n}\n\n/** @private Evaluates one condition without coupling the filter package to a row shape. */\nfunction _matchesCondition(\n value: unknown,\n condition: MlvFilterCondition,\n): boolean {\n const operand = condition.value;\n switch (condition.operator) {\n case 'contains':\n return _normalizedText(value).includes(_normalizedText(operand));\n case 'not-contains':\n return !_normalizedText(value).includes(_normalizedText(operand));\n case 'starts-with':\n return _normalizedText(value).startsWith(_normalizedText(operand));\n case 'ends-with':\n return _normalizedText(value).endsWith(_normalizedText(operand));\n case 'equals':\n return value === operand;\n case 'not-equals':\n return value !== operand;\n case 'greater-than':\n return _compareNumbers(value, operand, (left, right) => left > right);\n case 'greater-than-or-equal':\n return _compareNumbers(value, operand, (left, right) => left >= right);\n case 'less-than':\n return _compareNumbers(value, operand, (left, right) => left < right);\n case 'less-than-or-equal':\n return _compareNumbers(value, operand, (left, right) => left <= right);\n case 'between':\n return _isBetween(value, operand);\n case 'in':\n return Array.isArray(operand) && operand.includes(value);\n case 'not-in':\n return Array.isArray(operand) && !operand.includes(value);\n case 'empty':\n return _isEmpty(value);\n case 'not-empty':\n return !_isEmpty(value);\n }\n}\n\n/** @private Normalizes text according to the existing data-source predicate contract. */\nfunction _normalizedText(value: unknown): string {\n return normalizeForMatch(String(value ?? ''));\n}\n\n/** @private Converts number-editor compatible values to a finite number. */\nfunction _toFiniteNumber(value: unknown): number | null {\n if (typeof value === 'number') return Number.isFinite(value) ? value : null;\n if (typeof value !== 'string' || value.trim() === '') return null;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\n/** @private Applies one numeric relation only to two valid finite numeric values. */\nfunction _compareNumbers(\n value: unknown,\n operand: unknown,\n compare: (value: number, operand: number) => boolean,\n): boolean {\n const numericValue = _toFiniteNumber(value);\n const numericOperand = _toFiniteNumber(operand);\n return (\n numericValue !== null &&\n numericOperand !== null &&\n compare(numericValue, numericOperand)\n );\n}\n\n/** @private Applies an inclusive ordered numeric range with an exact two-value operand. */\nfunction _isBetween(value: unknown, operand: unknown): boolean {\n if (!Array.isArray(operand) || operand.length !== 2) return false;\n const numericValue = _toFiniteNumber(value);\n const minimum = _toFiniteNumber(operand[0]);\n const maximum = _toFiniteNumber(operand[1]);\n return (\n numericValue !== null &&\n minimum !== null &&\n maximum !== null &&\n minimum <= maximum &&\n numericValue >= minimum &&\n numericValue <= maximum\n );\n}\n\n/** @private Treats nullish values, empty strings, and empty arrays as empty. */\nfunction _isEmpty(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0)\n );\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport type { MlvFilterCondition, MlvFilterOperator } from '../filter.types';\n\n/** Template context available to a custom condition value editor. */\nexport interface MlvFilterValueEditorContext {\n /** Current condition value (scalar, or the range array for `between`). */\n $implicit: unknown;\n /** Full condition being edited. */\n condition: MlvFilterCondition;\n /** Condition index within the editor. */\n index: number;\n /** Current operator of the condition. */\n operator: MlvFilterOperator;\n /** Whether the editor must reject changes (filter disabled or loading). */\n disabled: boolean;\n /** Resolved value placeholder. */\n placeholder: string;\n /** Writes the draft value; commits immediately in live apply mode. */\n setValue: (value: unknown) => void;\n /** Applies the draft in explicit mode (Enter-equivalent). No-op in live mode. */\n commit: () => void;\n}\n\n/**\n * Marks an `ng-template` as the value editor for free-form filter conditions.\n * Standalone `mlv-filter`: project the template as content. Inside\n * `mlv-smart-filter-bar`: set the input to a definition key to target one\n * field; an empty key is the fallback for every free-form field.\n *\n * ```html\n * <mlv-filter label=\"Renewal\" editor=\"text\">\n * <ng-template mlvFilterValueEditor let-value let-set=\"setValue\">\n * <mlv-day-picker [value]=\"$any(value)\" (valueChange)=\"set($event)\" />\n * </ng-template>\n * </mlv-filter>\n * ```\n */\n@Directive({ selector: '[mlvFilterValueEditor]' })\nexport class MlvFilterValueEditorDef {\n /** Definition key this editor targets; empty targets all free-form fields. */\n readonly mlvFilterValueEditor = input<string>('');\n\n /** The template rendered in place of the built-in value input. */\n readonly templateRef = inject(TemplateRef<MlvFilterValueEditorContext>);\n\n /**\n * Type guard for template context inference.\n * @internal\n */\n static ngTemplateContextGuard(\n _dir: MlvFilterValueEditorDef,\n _ctx: unknown,\n ): _ctx is MlvFilterValueEditorContext {\n return true;\n }\n}\n","import { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n LucideChevronDown,\n LucidePlus,\n LucideTrash2,\n LucideX,\n} from '@lucide/angular';\nimport { deepEqual } from 'fast-equals';\nimport {\n MlvClick,\n MlvTabbableElementService,\n} from '@malva-ui/cdk/accessibility';\nimport { mlvNextId, MlvSpacer } from '@malva-ui/cdk/utils';\nimport { MlvButton, MlvButtonIcon } from '@malva-ui/core/button';\nimport type { MlvSelectOption } from '@malva-ui/core/dropdown';\nimport {\n MlvDropdownPanel,\n filteredOutCommitted,\n isReconciliationEmit,\n} from '@malva-ui/core/dropdown';\nimport { MlvSelectionService } from '@malva-ui/core/form-utils';\nimport { MlvInput } from '@malva-ui/core/input';\nimport {\n MlvPopup,\n MlvPopupContent,\n MlvPopupTrigger,\n} from '@malva-ui/core/popup';\nimport type { MlvSelectOptionTransform } from '@malva-ui/core/select';\nimport { MlvSelect } from '@malva-ui/core/select';\nimport { MLV_FILTER_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\nimport type {\n MlvFilterApplyMode,\n MlvFilterCondition,\n MlvFilterConditionStrategy,\n MlvFilterEditor,\n MlvFilterOperator,\n MlvFilterOption,\n} from '../filter.types';\nimport type { MlvFilterValueEditorContext } from './filter-value-editor';\nimport { MlvFilterValueEditorDef } from './filter-value-editor';\nimport { MlvToolbar } from '@malva-ui/core/toolbar';\nimport { MlvLink } from '@malva-ui/core/link';\n\n/** Visual presentation of one field filter. */\ntype MlvFilterAppearance = 'field' | 'query';\n\n/** Default operators for free-form filters. */\nconst DEFAULT_OPERATORS: readonly MlvFilterOperator[] = [\n 'contains',\n 'not-contains',\n 'equals',\n 'not-equals',\n];\n\n/**\n * Controls a custom value editor may expose as its first focus target. Used\n * only when the CDK interactivity checker finds nothing, which happens in\n * environments without layout geometry.\n */\nconst FOCUSABLE_EDITOR_SELECTOR = [\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n].join(',');\n\n/**\n * Height budget (px) for the bounded options panel — the 20rem slab the\n * hand-rolled listbox used, kept instead of the dropdown panel's taller\n * viewport-derived default. `MlvDropdownPanel.maxHeight` is px-only.\n */\nconst OPTIONS_MAX_HEIGHT = 320;\n\n/** Returns whether an operator requires no operand. */\nfunction isValuelessOperator(operator: MlvFilterOperator): boolean {\n return operator === 'empty' || operator === 'not-empty';\n}\n\n/**\n * Whether two selections hold the same values, compared as **multisets**:\n * order-insensitive, because aria emits in option-registration order while a\n * draft carries pick order, but duplicate-sensitive, so `['a', 'a']` and\n * `['a', 'b']` are correctly different (a plain \"same length + every value is a\n * member\" test reads those two as equal). Elements compare with `fast-equals`'\n * `deepEqual`, so structured option values match by shape.\n */\nfunction isSameSelection(\n values: readonly unknown[],\n other: readonly unknown[],\n): boolean {\n if (values.length !== other.length) return false;\n const unmatched = [...other];\n return values.every((value) => {\n const index = unmatched.findIndex((candidate) =>\n deepEqual(candidate, value),\n );\n if (index < 0) return false;\n unmatched.splice(index, 1);\n return true;\n });\n}\n\n/** Returns a defensive shallow copy of filter conditions and array operands. */\nfunction cloneConditions(\n conditions: readonly MlvFilterCondition[],\n): MlvFilterCondition[] {\n return conditions.map((condition) => ({\n ...condition,\n value: Array.isArray(condition.value)\n ? [...condition.value]\n : condition.value,\n }));\n}\n\n/** Compact filter trigger and in-place condition editor. */\n@Component({\n selector: 'mlv-filter',\n imports: [\n NgTemplateOutlet,\n MlvButton,\n MlvButtonIcon,\n MlvDropdownPanel,\n MlvInput,\n MlvPopup,\n MlvPopupContent,\n MlvPopupTrigger,\n MlvSelect,\n LucideChevronDown,\n LucidePlus,\n LucideTrash2,\n LucideX,\n MlvToolbar,\n MlvSpacer,\n MlvLink,\n MlvClick,\n ],\n // `mlv-dropdown-panel` injects `MlvSelectionService` non-optionally and expects\n // its owner to provide it, the same way `mlv-select` and `mlv-pagination` do.\n // The panel only uses it as a focus-first channel; the draft conditions stay\n // the single source of truth for what is selected.\n providers: [MlvSelectionService],\n templateUrl: './filter.html',\n styleUrl: './filter.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-filter',\n '[class.mlv-filter--applied]': 'hasValue()',\n '[class.mlv-filter--invalid]': 'invalid()',\n '[class.mlv-filter--open]': 'opened()',\n '[class.mlv-filter--disabled]': 'disabled()',\n '[class.mlv-filter--loading]': 'loading()',\n '[class.mlv-filter--query]': \"appearance() === 'query'\",\n '[attr.aria-busy]': 'loading() || null',\n },\n})\nexport class MlvFilter {\n /** @private Document used for conservative focus restoration. */\n private readonly _document = inject(DOCUMENT);\n\n /** @protected Reactive translated strings for filters. */\n protected readonly _i18n = inject(MLV_FILTER_I18N);\n\n /** @private ICU resolver for parameterized translated strings. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /** @private Tabbable-element lookup for focusing custom editors. */\n private readonly _tabbable = inject(MlvTabbableElementService);\n\n /** Visible filter name. */\n readonly label = input.required<string>();\n\n /** Optional domain key for consumers coordinating multiple filter instances. */\n readonly key = input<string>('');\n\n /** Whether this field renders as a classic control or a natural-language chip. */\n readonly appearance = input<MlvFilterAppearance>('field');\n\n /** Whether an empty query field exposes removal instead of becoming sticky. */\n readonly queryRemovable = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Bounded values shown as a listbox. */\n readonly options = input<readonly MlvFilterOption[]>([]);\n\n /** Explicit editor override. Options are inferred when choices are provided. */\n readonly editor = input<MlvFilterEditor | undefined>(undefined);\n\n /** Whether a bounded editor accepts multiple values. */\n readonly multiple = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether a free-form editor may add multiple conditions. */\n readonly allowMultipleConditions = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Operators available to a free-form editor. */\n readonly operators = input<readonly MlvFilterOperator[]>(DEFAULT_OPERATORS);\n\n /** Optional user-facing labels for domain-specific operator vocabulary. */\n readonly operatorLabels = input<\n Readonly<Partial<Record<MlvFilterOperator, string>>>\n >({});\n\n /** Operator assigned to a newly-created free-form condition. */\n readonly defaultOperator = input<MlvFilterOperator>('contains');\n\n /** Optional placeholder for free-form values. */\n readonly placeholder = input<string | undefined>(undefined);\n\n /** Whether edits publish immediately or wait for the Apply action. */\n readonly applyMode = input<MlvFilterApplyMode>('live');\n\n /** Prevents opening and editing the filter. */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Shows progress and prevents editing while filter metadata is loading. */\n readonly loading = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether the filter trigger represents an invalid field value. */\n readonly invalid = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Id reference describing the filter trigger's validation state. */\n readonly ariaDescribedBy = input<string | undefined>(undefined);\n\n /**\n * Custom value-editor template forwarded by a smart filter bar. Wins over a\n * projected `[mlvFilterValueEditor]` content child.\n */\n readonly valueEditor = input<TemplateRef<MlvFilterValueEditorContext> | null>(\n null,\n );\n\n /** Applied conditions. */\n readonly conditions = model<readonly MlvFilterCondition[]>([]);\n\n /** Combination rule used when more than one condition is present. */\n readonly conditionStrategy = model<MlvFilterConditionStrategy>('or');\n\n /** Whether the condition editor is open. */\n readonly opened = model(false);\n\n /** Emitted whenever live editing or Apply commits conditions. */\n readonly applied = output<readonly MlvFilterCondition[]>();\n\n /** Emitted when the clear action removes every condition. */\n readonly cleared = output<void>();\n\n /** @protected Unique id linking the trigger to its popup content. */\n protected readonly _panelId = mlvNextId('mlv-filter-panel');\n\n /** @protected Height budget handed to the bounded options panel. */\n protected readonly _optionsMaxHeight = OPTIONS_MAX_HEIGHT;\n\n /** @private Working conditions kept separate for explicit-apply mode. */\n private readonly _draftConditions = signal<MlvFilterCondition[]>([]);\n\n /** @private Working condition strategy kept separate until Apply. */\n private readonly _draftStrategy = signal<MlvFilterConditionStrategy>('or');\n\n /** @private Trigger element used for focus restoration. */\n private readonly _trigger = viewChild('trigger', {\n read: ElementRef<HTMLButtonElement>,\n });\n\n /** @private Rendered value fields used to focus the free-form editor. */\n private readonly _conditionInputs = viewChildren(MlvInput);\n\n /** @private Rendered value cells used to focus custom editors. */\n private readonly _valueCells = viewChildren('valueCell', {\n read: ElementRef<HTMLElement>,\n });\n\n /** @private Projected value-editor template for standalone usage. */\n private readonly _contentValueEditor = contentChild(MlvFilterValueEditorDef);\n\n /**\n * @protected Resolved custom value-editor template; `null` renders the\n * built-in input.\n */\n protected readonly _valueEditorTemplate = computed(\n () => this.valueEditor() ?? this._contentValueEditor()?.templateRef ?? null,\n );\n\n /** @protected Resolved editor based on the explicit input and available options. */\n protected readonly _resolvedEditor = computed<MlvFilterEditor>(\n () => this.editor() ?? (this.options().length > 0 ? 'options' : 'text'),\n );\n\n /** @protected Whether the current editor is a bounded options list. */\n protected readonly _usesOptions = computed(\n () => this._resolvedEditor() === 'options',\n );\n\n /** @protected Whether an open editor must reject every state-changing action. */\n protected readonly _editorDisabled = computed(\n () => this.disabled() || this.loading(),\n );\n\n /**\n * @protected Bounded options mapped to the dropdown panel's option shape. A\n * locked editor (disabled or loading) marks every row disabled, so a panel\n * that is already open when loading starts stops offering picks it would\n * silently reject.\n */\n protected readonly _panelOptions = computed<MlvSelectOption<unknown>[]>(\n () => {\n const locked = this._editorDisabled();\n return this.options().map((option) => ({\n label: option.label,\n value: option.value,\n disabled: locked || (option.disabled ?? false),\n }));\n },\n );\n\n /** @protected Values currently selected in the draft, for the dropdown panel. */\n protected readonly _selectedValues = computed<unknown[]>(() =>\n this._draftConditions().flatMap((condition) =>\n Array.isArray(condition.value) ? condition.value : [condition.value],\n ),\n );\n\n /** @protected Valid new-condition operator, constrained to the allowed list. */\n protected readonly _resolvedDefaultOperator = computed(() => {\n const operators = this.operators();\n const requested = this.defaultOperator();\n return operators.includes(requested)\n ? requested\n : (operators[0] ?? 'contains');\n });\n\n /** @protected Snapshot used by the editor template. */\n protected readonly _draft = this._draftConditions.asReadonly();\n\n /** @protected Draft strategy used by the editor template. */\n protected readonly _strategy = this._draftStrategy.asReadonly();\n\n /** @protected Resolved value placeholder with an i18n fallback. */\n protected readonly _resolvedPlaceholder = computed(\n () => this.placeholder() ?? this._i18n().valuePlaceholder,\n );\n\n /** @protected Operator-to-select-option adapter. */\n protected readonly _operatorTransform: MlvSelectOptionTransform<MlvFilterOperator> =\n (operator) => ({ value: operator, label: this._operatorLabel(operator) });\n\n /** @protected Strategy-to-select-option adapter. */\n protected readonly _strategyTransform: MlvSelectOptionTransform<MlvFilterConditionStrategy> =\n (strategy) => ({ value: strategy, label: this._i18n()[strategy] });\n\n /** @protected Strategies available when multiple conditions exist. */\n protected readonly _strategies: readonly MlvFilterConditionStrategy[] = [\n 'and',\n 'or',\n ];\n\n /** @protected Number of selected scalar values represented by the conditions. */\n protected readonly valueCount = computed(\n () => this._displayValues(this.conditions()).length,\n );\n\n /** @protected Whether at least one meaningful condition is applied. */\n protected readonly hasValue = computed(() =>\n this.conditions().some((condition) =>\n this._isConditionMeaningful(condition),\n ),\n );\n\n /** @protected First applied value rendered in the compact trigger. */\n protected readonly primaryValue = computed(\n () => this._displayValues(this.conditions())[0] ?? '',\n );\n\n /** @protected Number of values hidden behind the `+ n more` summary. */\n protected readonly additionalValueCount = computed(() =>\n Math.max(0, this.valueCount() - 1),\n );\n\n /** @protected Accessible description of the current applied state. */\n protected readonly _triggerAriaLabel = computed(() => {\n if (this.appearance() === 'query' && this.hasValue()) {\n return this._querySentence();\n }\n if (!this.hasValue()) {\n return this._resolveMessage('openFilter', { label: this.label() });\n }\n return `${this.label()}: ${this.primaryValue()}${\n this.additionalValueCount() > 0 ? ` ${this._moreValuesLabel()}` : ''\n }`;\n });\n\n /** @protected Translated accessible label for the clear action. */\n protected readonly _clearAriaLabel = computed(() =>\n this.appearance() === 'query' && this.queryRemovable()\n ? this._resolveMessage('removeFilter', { label: this.label() })\n : this._resolveMessage('clearFilter', { label: this.label() }),\n );\n\n /** @protected Whether the compact clear/remove action should be shown. */\n protected readonly _showsClearAction = computed(\n () =>\n this.hasValue() ||\n (this.appearance() === 'query' && this.queryRemovable()),\n );\n\n /** @protected Full natural-language summary used by a query chip. */\n protected readonly _querySentence = computed(() => {\n const conditions = this.conditions().filter((condition) =>\n this._isConditionMeaningful(condition),\n );\n if (conditions.length === 0) return this.label();\n return conditions\n .map((condition) => {\n const operator = this._operatorLabel(condition.operator);\n if (isValuelessOperator(condition.operator)) {\n return `${this.label()} ${operator}`;\n }\n const operand = this._displayValues([condition]).join(', ');\n return `${this.label()} ${operator}${operand ? ` ${operand}` : ''}`;\n })\n .join(` ${this._i18n()[this.conditionStrategy()]} `);\n });\n\n /** @protected Translated compact summary for values beyond the first. */\n protected readonly _moreValuesLabel = computed(() =>\n this._resolveMessage('moreValues', {\n count: this.additionalValueCount(),\n }),\n );\n\n constructor() {\n effect(() => {\n const conditions = this.conditions();\n const strategy = this.conditionStrategy();\n if (!this.opened()) {\n this._draftConditions.set(cloneConditions(conditions));\n this._draftStrategy.set(strategy);\n }\n });\n }\n\n /** @protected Prepares and focuses the editor after the overlay attaches. */\n protected _onOpened(): void {\n if (!this._usesOptions() && this._draftConditions().length === 0) {\n this._draftConditions.set([this._newCondition()]);\n }\n queueMicrotask(() => {\n if (this._usesOptions()) {\n // The panel's aria listbox already parks its roving tab stop on the\n // selected option (falling back to the first focusable one), so the\n // `tabindex=\"0\"` row is the correct entry point.\n const panel = this._document.getElementById(this._panelId);\n const target =\n panel?.querySelector<HTMLElement>('[role=\"option\"][tabindex=\"0\"]') ??\n panel?.querySelector<HTMLElement>('[role=\"option\"]');\n target?.focus();\n } else {\n // A custom editor owns its own controls, so the first focusable element\n // inside the value cell is the only reliable entry point.\n const cell = this._valueCells()[0]?.nativeElement;\n const target = cell ? this._firstFocusableIn(cell) : null;\n if (target) target.focus();\n else this._conditionInputs()[0]?.focus();\n }\n });\n }\n\n /** @protected Resynchronises drafts and restores focus after a keyboard/action close. */\n protected _onClosed(): void {\n this._draftConditions.set(cloneConditions(this.conditions()));\n this._draftStrategy.set(this.conditionStrategy());\n if (this._document.activeElement === this._document.body) {\n this._trigger()?.nativeElement.focus();\n }\n }\n\n /** @protected Removes all applied and in-progress values. */\n protected _clear(event?: Event): void {\n event?.stopPropagation();\n if (this._editorDisabled()) return;\n this._draftConditions.set([]);\n this.conditions.set([]);\n this.applied.emit([]);\n this.cleared.emit();\n this.opened.set(false);\n if (event) {\n queueMicrotask(() => this._trigger()?.nativeElement.focus());\n }\n }\n\n /** @protected Clears the editor draft while preserving explicit-mode rollback. */\n protected _clearDraft(): void {\n if (this._editorDisabled()) return;\n this._draftConditions.set(\n this._usesOptions() ? [] : [this._newCondition()],\n );\n if (this.applyMode() === 'explicit') return;\n\n this.conditions.set([]);\n this.applied.emit([]);\n this.cleared.emit();\n this.opened.set(false);\n }\n\n /** @protected Discards uncommitted edits and closes the editor. */\n protected _cancel(): void {\n this._draftConditions.set(cloneConditions(this.conditions()));\n this._draftStrategy.set(this.conditionStrategy());\n this.opened.set(false);\n }\n\n /** @protected Commits meaningful draft conditions and closes the editor. */\n protected _apply(): void {\n if (this._editorDisabled()) return;\n const hadAppliedConditions = this.conditions().some((condition) =>\n this._isConditionMeaningful(condition),\n );\n const conditions = this._draftConditions().filter((condition) =>\n this._isConditionMeaningful(condition),\n );\n this.conditions.set(cloneConditions(conditions));\n this.conditionStrategy.set(this._draftStrategy());\n this.applied.emit(cloneConditions(conditions));\n if (hadAppliedConditions && conditions.length === 0) this.cleared.emit();\n this.opened.set(false);\n }\n\n /**\n * @protected Applies a dropdown-panel selection to the draft.\n *\n * `@angular/aria`'s listbox owns a `value` model that it reconciles against\n * the options actually *registered* in the DOM, and it re-emits `valueChange`\n * from that reconciliation — not only when a user picks. Two kinds of noise\n * therefore have to be filtered out before anything may rewrite the draft:\n *\n * 1. An emit that restates the selection unchanged.\n * 2. An emit that drops committed values whose option is not rendered — async\n * options that have not arrived, a saved view restored ahead of its\n * choices, a value whose option was removed. Left unguarded this silently\n * wipes committed conditions the moment the popover opens.\n */\n protected _onOptionValuesChange(values: readonly unknown[]): void {\n if (this._editorDisabled()) return;\n const current = this._selectedValues();\n\n if (isSameSelection(values, current)) {\n // Defensive, not a real DOM gesture path: in explicit aria mode a\n // single-select re-click toggles to *deselect* (an empty emit), so no\n // interaction actually restates the committed selection unchanged.\n // This guards against a hypothetical aria restate emit after an option\n // re-registers (e.g. options reloading/reordering while a value stays\n // selected) — closing stays `_commitLive`'s privilege, so an\n // explicit-mode draft is resolved by Apply/Cancel alone.\n if (\n values.length > 0 &&\n !this.multiple() &&\n this.applyMode() === 'live'\n ) {\n this.opened.set(false);\n }\n return;\n }\n\n // `Object.is` (not deep equality) is deliberate here: this predicate has to\n // mirror aria's own `===` matching of a value against its rendered option,\n // otherwise a structurally-equal-but-distinct value would read as \"still\n // rendered\" and the drop would be treated as a real deselection.\n const visible = this._panelOptions().map((option) => option.value);\n if (isReconciliationEmit(values, current, visible, Object.is)) return;\n\n if (this.multiple()) {\n // aria has already dropped every committed value with no rendered option,\n // so a genuine pick arrives without them. Re-add them, or picking one\n // more value would quietly discard the rest of the selection.\n const next = [\n ...values,\n ...filteredOutCommitted(values, current, visible, Object.is),\n ];\n this._draftConditions.set(\n next.length > 0 ? [{ operator: 'in', value: next }] : [],\n );\n this._commitLive(false);\n return;\n }\n const value = values[0];\n this._draftConditions.set(\n value === undefined ? [] : [{ operator: 'equals', value }],\n );\n this._commitLive(true);\n }\n\n /** @protected Updates one condition's operator. */\n protected _setOperator(index: number, operator: MlvFilterOperator): void {\n if (this._editorDisabled()) return;\n const next = cloneConditions(this._draftConditions());\n const current = next[index] ?? this._newCondition();\n let value = current.value;\n if (isValuelessOperator(operator)) value = null;\n else if (operator === 'between' && current.operator !== 'between') {\n value = ['', ''];\n } else if (\n current.operator === 'between' ||\n isValuelessOperator(current.operator)\n ) {\n value = '';\n }\n next[index] = {\n ...current,\n operator,\n value,\n };\n this._draftConditions.set(next);\n this._commitLive(false);\n }\n\n /** @protected Updates one condition's operand. */\n protected _setConditionValue(index: number, value: unknown): void {\n if (this._editorDisabled()) return;\n const next = cloneConditions(this._draftConditions());\n const current = next[index] ?? this._newCondition();\n next[index] = { ...current, value: this._normalizeValue(value) };\n this._draftConditions.set(next);\n this._commitLive(false);\n }\n\n /** @protected Builds the template context for one condition's custom editor. */\n protected _valueEditorContext(\n condition: MlvFilterCondition,\n index: number,\n ): MlvFilterValueEditorContext {\n return {\n $implicit: condition.value,\n condition,\n index,\n operator: condition.operator,\n disabled: this._editorDisabled(),\n placeholder: this._resolvedPlaceholder(),\n setValue: (value) => this._setConditionValue(index, value),\n commit: () => {\n if (this.applyMode() === 'explicit') this._apply();\n },\n };\n }\n\n /** @protected Returns one side of a between-condition range. */\n protected _conditionRangeValue(\n condition: MlvFilterCondition,\n rangeIndex: number,\n ): unknown {\n return Array.isArray(condition.value)\n ? (condition.value[rangeIndex] ?? '')\n : '';\n }\n\n /** @protected Updates one side of a between-condition range. */\n protected _setConditionRangeValue(\n conditionIndex: number,\n rangeIndex: number,\n value: unknown,\n ): void {\n if (this._editorDisabled()) return;\n const next = cloneConditions(this._draftConditions());\n const current = next[conditionIndex] ?? this._newCondition();\n const range = Array.isArray(current.value) ? [...current.value] : ['', ''];\n range[rangeIndex] = this._normalizeValue(value);\n next[conditionIndex] = { ...current, value: range };\n this._draftConditions.set(next);\n this._commitLive(false);\n }\n\n /** @protected Updates the combination rule for working conditions. */\n protected _setStrategy(strategy: MlvFilterConditionStrategy): void {\n if (this._editorDisabled()) return;\n this._draftStrategy.set(strategy);\n if (this.applyMode() === 'live') {\n this.conditionStrategy.set(strategy);\n }\n }\n\n /** @protected Adds another free-form condition and focuses it. */\n protected _addCondition(): void {\n if (this._editorDisabled()) return;\n // A custom editor renders no `mlv-input`, so the new row is located by its\n // value cell first and only then by the built-in input list.\n const previousCellCount = this._valueCells().length;\n const previousInputCount = this._conditionInputs().length;\n this._draftConditions.update((conditions) => [\n ...conditions,\n this._newCondition(),\n ]);\n queueMicrotask(() => {\n const cell = this._valueCells()[previousCellCount]?.nativeElement;\n const target = cell ? this._firstFocusableIn(cell) : null;\n if (target) target.focus();\n else this._conditionInputs()[previousInputCount]?.focus();\n });\n }\n\n /** @protected Removes one working condition. */\n protected _removeCondition(index: number): void {\n if (this._editorDisabled()) return;\n this._draftConditions.update((conditions) =>\n conditions.filter((_, conditionIndex) => conditionIndex !== index),\n );\n if (this._draftConditions().length === 0) {\n this._draftConditions.set([this._newCondition()]);\n }\n this._commitLive(false);\n }\n\n /**\n * @private First focusable control rendered inside a value cell. The CDK\n * interactivity checker requires layout geometry, so a plain selector query\n * takes over whenever it reports nothing focusable.\n */\n private _firstFocusableIn(cell: HTMLElement): HTMLElement | null {\n return (\n this._tabbable.getTabbableElement(cell, false, true) ??\n cell.querySelector<HTMLElement>(FOCUSABLE_EDITOR_SELECTOR)\n );\n }\n\n /** @private Creates an empty free-form condition. */\n private _newCondition(): MlvFilterCondition {\n const operator = this._resolvedDefaultOperator();\n return {\n id: mlvNextId('mlv-filter-condition'),\n operator,\n value: isValuelessOperator(operator)\n ? null\n : operator === 'between'\n ? ['', '']\n : '',\n };\n }\n\n /** @private Publishes draft state immediately when live mode is active. */\n private _commitLive(close: boolean): void {\n if (this.applyMode() !== 'live' || this._editorDisabled()) return;\n const meaningful = this._draftConditions().filter((condition) =>\n this._isConditionMeaningful(condition),\n );\n this.conditions.set(cloneConditions(meaningful));\n this.applied.emit(cloneConditions(meaningful));\n if (close) this.opened.set(false);\n }\n\n /** @private Normalizes number-editor input while preserving empty/invalid drafts. */\n private _normalizeValue(value: unknown): unknown {\n const parsedNumber = typeof value === 'string' ? Number(value) : NaN;\n return this._resolvedEditor() === 'number' &&\n typeof value === 'string' &&\n value !== '' &&\n Number.isFinite(parsedNumber)\n ? parsedNumber\n : value;\n }\n\n /** @private Converts applied operands into compact, human-readable labels. */\n private _displayValues(conditions: readonly MlvFilterCondition[]): string[] {\n return conditions.flatMap((condition) => {\n if (isValuelessOperator(condition.operator)) {\n return [this._operatorLabel(condition.operator)];\n }\n if (\n condition.operator === 'between' &&\n Array.isArray(condition.value) &&\n condition.value.length === 2\n ) {\n return [\n `${String(condition.value[0])} – ${String(condition.value[1])}`,\n ];\n }\n const values = Array.isArray(condition.value)\n ? condition.value\n : [condition.value];\n return values\n .filter(\n (value) => value !== null && value !== undefined && value !== '',\n )\n .map((value) => {\n const option = this.options().find((candidate) =>\n Object.is(candidate.value, value),\n );\n return option?.label ?? String(value);\n });\n });\n }\n\n /** @private Whether a condition has an operator-complete operand. */\n private _isConditionMeaningful(condition: MlvFilterCondition): boolean {\n if (isValuelessOperator(condition.operator)) return true;\n if (condition.operator === 'between' && Array.isArray(condition.value)) {\n return (\n condition.value.length === 2 &&\n condition.value.every(\n (value) => value !== null && value !== undefined && value !== '',\n )\n );\n }\n if (Array.isArray(condition.value)) return condition.value.length > 0;\n return (\n condition.value !== null &&\n condition.value !== undefined &&\n condition.value !== ''\n );\n }\n\n /** @private Resolves translated labels for built-in operators. */\n private _operatorLabel(operator: MlvFilterOperator): string {\n const override = this.operatorLabels()[operator];\n if (override) return override;\n const i18n = this._i18n();\n switch (operator) {\n case 'contains':\n return i18n.contains;\n case 'not-contains':\n return i18n.notContains;\n case 'starts-with':\n return i18n.startsWith;\n case 'ends-with':\n return i18n.endsWith;\n case 'equals':\n return i18n.equals;\n case 'not-equals':\n return i18n.notEquals;\n case 'greater-than':\n return i18n.greaterThan;\n case 'greater-than-or-equal':\n return i18n.greaterThanOrEqual;\n case 'less-than':\n return i18n.lessThan;\n case 'less-than-or-equal':\n return i18n.lessThanOrEqual;\n case 'between':\n return i18n.between;\n case 'in':\n return i18n.in;\n case 'not-in':\n return i18n.notIn;\n case 'empty':\n return i18n.empty;\n case 'not-empty':\n return i18n.notEmpty;\n }\n }\n\n /** @private Resolves one ICU message from the filter translation slice. */\n private _resolveMessage(\n key: 'clearFilter' | 'moreValues' | 'openFilter' | 'removeFilter',\n params: Record<string, string | number>,\n ): string {\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n key,\n params,\n );\n }\n}\n","<div class=\"mlv-filter__control\" role=\"group\" [attr.aria-label]=\"label()\">\n <button\n #trigger\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n class=\"mlv-filter__trigger\"\n [class.mlv-filter__trigger--applied]=\"hasValue()\"\n [mlvPopupTrigger]=\"filterPopup\"\n [ariaHasPopup]=\"'dialog'\"\n [disabled]=\"_editorDisabled()\"\n [loading]=\"loading()\"\n [attr.aria-controls]=\"_panelId\"\n [attr.aria-label]=\"_triggerAriaLabel()\"\n [attr.title]=\"appearance() === 'query' && hasValue() ? _querySentence() : null\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n >\n <span\n class=\"mlv-filter__summary\"\n [class.mlv-filter__summary--query]=\"appearance() === 'query'\"\n >\n @if (appearance() === 'query') {\n <span class=\"mlv-filter__sentence\">{{ _querySentence() }}</span>\n } @else { @if (hasValue()) {\n <span class=\"mlv-filter__label\">{{ label() }}:</span>\n <strong class=\"mlv-filter__value\">{{ primaryValue() }}</strong>\n @if (additionalValueCount() > 0) {\n <span class=\"mlv-filter__more\">{{ _moreValuesLabel() }}</span>\n } } @else {\n <span class=\"mlv-filter__label\">{{ label() }}</span>\n } }\n </span>\n @if (appearance() === 'field') {\n <svg\n mlvButtonIcon\n lucideChevronDown\n [size]=\"14\"\n aria-hidden=\"true\"\n class=\"mlv-filter__chevron\"\n ></svg>\n }\n </button>\n\n @if (_showsClearAction()) {\n <button\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n shape=\"square\"\n class=\"mlv-filter__clear\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"_clearAriaLabel()\"\n (click)=\"_clear($event)\"\n >\n <svg mlvButtonIcon lucideX [size]=\"14\" aria-hidden=\"true\"></svg>\n </button>\n }\n</div>\n\n<mlv-popup\n #filterPopup\n [(opened)]=\"opened\"\n [position]=\"['bottom-start', 'top-start']\"\n [hasShadow]=\"true\"\n panelRole=\"dialog\"\n [ariaLabel]=\"_triggerAriaLabel()\"\n minWidth=\"14rem\"\n maxWidth=\"28rem\"\n (afterOpened)=\"_onOpened()\"\n (afterClosed)=\"_onClosed()\"\n>\n <ng-template mlvPopupContent>\n <div class=\"mlv-filter__panel\" [id]=\"_panelId\">\n @if (_usesOptions()) {\n <mlv-dropdown-panel\n class=\"mlv-filter__options\"\n [ariaLabel]=\"label()\"\n [maxHeight]=\"_optionsMaxHeight\"\n [options]=\"_panelOptions()\"\n [multiple]=\"multiple()\"\n [selectedValues]=\"_selectedValues()\"\n (valueChange)=\"_onOptionValuesChange($event)\"\n >\n <span class=\"mlv-filter__empty\">{{ _i18n().selectValue }}</span>\n </mlv-dropdown-panel>\n } @else {\n <div class=\"mlv-filter__conditions\">\n @if (_draft().length > 1) {\n <mlv-select\n class=\"mlv-filter__strategy\"\n [options]=\"_strategies\"\n [toOption]=\"_strategyTransform\"\n [value]=\"_strategy()\"\n [ariaLabel]=\"label()\"\n [disabled]=\"_editorDisabled()\"\n mobileMode=\"off\"\n (valueChange)=\"_setStrategy($any($event))\"\n />\n } @for ( condition of _draft(); track condition.id || $index; let index\n = $index ) {\n <div class=\"mlv-filter__condition\">\n <mlv-select\n class=\"mlv-filter__operator\"\n [options]=\"operators()\"\n [toOption]=\"_operatorTransform\"\n [value]=\"condition.operator\"\n [ariaLabel]=\"label() + ' ' + (index + 1)\"\n [disabled]=\"_editorDisabled()\"\n mobileMode=\"off\"\n (valueChange)=\"_setOperator(index, $any($event))\"\n />\n\n @if ( condition.operator !== 'empty' && condition.operator !==\n 'not-empty' ) {\n <div class=\"mlv-filter__value-cell\" #valueCell>\n @if (_valueEditorTemplate(); as editorTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"editorTemplate\"\n [ngTemplateOutletContext]=\"_valueEditorContext(condition, index)\"\n />\n } @else { @if (condition.operator === 'between') {\n <div class=\"mlv-filter__range\">\n <mlv-input\n class=\"mlv-filter__input\"\n [type]=\"_resolvedEditor() === 'number' ? 'number' : 'text'\"\n [value]=\"$any(_conditionRangeValue(condition, 0))\"\n [placeholder]=\"_resolvedPlaceholder()\"\n [ariaLabel]=\"label() + ' ' + (index + 1) + ' 1'\"\n [disabled]=\"_editorDisabled()\"\n (valueChange)=\"_setConditionRangeValue(index, 0, $event)\"\n (keydown.enter)=\"applyMode() === 'explicit' && _apply()\"\n />\n <span class=\"mlv-filter__range-separator\" aria-hidden=\"true\"\n >–</span\n >\n <mlv-input\n class=\"mlv-filter__input\"\n [type]=\"_resolvedEditor() === 'number' ? 'number' : 'text'\"\n [value]=\"$any(_conditionRangeValue(condition, 1))\"\n [placeholder]=\"_resolvedPlaceholder()\"\n [ariaLabel]=\"label() + ' ' + (index + 1) + ' 2'\"\n [disabled]=\"_editorDisabled()\"\n (valueChange)=\"_setConditionRangeValue(index, 1, $event)\"\n (keydown.enter)=\"applyMode() === 'explicit' && _apply()\"\n />\n </div>\n } @else {\n <mlv-input\n class=\"mlv-filter__input\"\n [type]=\"_resolvedEditor() === 'number' ? 'number' : 'text'\"\n [value]=\"$any(condition.value)\"\n [placeholder]=\"_resolvedPlaceholder()\"\n [ariaLabel]=\"label() + ' ' + (index + 1)\"\n [disabled]=\"_editorDisabled()\"\n (valueChange)=\"_setConditionValue(index, $event)\"\n (keydown.enter)=\"applyMode() === 'explicit' && _apply()\"\n />\n } }\n </div>\n } @if (allowMultipleConditions() && _draft().length > 1) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n class=\"mlv-filter__remove-condition\"\n [disabled]=\"_editorDisabled()\"\n [attr.aria-label]=\"_i18n().removeCondition\"\n (click)=\"_removeCondition(index)\"\n >\n <svg\n mlvButtonIcon\n lucideTrash2\n [size]=\"16\"\n aria-hidden=\"true\"\n ></svg>\n </button>\n }\n </div>\n } @if (allowMultipleConditions()) {\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n class=\"mlv-filter__add-condition\"\n [disabled]=\"_editorDisabled()\"\n (click)=\"_addCondition()\"\n >\n <svg mlvButtonIcon lucidePlus [size]=\"16\" aria-hidden=\"true\"></svg>\n {{ _i18n().addCondition }}\n </button>\n }\n </div>\n } @if (_draft().length > 0 || applyMode() === 'explicit') {\n <mlv-toolbar class=\"mlv-filter__panel-footer\">\n @if (_draft().length > 0) {\n <a\n mlvLink\n class=\"mlv-filter__panel-clear\"\n [disabled]=\"_editorDisabled()\"\n (mlvClick)=\"_clearDraft()\"\n >{{ _i18n().clear }}</a\n >\n <mlv-spacer />\n } @if ((applyMode() === 'explicit')) {\n <button\n mlvButton\n type=\"button\"\n mlvDensity=\"compact\"\n variant=\"transparent\"\n (click)=\"_cancel()\"\n >\n {{ _i18n().cancel }}\n </button>\n <button\n mlvButton\n type=\"button\"\n mlvDensity=\"compact\"\n [disabled]=\"_editorDisabled()\"\n (click)=\"_apply()\"\n >\n {{ _i18n().apply }}\n </button>\n }\n </mlv-toolbar>\n }\n </div>\n </ng-template>\n</mlv-popup>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n LucideChevronDown,\n LucideChevronUp,\n LucidePlus,\n LucideRefreshCw,\n LucideSettings2,\n} from '@lucide/angular';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\nimport { MlvButton, MlvButtonIcon } from '@malva-ui/core/button';\nimport { MlvCheckbox } from '@malva-ui/core/checkbox';\nimport { normalizeForMatch } from '@malva-ui/core/dropdown';\nimport {\n MlvPopup,\n MlvPopupContent,\n MlvPopupTrigger,\n} from '@malva-ui/core/popup';\nimport type { MlvSearchFieldTrigger } from '@malva-ui/core/search-field';\nimport { MlvSearchField } from '@malva-ui/core/search-field';\nimport { MLV_FILTER_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\nimport type {\n MlvFilterApplyMode,\n MlvFilterCondition,\n MlvFilterConditionStrategy,\n MlvFilterDefinition,\n MlvFilterExecutionPayload,\n MlvFilterFieldState,\n MlvFilterOperator,\n MlvSmartFilterBarAppearance,\n} from '../filter.types';\nimport { mlvFilterFieldsToExpression } from '../filter-expression';\nimport { MlvFilter } from '../filter/filter';\nimport type { MlvFilterValueEditorContext } from '../filter/filter-value-editor';\nimport { MlvFilterValueEditorDef } from '../filter/filter-value-editor';\nimport { MlvExpand } from '@malva-ui/core/expand';\n\n/** Returns whether an operator-complete condition represents an applied value. */\nfunction isConditionMeaningful(condition: MlvFilterCondition): boolean {\n if (condition.operator === 'empty' || condition.operator === 'not-empty') {\n return true;\n }\n if (condition.operator === 'between' && Array.isArray(condition.value)) {\n return (\n condition.value.length === 2 &&\n condition.value.every(\n (value) => value !== null && value !== undefined && value !== '',\n )\n );\n }\n if (Array.isArray(condition.value)) return condition.value.length > 0;\n return (\n condition.value !== null &&\n condition.value !== undefined &&\n condition.value !== ''\n );\n}\n\n/** Deeply copies a supported structured filter value. */\nfunction cloneFilterValue<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n try {\n return structuredClone(value);\n } catch {\n // Fall through for values outside the structured-clone algorithm.\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => cloneFilterValue(item)) as T;\n }\n if (value instanceof Date) return new Date(value.getTime()) as T;\n if (value instanceof Map) {\n return new Map(\n [...value].map(([key, item]) => [\n cloneFilterValue(key),\n cloneFilterValue(item),\n ]),\n ) as T;\n }\n if (value instanceof Set) {\n return new Set([...value].map((item) => cloneFilterValue(item))) as T;\n }\n if (value !== null && typeof value === 'object') {\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [key, cloneFilterValue(item)]),\n ) as T;\n }\n return value;\n}\n\n/** Copies field states and nested operands for immutable public snapshots. */\nfunction cloneFieldStates(\n states: readonly MlvFilterFieldState[],\n): MlvFilterFieldState[] {\n return states.map((state) => ({\n key: state.key,\n strategy: state.strategy,\n conditions: state.conditions.map((condition) => ({\n ...condition,\n value: cloneFilterValue(condition.value),\n })),\n }));\n}\n\n/** Whether two ordered string collections contain the same values. */\nfunction stringArraysEqual(\n first: readonly string[],\n second: readonly string[],\n): boolean {\n return (\n first.length === second.length &&\n first.every((value, index) => value === second[index])\n );\n}\n\n/** Metadata-driven query header for search, field filters, and execution. */\n@Component({\n selector: 'mlv-smart-filter-bar',\n imports: [\n MlvButton,\n MlvButtonIcon,\n MlvCheckbox,\n MlvFilter,\n MlvPopup,\n MlvPopupContent,\n MlvPopupTrigger,\n MlvSearchField,\n LucideChevronDown,\n LucideChevronUp,\n LucidePlus,\n LucideRefreshCw,\n LucideSettings2,\n MlvExpand,\n ],\n templateUrl: './smart-filter-bar.html',\n styleUrl: './smart-filter-bar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-smart-filter-bar',\n '[class.mlv-smart-filter-bar--collapsed]': '!filtersVisible()',\n '[class.mlv-smart-filter-bar--loading]': 'loading()',\n '[class.mlv-smart-filter-bar--disabled]': 'disabled()',\n '[class.mlv-smart-filter-bar--query]': \"appearance() === 'query'\",\n '[attr.aria-busy]': 'loading() || null',\n },\n})\nexport class MlvSmartFilterBar {\n /** @protected Reactive translated strings for filters. */\n protected readonly _i18n = inject(MLV_FILTER_I18N);\n\n /** @private ICU resolver for parameterized translated strings. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /** @private Injector required by post-overlay render focus restoration. */\n private readonly _injector = inject(Injector);\n\n /** Metadata for every available filter field. */\n readonly definitions = input.required<readonly MlvFilterDefinition[]>();\n\n /** Structured filter state. */\n readonly filters = model<readonly MlvFilterFieldState[]>([]);\n\n /** Whether the bar renders its established toolbar or natural-language query row. */\n readonly appearance = input<MlvSmartFilterBarAppearance>('classic');\n\n /** Keys currently shown in the filter row. */\n readonly visibleKeys = model<readonly string[]>([]);\n\n /** Global search query submitted with structured filters. */\n readonly searchValue = model<string>('');\n\n /** Commit behavior for the global search field. */\n readonly searchTrigger = input<MlvSearchFieldTrigger>('live');\n\n /** Debounce passed to the global live-search field. */\n readonly searchDebounce = input<number, number | string>(200, {\n transform: (value) => Math.max(0, numberAttribute(value, 200)),\n });\n\n /** Apply behavior used by each field filter editor. */\n readonly filterApplyMode = input<MlvFilterApplyMode>('live');\n\n /** Whether live search/filter commits should execute immediately. */\n readonly autoExecute = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether structured fields are expanded beneath the query actions. */\n readonly filtersVisible = model(true);\n\n /** Whether the global search field is rendered. */\n readonly showSearch = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether query execution is in progress. */\n readonly loading = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether every control in the bar is unavailable. */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Emitted with an immutable snapshot when the query executes. */\n readonly execute = output<MlvFilterExecutionPayload>();\n\n /** Emitted when consumers should refresh using the current query snapshot. */\n readonly refresh = output<MlvFilterExecutionPayload>();\n\n /** Emitted after search, filter values, and visibility return to defaults. */\n readonly resetCompleted = output<void>();\n\n /** @protected Search term used only inside the available-filters manager. */\n protected readonly _availableSearch = signal('');\n\n /** @private Optional blank fields deliberately selected through query Add filter. */\n private readonly _queryAddedKeys = signal<readonly string[]>([]);\n\n /** @private Added key awaiting focus after its popup has detached. */\n private readonly _pendingAddedKey = signal<string | undefined>(undefined);\n\n /** @private Staged field visibility while the manager dialog is open. */\n private readonly _draftVisibleKeys = signal<readonly string[]>([]);\n\n /** @protected Id linking the filter visibility trigger to its region. */\n protected readonly _filtersId = mlvNextId('mlv-smart-filter-bar-filters');\n\n /** @protected Id linking the manager trigger to its dialog content. */\n protected readonly _managerId = mlvNextId('mlv-smart-filter-bar-manager');\n\n /** @protected Id for the validation summary announced after a blocked query. */\n protected readonly _validationSummaryId = mlvNextId(\n 'mlv-smart-filter-bar-validation',\n );\n\n /** @private Whether metadata defaults have been applied to a usable definition set. */\n private _definitionsInitialized = false;\n\n /** @private Previous metadata keys used to distinguish new defaults from hidden fields. */\n private _knownDefinitionKeys = new Set<string>();\n\n /** @private Whether a query attempt should expose required-field errors. */\n private readonly _validationAttempted = signal(false);\n\n /** @private Coalesces paired condition/strategy model changes into one execution. */\n private _autoExecuteQueued = false;\n\n /** @private Manager panel used to focus its search field after opening. */\n private readonly _managerPanel =\n viewChild<ElementRef<HTMLElement>>('managerPanel');\n\n /** @private Manager trigger restored after keyboard and action closes. */\n private readonly _managerButton = viewChild('managerButton', {\n read: ElementRef<HTMLButtonElement>,\n });\n\n /** @private Query Add filter popup panel focused after it opens. */\n private readonly _addPanel = viewChild<ElementRef<HTMLElement>>('addPanel');\n\n /** @private Query Add filter trigger used when the pending field disappears. */\n private readonly _addButton = viewChild('addButton', {\n read: ElementRef<HTMLButtonElement>,\n });\n\n /** @private Rendered filter hosts used to focus the first invalid field. */\n private readonly _filterHosts = viewChildren(MlvFilter, {\n read: ElementRef,\n });\n\n /** @private Projected custom value-editor templates, matched to definitions by key. */\n private readonly _valueEditors = contentChildren(MlvFilterValueEditorDef, {\n descendants: true,\n });\n\n /** Visible definitions in stable metadata order. */\n readonly visibleDefinitions = computed(() => {\n const visible = new Set(this.visibleKeys());\n return this.definitions().filter((definition) =>\n visible.has(definition.key),\n );\n });\n\n /** @protected Query chips represent required, meaningful, or deliberately added blank fields. */\n protected readonly _queryDefinitions = computed(() => {\n const active = new Set(\n this.filters()\n .filter((state) => state.conditions.some(isConditionMeaningful))\n .map((state) => state.key),\n );\n const added = new Set(this._queryAddedKeys());\n return this.visibleDefinitions().filter(\n (definition) =>\n definition.required ||\n active.has(definition.key) ||\n added.has(definition.key),\n );\n });\n\n /** @protected Definitions that may be added without creating duplicate or disabled fields. */\n protected readonly _addableDefinitions = computed(() => {\n const visible = new Set(\n this._queryDefinitions().map((definition) => definition.key),\n );\n const query = normalizeForMatch(this._availableSearch().trim());\n return this.definitions().filter(\n (definition) =>\n !definition.disabled &&\n !visible.has(definition.key) &&\n (!query || normalizeForMatch(definition.label).includes(query)),\n );\n });\n\n /** Number of filter fields currently visible. */\n readonly visibleFilterCount = computed(\n () => this.visibleDefinitions().length,\n );\n\n /** Number of fields with at least one applied condition. */\n readonly appliedFilterCount = computed(\n () =>\n this.filters().filter((state) =>\n state.conditions.some(isConditionMeaningful),\n ).length,\n );\n\n /** @protected Required definitions without an applied, meaningful condition. */\n protected readonly _missingRequiredDefinitions = computed(() => {\n const states = new Map(this.filters().map((state) => [state.key, state]));\n return this.definitions().filter((definition) => {\n if (!definition.required) return false;\n return !states\n .get(definition.key)\n ?.conditions.some(isConditionMeaningful);\n });\n });\n\n /** @protected Whether required-field errors should currently be rendered. */\n protected readonly _showRequiredErrors = computed(\n () =>\n this._validationAttempted() &&\n this._missingRequiredDefinitions().length > 0,\n );\n\n /** @protected Whether search or any structured condition is active. */\n protected readonly _hasState = computed(\n () => this.searchValue().length > 0 || this.appliedFilterCount() > 0,\n );\n\n /** @protected Definitions matching the available-filter search. */\n protected readonly _filteredDefinitions = computed(() => {\n const query = normalizeForMatch(this._availableSearch().trim());\n if (!query) return this.definitions();\n return this.definitions().filter((definition) =>\n normalizeForMatch(definition.label).includes(query),\n );\n });\n\n /** @protected Parameterized label for the filter-management action. */\n protected readonly _filtersLabel = computed(() =>\n this._resolveMessage('filters', { count: this.visibleFilterCount() }),\n );\n\n /** @protected Parameterized status for fields with applied values. */\n protected readonly _appliedFiltersLabel = computed(() =>\n this._resolveMessage('filters', { count: this.appliedFilterCount() }),\n );\n\n /** @protected Parameterized heading for the available-filter list. */\n protected readonly _availableFiltersLabel = computed(() =>\n this._resolveMessage('availableFilters', {\n count: this.definitions().length,\n }),\n );\n\n /** @protected Localized validation summary for all missing required fields. */\n protected readonly _requiredFiltersMessage = computed(() =>\n this._resolveMessage('requiredFilters', {\n count: this._missingRequiredDefinitions().length,\n }),\n );\n\n constructor() {\n effect(() => {\n const definitions = this.definitions();\n if (definitions.length === 0 && !this._definitionsInitialized) return;\n\n const definitionKeys = definitions.map((definition) => definition.key);\n const allowedKeys = new Set(definitionKeys);\n const currentFilters = this.filters();\n const queryAddedKeys = this._queryAddedKeys();\n const stateByKey = new Map(\n currentFilters\n .filter((state) => allowedKeys.has(state.key))\n .map((state) => [state.key, state]),\n );\n const normalizedFilters = definitions.flatMap((definition) => {\n const state = stateByKey.get(definition.key);\n return state ? [state] : [];\n });\n\n if (\n normalizedFilters.length !== currentFilters.length ||\n normalizedFilters.some(\n (state, index) => state !== currentFilters[index],\n )\n ) {\n this.filters.set(cloneFieldStates(normalizedFilters));\n }\n\n const activeKeys = new Set(\n normalizedFilters\n .filter((state) => state.conditions.some(isConditionMeaningful))\n .map((state) => state.key),\n );\n const currentVisible = this.visibleKeys();\n const requestedVisible = new Set(\n currentVisible.filter((key) => allowedKeys.has(key)),\n );\n const initializeDefaults =\n !this._definitionsInitialized && currentVisible.length === 0;\n\n for (const definition of definitions) {\n const newlyAdded = !this._knownDefinitionKeys.has(definition.key);\n if (\n definition.required ||\n activeKeys.has(definition.key) ||\n (definition.defaultVisible &&\n (initializeDefaults ||\n (this._definitionsInitialized && newlyAdded)))\n ) {\n requestedVisible.add(definition.key);\n }\n }\n\n const normalizedVisible = definitionKeys.filter((key) =>\n requestedVisible.has(key),\n );\n if (!stringArraysEqual(normalizedVisible, currentVisible)) {\n this.visibleKeys.set(normalizedVisible);\n }\n\n const normalizedQueryAddedKeys = queryAddedKeys.filter(\n (key) => allowedKeys.has(key) && requestedVisible.has(key),\n );\n if (!stringArraysEqual(normalizedQueryAddedKeys, queryAddedKeys)) {\n this._queryAddedKeys.set(normalizedQueryAddedKeys);\n }\n\n if (definitions.length > 0) this._definitionsInitialized = true;\n this._knownDefinitionKeys = allowedKeys;\n });\n }\n\n /** Executes the current search and structured-filter snapshot. */\n executeQuery(): void {\n if (this.disabled() || this.loading()) return;\n if (!this._validateRequiredFilters()) return;\n this.execute.emit(this._payload());\n }\n\n /** Requests fresh results using the current query snapshot. */\n refreshQuery(): void {\n if (this.disabled() || this.loading()) return;\n if (!this._validateRequiredFilters()) return;\n this.refresh.emit(this._payload());\n }\n\n /** Clears search and conditions while retaining the user's visible fields. */\n clear(): void {\n if (this.disabled() || this.loading()) return;\n this._validationAttempted.set(false);\n this.searchValue.set('');\n this.filters.set([]);\n if (this.autoExecute()) this.executeQuery();\n }\n\n /** Restores search, conditions, and visible fields to metadata defaults. */\n resetToDefaults(): void {\n if (this.disabled() || this.loading()) return;\n this._validationAttempted.set(false);\n this.searchValue.set('');\n this.filters.set([]);\n this.visibleKeys.set(this._defaultVisibleKeys());\n this._availableSearch.set('');\n this.resetCompleted.emit();\n if (this.autoExecute()) this.executeQuery();\n }\n\n /** @protected Updates search state and executes for submit or auto mode. */\n protected _onSearch(query: string): void {\n this.searchValue.set(query);\n if (this.searchTrigger() === 'submit' || this.autoExecute()) {\n this.executeQuery();\n }\n }\n\n /** @protected Executes a staged live-search value immediately from Enter. */\n protected _onSearchEnter(event: Event): void {\n if (\n !(event instanceof KeyboardEvent) ||\n event.isComposing ||\n this.searchTrigger() !== 'live' ||\n this.autoExecute()\n ) {\n return;\n }\n event.preventDefault();\n this.executeQuery();\n }\n\n /** @protected Updates the available-filter manager search. */\n protected _onAvailableSearch(query: string): void {\n this._availableSearch.set(query);\n }\n\n /** @protected Focuses the searchable Add filter menu after its popup attaches. */\n protected _onAddOpened(): void {\n this._availableSearch.set('');\n queueMicrotask(() => {\n this._addPanel()\n ?.nativeElement.querySelector<HTMLInputElement>('input')\n ?.focus();\n });\n }\n\n /** @protected Clears transient Add filter search after its popup closes. */\n protected _onAddClosed(): void {\n this._availableSearch.set('');\n if (!this._pendingAddedKey()) return;\n afterNextRender(\n () => {\n const pendingKey = this._pendingAddedKey();\n this._pendingAddedKey.set(undefined);\n const index = this._queryDefinitions().findIndex(\n (definition) => definition.key === pendingKey,\n );\n const host = this._filterHosts()[index]?.nativeElement as\n | HTMLElement\n | undefined;\n const trigger = host?.querySelector<HTMLButtonElement>(\n '.mlv-filter__trigger',\n );\n const focusTarget = trigger ?? this._addButton()?.nativeElement;\n focusTarget?.focus();\n },\n { injector: this._injector },\n );\n }\n\n /** @protected Adds visibility only, then sends focus to the newly rendered field trigger. */\n protected _addQueryFilter(\n definition: MlvFilterDefinition,\n trigger: MlvPopupTrigger,\n ): void {\n if (this.disabled() || this.loading() || definition.disabled) return;\n const requested = new Set(this.visibleKeys());\n requested.add(definition.key);\n this.visibleKeys.set(\n this.definitions()\n .map((candidate) => candidate.key)\n .filter((key) => requested.has(key)),\n );\n this._queryAddedKeys.update((keys) =>\n keys.includes(definition.key) ? keys : [...keys, definition.key],\n );\n this._pendingAddedKey.set(definition.key);\n trigger.close();\n }\n\n /** @protected Removes an optional query field's state and visibility. */\n protected _removeQueryFilter(definition: MlvFilterDefinition): void {\n if (this.disabled() || this.loading()) return;\n this._replaceFieldState({\n key: definition.key,\n conditions: [],\n strategy: this._strategyFor(definition.key),\n });\n this._queryAddedKeys.update((keys) =>\n keys.filter((key) => key !== definition.key),\n );\n if (!definition.required) {\n this.visibleKeys.set(\n this.visibleKeys().filter((key) => key !== definition.key),\n );\n }\n }\n\n /** @protected Clears search and all optional query fields while retaining required visibility. */\n protected _clearQuery(): void {\n if (this.disabled() || this.loading()) return;\n this._validationAttempted.set(false);\n this.searchValue.set('');\n this.filters.set([]);\n this._queryAddedKeys.set([]);\n this.visibleKeys.set(\n this.definitions()\n .filter((definition) => definition.required)\n .map((definition) => definition.key),\n );\n this._queueAutoExecute();\n }\n\n /** @protected Returns applied conditions for a definition key. */\n protected _conditionsFor(key: string): readonly MlvFilterCondition[] {\n return this.filters().find((state) => state.key === key)?.conditions ?? [];\n }\n\n /** @protected Resolves the value-editor template for one definition (exact key > key-less fallback > null). */\n protected _valueEditorFor(\n definition: MlvFilterDefinition,\n ): TemplateRef<MlvFilterValueEditorContext> | null {\n const editors = this._valueEditors();\n const exact = editors.find(\n (editor) => editor.mlvFilterValueEditor() === definition.key,\n );\n if (exact) return exact.templateRef;\n const fallback = editors.find(\n (editor) => editor.mlvFilterValueEditor() === '',\n );\n return fallback?.templateRef ?? null;\n }\n\n /** @protected Returns the applied strategy for a definition key. */\n protected _strategyFor(key: string): MlvFilterConditionStrategy {\n return (\n this.filters().find((state) => state.key === key)?.strategy ??\n this.definitions().find((definition) => definition.key === key)\n ?.conditionStrategy ??\n 'or'\n );\n }\n\n /** @protected Whether a definition permits more than one free-form condition. */\n protected _allowsMultipleConditions(\n definition: MlvFilterDefinition,\n ): boolean {\n if (definition.allowMultipleConditions !== undefined) {\n return definition.allowMultipleConditions;\n }\n return !(\n definition.editor === 'options' ||\n (definition.editor === undefined && (definition.options?.length ?? 0) > 0)\n );\n }\n\n /** @protected Operators for a definition with the neutral default fallback. */\n protected _operatorsFor(\n definition: MlvFilterDefinition,\n ): readonly MlvFilterOperator[] {\n return (\n definition.operators ?? [\n 'contains',\n 'not-contains',\n 'equals',\n 'not-equals',\n ]\n );\n }\n\n /** @protected Updates one field's conditions without disturbing other fields. */\n protected _setConditions(\n definition: MlvFilterDefinition,\n conditions: readonly MlvFilterCondition[],\n ): void {\n const state = this.filters().find(\n (candidate) => candidate.key === definition.key,\n );\n this._replaceFieldState({\n key: definition.key,\n conditions,\n strategy: state?.strategy ?? definition.conditionStrategy ?? 'or',\n });\n }\n\n /** @protected Updates one field's condition-combination strategy. */\n protected _setStrategy(\n definition: MlvFilterDefinition,\n strategy: MlvFilterConditionStrategy,\n ): void {\n this._replaceFieldState({\n key: definition.key,\n conditions: this._conditionsFor(definition.key),\n strategy,\n });\n }\n\n /** @protected Whether a field key is currently visible. */\n protected _isVisible(key: string): boolean {\n return this._draftVisibleKeys().includes(key);\n }\n\n /** @protected Whether a field currently has an applied, meaningful condition. */\n protected _isActive(key: string): boolean {\n return (\n this.filters()\n .find((state) => state.key === key)\n ?.conditions.some(isConditionMeaningful) ?? false\n );\n }\n\n /** @protected Stages a field for addition or removal from the filter row. */\n protected _setVisible(\n definition: MlvFilterDefinition,\n visible: boolean,\n ): void {\n if (this.disabled() || this.loading()) return;\n if ((definition.required || this._isActive(definition.key)) && !visible) {\n return;\n }\n const keys = new Set(this._draftVisibleKeys());\n if (visible) keys.add(definition.key);\n else keys.delete(definition.key);\n const definitionOrder = this.definitions().map(\n (candidate) => candidate.key,\n );\n this._draftVisibleKeys.set(definitionOrder.filter((key) => keys.has(key)));\n }\n\n /** @protected Toggles the structured filter row. */\n protected _toggleFilters(): void {\n this.filtersVisible.update((visible) => !visible);\n }\n\n /** @protected Focuses the manager's search input after the popup attaches. */\n protected _onManagerOpened(): void {\n this._draftVisibleKeys.set([...this.visibleKeys()]);\n this._availableSearch.set('');\n queueMicrotask(() => {\n this._managerPanel()\n ?.nativeElement.querySelector<HTMLInputElement>('input')\n ?.focus();\n });\n }\n\n /** @protected Restores manager-trigger focus after an overlay action closes. */\n protected _onManagerClosed(): void {\n this._draftVisibleKeys.set([...this.visibleKeys()]);\n this._availableSearch.set('');\n queueMicrotask(() => this._managerButton()?.nativeElement.focus());\n }\n\n /** @protected Stages the metadata default field selection in the manager. */\n protected _resetManagerSelection(): void {\n if (this.disabled() || this.loading()) return;\n this._draftVisibleKeys.set(this._defaultVisibleKeys());\n }\n\n /** @protected Discards manager edits and closes its popup. */\n protected _cancelManager(trigger: MlvPopupTrigger): void {\n this._draftVisibleKeys.set([...this.visibleKeys()]);\n trigger.close();\n }\n\n /** @protected Commits staged manager edits and closes its popup. */\n protected _applyManager(trigger: MlvPopupTrigger): void {\n if (this.disabled() || this.loading()) return;\n const staged = new Set(this._draftVisibleKeys());\n this.definitions()\n .filter(\n (definition) => definition.required || this._isActive(definition.key),\n )\n .forEach((definition) => staged.add(definition.key));\n this.visibleKeys.set(\n this.definitions()\n .map((definition) => definition.key)\n .filter((key) => staged.has(key)),\n );\n trigger.close();\n }\n\n /** @private Replaces or removes one field state and optionally auto-executes. */\n private _replaceFieldState(state: MlvFilterFieldState): void {\n const remaining = this.filters().filter(\n (candidate) => candidate.key !== state.key,\n );\n const next =\n state.conditions.length > 0 ? [...remaining, state] : remaining;\n const order = this.definitions().map((definition) => definition.key);\n next.sort((a, b) => order.indexOf(a.key) - order.indexOf(b.key));\n this.filters.set(cloneFieldStates(next));\n this._queueAutoExecute();\n }\n\n /** @private Schedules one auto execution for the current microtask. */\n private _queueAutoExecute(): void {\n if (\n this.appearance() === 'query' &&\n this.filterApplyMode() === 'explicit'\n ) {\n return;\n }\n if (!this.autoExecute() || this._autoExecuteQueued) return;\n this._autoExecuteQueued = true;\n queueMicrotask(() => {\n this._autoExecuteQueued = false;\n this.executeQuery();\n });\n }\n\n /** @private Default-visible keys, always including required definitions. */\n private _defaultVisibleKeys(): string[] {\n return this.definitions()\n .filter(\n (definition) =>\n definition.required ||\n definition.defaultVisible ||\n this._isActive(definition.key),\n )\n .map((definition) => definition.key);\n }\n\n /** @protected Whether a required field should currently expose an error. */\n protected _isRequiredMissing(definition: MlvFilterDefinition): boolean {\n return (\n this._showRequiredErrors() &&\n this._missingRequiredDefinitions().some(\n (candidate) => candidate.key === definition.key,\n )\n );\n }\n\n /** @protected Stable id for one field-level validation message. */\n protected _requiredErrorId(definition: MlvFilterDefinition): string {\n const index = this.definitions().findIndex(\n (candidate) => candidate.key === definition.key,\n );\n return `${this._validationSummaryId}-field-${Math.max(0, index)}`;\n }\n\n /** @protected Localized field-level validation message. */\n protected _requiredFilterMessage(definition: MlvFilterDefinition): string {\n return this._resolveMessage('requiredFilter', { label: definition.label });\n }\n\n /** @private Blocks execution and focuses the first incomplete required field. */\n private _validateRequiredFilters(): boolean {\n const missing = this._missingRequiredDefinitions();\n if (missing.length === 0) {\n this._validationAttempted.set(false);\n return true;\n }\n\n this._validationAttempted.set(true);\n this.filtersVisible.set(true);\n queueMicrotask(() => {\n const firstMissingKey = this._missingRequiredDefinitions()[0]?.key;\n const index = this.visibleDefinitions().findIndex(\n (definition) => definition.key === firstMissingKey,\n );\n const host = this._filterHosts()[index]?.nativeElement as\n | HTMLElement\n | undefined;\n host?.querySelector<HTMLButtonElement>('.mlv-filter__trigger')?.focus();\n });\n return false;\n }\n\n /** @private Builds a defensive execution snapshot. */\n private _payload(): MlvFilterExecutionPayload {\n return {\n search: this.searchValue(),\n filters: cloneFieldStates(this.filters()),\n visibleKeys: [...this.visibleKeys()],\n expression: mlvFilterFieldsToExpression(cloneFieldStates(this.filters())),\n };\n }\n\n /** @private Resolves one ICU message from the filter translation slice. */\n private _resolveMessage(\n key: 'availableFilters' | 'filters' | 'requiredFilter' | 'requiredFilters',\n params: Record<string, string | number>,\n ): string {\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n key,\n params,\n );\n }\n}\n","@if (appearance() === 'classic') {\n<div class=\"mlv-smart-filter-bar__query-row\">\n @if (showSearch()) {\n <mlv-search-field\n class=\"mlv-smart-filter-bar__search\"\n [value]=\"searchValue()\"\n [trigger]=\"searchTrigger()\"\n [debounce]=\"searchDebounce()\"\n [commitOnClear]=\"autoExecute() || searchTrigger() === 'live'\"\n [disabled]=\"disabled() || loading()\"\n [loading]=\"loading()\"\n (valueChange)=\"searchValue.set($event)\"\n (search)=\"_onSearch($event)\"\n (keydown.enter)=\"_onSearchEnter($event)\"\n />\n }\n\n <div class=\"mlv-smart-filter-bar__primary-actions\">\n <button\n mlvButton\n type=\"button\"\n [disabled]=\"disabled() || loading()\"\n [loading]=\"loading()\"\n (click)=\"executeQuery()\"\n >\n {{ _i18n().go }}\n </button>\n\n <button\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n shape=\"square\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"_i18n().refresh\"\n (click)=\"refreshQuery()\"\n >\n <svg mlvButtonIcon lucideRefreshCw [size]=\"16\" aria-hidden=\"true\"></svg>\n </button>\n </div>\n</div>\n\n<div class=\"mlv-smart-filter-bar__filter-toolbar\">\n <div class=\"mlv-smart-filter-bar__filter-actions\">\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-expanded]=\"filtersVisible()\"\n [attr.aria-controls]=\"_filtersId\"\n (click)=\"_toggleFilters()\"\n >\n @if (filtersVisible()) {\n <svg mlvButtonIcon lucideChevronUp [size]=\"16\" aria-hidden=\"true\"></svg>\n {{ _i18n().hideFilters }} } @else {\n <svg mlvButtonIcon lucideChevronDown [size]=\"16\" aria-hidden=\"true\"></svg>\n {{ _i18n().showFilters }} }\n </button>\n\n <button\n #managerButton\n #managerTrigger=\"mlvPopupTrigger\"\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n [mlvPopupTrigger]=\"managerPopup\"\n [ariaHasPopup]=\"'dialog'\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"_i18n().manageFilters\"\n [attr.aria-controls]=\"_managerId\"\n >\n <svg mlvButtonIcon lucideSettings2 [size]=\"16\" aria-hidden=\"true\"></svg>\n {{ _filtersLabel() }}\n </button>\n\n @if (_hasState()) {\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"clear()\"\n >\n {{ _i18n().clear }}\n </button>\n }\n </div>\n\n <span class=\"mlv-smart-filter-bar__status\" aria-live=\"polite\">\n {{ _appliedFiltersLabel() }}\n </span>\n</div>\n\n@if (_showRequiredErrors()) {\n<div\n class=\"mlv-smart-filter-bar__validation-summary\"\n [id]=\"_validationSummaryId\"\n role=\"alert\"\n>\n {{ _requiredFiltersMessage() }}\n</div>\n}\n\n<mlv-expand #panel [id]=\"_filtersId\" [opened]=\"filtersVisible()\">\n <div class=\"mlv-smart-filter-bar__filters\">\n @for (definition of visibleDefinitions(); track definition.key) {\n <div\n class=\"mlv-smart-filter-bar__field\"\n [class.mlv-smart-filter-bar__field--invalid]=\"\n _isRequiredMissing(definition)\n \"\n >\n <mlv-filter\n [key]=\"definition.key\"\n [label]=\"definition.label\"\n [editor]=\"definition.editor\"\n [options]=\"definition.options ?? []\"\n [operators]=\"_operatorsFor(definition)\"\n [operatorLabels]=\"definition.operatorLabels ?? {}\"\n [defaultOperator]=\"definition.defaultOperator ?? 'contains'\"\n [multiple]=\"definition.multiple ?? false\"\n [allowMultipleConditions]=\"_allowsMultipleConditions(definition)\"\n [placeholder]=\"definition.placeholder\"\n [applyMode]=\"filterApplyMode()\"\n [disabled]=\"\n disabled() || loading() || (definition.disabled ?? false)\n \"\n [loading]=\"loading()\"\n [invalid]=\"_isRequiredMissing(definition)\"\n [ariaDescribedBy]=\"\n _isRequiredMissing(definition)\n ? _requiredErrorId(definition)\n : undefined\n \"\n [valueEditor]=\"_valueEditorFor(definition)\"\n [conditions]=\"_conditionsFor(definition.key)\"\n [conditionStrategy]=\"_strategyFor(definition.key)\"\n (conditionsChange)=\"_setConditions(definition, $event)\"\n (conditionStrategyChange)=\"_setStrategy(definition, $event)\"\n />\n @if (_isRequiredMissing(definition)) {\n <span\n class=\"mlv-smart-filter-bar__field-error\"\n [id]=\"_requiredErrorId(definition)\"\n >\n {{ _requiredFilterMessage(definition) }}\n </span>\n }\n </div>\n }\n </div>\n</mlv-expand>\n\n<mlv-popup\n #managerPopup\n panelRole=\"dialog\"\n [modal]=\"true\"\n [ariaLabel]=\"_i18n().manageFilters\"\n [position]=\"['bottom-end', 'top-end']\"\n [hasShadow]=\"true\"\n minWidth=\"18rem\"\n maxWidth=\"28rem\"\n (afterOpened)=\"_onManagerOpened()\"\n (afterClosed)=\"_onManagerClosed()\"\n>\n <ng-template mlvPopupContent>\n <div #managerPanel class=\"mlv-smart-filter-bar__manager\" [id]=\"_managerId\">\n <div class=\"mlv-smart-filter-bar__manager-header\">\n <span class=\"mlv-smart-filter-bar__manager-title\">\n {{ _availableFiltersLabel() }}\n </span>\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"_resetManagerSelection()\"\n >\n {{ _i18n().reset }}\n </button>\n </div>\n\n <mlv-search-field\n class=\"mlv-smart-filter-bar__manager-search\"\n trigger=\"live\"\n [debounce]=\"0\"\n [value]=\"_availableSearch()\"\n [placeholder]=\"_i18n().searchAvailableFilters\"\n [ariaLabel]=\"_i18n().searchAvailableFilters\"\n [disabled]=\"disabled() || loading()\"\n (valueChange)=\"_availableSearch.set($event)\"\n (search)=\"_onAvailableSearch($event)\"\n />\n\n <div\n class=\"mlv-smart-filter-bar__manager-list\"\n role=\"group\"\n [attr.aria-label]=\"_availableFiltersLabel()\"\n >\n @for (definition of _filteredDefinitions(); track definition.key) {\n <mlv-checkbox\n class=\"mlv-smart-filter-bar__manager-option\"\n [checked]=\"_isVisible(definition.key)\"\n [disabled]=\"\n disabled() ||\n loading() ||\n (definition.required ?? false) ||\n _isActive(definition.key)\n \"\n (checkedChange)=\"_setVisible(definition, $event)\"\n >\n <span class=\"mlv-smart-filter-bar__manager-option-label\">\n {{ definition.label }}\n </span>\n @if (definition.required) {\n <span class=\"mlv-smart-filter-bar__manager-option-status\">\n {{ _i18n().required }}\n </span>\n } @if (_isActive(definition.key)) {\n <span class=\"mlv-smart-filter-bar__manager-option-status\">\n {{ _i18n().active }}\n </span>\n }\n </mlv-checkbox>\n }\n </div>\n\n <div class=\"mlv-smart-filter-bar__manager-footer\">\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"_cancelManager(managerTrigger)\"\n >\n {{ _i18n().cancel }}\n </button>\n <button\n mlvButton\n type=\"button\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"_applyManager(managerTrigger)\"\n >\n {{ _i18n().apply }}\n </button>\n </div>\n </div>\n </ng-template>\n</mlv-popup>\n} @else {\n<div class=\"mlv-smart-filter-bar__query-filters\">\n @if (showSearch()) {\n <mlv-search-field\n class=\"mlv-smart-filter-bar__query-search\"\n [value]=\"searchValue()\"\n [trigger]=\"searchTrigger()\"\n [debounce]=\"searchDebounce()\"\n [commitOnClear]=\"autoExecute() || searchTrigger() === 'live'\"\n [disabled]=\"disabled() || loading()\"\n [loading]=\"loading()\"\n (valueChange)=\"searchValue.set($event)\"\n (search)=\"_onSearch($event)\"\n (keydown.enter)=\"_onSearchEnter($event)\"\n />\n } @for (definition of _queryDefinitions(); track definition.key) {\n <div class=\"mlv-smart-filter-bar__query-field\">\n <mlv-filter\n [key]=\"definition.key\"\n appearance=\"query\"\n [queryRemovable]=\"!definition.required\"\n [label]=\"definition.label\"\n [editor]=\"definition.editor\"\n [options]=\"definition.options ?? []\"\n [operators]=\"_operatorsFor(definition)\"\n [operatorLabels]=\"definition.operatorLabels ?? {}\"\n [defaultOperator]=\"definition.defaultOperator ?? 'contains'\"\n [multiple]=\"definition.multiple ?? false\"\n [allowMultipleConditions]=\"_allowsMultipleConditions(definition)\"\n [placeholder]=\"definition.placeholder\"\n [applyMode]=\"filterApplyMode()\"\n [disabled]=\"disabled() || loading() || (definition.disabled ?? false)\"\n [loading]=\"loading()\"\n [invalid]=\"_isRequiredMissing(definition)\"\n [ariaDescribedBy]=\"\n _isRequiredMissing(definition)\n ? _requiredErrorId(definition)\n : undefined\n \"\n [valueEditor]=\"_valueEditorFor(definition)\"\n [conditions]=\"_conditionsFor(definition.key)\"\n [conditionStrategy]=\"_strategyFor(definition.key)\"\n (conditionsChange)=\"_setConditions(definition, $event)\"\n (conditionStrategyChange)=\"_setStrategy(definition, $event)\"\n (cleared)=\"_removeQueryFilter(definition)\"\n />\n @if (_isRequiredMissing(definition)) {\n <span\n class=\"mlv-smart-filter-bar__field-error\"\n [id]=\"_requiredErrorId(definition)\"\n >\n {{ _requiredFilterMessage(definition) }}\n </span>\n }\n </div>\n }\n\n <button\n #addButton\n #addTrigger=\"mlvPopupTrigger\"\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n class=\"mlv-smart-filter-bar__add\"\n [mlvPopupTrigger]=\"addPopup\"\n [ariaHasPopup]=\"'dialog'\"\n [disabled]=\"disabled() || loading()\"\n >\n <svg mlvButtonIcon lucidePlus [size]=\"14\" aria-hidden=\"true\"></svg>\n {{ _i18n().addFilter }}\n </button>\n\n @if (_hasState()) {\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n class=\"mlv-smart-filter-bar__clear-all\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"_clearQuery()\"\n >\n {{ _i18n().clearAll }}\n </button>\n } @if (filterApplyMode() === 'explicit') {\n <button\n mlvButton\n type=\"button\"\n class=\"mlv-smart-filter-bar__apply-query\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"executeQuery()\"\n >\n {{ _i18n().apply }}\n </button>\n }\n</div>\n\n@if (_showRequiredErrors()) {\n<div\n class=\"mlv-smart-filter-bar__validation-summary\"\n [id]=\"_validationSummaryId\"\n role=\"alert\"\n>\n {{ _requiredFiltersMessage() }}\n</div>\n}\n\n<mlv-popup\n #addPopup\n panelRole=\"dialog\"\n [ariaLabel]=\"_i18n().addFilter\"\n [position]=\"['bottom-start', 'top-start']\"\n [hasShadow]=\"true\"\n minWidth=\"14rem\"\n maxWidth=\"28rem\"\n (afterOpened)=\"_onAddOpened()\"\n (afterClosed)=\"_onAddClosed()\"\n>\n <ng-template mlvPopupContent>\n <div #addPanel class=\"mlv-smart-filter-bar__add-menu\">\n <mlv-search-field\n class=\"mlv-smart-filter-bar__add-search\"\n trigger=\"live\"\n [debounce]=\"0\"\n [value]=\"_availableSearch()\"\n [placeholder]=\"_i18n().searchAvailableFilters\"\n [ariaLabel]=\"_i18n().searchAvailableFilters\"\n [disabled]=\"disabled() || loading()\"\n (valueChange)=\"_availableSearch.set($event)\"\n (search)=\"_onAvailableSearch($event)\"\n />\n <ul class=\"mlv-smart-filter-bar__add-list\">\n @for (definition of _addableDefinitions(); track definition.key) {\n <li class=\"mlv-smart-filter-bar__add-item\">\n <button\n mlvButton\n type=\"button\"\n variant=\"transparent\"\n class=\"mlv-smart-filter-bar__add-option\"\n [disabled]=\"disabled() || loading()\"\n (click)=\"_addQueryFilter(definition, addTrigger)\"\n >\n {{ definition.label }}\n </button>\n </li>\n } @empty {\n <li class=\"mlv-smart-filter-bar__add-empty\">\n {{ _i18n().noFiltersAvailable }}\n </li>\n }\n </ul>\n </div>\n </ng-template>\n</mlv-popup>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["normalizeForMatch"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { expect } from 'vitest';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shared assertion driver for the forms bindings matrix: form→control value
|
|
5
|
+
* write, control→form user interaction, touched propagation on blur, and
|
|
6
|
+
* disabled propagation — identical expectations for every binding mode. A
|
|
7
|
+
* control's spec calls this once per mode; a migrated control (CVA →
|
|
8
|
+
* FormValueControl) must keep all three runs green.
|
|
9
|
+
*/
|
|
10
|
+
async function verifyFormsBinding(options) {
|
|
11
|
+
const { adapter } = options;
|
|
12
|
+
const label = `[${adapter.mode}]`;
|
|
13
|
+
// form → control → form round trip
|
|
14
|
+
await adapter.setValue(options.sample);
|
|
15
|
+
expect(adapter.getValue(), `${label} form-side write round-trip`).toEqual(options.sample);
|
|
16
|
+
// user interaction → form side
|
|
17
|
+
await options.interact();
|
|
18
|
+
expect(adapter.getValue(), `${label} user interaction result`).toEqual(options.expectedAfterInteraction);
|
|
19
|
+
// blur → touched
|
|
20
|
+
if (options.blur) {
|
|
21
|
+
expect(adapter.isTouched(), `${label} untouched before blur`).toBe(false);
|
|
22
|
+
await options.blur();
|
|
23
|
+
expect(adapter.isTouched(), `${label} touched after blur`).toBe(true);
|
|
24
|
+
}
|
|
25
|
+
// disabled propagation
|
|
26
|
+
if (adapter.setDisabled && adapter.isDisabled) {
|
|
27
|
+
await adapter.setDisabled(true);
|
|
28
|
+
expect(adapter.isDisabled(), `${label} disabled propagated`).toBe(true);
|
|
29
|
+
await adapter.setDisabled(false);
|
|
30
|
+
expect(adapter.isDisabled(), `${label} re-enabled`).toBe(false);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Generated bundle index. Do not edit.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
export { verifyFormsBinding };
|
|
39
|
+
//# sourceMappingURL=malva-ui-core-form-utils-testing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-form-utils-testing.mjs","sources":["../../../../libs/core/form-utils/testing/src/lib/forms-binding-matrix.ts","../../../../libs/core/form-utils/testing/src/malva-ui-core-form-utils-testing.ts"],"sourcesContent":["import { expect } from 'vitest';\n\n/**\n * One binding mode's view of the form side while running the bindings matrix.\n * Concrete adapters are built by the control's spec for each of the three\n * binding modes (reactive `[formControl]`, template-driven `ngModel`, signal\n * forms `[formField]`), so the shared {@link verifyFormsBinding} assertions\n * stay identical across modes and across controls.\n */\nexport interface MlvFormsBindingAdapter<T> {\n /** Mode label used in assertion messages. */\n readonly mode: 'reactive' | 'template-driven' | 'signal-forms';\n\n /** Writes a value from the FORM side into the control. */\n setValue(value: T): void | Promise<void>;\n\n /** Reads the form side's current value. */\n getValue(): T;\n\n /** Whether the form side considers the control touched. */\n isTouched(): boolean;\n\n /** Disables from the form side. Omit when the mode cannot express it. */\n setDisabled?(disabled: boolean): void | Promise<void>;\n\n /** Whether the COMPONENT reports disabled (e.g. `computedDisabled()`). */\n isDisabled?(): boolean;\n}\n\n/**\n * Options for one {@link verifyFormsBinding} run.\n */\nexport interface MlvFormsBindingMatrixOptions<T> {\n /** The mode adapter under test. */\n adapter: MlvFormsBindingAdapter<T>;\n\n /** Value written from the form side; must round-trip unchanged. */\n sample: T;\n\n /**\n * Simulates a USER interaction on the rendered control that must surface on\n * the form side as {@link expectedAfterInteraction}.\n */\n interact: () => void | Promise<void>;\n\n /** Form-side value expected after {@link interact}. */\n expectedAfterInteraction: T;\n\n /** Simulates the user leaving the field; drives the touched assertion. */\n blur?: () => void | Promise<void>;\n}\n\n/**\n * Shared assertion driver for the forms bindings matrix: form→control value\n * write, control→form user interaction, touched propagation on blur, and\n * disabled propagation — identical expectations for every binding mode. A\n * control's spec calls this once per mode; a migrated control (CVA →\n * FormValueControl) must keep all three runs green.\n */\nexport async function verifyFormsBinding<T>(\n options: MlvFormsBindingMatrixOptions<T>,\n): Promise<void> {\n const { adapter } = options;\n const label = `[${adapter.mode}]`;\n\n // form → control → form round trip\n await adapter.setValue(options.sample);\n expect(adapter.getValue(), `${label} form-side write round-trip`).toEqual(\n options.sample,\n );\n\n // user interaction → form side\n await options.interact();\n expect(adapter.getValue(), `${label} user interaction result`).toEqual(\n options.expectedAfterInteraction,\n );\n\n // blur → touched\n if (options.blur) {\n expect(adapter.isTouched(), `${label} untouched before blur`).toBe(false);\n await options.blur();\n expect(adapter.isTouched(), `${label} touched after blur`).toBe(true);\n }\n\n // disabled propagation\n if (adapter.setDisabled && adapter.isDisabled) {\n await adapter.setDisabled(true);\n expect(adapter.isDisabled(), `${label} disabled propagated`).toBe(true);\n await adapter.setDisabled(false);\n expect(adapter.isDisabled(), `${label} re-enabled`).toBe(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAoDA;;;;;;AAMG;AACI,eAAe,kBAAkB,CACtC,OAAwC,EAAA;AAExC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;AAC3B,IAAA,MAAM,KAAK,GAAG,CAAA,CAAA,EAAI,OAAO,CAAC,IAAI,GAAG;;IAGjC,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,IAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,2BAAA,CAA6B,CAAC,CAAC,OAAO,CACvE,OAAO,CAAC,MAAM,CACf;;AAGD,IAAA,MAAM,OAAO,CAAC,QAAQ,EAAE;AACxB,IAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,wBAAA,CAA0B,CAAC,CAAC,OAAO,CACpE,OAAO,CAAC,wBAAwB,CACjC;;AAGD,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,sBAAA,CAAwB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACzE,QAAA,MAAM,OAAO,CAAC,IAAI,EAAE;AACpB,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,mBAAA,CAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACvE;;IAGA,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE;AAC7C,QAAA,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/B,QAAA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,oBAAA,CAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvE,QAAA,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,QAAA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAA,EAAG,KAAK,CAAA,WAAA,CAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACjE;AACF;;AC3FA;;AAEG;;;;"}
|