@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,1223 @@
|
|
|
1
|
+
import { DIALOG_DATA as DIALOG_DATA$1, CdkDialogContainer, DialogConfig, Dialog } from '@angular/cdk/dialog';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, signal, inject, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, Component, input, computed, viewChild, DestroyRef, afterEveryRender, Directive, Injector, afterNextRender, TemplateRef, Injectable, model, output, effect, untracked } from '@angular/core';
|
|
4
|
+
import { Subject, map, shareReplay, filter } from 'rxjs';
|
|
5
|
+
import { coerceBooleanProperty, coerceArray, coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
6
|
+
import { mlvNextId, MlvRtlService } from '@malva-ui/cdk/utils';
|
|
7
|
+
import { MlvButtonClose, MlvButton } from '@malva-ui/core/button';
|
|
8
|
+
import { MLV_DIALOG_I18N } from '@malva-ui/i18n';
|
|
9
|
+
import { MlvScrollbar } from '@malva-ui/core/scrollbar';
|
|
10
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
|
+
import { hasModifierKey } from '@angular/cdk/keycodes';
|
|
12
|
+
import { CdkPortalOutlet } from '@angular/cdk/portal';
|
|
13
|
+
import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
|
|
14
|
+
import { MlvOverlayInitialFocusResolver } from '@malva-ui/cdk/overlay';
|
|
15
|
+
|
|
16
|
+
const DEFAULT_SIZE_PRESETS = {
|
|
17
|
+
s: { width: '400px', maxHeight: '90vh', maxWidth: '90vw' },
|
|
18
|
+
m: { width: '560px', maxHeight: '90vh', maxWidth: '90vw' },
|
|
19
|
+
l: { width: '800px', maxHeight: '90vh', maxWidth: '90vw' },
|
|
20
|
+
fullscreen: {
|
|
21
|
+
width: '100vw',
|
|
22
|
+
height: '100vh',
|
|
23
|
+
maxWidth: '100vw',
|
|
24
|
+
maxHeight: '100vh',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
/** Registered dialog size presets. Override to add or change presets app-wide. */
|
|
28
|
+
const DIALOG_SIZE_PRESETS = new InjectionToken('DIALOG_SIZE_PRESETS', { providedIn: 'root', factory: () => DEFAULT_SIZE_PRESETS });
|
|
29
|
+
/**
|
|
30
|
+
* Data passed through `MlvDialogConfig.data`, injectable by component content.
|
|
31
|
+
* This is Angular CDK's `DIALOG_DATA` token re-exported under the same name.
|
|
32
|
+
*/
|
|
33
|
+
const DIALOG_DATA = DIALOG_DATA$1;
|
|
34
|
+
/** The consumer's `MlvDialogConfig` for the current dialog, injectable by content and parts. */
|
|
35
|
+
const DIALOG_CONFIG = new InjectionToken('DIALOG_CONFIG');
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Upper bound the leave animation is given before the dialog is disposed
|
|
39
|
+
* anyway (reduced motion, a content root that is not `<mlv-dialog>`, jsdom).
|
|
40
|
+
*/
|
|
41
|
+
const LEAVE_FALLBACK_MS = 250;
|
|
42
|
+
/**
|
|
43
|
+
* Handle returned by `MlvDialogService.open()` (and exposed to content through
|
|
44
|
+
* DI and the template context) for controlling a dialog and receiving its result.
|
|
45
|
+
*
|
|
46
|
+
* Wraps the CDK `DialogRef` the engine creates. `close()` plays the surface's
|
|
47
|
+
* leave animation first — `animationState` flips to `'leave'`, `<mlv-dialog>`
|
|
48
|
+
* adds `.mlv-dialog--leave`, and its `animationend` calls back here — and only
|
|
49
|
+
* then disposes the CDK dialog, so `afterClosed()` emits after the animation.
|
|
50
|
+
*
|
|
51
|
+
* @typeParam R - Result type emitted by `afterClosed()`.
|
|
52
|
+
* @typeParam D - Type of `data`.
|
|
53
|
+
*/
|
|
54
|
+
class MlvDialogRef {
|
|
55
|
+
_cdkRef;
|
|
56
|
+
/** Payload from `MlvDialogConfig.data`. */
|
|
57
|
+
data;
|
|
58
|
+
/** The consumer's configuration this dialog was opened with. */
|
|
59
|
+
config;
|
|
60
|
+
/** Id of the dialog container element (CDK-generated unless `config.id` was set). */
|
|
61
|
+
id;
|
|
62
|
+
/** Drives the surface's `--enter` / `--leave` classes. */
|
|
63
|
+
animationState;
|
|
64
|
+
/** @private Writable side of {@link animationState}. */
|
|
65
|
+
_animationState = signal('enter', /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "_animationState" }] : /* istanbul ignore next */ []));
|
|
67
|
+
/** @private Emits once, synchronously, at the start of `close()`. */
|
|
68
|
+
_beforeClose = new Subject();
|
|
69
|
+
/** @private Guards `close()` against re-entry and late calls. */
|
|
70
|
+
_closeStarted = false;
|
|
71
|
+
/**
|
|
72
|
+
* @private Set once the CDK dialog has actually closed. From then on the ref
|
|
73
|
+
* is inert: a late `animationend` from the torn-down surface must not move
|
|
74
|
+
* `animationState` or re-enter the close path.
|
|
75
|
+
*/
|
|
76
|
+
_disposed = false;
|
|
77
|
+
/** @private Result captured by the first `close()` call. */
|
|
78
|
+
_result;
|
|
79
|
+
/** @private Fallback timer that disposes when `animationend` never arrives. */
|
|
80
|
+
_leaveTimer;
|
|
81
|
+
constructor(
|
|
82
|
+
/** @private The CDK reference this handle controls. */
|
|
83
|
+
_cdkRef, config) {
|
|
84
|
+
this._cdkRef = _cdkRef;
|
|
85
|
+
this.config = config;
|
|
86
|
+
this.data = config.data;
|
|
87
|
+
this.id = _cdkRef.id;
|
|
88
|
+
this.animationState = this._animationState.asReadonly();
|
|
89
|
+
// The CDK can close without us (history navigation, overlay detachment,
|
|
90
|
+
// CDK closeAll). Treat that as terminal so a later close() is a no-op.
|
|
91
|
+
_cdkRef.closed.subscribe(() => {
|
|
92
|
+
this._closeStarted = true;
|
|
93
|
+
this._disposed = true;
|
|
94
|
+
this._clearLeaveTimer();
|
|
95
|
+
this._beforeClose.complete();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Closes the dialog: emits `beforeClose()`, plays the leave animation, then
|
|
100
|
+
* disposes and emits `result` on `afterClosed()`. Idempotent.
|
|
101
|
+
*
|
|
102
|
+
* @param result - Value forwarded to `afterClosed()` subscribers.
|
|
103
|
+
*/
|
|
104
|
+
close(result) {
|
|
105
|
+
if (this._closeStarted) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this._closeStarted = true;
|
|
109
|
+
this._result = result;
|
|
110
|
+
this._beforeClose.next();
|
|
111
|
+
this._beforeClose.complete();
|
|
112
|
+
this._cdkRef.overlayRef.backdropElement?.classList.add('mlv-dialog-backdrop--leaving');
|
|
113
|
+
this._animationState.set('leave');
|
|
114
|
+
this._leaveTimer = setTimeout(() => this._finishClose(), LEAVE_FALLBACK_MS);
|
|
115
|
+
}
|
|
116
|
+
/** Emits once with the close result after the dialog is disposed, then completes. */
|
|
117
|
+
afterClosed() {
|
|
118
|
+
return this._cdkRef.closed;
|
|
119
|
+
}
|
|
120
|
+
/** Emits and completes synchronously when `close()` is called, before the leave animation. */
|
|
121
|
+
beforeClose() {
|
|
122
|
+
return this._beforeClose.asObservable();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Keydown events that reach this dialog. The CDK delivers a keydown only to
|
|
126
|
+
* the topmost overlay with keydown observers, so a dialog (or a select /
|
|
127
|
+
* combobox popup) opened on top of this one receives Escape instead of it.
|
|
128
|
+
* Pair with `closeOnEscape: false` to run a close guard yourself.
|
|
129
|
+
*/
|
|
130
|
+
keydownEvents() {
|
|
131
|
+
return this._cdkRef.keydownEvents;
|
|
132
|
+
}
|
|
133
|
+
/** Backdrop clicks on this dialog. Pair with `closeOnBackdrop: false` to run a close guard yourself. */
|
|
134
|
+
backdropClick() {
|
|
135
|
+
return this._cdkRef.backdropClick;
|
|
136
|
+
}
|
|
137
|
+
/** Updates the overlay pane's width and/or height. */
|
|
138
|
+
updateSize(width, height) {
|
|
139
|
+
this._cdkRef.updateSize(width, height);
|
|
140
|
+
return this;
|
|
141
|
+
}
|
|
142
|
+
/** Adds class(es) to the overlay pane. */
|
|
143
|
+
addPanelClass(classes) {
|
|
144
|
+
this._cdkRef.addPanelClass(classes);
|
|
145
|
+
return this;
|
|
146
|
+
}
|
|
147
|
+
/** Removes class(es) from the overlay pane. */
|
|
148
|
+
removePanelClass(classes) {
|
|
149
|
+
this._cdkRef.removePanelClass(classes);
|
|
150
|
+
return this;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @internal Called by `<mlv-dialog>` when its own CSS animation ends:
|
|
154
|
+
* the enter animation settles to `'idle'`, the leave animation disposes.
|
|
155
|
+
*/
|
|
156
|
+
_onSurfaceAnimationEnd() {
|
|
157
|
+
if (this._disposed) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const state = this._animationState();
|
|
161
|
+
if (state === 'enter') {
|
|
162
|
+
this._animationState.set('idle');
|
|
163
|
+
}
|
|
164
|
+
else if (state === 'leave') {
|
|
165
|
+
this._finishClose();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* @internal Registers `id` as a label of the dialog. Used by
|
|
170
|
+
* `mlv-dialog-header` so the visible title becomes the accessible name.
|
|
171
|
+
* `ariaLabelledBy` from the config is queued first by the CDK container and
|
|
172
|
+
* therefore still wins; `ariaLabel` suppresses `aria-labelledby` entirely.
|
|
173
|
+
*/
|
|
174
|
+
_labelBy(id) {
|
|
175
|
+
this._container()?._addAriaLabelledBy(id);
|
|
176
|
+
}
|
|
177
|
+
/** @internal Reverses {@link _labelBy} when the header is destroyed. */
|
|
178
|
+
_unlabelBy(id) {
|
|
179
|
+
this._container()?._removeAriaLabelledBy(id);
|
|
180
|
+
}
|
|
181
|
+
/** @private The CDK container while the dialog is open, `null` once disposed. */
|
|
182
|
+
_container() {
|
|
183
|
+
return (this._cdkRef
|
|
184
|
+
.containerInstance ?? null);
|
|
185
|
+
}
|
|
186
|
+
/** @private Disposes the CDK dialog with the captured result. Safe to call twice. */
|
|
187
|
+
_finishClose() {
|
|
188
|
+
this._clearLeaveTimer();
|
|
189
|
+
if (this._cdkRef.containerInstance) {
|
|
190
|
+
this._cdkRef.close(this._result);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** @private Cancels the fallback timer if it is pending. */
|
|
194
|
+
_clearLeaveTimer() {
|
|
195
|
+
if (this._leaveTimer !== undefined) {
|
|
196
|
+
clearTimeout(this._leaveTimer);
|
|
197
|
+
this._leaveTimer = undefined;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* @internal Injects the current `MlvDialogRef`, failing with a descriptive
|
|
204
|
+
* error when a dialog part is rendered outside a dialog.
|
|
205
|
+
*
|
|
206
|
+
* @param consumer - Selector of the part, used in the error message.
|
|
207
|
+
*/
|
|
208
|
+
function injectDialogRef(consumer) {
|
|
209
|
+
const ref = inject(MlvDialogRef, { optional: true });
|
|
210
|
+
if (!ref) {
|
|
211
|
+
throw new Error(`[Malva UI] <${consumer}> must be rendered inside a dialog: open its template or component through MlvDialogService.open(), or wrap it in <ng-template [(mlvDialog)]>.`);
|
|
212
|
+
}
|
|
213
|
+
return ref;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* The dialog surface — root of every dialog's content, whether the dialog was
|
|
218
|
+
* opened from a template, a component, a string, `confirm()`, or a route.
|
|
219
|
+
*
|
|
220
|
+
* Projects its children (`mlv-dialog-header`, `mlv-dialog-body`,
|
|
221
|
+
* `mlv-dialog-footer`, anything else) and mirrors the ref's animation state as
|
|
222
|
+
* `--enter` / `--leave` so the global dialog keyframes run on it. Consumer
|
|
223
|
+
* `class="…"` lands here; `MlvDialogConfig.panelClass` styles the overlay pane.
|
|
224
|
+
*/
|
|
225
|
+
class MlvDialog {
|
|
226
|
+
/** @protected The dialog this surface belongs to. */
|
|
227
|
+
_ref = injectDialogRef('mlv-dialog');
|
|
228
|
+
/** @protected Per-open configuration; `appearance` drives the confirm modifier. */
|
|
229
|
+
_config = inject(DIALOG_CONFIG);
|
|
230
|
+
/** @private Host element, used to ignore `animationend` bubbling from descendants. */
|
|
231
|
+
_host = inject(ElementRef).nativeElement;
|
|
232
|
+
/** @protected Hands the surface's own animation end to the ref (enter → idle, leave → dispose). */
|
|
233
|
+
_onAnimationEnd(event) {
|
|
234
|
+
if (event.target === this._host) {
|
|
235
|
+
this._ref._onSurfaceAnimationEnd();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
239
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: MlvDialog, isStandalone: true, selector: "mlv-dialog", host: { listeners: { "animationend": "_onAnimationEnd($event)" }, properties: { "class.mlv-dialog--confirm": "_config.appearance === 'confirm'", "class.mlv-dialog--enter": "_ref.animationState() === 'enter'", "class.mlv-dialog--leave": "_ref.animationState() === 'leave'" }, classAttribute: "mlv-dialog" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer mlv.components{.mlv-dialog{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-dialog *{box-sizing:border-box}.mlv-dialog{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;width:100%;max-width:100%;max-height:100%;overflow:hidden;border-radius:0;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);background-color:var(--mlv-elevation-bg-2);color:var(--mlv-text-primary);box-shadow:var(--mlv-shadow-modal)}@media(min-width:768px){.mlv-dialog{border-radius:var(--mlv-radius-dialog);max-height:calc(100dvh - 2rem)}}.mlv-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--mlv-spacing-3);flex-shrink:0;padding:var(--mlv-spacing-3);border-bottom:var(--mlv-stroke-width) solid var(--mlv-border-normal)}.mlv-dialog__title{flex:1 1 auto;min-width:0;margin:0;padding:0;font-size:var(--mlv-font-size-2xl);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-line-height-tight);color:var(--mlv-text-primary)}.mlv-dialog__title>:is(h1,h2,h3,h4,h5,h6){margin:0;font:inherit;color:inherit}.mlv-dialog__close{flex:none}.mlv-dialog__body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.mlv-dialog__body-scrollbar{flex:1 1 auto;min-width:0;min-height:0}.mlv-dialog__body-scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden;padding:var(--mlv-spacing-3)}.mlv-dialog__body-scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content{display:flex;flex-direction:column}.mlv-dialog__text{margin:0;color:var(--mlv-text-primary);line-height:var(--mlv-line-height-relaxed);white-space:pre-wrap;overflow-wrap:anywhere}.mlv-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--mlv-spacing-2);flex-shrink:0;padding:var(--mlv-spacing-3);border-top:var(--mlv-stroke-width) solid var(--mlv-border-normal)}.mlv-dialog__footer--align-start{justify-content:flex-start}.mlv-dialog__footer--align-center{justify-content:center}.mlv-dialog__footer--align-between{justify-content:space-between}.mlv-dialog--confirm .mlv-dialog__header,.mlv-dialog--confirm .mlv-dialog__footer{border:none}.mlv-dialog-pane--fullscreen .mlv-dialog{max-height:100%;border-radius:0;border:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
240
|
+
}
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialog, decorators: [{
|
|
242
|
+
type: Component,
|
|
243
|
+
args: [{ selector: 'mlv-dialog', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
244
|
+
class: 'mlv-dialog',
|
|
245
|
+
'[class.mlv-dialog--confirm]': "_config.appearance === 'confirm'",
|
|
246
|
+
'[class.mlv-dialog--enter]': "_ref.animationState() === 'enter'",
|
|
247
|
+
'[class.mlv-dialog--leave]': "_ref.animationState() === 'leave'",
|
|
248
|
+
'(animationend)': '_onAnimationEnd($event)',
|
|
249
|
+
}, styles: ["@layer mlv.components{.mlv-dialog{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-dialog *{box-sizing:border-box}.mlv-dialog{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;width:100%;max-width:100%;max-height:100%;overflow:hidden;border-radius:0;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);background-color:var(--mlv-elevation-bg-2);color:var(--mlv-text-primary);box-shadow:var(--mlv-shadow-modal)}@media(min-width:768px){.mlv-dialog{border-radius:var(--mlv-radius-dialog);max-height:calc(100dvh - 2rem)}}.mlv-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--mlv-spacing-3);flex-shrink:0;padding:var(--mlv-spacing-3);border-bottom:var(--mlv-stroke-width) solid var(--mlv-border-normal)}.mlv-dialog__title{flex:1 1 auto;min-width:0;margin:0;padding:0;font-size:var(--mlv-font-size-2xl);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-line-height-tight);color:var(--mlv-text-primary)}.mlv-dialog__title>:is(h1,h2,h3,h4,h5,h6){margin:0;font:inherit;color:inherit}.mlv-dialog__close{flex:none}.mlv-dialog__body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.mlv-dialog__body-scrollbar{flex:1 1 auto;min-width:0;min-height:0}.mlv-dialog__body-scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden;padding:var(--mlv-spacing-3)}.mlv-dialog__body-scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content{display:flex;flex-direction:column}.mlv-dialog__text{margin:0;color:var(--mlv-text-primary);line-height:var(--mlv-line-height-relaxed);white-space:pre-wrap;overflow-wrap:anywhere}.mlv-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--mlv-spacing-2);flex-shrink:0;padding:var(--mlv-spacing-3);border-top:var(--mlv-stroke-width) solid var(--mlv-border-normal)}.mlv-dialog__footer--align-start{justify-content:flex-start}.mlv-dialog__footer--align-center{justify-content:center}.mlv-dialog__footer--align-between{justify-content:space-between}.mlv-dialog--confirm .mlv-dialog__header,.mlv-dialog--confirm .mlv-dialog__footer{border:none}.mlv-dialog-pane--fullscreen .mlv-dialog{max-height:100%;border-radius:0;border:0}}\n"] }]
|
|
250
|
+
}] });
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Header row of a dialog: the title and the close button.
|
|
254
|
+
*
|
|
255
|
+
* Use it as an element (`<mlv-dialog-header title="…" />`) or as an attribute
|
|
256
|
+
* on a container (`<div mlvDialogHeader>`). Never put it on a heading — project
|
|
257
|
+
* the heading instead: `<mlv-dialog-header><h3>Edit user</h3></mlv-dialog-header>`.
|
|
258
|
+
*
|
|
259
|
+
* Title precedence: `title` input → projected content → `MlvDialogConfig.title`.
|
|
260
|
+
* Close button: `closable` input → `MlvDialogConfig.closable` → `true`, and
|
|
261
|
+
* always off when `MlvDialogConfig.appearance` is `'confirm'`.
|
|
262
|
+
*
|
|
263
|
+
* The title element carries `id="<dialogId>-title-<n>"` — unique per header, so
|
|
264
|
+
* two headers in one dialog never collide — and is registered as the
|
|
265
|
+
* dialog's label, so the visible title is the accessible name unless the
|
|
266
|
+
* config sets `ariaLabelledBy` / `ariaLabel`. The label follows the rendered
|
|
267
|
+
* title: the id is registered as soon as the title element gains text — an
|
|
268
|
+
* asynchronous title (`[title]="user()?.name"`, a projected heading fed by a
|
|
269
|
+
* resolver) is picked up — and removed again when it loses it. A header that
|
|
270
|
+
* renders no title at all (used only to host the close button) registers
|
|
271
|
+
* nothing — labelling the dialog with an empty element would leave it without
|
|
272
|
+
* an accessible name.
|
|
273
|
+
*/
|
|
274
|
+
class MlvDialogHeader {
|
|
275
|
+
/** Plain-text title rendered as `<h2>`. Wins over projected content and the config title. */
|
|
276
|
+
title = input(/* @ts-ignore */
|
|
277
|
+
...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
|
|
278
|
+
/**
|
|
279
|
+
* Whether the close button is rendered. Unset → `MlvDialogConfig.closable`
|
|
280
|
+
* → `true`. Ignored (always hidden) when the dialog `appearance` is `'confirm'`.
|
|
281
|
+
*/
|
|
282
|
+
closable = input(undefined, { ...(ngDevMode ? { debugName: "closable" } : /* istanbul ignore next */ {}), transform: (value) => value == null ? undefined : coerceBooleanProperty(value) });
|
|
283
|
+
/** @protected The dialog this header labels and closes. */
|
|
284
|
+
_ref = injectDialogRef('mlv-dialog-header');
|
|
285
|
+
/** @protected Per-open configuration (title / closable / appearance fallbacks). */
|
|
286
|
+
_config = inject(DIALOG_CONFIG);
|
|
287
|
+
/** @protected i18n strings — `closeDialog` labels the X. */
|
|
288
|
+
_i18n = inject(MLV_DIALOG_I18N);
|
|
289
|
+
/**
|
|
290
|
+
* @protected Id of the title element; the ref registers it as the dialog
|
|
291
|
+
* label. Per instance, not per dialog — two headers in the same dialog (a
|
|
292
|
+
* sticky bar plus a scrolled-away one, say) must not collide on one id.
|
|
293
|
+
*/
|
|
294
|
+
_titleId = mlvNextId(`${this._ref.id}-title`);
|
|
295
|
+
/** @protected Config title used as the `<ng-content>` fallback. */
|
|
296
|
+
_configTitle = this._config.title;
|
|
297
|
+
/** @protected Resolved close-button visibility (see class docs for precedence). */
|
|
298
|
+
_closable = computed(() => this._config.appearance === 'confirm'
|
|
299
|
+
? false
|
|
300
|
+
: (this.closable() ?? this._config.closable ?? true), /* @ts-ignore */
|
|
301
|
+
...(ngDevMode ? [{ debugName: "_closable" }] : /* istanbul ignore next */ []));
|
|
302
|
+
/**
|
|
303
|
+
* @protected The rendered title element, in either branch. Its text decides
|
|
304
|
+
* whether the dialog is labelled by this header.
|
|
305
|
+
*/
|
|
306
|
+
_titleEl = viewChild('titleEl', /* @ts-ignore */
|
|
307
|
+
...(ngDevMode ? [{ debugName: "_titleEl" }] : /* istanbul ignore next */ []));
|
|
308
|
+
/** @private Whether {@link _titleId} is currently registered as the dialog's label. */
|
|
309
|
+
_labelled = false;
|
|
310
|
+
/** @private Set on destroy so a queued render callback never runs on a torn-down view. */
|
|
311
|
+
_destroyed = false;
|
|
312
|
+
constructor() {
|
|
313
|
+
inject(DestroyRef).onDestroy(() => {
|
|
314
|
+
this._destroyed = true;
|
|
315
|
+
if (this._labelled) {
|
|
316
|
+
this._labelled = false;
|
|
317
|
+
this._ref._unlabelBy(this._titleId);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
// The title is only observable from the DOM (input, projected content or
|
|
321
|
+
// the config fallback), and it can change at any time, so the decision is
|
|
322
|
+
// re-taken after every render rather than latched on the first one.
|
|
323
|
+
afterEveryRender(() => this._syncLabel());
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* @private Keeps the dialog's label in sync with the rendered title: the id
|
|
327
|
+
* is registered as soon as the title element has text and removed again when
|
|
328
|
+
* it loses it, so a title that only arrives asynchronously still names the
|
|
329
|
+
* dialog. An empty title element would still win the CDK's `aria-labelledby`
|
|
330
|
+
* queue and leave the dialog with an empty accessible name (an axe
|
|
331
|
+
* `aria-dialog-name` violation), so a header without any title — no `title`
|
|
332
|
+
* input, no projected content, no `config.title` — registers nothing.
|
|
333
|
+
*/
|
|
334
|
+
_syncLabel() {
|
|
335
|
+
if (this._destroyed) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const hasText = !!this._titleEl()?.nativeElement.textContent?.trim();
|
|
339
|
+
if (hasText === this._labelled) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
this._labelled = hasText;
|
|
343
|
+
if (hasText) {
|
|
344
|
+
this._ref._labelBy(this._titleId);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
this._ref._unlabelBy(this._titleId);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/** @protected Closes the dialog with no result, as the X always does. */
|
|
351
|
+
_close() {
|
|
352
|
+
this._ref.close();
|
|
353
|
+
}
|
|
354
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
355
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvDialogHeader, isStandalone: true, selector: "mlv-dialog-header, [mlvDialogHeader]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.title": "null" }, classAttribute: "mlv-dialog__header" }, viewQueries: [{ propertyName: "_titleEl", first: true, predicate: ["titleEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
356
|
+
@if (title(); as text) {
|
|
357
|
+
<h2 #titleEl class="mlv-dialog__title" [id]="_titleId">{{ text }}</h2>
|
|
358
|
+
} @else {
|
|
359
|
+
<div #titleEl class="mlv-dialog__title" [id]="_titleId">
|
|
360
|
+
<ng-content>
|
|
361
|
+
@if (_configTitle; as text) {
|
|
362
|
+
<h2>{{ text }}</h2>
|
|
363
|
+
}
|
|
364
|
+
</ng-content>
|
|
365
|
+
</div>
|
|
366
|
+
}
|
|
367
|
+
@if (_closable()) {
|
|
368
|
+
<!-- The wrapper hosts a real <button>, so the bubbled native click already
|
|
369
|
+
covers pointer, Enter and Space. -->
|
|
370
|
+
<mlv-button-close
|
|
371
|
+
class="mlv-dialog__close"
|
|
372
|
+
mlvDensity="compact"
|
|
373
|
+
shape="circle"
|
|
374
|
+
variant="secondary"
|
|
375
|
+
[ariaLabel]="_i18n().closeDialog"
|
|
376
|
+
(click)="_close()"
|
|
377
|
+
/>
|
|
378
|
+
}
|
|
379
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MlvButtonClose, selector: "mlv-button-close", inputs: ["variant", "shape", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
380
|
+
}
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogHeader, decorators: [{
|
|
382
|
+
type: Component,
|
|
383
|
+
args: [{
|
|
384
|
+
// Attribute form intentionally enhances the consumer's own header container.
|
|
385
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
386
|
+
selector: 'mlv-dialog-header, [mlvDialogHeader]',
|
|
387
|
+
imports: [MlvButtonClose],
|
|
388
|
+
template: `
|
|
389
|
+
@if (title(); as text) {
|
|
390
|
+
<h2 #titleEl class="mlv-dialog__title" [id]="_titleId">{{ text }}</h2>
|
|
391
|
+
} @else {
|
|
392
|
+
<div #titleEl class="mlv-dialog__title" [id]="_titleId">
|
|
393
|
+
<ng-content>
|
|
394
|
+
@if (_configTitle; as text) {
|
|
395
|
+
<h2>{{ text }}</h2>
|
|
396
|
+
}
|
|
397
|
+
</ng-content>
|
|
398
|
+
</div>
|
|
399
|
+
}
|
|
400
|
+
@if (_closable()) {
|
|
401
|
+
<!-- The wrapper hosts a real <button>, so the bubbled native click already
|
|
402
|
+
covers pointer, Enter and Space. -->
|
|
403
|
+
<mlv-button-close
|
|
404
|
+
class="mlv-dialog__close"
|
|
405
|
+
mlvDensity="compact"
|
|
406
|
+
shape="circle"
|
|
407
|
+
variant="secondary"
|
|
408
|
+
[ariaLabel]="_i18n().closeDialog"
|
|
409
|
+
(click)="_close()"
|
|
410
|
+
/>
|
|
411
|
+
}
|
|
412
|
+
`,
|
|
413
|
+
encapsulation: ViewEncapsulation.None,
|
|
414
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
415
|
+
host: {
|
|
416
|
+
class: 'mlv-dialog__header',
|
|
417
|
+
// `<mlv-dialog-header title="…">` feeds the input but also leaves a native
|
|
418
|
+
// `title` attribute behind; bindings apply after static attributes, so this
|
|
419
|
+
// strips it and the header row gets no browser tooltip.
|
|
420
|
+
'[attr.title]': 'null',
|
|
421
|
+
},
|
|
422
|
+
}]
|
|
423
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], _titleEl: [{ type: i0.ViewChild, args: ['titleEl', { isSignal: true }] }] } });
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Scrollable body of a dialog. Wraps its content in `mlv-scrollbar` (padding
|
|
427
|
+
* sits inside the scroll viewport so focus rings are never clipped).
|
|
428
|
+
*/
|
|
429
|
+
class MlvDialogBody {
|
|
430
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
431
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: MlvDialogBody, isStandalone: true, selector: "mlv-dialog-body, [mlvDialogBody]", host: { classAttribute: "mlv-dialog__body" }, ngImport: i0, template: `
|
|
432
|
+
<mlv-scrollbar class="mlv-dialog__body-scrollbar">
|
|
433
|
+
<ng-content />
|
|
434
|
+
</mlv-scrollbar>
|
|
435
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MlvScrollbar, selector: "mlv-scrollbar", inputs: ["orientation", "scrollbarSize", "disabled", "ariaLabel", "viewportTabIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
436
|
+
}
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogBody, decorators: [{
|
|
438
|
+
type: Component,
|
|
439
|
+
args: [{
|
|
440
|
+
// Attribute form intentionally enhances the consumer's own body container.
|
|
441
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
442
|
+
selector: 'mlv-dialog-body, [mlvDialogBody]',
|
|
443
|
+
imports: [MlvScrollbar],
|
|
444
|
+
template: `
|
|
445
|
+
<mlv-scrollbar class="mlv-dialog__body-scrollbar">
|
|
446
|
+
<ng-content />
|
|
447
|
+
</mlv-scrollbar>
|
|
448
|
+
`,
|
|
449
|
+
encapsulation: ViewEncapsulation.None,
|
|
450
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
451
|
+
host: { class: 'mlv-dialog__body' },
|
|
452
|
+
}]
|
|
453
|
+
}] });
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Footer row of a dialog: a wrapping flex row of actions, end-aligned by
|
|
457
|
+
* default. Replaces the toolbar + spacer boilerplate.
|
|
458
|
+
*/
|
|
459
|
+
class MlvDialogFooter {
|
|
460
|
+
/** Where the actions sit: `'start'`, `'end'` (default), `'center'`, or `'between'`. */
|
|
461
|
+
align = input('end', /* @ts-ignore */
|
|
462
|
+
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
463
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
464
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: MlvDialogFooter, isStandalone: true, selector: "mlv-dialog-footer, [mlvDialogFooter]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"mlv-dialog__footer--align-\" + align()" }, classAttribute: "mlv-dialog__footer" }, ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
465
|
+
}
|
|
466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogFooter, decorators: [{
|
|
467
|
+
type: Component,
|
|
468
|
+
args: [{
|
|
469
|
+
// Attribute form intentionally enhances the consumer's own footer container.
|
|
470
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
471
|
+
selector: 'mlv-dialog-footer, [mlvDialogFooter]',
|
|
472
|
+
template: '<ng-content />',
|
|
473
|
+
encapsulation: ViewEncapsulation.None,
|
|
474
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
475
|
+
host: {
|
|
476
|
+
class: 'mlv-dialog__footer',
|
|
477
|
+
'[class]': '"mlv-dialog__footer--align-" + align()',
|
|
478
|
+
},
|
|
479
|
+
}]
|
|
480
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Closes the enclosing dialog when the host is clicked, optionally with a
|
|
484
|
+
* result: `<button mlvDialogClose>` closes with `undefined`,
|
|
485
|
+
* `<button mlvDialogClose="saved">` / `[mlvDialogClose]="value"` closes with
|
|
486
|
+
* that value. On a `<button>` without an explicit `type` it sets
|
|
487
|
+
* `type="button"` so it never submits a surrounding form.
|
|
488
|
+
*
|
|
489
|
+
* Put it on a `<button>` (or an `<a href>`): the directive listens to `click`
|
|
490
|
+
* only and adds no keyboard handling of its own.
|
|
491
|
+
*/
|
|
492
|
+
class MlvDialogClose {
|
|
493
|
+
/** Result passed to `MlvDialogRef.close()`. A bare attribute (`''`) means `undefined`. */
|
|
494
|
+
mlvDialogClose = input(undefined, { ...(ngDevMode ? { debugName: "mlvDialogClose" } : /* istanbul ignore next */ {}), transform: (value) => value === '' ? undefined : value });
|
|
495
|
+
/** `type` attribute applied when the host is a `<button>`. Defaults to `'button'`. */
|
|
496
|
+
type = input('button', /* @ts-ignore */
|
|
497
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
498
|
+
/** @private The dialog to close. */
|
|
499
|
+
_ref = injectDialogRef('[mlvDialogClose]');
|
|
500
|
+
/** @private Whether the host is a native button (only then is `type` meaningful). */
|
|
501
|
+
_isButton = inject(ElementRef).nativeElement.tagName ===
|
|
502
|
+
'BUTTON';
|
|
503
|
+
/** @protected `type` attribute value, `null` on non-button hosts. */
|
|
504
|
+
_type = computed(() => this._isButton ? this.type() : null, /* @ts-ignore */
|
|
505
|
+
...(ngDevMode ? [{ debugName: "_type" }] : /* istanbul ignore next */ []));
|
|
506
|
+
/** @protected Closes the dialog with the configured result. */
|
|
507
|
+
_close() {
|
|
508
|
+
this._ref.close(this.mlvDialogClose());
|
|
509
|
+
}
|
|
510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogClose, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
511
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvDialogClose, isStandalone: true, selector: "[mlvDialogClose]", inputs: { mlvDialogClose: { classPropertyName: "mlvDialogClose", publicName: "mlvDialogClose", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_close()" }, properties: { "attr.type": "_type()" } }, ngImport: i0 });
|
|
512
|
+
}
|
|
513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogClose, decorators: [{
|
|
514
|
+
type: Directive,
|
|
515
|
+
args: [{
|
|
516
|
+
selector: '[mlvDialogClose]',
|
|
517
|
+
host: {
|
|
518
|
+
'(click)': '_close()',
|
|
519
|
+
'[attr.type]': '_type()',
|
|
520
|
+
},
|
|
521
|
+
}]
|
|
522
|
+
}], propDecorators: { mlvDialogClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvDialogClose", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }] } });
|
|
523
|
+
|
|
524
|
+
/** @internal Class on the confirm button — also the `initialFocus` selector. */
|
|
525
|
+
const MLV_CONFIRM_DIALOG_CONFIRM_CLASS = 'mlv-confirm-dialog__confirm';
|
|
526
|
+
/** @internal Class on the cancel button — also the `initialFocus` selector. */
|
|
527
|
+
const MLV_CONFIRM_DIALOG_CANCEL_CLASS = 'mlv-confirm-dialog__cancel';
|
|
528
|
+
/**
|
|
529
|
+
* @internal Confirm-button variant per tone. `'danger'` never reaches the
|
|
530
|
+
* lookup — `mlvIsDestructiveConfirm()` catches it first — but it is listed so
|
|
531
|
+
* the record stays exhaustive over `MlvTone`.
|
|
532
|
+
*/
|
|
533
|
+
const CONFIRM_VARIANT_BY_TONE = {
|
|
534
|
+
danger: 'error',
|
|
535
|
+
warning: 'warning',
|
|
536
|
+
info: 'info',
|
|
537
|
+
success: 'primary',
|
|
538
|
+
};
|
|
539
|
+
/**
|
|
540
|
+
* @internal Content of a `MlvDialogService.confirm()` dialog: the standard
|
|
541
|
+
* surface with a titled header (no close button — the service opens it with
|
|
542
|
+
* `appearance: 'confirm'`), the message, and the two actions. Options arrive
|
|
543
|
+
* through `MlvDialogRef.data`, so this file never imports the service.
|
|
544
|
+
*/
|
|
545
|
+
class MlvConfirmDialog {
|
|
546
|
+
/** @private Handle used to resolve the confirmation. */
|
|
547
|
+
_ref = inject(MlvDialogRef);
|
|
548
|
+
/** @private i18n strings for the default labels. */
|
|
549
|
+
_i18n = inject(MLV_DIALOG_I18N);
|
|
550
|
+
/** @protected The options this confirmation was opened with. */
|
|
551
|
+
_options = this._ref.data;
|
|
552
|
+
/**
|
|
553
|
+
* @protected Id of the message paragraph. `confirm()` generates it and puts
|
|
554
|
+
* it on `MlvDialogConfig.ariaDescribedBy`, so the container already points at
|
|
555
|
+
* this element; reading it back here keeps `MlvConfirmDialogOptions` free of
|
|
556
|
+
* an id the caller never supplies. The fallback only matters if the component
|
|
557
|
+
* is ever opened without that config — the paragraph still gets a unique id.
|
|
558
|
+
*/
|
|
559
|
+
_messageId = inject(DIALOG_CONFIG).ariaDescribedBy ?? mlvNextId('mlv-confirm-message');
|
|
560
|
+
/** @protected Resolved label of the confirming action; follows the active language. */
|
|
561
|
+
_confirmLabel = computed(() => this._options.confirmLabel ?? this._i18n().confirm, /* @ts-ignore */
|
|
562
|
+
...(ngDevMode ? [{ debugName: "_confirmLabel" }] : /* istanbul ignore next */ []));
|
|
563
|
+
/** @protected Resolved label of the dismissing action; follows the active language. */
|
|
564
|
+
_cancelLabel = computed(() => this._options.cancelLabel ?? this._i18n().cancel, /* @ts-ignore */
|
|
565
|
+
...(ngDevMode ? [{ debugName: "_cancelLabel" }] : /* istanbul ignore next */ []));
|
|
566
|
+
/**
|
|
567
|
+
* @protected Button variant of the confirming action. `destructive` and the
|
|
568
|
+
* `'danger'` tone both mean "cannot be undone", so either makes it dangerous;
|
|
569
|
+
* every other tone maps through {@link CONFIRM_VARIANT_BY_TONE}, and no tone
|
|
570
|
+
* at all stays `'primary'`.
|
|
571
|
+
*/
|
|
572
|
+
_confirmVariant = mlvIsDestructiveConfirm(this._options)
|
|
573
|
+
? 'error'
|
|
574
|
+
: this._options.tone
|
|
575
|
+
? CONFIRM_VARIANT_BY_TONE[this._options.tone]
|
|
576
|
+
: 'primary';
|
|
577
|
+
/** @protected Resolves the confirmation as accepted. */
|
|
578
|
+
_confirm() {
|
|
579
|
+
this._ref.close(true);
|
|
580
|
+
}
|
|
581
|
+
/** @protected Resolves the confirmation as declined. */
|
|
582
|
+
_cancel() {
|
|
583
|
+
this._ref.close(false);
|
|
584
|
+
}
|
|
585
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvConfirmDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
586
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: MlvConfirmDialog, isStandalone: true, selector: "mlv-confirm-dialog", host: { classAttribute: "mlv-confirm-dialog" }, ngImport: i0, template: `
|
|
587
|
+
<mlv-dialog>
|
|
588
|
+
<mlv-dialog-header [title]="_options.title" />
|
|
589
|
+
<mlv-dialog-body>
|
|
590
|
+
<p class="mlv-dialog__text" [id]="_messageId">{{ _options.message }}</p>
|
|
591
|
+
</mlv-dialog-body>
|
|
592
|
+
<mlv-dialog-footer>
|
|
593
|
+
<button
|
|
594
|
+
type="button"
|
|
595
|
+
mlvButton
|
|
596
|
+
variant="secondary"
|
|
597
|
+
class="mlv-confirm-dialog__cancel"
|
|
598
|
+
(click)="_cancel()"
|
|
599
|
+
>
|
|
600
|
+
{{ _cancelLabel() }}
|
|
601
|
+
</button>
|
|
602
|
+
<button
|
|
603
|
+
type="button"
|
|
604
|
+
mlvButton
|
|
605
|
+
[variant]="_confirmVariant"
|
|
606
|
+
class="mlv-confirm-dialog__confirm"
|
|
607
|
+
(click)="_confirm()"
|
|
608
|
+
>
|
|
609
|
+
{{ _confirmLabel() }}
|
|
610
|
+
</button>
|
|
611
|
+
</mlv-dialog-footer>
|
|
612
|
+
</mlv-dialog>
|
|
613
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MlvButton, selector: "button[mlvButton], a[mlvButton]", inputs: ["variant", "shape", "disabled", "loading", "selected"] }, { kind: "component", type: MlvDialog, selector: "mlv-dialog" }, { kind: "component", type: MlvDialogHeader, selector: "mlv-dialog-header, [mlvDialogHeader]", inputs: ["title", "closable"] }, { kind: "component", type: MlvDialogBody, selector: "mlv-dialog-body, [mlvDialogBody]" }, { kind: "component", type: MlvDialogFooter, selector: "mlv-dialog-footer, [mlvDialogFooter]", inputs: ["align"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
614
|
+
}
|
|
615
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvConfirmDialog, decorators: [{
|
|
616
|
+
type: Component,
|
|
617
|
+
args: [{
|
|
618
|
+
selector: 'mlv-confirm-dialog',
|
|
619
|
+
imports: [
|
|
620
|
+
MlvButton,
|
|
621
|
+
MlvDialog,
|
|
622
|
+
MlvDialogHeader,
|
|
623
|
+
MlvDialogBody,
|
|
624
|
+
MlvDialogFooter,
|
|
625
|
+
],
|
|
626
|
+
template: `
|
|
627
|
+
<mlv-dialog>
|
|
628
|
+
<mlv-dialog-header [title]="_options.title" />
|
|
629
|
+
<mlv-dialog-body>
|
|
630
|
+
<p class="mlv-dialog__text" [id]="_messageId">{{ _options.message }}</p>
|
|
631
|
+
</mlv-dialog-body>
|
|
632
|
+
<mlv-dialog-footer>
|
|
633
|
+
<button
|
|
634
|
+
type="button"
|
|
635
|
+
mlvButton
|
|
636
|
+
variant="secondary"
|
|
637
|
+
class="mlv-confirm-dialog__cancel"
|
|
638
|
+
(click)="_cancel()"
|
|
639
|
+
>
|
|
640
|
+
{{ _cancelLabel() }}
|
|
641
|
+
</button>
|
|
642
|
+
<button
|
|
643
|
+
type="button"
|
|
644
|
+
mlvButton
|
|
645
|
+
[variant]="_confirmVariant"
|
|
646
|
+
class="mlv-confirm-dialog__confirm"
|
|
647
|
+
(click)="_confirm()"
|
|
648
|
+
>
|
|
649
|
+
{{ _confirmLabel() }}
|
|
650
|
+
</button>
|
|
651
|
+
</mlv-dialog-footer>
|
|
652
|
+
</mlv-dialog>
|
|
653
|
+
`,
|
|
654
|
+
encapsulation: ViewEncapsulation.None,
|
|
655
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
656
|
+
host: { class: 'mlv-confirm-dialog' },
|
|
657
|
+
}]
|
|
658
|
+
}] });
|
|
659
|
+
/**
|
|
660
|
+
* @internal Whether a confirmation describes an irreversible action. Shared by
|
|
661
|
+
* the component (button variant) and the service (initial focus) so the two
|
|
662
|
+
* cannot disagree about which action is the safe one.
|
|
663
|
+
*/
|
|
664
|
+
function mlvIsDestructiveConfirm(options) {
|
|
665
|
+
return options.destructive === true || options.tone === 'danger';
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* @internal Malva's CDK dialog container: focus trap, ARIA attributes and
|
|
670
|
+
* focus restore come from `CdkDialogContainer`; this subclass adds Malva's
|
|
671
|
+
* `initialFocus` strategy on top of the CDK's container focus and restates the
|
|
672
|
+
* host bindings. Ivy does inherit host bindings and attributes from a
|
|
673
|
+
* superclass, so that restatement is belt-and-braces — it mirrors what Angular
|
|
674
|
+
* Material's `MatDialogContainer` does, and keeps the contract visible next to
|
|
675
|
+
* the styles that depend on it.
|
|
676
|
+
*
|
|
677
|
+
* **Deliberate exception to the repo's "OnPush on every library component"
|
|
678
|
+
* rule:** `changeDetection` is `Eager`, matching `CdkDialogContainer` and
|
|
679
|
+
* `MatDialogContainer`. This container's view is the change-detection parent of
|
|
680
|
+
* arbitrary consumer content (the portal outlet's `ViewContainerRef` lives in
|
|
681
|
+
* it), so an OnPush, non-dirty container would skip refreshing embedded or
|
|
682
|
+
* component content whose bindings are driven by non-signal, zone-based state.
|
|
683
|
+
*
|
|
684
|
+
* Not exported — `MlvDialogService` passes it as `DialogConfig.container`.
|
|
685
|
+
*/
|
|
686
|
+
class MlvDialogContainer extends CdkDialogContainer {
|
|
687
|
+
/** @private The consumer's Malva config for initial and dynamic restore focus. */
|
|
688
|
+
_mlvConfig = inject(DIALOG_CONFIG);
|
|
689
|
+
/** @private The mutable CDK config consumed by the inherited destroy hook. */
|
|
690
|
+
_cdkConfig = inject(DialogConfig);
|
|
691
|
+
/** @private The opener captured before the CDK moves focus into this dialog. */
|
|
692
|
+
_capturedOpener = _getFocusedElementPierceShadowDom();
|
|
693
|
+
/** @private Shared overlay initial-focus strategy (`'auto'` skips the close button and scroll viewport). */
|
|
694
|
+
_initialFocus = inject(MlvOverlayInitialFocusResolver);
|
|
695
|
+
/** @private Injector for `afterNextRender` (the CDK's own is private). */
|
|
696
|
+
_hostInjector = inject(Injector);
|
|
697
|
+
/** @private Set on destroy so a pending focus callback becomes a no-op. */
|
|
698
|
+
_destroyed = false;
|
|
699
|
+
constructor() {
|
|
700
|
+
super();
|
|
701
|
+
inject(DestroyRef).onDestroy(() => (this._destroyed = true));
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* @protected The CDK first focuses the container (`autoFocus: 'dialog'`,
|
|
705
|
+
* emitting `_focusTrapped` so the CDK hides the rest of the page from AT),
|
|
706
|
+
* then — after the same render, before paint — Malva moves focus to the
|
|
707
|
+
* resolved `initialFocus` target.
|
|
708
|
+
*/
|
|
709
|
+
_captureInitialFocus() {
|
|
710
|
+
super._captureInitialFocus();
|
|
711
|
+
afterNextRender(() => {
|
|
712
|
+
if (this._destroyed) {
|
|
713
|
+
return;
|
|
714
|
+
}
|
|
715
|
+
this._initialFocus.focus(this._elementRef.nativeElement, this._mlvConfig.initialFocus ?? 'auto');
|
|
716
|
+
}, { injector: this._hostInjector });
|
|
717
|
+
}
|
|
718
|
+
/**
|
|
719
|
+
* Resolves a dynamic restore-focus policy at actual disposal, then delegates
|
|
720
|
+
* the focus operation and focus-trap cleanup to the Angular CDK.
|
|
721
|
+
*/
|
|
722
|
+
ngOnDestroy() {
|
|
723
|
+
const restoreFocus = this._mlvConfig.restoreFocus;
|
|
724
|
+
if (typeof restoreFocus === 'function') {
|
|
725
|
+
try {
|
|
726
|
+
this._cdkConfig.restoreFocus =
|
|
727
|
+
this._connectedRestoreTarget(restoreFocus());
|
|
728
|
+
}
|
|
729
|
+
catch {
|
|
730
|
+
// Consumer code must not abort the CDK/overlay disposal lifecycle.
|
|
731
|
+
this._cdkConfig.restoreFocus = false;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
// Keep CDK teardown outside the consumer-error boundary so its own errors
|
|
735
|
+
// remain observable instead of being mistaken for resolver failures.
|
|
736
|
+
super.ngOnDestroy();
|
|
737
|
+
}
|
|
738
|
+
/** @private Prevents a dynamic policy from focusing a detached element. */
|
|
739
|
+
_connectedRestoreTarget(target) {
|
|
740
|
+
if (target === true) {
|
|
741
|
+
return this._capturedOpener?.isConnected ? this._capturedOpener : false;
|
|
742
|
+
}
|
|
743
|
+
if (target === false || typeof target === 'string') {
|
|
744
|
+
return target;
|
|
745
|
+
}
|
|
746
|
+
return target.isConnected ? target : false;
|
|
747
|
+
}
|
|
748
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
749
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: MlvDialogContainer, isStandalone: true, selector: "mlv-dialog-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.id": "_config.id || null", "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledByQueue[0]", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null" }, classAttribute: "mlv-dialog-container" }, usesInheritance: true, ngImport: i0, template: '<ng-template cdkPortalOutlet />', isInline: true, styles: ["@layer mlv.components{.mlv-dialog-pane{display:flex;max-inline-size:100vw}mlv-dialog-container.mlv-dialog-container{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}mlv-dialog-container.mlv-dialog-container *{box-sizing:border-box}mlv-dialog-container.mlv-dialog-container{display:flex;flex-direction:column;inline-size:100%;block-size:100%;min-block-size:inherit;max-block-size:inherit;outline:0}mlv-dialog-container.mlv-dialog-container>:not(.mlv-dialog){display:flex;flex:1 1 auto;flex-direction:column;min-inline-size:0;min-block-size:0}@starting-style{.mlv-dialog-backdrop{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.mlv-dialog-backdrop--leaving{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}@media(prefers-reduced-motion:reduce){.mlv-dialog-container,.mlv-dialog-container *,.mlv-dialog-container:before,.mlv-dialog-container:after,[class^=mlv-dialog-container__],[class*=\" mlv-dialog-container__\"],[class^=mlv-dialog-container--],[class*=\" mlv-dialog-container--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
750
|
+
}
|
|
751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogContainer, decorators: [{
|
|
752
|
+
type: Component,
|
|
753
|
+
args: [{ selector: 'mlv-dialog-container', template: '<ng-template cdkPortalOutlet />', imports: [CdkPortalOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, host: {
|
|
754
|
+
class: 'mlv-dialog-container',
|
|
755
|
+
tabindex: '-1',
|
|
756
|
+
'[attr.id]': '_config.id || null',
|
|
757
|
+
'[attr.role]': '_config.role',
|
|
758
|
+
'[attr.aria-modal]': '_config.ariaModal',
|
|
759
|
+
'[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledByQueue[0]',
|
|
760
|
+
'[attr.aria-label]': '_config.ariaLabel',
|
|
761
|
+
'[attr.aria-describedby]': '_config.ariaDescribedBy || null',
|
|
762
|
+
}, styles: ["@layer mlv.components{.mlv-dialog-pane{display:flex;max-inline-size:100vw}mlv-dialog-container.mlv-dialog-container{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}mlv-dialog-container.mlv-dialog-container *{box-sizing:border-box}mlv-dialog-container.mlv-dialog-container{display:flex;flex-direction:column;inline-size:100%;block-size:100%;min-block-size:inherit;max-block-size:inherit;outline:0}mlv-dialog-container.mlv-dialog-container>:not(.mlv-dialog){display:flex;flex:1 1 auto;flex-direction:column;min-inline-size:0;min-block-size:0}@starting-style{.mlv-dialog-backdrop{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.mlv-dialog-backdrop--leaving{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}@media(prefers-reduced-motion:reduce){.mlv-dialog-container,.mlv-dialog-container *,.mlv-dialog-container:before,.mlv-dialog-container:after,[class^=mlv-dialog-container__],[class*=\" mlv-dialog-container__\"],[class^=mlv-dialog-container--],[class*=\" mlv-dialog-container--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
763
|
+
}], ctorParameters: () => [] });
|
|
764
|
+
|
|
765
|
+
/** @internal The string passed to `MlvDialogService.open()`. */
|
|
766
|
+
const MLV_DIALOG_TEXT = new InjectionToken('MLV_DIALOG_TEXT');
|
|
767
|
+
/**
|
|
768
|
+
* @internal Renders string content: a surface with the standard header (title
|
|
769
|
+
* from `config.title`, close button per `config.closable`) and a body holding
|
|
770
|
+
* the escaped text. Composes the same public parts consumers use.
|
|
771
|
+
*/
|
|
772
|
+
class MlvDialogTextContent {
|
|
773
|
+
/** @protected Text rendered through interpolation (escaped, never HTML). */
|
|
774
|
+
_text = inject(MLV_DIALOG_TEXT);
|
|
775
|
+
/** @private Per-open configuration. */
|
|
776
|
+
_config = inject(DIALOG_CONFIG);
|
|
777
|
+
/**
|
|
778
|
+
* @protected A header is worth rendering when it has a title or a close
|
|
779
|
+
* button. `appearance: 'confirm'` forces the close button off inside
|
|
780
|
+
* `MlvDialogHeader`, so a titleless confirm surface would otherwise render an
|
|
781
|
+
* empty header bar.
|
|
782
|
+
*/
|
|
783
|
+
_showHeader = !!this._config.title ||
|
|
784
|
+
(this._config.closable !== false && this._config.appearance !== 'confirm');
|
|
785
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogTextContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
786
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvDialogTextContent, isStandalone: true, selector: "mlv-dialog-text-content", host: { classAttribute: "mlv-dialog-text-content" }, ngImport: i0, template: `
|
|
787
|
+
<mlv-dialog>
|
|
788
|
+
@if (_showHeader) {
|
|
789
|
+
<mlv-dialog-header />
|
|
790
|
+
}
|
|
791
|
+
<mlv-dialog-body>
|
|
792
|
+
<p class="mlv-dialog__text">{{ _text }}</p>
|
|
793
|
+
</mlv-dialog-body>
|
|
794
|
+
</mlv-dialog>
|
|
795
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MlvDialog, selector: "mlv-dialog" }, { kind: "component", type: MlvDialogHeader, selector: "mlv-dialog-header, [mlvDialogHeader]", inputs: ["title", "closable"] }, { kind: "component", type: MlvDialogBody, selector: "mlv-dialog-body, [mlvDialogBody]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
796
|
+
}
|
|
797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogTextContent, decorators: [{
|
|
798
|
+
type: Component,
|
|
799
|
+
args: [{
|
|
800
|
+
selector: 'mlv-dialog-text-content',
|
|
801
|
+
imports: [MlvDialog, MlvDialogHeader, MlvDialogBody],
|
|
802
|
+
template: `
|
|
803
|
+
<mlv-dialog>
|
|
804
|
+
@if (_showHeader) {
|
|
805
|
+
<mlv-dialog-header />
|
|
806
|
+
}
|
|
807
|
+
<mlv-dialog-body>
|
|
808
|
+
<p class="mlv-dialog__text">{{ _text }}</p>
|
|
809
|
+
</mlv-dialog-body>
|
|
810
|
+
</mlv-dialog>
|
|
811
|
+
`,
|
|
812
|
+
encapsulation: ViewEncapsulation.None,
|
|
813
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
814
|
+
host: { class: 'mlv-dialog-text-content' },
|
|
815
|
+
}]
|
|
816
|
+
}] });
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* Opens modal dialogs. Thin orchestration over Angular CDK `Dialog`: the CDK
|
|
820
|
+
* owns overlay, container, focus trap/restore, ARIA and history handling;
|
|
821
|
+
* this service maps `MlvDialogConfig`, constructs the `MlvDialogRef`, plays
|
|
822
|
+
* the leave animation, and applies the granular Escape/backdrop opt-outs.
|
|
823
|
+
*
|
|
824
|
+
* It never renders chrome. Template and component content must have a
|
|
825
|
+
* `<mlv-dialog>` root; string content is wrapped by an internal renderer that
|
|
826
|
+
* composes the same parts.
|
|
827
|
+
*/
|
|
828
|
+
class MlvDialogService {
|
|
829
|
+
/** @private The CDK engine. */
|
|
830
|
+
_cdk = inject(Dialog);
|
|
831
|
+
/**
|
|
832
|
+
* @private Resolves the direction for the portaled dialog pane, which never
|
|
833
|
+
* inherits a `[dir]` scope from the element that opened it.
|
|
834
|
+
*/
|
|
835
|
+
_rtl = inject(MlvRtlService);
|
|
836
|
+
/** @private Registered size presets. */
|
|
837
|
+
_presets = inject(DIALOG_SIZE_PRESETS);
|
|
838
|
+
/** @private Open Malva refs in open order, so `closeAll()` can animate each. */
|
|
839
|
+
_open = [];
|
|
840
|
+
/** Snapshot of the currently open dialogs, oldest first. */
|
|
841
|
+
get openDialogs() {
|
|
842
|
+
return [...this._open];
|
|
843
|
+
}
|
|
844
|
+
/**
|
|
845
|
+
* Opens `content` in a modal dialog.
|
|
846
|
+
*
|
|
847
|
+
* - `TemplateRef` receives `MlvDialogTemplateContext` (`let-dialog`,
|
|
848
|
+
* `let-data="data"`, `let-config="config"`).
|
|
849
|
+
* - A component can inject `MlvDialogRef`, `DIALOG_CONFIG`, `DIALOG_DATA`
|
|
850
|
+
* (and the CDK `DialogRef`).
|
|
851
|
+
* - A string is rendered as escaped text under `config.title`.
|
|
852
|
+
*
|
|
853
|
+
* @param content - Template, component type, or plain text.
|
|
854
|
+
* @param config - Size, chrome defaults, closing behaviour, focus, ARIA, data, injector.
|
|
855
|
+
* @returns A typed reference that controls the dialog and emits its result.
|
|
856
|
+
*/
|
|
857
|
+
open(content, config = {}) {
|
|
858
|
+
const frozen = { ...config };
|
|
859
|
+
const isText = typeof content === 'string';
|
|
860
|
+
const size = frozen.size ?? 'm';
|
|
861
|
+
const restoreFocus = frozen.restoreFocus ?? true;
|
|
862
|
+
let ref;
|
|
863
|
+
// Third generic (container) deliberately left at its default: narrowing it
|
|
864
|
+
// to MlvDialogContainer makes the `container.providers` callback type
|
|
865
|
+
// incompatible with Dialog.open()'s parameter.
|
|
866
|
+
const cdkConfig = {
|
|
867
|
+
...this._resolveSize(size),
|
|
868
|
+
panelClass: [
|
|
869
|
+
'mlv-dialog-pane',
|
|
870
|
+
// The `fullscreen` preset only sizes the pane; the modifier is what
|
|
871
|
+
// drops the surface's desktop radius/border and its viewport cap.
|
|
872
|
+
...(size === 'fullscreen' ? ['mlv-dialog-pane--fullscreen'] : []),
|
|
873
|
+
...coerceArray(frozen.panelClass ?? []),
|
|
874
|
+
],
|
|
875
|
+
backdropClass: [
|
|
876
|
+
'mlv-dialog-backdrop',
|
|
877
|
+
...coerceArray(frozen.backdropClass ?? []),
|
|
878
|
+
],
|
|
879
|
+
hasBackdrop: frozen.hasBackdrop ?? true,
|
|
880
|
+
// Escape/backdrop are handled below so each is independently optional
|
|
881
|
+
// and the leave animation always plays.
|
|
882
|
+
disableClose: true,
|
|
883
|
+
// The CDK focuses the container; MlvDialogContainer then applies `initialFocus`.
|
|
884
|
+
autoFocus: 'dialog',
|
|
885
|
+
// A dynamic policy is resolved by MlvDialogContainer immediately before
|
|
886
|
+
// its inherited CDK destroy hook performs focus restoration.
|
|
887
|
+
restoreFocus: typeof restoreFocus === 'function' ? false : restoreFocus,
|
|
888
|
+
role: frozen.role ?? 'dialog',
|
|
889
|
+
ariaLabel: frozen.ariaLabel ??
|
|
890
|
+
(isText && !frozen.title ? content : null),
|
|
891
|
+
ariaLabelledBy: frozen.ariaLabelledBy ?? null,
|
|
892
|
+
ariaDescribedBy: frozen.ariaDescribedBy ?? null,
|
|
893
|
+
closeOnNavigation: frozen.closeOnNavigation ?? true,
|
|
894
|
+
// The pane is portaled to <body>, outside any `[dir]` scope the opener
|
|
895
|
+
// sits in, so the direction has to be passed explicitly. The focused
|
|
896
|
+
// element at open time is the opener in practice; the global direction
|
|
897
|
+
// is the fallback.
|
|
898
|
+
direction: frozen.direction ??
|
|
899
|
+
this._rtl.resolveDirection(typeof document === 'undefined'
|
|
900
|
+
? null
|
|
901
|
+
: document.activeElement),
|
|
902
|
+
data: frozen.data,
|
|
903
|
+
injector: frozen.injector,
|
|
904
|
+
id: frozen.id,
|
|
905
|
+
container: {
|
|
906
|
+
type: MlvDialogContainer,
|
|
907
|
+
providers: () => [{ provide: DIALOG_CONFIG, useValue: frozen }],
|
|
908
|
+
},
|
|
909
|
+
templateContext: () => ({
|
|
910
|
+
$implicit: ref,
|
|
911
|
+
ref,
|
|
912
|
+
data: frozen.data,
|
|
913
|
+
config: frozen,
|
|
914
|
+
}),
|
|
915
|
+
providers: (cdkRef) => {
|
|
916
|
+
ref = new MlvDialogRef(cdkRef, frozen);
|
|
917
|
+
return [
|
|
918
|
+
{ provide: MlvDialogRef, useValue: ref },
|
|
919
|
+
{ provide: DIALOG_CONFIG, useValue: frozen },
|
|
920
|
+
...(isText ? [{ provide: MLV_DIALOG_TEXT, useValue: content }] : []),
|
|
921
|
+
];
|
|
922
|
+
},
|
|
923
|
+
};
|
|
924
|
+
const target = isText
|
|
925
|
+
? MlvDialogTextContent
|
|
926
|
+
: content instanceof TemplateRef
|
|
927
|
+
? content
|
|
928
|
+
: content;
|
|
929
|
+
const cdkRef = this._cdk.open(target, cdkConfig);
|
|
930
|
+
// Both refs are invariant in `R` (it surfaces in the contravariant
|
|
931
|
+
// `DialogConfig.providers` callback), so neither typed ref is assignable to
|
|
932
|
+
// its erased form. Erasing here is safe: `_track` only closes and
|
|
933
|
+
// de-registers, and never reads the result type.
|
|
934
|
+
this._track(ref, cdkRef, frozen);
|
|
935
|
+
return ref;
|
|
936
|
+
}
|
|
937
|
+
/**
|
|
938
|
+
* Opens a two-action confirmation dialog and reports the user's answer.
|
|
939
|
+
*
|
|
940
|
+
* Emits exactly once and completes, so it composes with a `CanDeactivateFn`
|
|
941
|
+
* or any other guard. The answer is replayed, so late subscribers still
|
|
942
|
+
* receive it — subscribing after the dialog has already closed is fine.
|
|
943
|
+
* Every dismissal that is not the confirm button — Escape, the backdrop,
|
|
944
|
+
* `ref.close()` — resolves as `false`. When the action is `destructive` (or
|
|
945
|
+
* has the `'danger'` tone) the dialog opens as an `alertdialog`, the confirm
|
|
946
|
+
* button turns danger-coloured and initial focus goes to **Cancel**. The
|
|
947
|
+
* message paragraph always describes the dialog (`aria-describedby`).
|
|
948
|
+
*
|
|
949
|
+
* @param options - Title, message, and optional labels/tone/size.
|
|
950
|
+
* @returns `true` only if confirmed.
|
|
951
|
+
*/
|
|
952
|
+
confirm(options) {
|
|
953
|
+
const destructive = mlvIsDestructiveConfirm(options);
|
|
954
|
+
const ref = this.open(MlvConfirmDialog, {
|
|
955
|
+
size: options.size ?? 's',
|
|
956
|
+
// The two actions are the whole point; the surface drops the chrome
|
|
957
|
+
// borders and the header hides its close button.
|
|
958
|
+
appearance: 'confirm',
|
|
959
|
+
data: options,
|
|
960
|
+
// An irreversible action is an interruption that needs an answer now.
|
|
961
|
+
role: destructive ? 'alertdialog' : 'dialog',
|
|
962
|
+
// The component binds this id on its message paragraph, so the container
|
|
963
|
+
// is described by the very text the user has to act on.
|
|
964
|
+
ariaDescribedBy: mlvNextId('mlv-confirm-message'),
|
|
965
|
+
closeOnBackdrop: options.closeOnBackdrop,
|
|
966
|
+
closeOnEscape: options.closeOnEscape,
|
|
967
|
+
injector: options.injector,
|
|
968
|
+
initialFocus: destructive
|
|
969
|
+
? `.${MLV_CONFIRM_DIALOG_CANCEL_CLASS}`
|
|
970
|
+
: `.${MLV_CONFIRM_DIALOG_CONFIRM_CLASS}`,
|
|
971
|
+
});
|
|
972
|
+
const answer$ = ref.afterClosed().pipe(map((result) => result === true), shareReplay({ bufferSize: 1, refCount: false }));
|
|
973
|
+
// `afterClosed()` is the CDK's hot `closed` subject: it emits once and
|
|
974
|
+
// completes, so a subscriber that only arrives after the dialog closed
|
|
975
|
+
// would get nothing. `shareReplay` alone does not fix that — it is lazy —
|
|
976
|
+
// so the buffer is connected here, while the dialog is still open.
|
|
977
|
+
answer$.subscribe();
|
|
978
|
+
return answer$;
|
|
979
|
+
}
|
|
980
|
+
/** Closes every open dialog, newest first, playing each leave animation. */
|
|
981
|
+
closeAll() {
|
|
982
|
+
[...this._open].reverse().forEach((ref) => ref.close());
|
|
983
|
+
}
|
|
984
|
+
/** @private Registers the ref and wires the Escape/backdrop close behaviours. */
|
|
985
|
+
_track(ref, cdkRef, config) {
|
|
986
|
+
this._open.push(ref);
|
|
987
|
+
cdkRef.closed.subscribe(() => {
|
|
988
|
+
const index = this._open.indexOf(ref);
|
|
989
|
+
if (index > -1) {
|
|
990
|
+
this._open.splice(index, 1);
|
|
991
|
+
}
|
|
992
|
+
});
|
|
993
|
+
if (config.closeOnBackdrop !== false) {
|
|
994
|
+
cdkRef.backdropClick.subscribe(() => ref.close());
|
|
995
|
+
}
|
|
996
|
+
if (config.closeOnEscape !== false) {
|
|
997
|
+
cdkRef.keydownEvents
|
|
998
|
+
.pipe(filter((event) => event.key === 'Escape' && !hasModifierKey(event)))
|
|
999
|
+
.subscribe((event) => {
|
|
1000
|
+
event.preventDefault();
|
|
1001
|
+
ref.close();
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
/** @private Resolves a preset name (unknown → `'m'`) or explicit size to CDK size fields. */
|
|
1006
|
+
_resolveSize(size) {
|
|
1007
|
+
const resolved = typeof size === 'string'
|
|
1008
|
+
? (this._presets[size] ?? this._presets['m'] ?? {})
|
|
1009
|
+
: size;
|
|
1010
|
+
return {
|
|
1011
|
+
width: coerceCssPixelValue(resolved.width),
|
|
1012
|
+
height: coerceCssPixelValue(resolved.height),
|
|
1013
|
+
minWidth: coerceCssPixelValue(resolved.minWidth),
|
|
1014
|
+
minHeight: coerceCssPixelValue(resolved.minHeight),
|
|
1015
|
+
maxWidth: coerceCssPixelValue(resolved.maxWidth),
|
|
1016
|
+
maxHeight: coerceCssPixelValue(resolved.maxHeight),
|
|
1017
|
+
};
|
|
1018
|
+
}
|
|
1019
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1020
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogService, providedIn: 'root' });
|
|
1021
|
+
}
|
|
1022
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogService, decorators: [{
|
|
1023
|
+
type: Injectable,
|
|
1024
|
+
args: [{ providedIn: 'root' }]
|
|
1025
|
+
}] });
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* Declarative sugar over `MlvDialogService.open(templateRef, options)`.
|
|
1029
|
+
*
|
|
1030
|
+
* ```html
|
|
1031
|
+
* <ng-template [(mlvDialog)]="editing" [mlvDialogOptions]="{ size: 's' }" let-dialog>
|
|
1032
|
+
* <mlv-dialog>
|
|
1033
|
+
* <mlv-dialog-header title="Edit user" />
|
|
1034
|
+
* <mlv-dialog-body>…</mlv-dialog-body>
|
|
1035
|
+
* <mlv-dialog-footer><button mlvButton mlvDialogClose="saved">Save</button></mlv-dialog-footer>
|
|
1036
|
+
* </mlv-dialog>
|
|
1037
|
+
* </ng-template>
|
|
1038
|
+
* ```
|
|
1039
|
+
*
|
|
1040
|
+
* The template is instantiated only while open (lazy by default) and gets
|
|
1041
|
+
* the same context as `open(templateRef)`: the ref as `let-dialog`,
|
|
1042
|
+
* `let-data="data"`, `let-config="config"`. Setting the model to `true` opens,
|
|
1043
|
+
* `false` closes (leave animation included), and closing from inside —
|
|
1044
|
+
* `[mlvDialogClose]`, Escape, backdrop, `dialog.close()` — flips the model
|
|
1045
|
+
* back to `false` and emits `mlvDialogClosed` with the result.
|
|
1046
|
+
*
|
|
1047
|
+
* Setting the model back to `true` while the previous instance is still
|
|
1048
|
+
* leaving is honoured: the intent is remembered and a fresh dialog opens as
|
|
1049
|
+
* soon as that instance is disposed, after its `mlvDialogClosed` has fired.
|
|
1050
|
+
* Re-opening from **inside** an `(mlvDialogClosed)` handler is the one case
|
|
1051
|
+
* that does not work: the handler runs before the model settles, so the write
|
|
1052
|
+
* is overwritten. Re-open from a later tick, or while the dialog is leaving.
|
|
1053
|
+
*
|
|
1054
|
+
* If the host is destroyed while a dialog is open, that dialog is closed too — outputs are not emitted after the host is destroyed.
|
|
1055
|
+
*/
|
|
1056
|
+
class MlvDialogTemplate {
|
|
1057
|
+
/** Whether the dialog is open. Two-way bindable: `[(mlvDialog)]="open"`. */
|
|
1058
|
+
mlvDialog = model(false, /* @ts-ignore */
|
|
1059
|
+
...(ngDevMode ? [{ debugName: "mlvDialog" }] : /* istanbul ignore next */ []));
|
|
1060
|
+
/** Options passed to `MlvDialogService.open()`. Read when the dialog opens; later changes apply to the next open. */
|
|
1061
|
+
mlvDialogOptions = input(/* @ts-ignore */
|
|
1062
|
+
...(ngDevMode ? [undefined, { debugName: "mlvDialogOptions" }] : /* istanbul ignore next */ []));
|
|
1063
|
+
/** Emits after the dialog has been opened. */
|
|
1064
|
+
mlvDialogOpened = output();
|
|
1065
|
+
/** Emits the close result once the dialog is disposed. */
|
|
1066
|
+
mlvDialogClosed = output();
|
|
1067
|
+
/** @private The wrapped template. */
|
|
1068
|
+
_template = inject(TemplateRef);
|
|
1069
|
+
/** @private Opens the template. */
|
|
1070
|
+
_dialogs = inject(MlvDialogService);
|
|
1071
|
+
/** @private Ref of the currently open (or leaving) dialog. */
|
|
1072
|
+
_ref = null;
|
|
1073
|
+
/** @private Tears the `afterClosed()` subscription down with the host. */
|
|
1074
|
+
_destroyRef = inject(DestroyRef);
|
|
1075
|
+
/** @private Set when the model turned `true` while the previous instance was still leaving. */
|
|
1076
|
+
_reopenPending = false;
|
|
1077
|
+
/** The ref of the open dialog (held until the leave animation completes), or `null`. */
|
|
1078
|
+
get ref() {
|
|
1079
|
+
return this._ref;
|
|
1080
|
+
}
|
|
1081
|
+
constructor() {
|
|
1082
|
+
effect(() => {
|
|
1083
|
+
const open = this.mlvDialog();
|
|
1084
|
+
untracked(() => {
|
|
1085
|
+
if (open) {
|
|
1086
|
+
if (this._ref) {
|
|
1087
|
+
// Still leaving (or open) — remember the intent instead of
|
|
1088
|
+
// dropping it, so the re-open happens once the old instance goes.
|
|
1089
|
+
this._reopenPending = this._ref.animationState() === 'leave';
|
|
1090
|
+
return;
|
|
1091
|
+
}
|
|
1092
|
+
this._open();
|
|
1093
|
+
}
|
|
1094
|
+
else {
|
|
1095
|
+
this._reopenPending = false;
|
|
1096
|
+
this._ref?.close();
|
|
1097
|
+
}
|
|
1098
|
+
});
|
|
1099
|
+
});
|
|
1100
|
+
this._destroyRef.onDestroy(() => {
|
|
1101
|
+
// The `afterClosed()` subscription is torn down with the host, so nothing
|
|
1102
|
+
// clears `_ref` afterwards — drop it here so `ref` never hands out a
|
|
1103
|
+
// disposed handle.
|
|
1104
|
+
this._ref?.close();
|
|
1105
|
+
this._ref = null;
|
|
1106
|
+
});
|
|
1107
|
+
}
|
|
1108
|
+
/** Sets the model to `true`. */
|
|
1109
|
+
open() {
|
|
1110
|
+
this.mlvDialog.set(true);
|
|
1111
|
+
}
|
|
1112
|
+
/** Sets the model to `false`. */
|
|
1113
|
+
close() {
|
|
1114
|
+
this.mlvDialog.set(false);
|
|
1115
|
+
}
|
|
1116
|
+
/** @private Opens through the service. Callers guarantee no dialog is live. */
|
|
1117
|
+
_open() {
|
|
1118
|
+
const ref = this._dialogs.open(this._template, this.mlvDialogOptions());
|
|
1119
|
+
this._ref = ref;
|
|
1120
|
+
// Subscribed before the output fires: a handler that synchronously disposes
|
|
1121
|
+
// the dialog must still clear `_ref` and flip the model back to `false`.
|
|
1122
|
+
// `takeUntilDestroyed` drops the callback with the host, so nothing is
|
|
1123
|
+
// emitted and the model is not touched after destruction.
|
|
1124
|
+
ref
|
|
1125
|
+
.afterClosed()
|
|
1126
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
1127
|
+
.subscribe((result) => {
|
|
1128
|
+
if (this._ref !== ref) {
|
|
1129
|
+
return;
|
|
1130
|
+
}
|
|
1131
|
+
this._ref = null;
|
|
1132
|
+
this.mlvDialogClosed.emit(result);
|
|
1133
|
+
const reopen = this._reopenPending && this.mlvDialog();
|
|
1134
|
+
this._reopenPending = false;
|
|
1135
|
+
if (reopen) {
|
|
1136
|
+
this._open();
|
|
1137
|
+
}
|
|
1138
|
+
else {
|
|
1139
|
+
this.mlvDialog.set(false);
|
|
1140
|
+
}
|
|
1141
|
+
});
|
|
1142
|
+
this.mlvDialogOpened.emit();
|
|
1143
|
+
}
|
|
1144
|
+
/** Type guard so `let-dialog` / `let-data` are typed in the template. */
|
|
1145
|
+
static ngTemplateContextGuard(_dir, _ctx) {
|
|
1146
|
+
return true;
|
|
1147
|
+
}
|
|
1148
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1149
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvDialogTemplate, isStandalone: true, selector: "ng-template[mlvDialog]", inputs: { mlvDialog: { classPropertyName: "mlvDialog", publicName: "mlvDialog", isSignal: true, isRequired: false, transformFunction: null }, mlvDialogOptions: { classPropertyName: "mlvDialogOptions", publicName: "mlvDialogOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mlvDialog: "mlvDialogChange", mlvDialogOpened: "mlvDialogOpened", mlvDialogClosed: "mlvDialogClosed" }, exportAs: ["mlvDialog"], ngImport: i0 });
|
|
1150
|
+
}
|
|
1151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDialogTemplate, decorators: [{
|
|
1152
|
+
type: Directive,
|
|
1153
|
+
args: [{
|
|
1154
|
+
selector: 'ng-template[mlvDialog]',
|
|
1155
|
+
exportAs: 'mlvDialog',
|
|
1156
|
+
}]
|
|
1157
|
+
}], ctorParameters: () => [], propDecorators: { mlvDialog: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvDialog", required: false }] }, { type: i0.Output, args: ["mlvDialogChange"] }], mlvDialogOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvDialogOptions", required: false }] }], mlvDialogOpened: [{ type: i0.Output, args: ["mlvDialogOpened"] }], mlvDialogClosed: [{ type: i0.Output, args: ["mlvDialogClosed"] }] } });
|
|
1158
|
+
|
|
1159
|
+
/**
|
|
1160
|
+
* Generates a route configuration that opens a component inside a routed dialog.
|
|
1161
|
+
* When the dialog closes, the router navigates back to the parent route.
|
|
1162
|
+
*
|
|
1163
|
+
* The component receives the shell's `Injector`, so it can inject `ActivatedRoute`
|
|
1164
|
+
* to access route params, resolved data, and query params. It can also inject
|
|
1165
|
+
* `MlvDialogRef` to close itself programmatically.
|
|
1166
|
+
*
|
|
1167
|
+
* @param component - The component to render inside the dialog. Can be an eager class reference
|
|
1168
|
+
* or a lazy import function (e.g., `() => import('./my-dialog.component')`).
|
|
1169
|
+
* @param options - Route path, named outlet, and dialog configuration options.
|
|
1170
|
+
* @returns A `Route` object to include in your route configuration.
|
|
1171
|
+
*
|
|
1172
|
+
* @example
|
|
1173
|
+
* ```ts
|
|
1174
|
+
* // Lazy-loaded dialog route
|
|
1175
|
+
* {
|
|
1176
|
+
* path: 'users',
|
|
1177
|
+
* component: UsersListPage,
|
|
1178
|
+
* children: [
|
|
1179
|
+
* mlvGenerateRoutableDialogRoute(
|
|
1180
|
+
* () => import('./user-edit.component'),
|
|
1181
|
+
* { path: ':id/edit', size: 'l' },
|
|
1182
|
+
* ),
|
|
1183
|
+
* ],
|
|
1184
|
+
* }
|
|
1185
|
+
*
|
|
1186
|
+
* // Eager dialog route
|
|
1187
|
+
* mlvGenerateRoutableDialogRoute(UserEditComponent, {
|
|
1188
|
+
* path: ':id/edit',
|
|
1189
|
+
* size: 'l',
|
|
1190
|
+
* closeOnBackdrop: false,
|
|
1191
|
+
* })
|
|
1192
|
+
*
|
|
1193
|
+
* // With guards and resolvers (spread the returned route)
|
|
1194
|
+
* {
|
|
1195
|
+
* ...mlvGenerateRoutableDialogRoute(() => import('./confirm.component'), { path: 'confirm' }),
|
|
1196
|
+
* canActivate: [authGuard],
|
|
1197
|
+
* resolve: { item: itemResolver },
|
|
1198
|
+
* }
|
|
1199
|
+
* ```
|
|
1200
|
+
*/
|
|
1201
|
+
function mlvGenerateRoutableDialogRoute(component, { path = '', outlet = '', ...dialogOptions } = {}) {
|
|
1202
|
+
return {
|
|
1203
|
+
path,
|
|
1204
|
+
outlet: outlet || undefined,
|
|
1205
|
+
loadComponent: () => import('./malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs'),
|
|
1206
|
+
data: {
|
|
1207
|
+
dialog: component,
|
|
1208
|
+
dialogOptions,
|
|
1209
|
+
backUrl: path
|
|
1210
|
+
.split('/')
|
|
1211
|
+
.map(() => '..')
|
|
1212
|
+
.join('/'),
|
|
1213
|
+
isLazy: path === '',
|
|
1214
|
+
},
|
|
1215
|
+
};
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
/**
|
|
1219
|
+
* Generated bundle index. Do not edit.
|
|
1220
|
+
*/
|
|
1221
|
+
|
|
1222
|
+
export { DIALOG_CONFIG, DIALOG_DATA, DIALOG_SIZE_PRESETS, MlvDialog, MlvDialogBody, MlvDialogClose, MlvDialogFooter, MlvDialogHeader, MlvDialogRef, MlvDialogService, MlvDialogTemplate, mlvGenerateRoutableDialogRoute };
|
|
1223
|
+
//# sourceMappingURL=malva-ui-core-dialog.mjs.map
|