cmat 0.0.3
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/README.md +3 -0
- package/animations/defaults.d.ts +11 -0
- package/animations/drop.d.ts +2 -0
- package/animations/expand-collapse.d.ts +2 -0
- package/animations/fade.d.ts +11 -0
- package/animations/index.d.ts +5 -0
- package/animations/public-api.d.ts +1 -0
- package/animations/shake.d.ts +2 -0
- package/animations/slide.d.ts +9 -0
- package/animations/transform.d.ts +2 -0
- package/animations/zoom.d.ts +3 -0
- package/components/adapter/datetime-adapter.d.ts +45 -0
- package/components/adapter/datetime-formats.d.ts +22 -0
- package/components/adapter/dayjs-date-adapter.d.ts +63 -0
- package/components/adapter/dayjs-date-formats.d.ts +2 -0
- package/components/adapter/dayjs-datetime-adapter.d.ts +22 -0
- package/components/adapter/dayjs-datetime-formats.d.ts +2 -0
- package/components/adapter/index.d.ts +5 -0
- package/components/adapter/native-datetime-adapter.d.ts +31 -0
- package/components/adapter/native-datetime-formats.d.ts +2 -0
- package/components/adapter/public-api.d.ts +8 -0
- package/components/breadcrumb/breadcrumb-item.directive.d.ts +10 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +57 -0
- package/components/breadcrumb/breadcrumb.component.scss +18 -0
- package/components/breadcrumb/breadcrumb.service.d.ts +126 -0
- package/components/breadcrumb/index.d.ts +5 -0
- package/components/breadcrumb/public-api.d.ts +3 -0
- package/components/breadcrumb/types/breadcrumb.config.d.ts +33 -0
- package/components/breadcrumb/types/breadcrumb.d.ts +23 -0
- package/components/card/card.component.d.ts +20 -0
- package/components/card/card.component.scss +63 -0
- package/components/card/card.types.d.ts +1 -0
- package/components/card/index.d.ts +5 -0
- package/components/card/public-api.d.ts +1 -0
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +14 -0
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +43 -0
- package/components/cascade/cascade-list/cascade-list.component.d.ts +52 -0
- package/components/cascade/cascade-list/cascade-list.component.scss +22 -0
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +10 -0
- package/components/cascade/cascade-menu/cascade-menu.component.scss +48 -0
- package/components/cascade/index.d.ts +5 -0
- package/components/cascade/options.interface.d.ts +8 -0
- package/components/cascade/public-api.d.ts +2 -0
- package/components/date-range/date-range.component.d.ts +134 -0
- package/components/date-range/date-range.component.scss +232 -0
- package/components/date-range/index.d.ts +5 -0
- package/components/date-range/public-api.d.ts +1 -0
- package/components/drawer/drawer.component.d.ts +75 -0
- package/components/drawer/drawer.component.scss +133 -0
- package/components/drawer/drawer.service.d.ts +26 -0
- package/components/drawer/drawer.types.d.ts +2 -0
- package/components/drawer/index.d.ts +5 -0
- package/components/drawer/public-api.d.ts +3 -0
- package/components/fullscreen/fullscreen.component.d.ts +18 -0
- package/components/fullscreen/fullscreen.types.d.ts +13 -0
- package/components/fullscreen/index.d.ts +5 -0
- package/components/fullscreen/public-api.d.ts +2 -0
- package/components/highlight/highlight.component.d.ts +21 -0
- package/components/highlight/highlight.component.scss +3 -0
- package/components/highlight/highlight.service.d.ts +7 -0
- package/components/highlight/index.d.ts +5 -0
- package/components/highlight/public-api.d.ts +2 -0
- package/components/masonry/index.d.ts +5 -0
- package/components/masonry/masonry.component.d.ts +13 -0
- package/components/masonry/public-api.d.ts +1 -0
- package/components/material-color-picker/base-color.d.ts +1 -0
- package/components/material-color-picker/index.d.ts +5 -0
- package/components/material-color-picker/material-color-picker.component.d.ts +35 -0
- package/components/material-color-picker/material-color-picker.component.scss +5 -0
- package/components/material-color-picker/public-api.d.ts +2 -0
- package/components/material-color-picker/selected-color.d.ts +5 -0
- package/components/material-datetimepicker/calendar-body.d.ts +43 -0
- package/components/material-datetimepicker/calendar-body.scss +58 -0
- package/components/material-datetimepicker/calendar.d.ts +146 -0
- package/components/material-datetimepicker/calendar.scss +194 -0
- package/components/material-datetimepicker/clock.d.ts +74 -0
- package/components/material-datetimepicker/clock.scss +90 -0
- package/components/material-datetimepicker/datetimepicker-animations.d.ts +4 -0
- package/components/material-datetimepicker/datetimepicker-content.scss +151 -0
- package/components/material-datetimepicker/datetimepicker-errors.d.ts +1 -0
- package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +5 -0
- package/components/material-datetimepicker/datetimepicker-input.d.ts +106 -0
- package/components/material-datetimepicker/datetimepicker-intl.d.ts +51 -0
- package/components/material-datetimepicker/datetimepicker-toggle.d.ts +40 -0
- package/components/material-datetimepicker/datetimepicker-types.d.ts +13 -0
- package/components/material-datetimepicker/datetimepicker.d.ts +195 -0
- package/components/material-datetimepicker/datetimepicker.scss +145 -0
- package/components/material-datetimepicker/index.d.ts +5 -0
- package/components/material-datetimepicker/month-view.d.ts +64 -0
- package/components/material-datetimepicker/multi-year-view.d.ts +74 -0
- package/components/material-datetimepicker/public-api.d.ts +9 -0
- package/components/material-datetimepicker/time.d.ts +129 -0
- package/components/material-datetimepicker/time.scss +82 -0
- package/components/material-datetimepicker/year-view.d.ts +56 -0
- package/components/navigation/horizontal/components/basic/basic.component.d.ts +27 -0
- package/components/navigation/horizontal/components/branch/branch.component.d.ts +39 -0
- package/components/navigation/horizontal/components/divider/divider.component.d.ts +23 -0
- package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +23 -0
- package/components/navigation/horizontal/horizontal.component.d.ts +43 -0
- package/components/navigation/horizontal/horizontal.component.scss +167 -0
- package/components/navigation/index.d.ts +5 -0
- package/components/navigation/navigation.service.d.ts +71 -0
- package/components/navigation/navigation.types.d.ts +34 -0
- package/components/navigation/public-api.d.ts +4 -0
- package/components/navigation/vertical/components/aside/aside.component.d.ts +63 -0
- package/components/navigation/vertical/components/basic/basic.component.d.ts +30 -0
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +74 -0
- package/components/navigation/vertical/components/divider/divider.component.d.ts +26 -0
- package/components/navigation/vertical/components/group/group.component.d.ts +36 -0
- package/components/navigation/vertical/components/spacer/spacer.component.d.ts +26 -0
- package/components/navigation/vertical/styles/appearances/compact.scss +103 -0
- package/components/navigation/vertical/styles/appearances/default.scss +550 -0
- package/components/navigation/vertical/styles/appearances/dense.scss +171 -0
- package/components/navigation/vertical/styles/appearances/thin.scss +91 -0
- package/components/navigation/vertical/vertical.component.d.ts +176 -0
- package/components/navigation/vertical/vertical.component.scss +4 -0
- package/components/pagination/index.d.ts +5 -0
- package/components/pagination/pagination.component.d.ts +24 -0
- package/components/pagination/pagination.directive.d.ts +40 -0
- package/components/pagination/pagination.instance.d.ts +11 -0
- package/components/pagination/pagination.pipe.d.ts +29 -0
- package/components/pagination/pagination.service.d.ts +20 -0
- package/components/pagination/public-api.d.ts +4 -0
- package/components/password-strength/animations/index.d.ts +4 -0
- package/components/password-strength/enum.d.ts +13 -0
- package/components/password-strength/index.d.ts +5 -0
- package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +11 -0
- package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +52 -0
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +16 -0
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +19 -0
- package/components/password-strength/mat-password-strength-validator.d.ts +6 -0
- package/components/password-strength/public-api.d.ts +3 -0
- package/components/password-strength/regexp.class.d.ts +6 -0
- package/components/popover/index.d.ts +5 -0
- package/components/popover/popover.component.d.ts +139 -0
- package/components/popover/popover.component.scss +174 -0
- package/components/popover/popover.errors.d.ts +14 -0
- package/components/popover/popover.interfaces.d.ts +44 -0
- package/components/popover/popover.type.d.ts +5 -0
- package/components/popover/public-api.d.ts +1 -0
- package/components/progress-bar/index.d.ts +5 -0
- package/components/progress-bar/progress-bar.component.d.ts +17 -0
- package/components/progress-bar/progress-bar.component.scss +7 -0
- package/components/progress-bar/public-api.d.ts +1 -0
- package/components/rating/index.d.ts +5 -0
- package/components/rating/public-api.d.ts +1 -0
- package/components/rating/rating.component.d.ts +28 -0
- package/components/rating/rating.component.scss +33 -0
- package/components/select-search/default-options.d.ts +8 -0
- package/components/select-search/index.d.ts +5 -0
- package/components/select-search/public-api.d.ts +2 -0
- package/components/select-search/select-no-entries-found.directive.d.ts +5 -0
- package/components/select-search/select-search-clear.directive.d.ts +5 -0
- package/components/select-search/select-search.component.d.ts +91 -0
- package/components/select-search/select-search.component.scss +126 -0
- package/components/select-tree/index.d.ts +5 -0
- package/components/select-tree/public-api.d.ts +1 -0
- package/components/select-tree/select-tree.component.d.ts +85 -0
- package/components/select-tree/select-tree.component.scss +54 -0
- package/components/select-tree/select-tree.flatnode.d.ts +6 -0
- package/components/select-tree/select-tree.node.d.ts +5 -0
- package/components/timeline/index.d.ts +5 -0
- package/components/timeline/public-api.d.ts +2 -0
- package/components/timeline/timeline-item/timeline-item.component.d.ts +25 -0
- package/components/timeline/timeline-item/timeline-item.component.scss +329 -0
- package/components/timeline/timeline.component.d.ts +32 -0
- package/components/timeline/timeline.component.scss +42 -0
- package/components/toast/index.d.ts +5 -0
- package/components/toast/models/global-config.model.d.ts +12 -0
- package/components/toast/models/toast.model.d.ts +6 -0
- package/components/toast/models/type.model.d.ts +12 -0
- package/components/toast/public-api.d.ts +2 -0
- package/components/toast/toast-modal.component.d.ts +18 -0
- package/components/toast/toast-modal.component.scss +119 -0
- package/components/toast/toast.component.d.ts +17 -0
- package/components/toast/toast.component.scss +62 -0
- package/components/toast/toast.service.d.ts +26 -0
- package/components/transfer-picker/filter/filter.component.d.ts +24 -0
- package/components/transfer-picker/filter/filter.component.scss +40 -0
- package/components/transfer-picker/index.d.ts +5 -0
- package/components/transfer-picker/interface.d.ts +42 -0
- package/components/transfer-picker/public-api.d.ts +7 -0
- package/components/transfer-picker/search/search.component.d.ts +14 -0
- package/components/transfer-picker/search/search.component.scss +7 -0
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +49 -0
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +25 -0
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +12 -0
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +27 -0
- package/components/transfer-picker/transfer-picker.component.d.ts +28 -0
- package/components/transfer-picker/transfer-picker.component.scss +8 -0
- package/components/transfer-picker/transfer-picker.service.d.ts +31 -0
- package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +29 -0
- package/directives/animate-on-scroll/index.d.ts +5 -0
- package/directives/animate-on-scroll/public-api.d.ts +1 -0
- package/directives/animate-on-scroll/scroll.service.d.ts +15 -0
- package/directives/autofocus/autofocus.directive.d.ts +10 -0
- package/directives/autofocus/index.d.ts +5 -0
- package/directives/autofocus/public-api.d.ts +1 -0
- package/directives/debounce/abstract-debounce.directive.d.ts +15 -0
- package/directives/debounce/debounce-click.directive.d.ts +8 -0
- package/directives/debounce/debounce-keyup.directive.d.ts +8 -0
- package/directives/debounce/index.d.ts +5 -0
- package/directives/debounce/public-api.d.ts +2 -0
- package/directives/digit-only/digit-only.directive.d.ts +34 -0
- package/directives/digit-only/index.d.ts +5 -0
- package/directives/digit-only/mask.directive.d.ts +14 -0
- package/directives/digit-only/public-api.d.ts +2 -0
- package/directives/equal-validator/equal-validator.directive.d.ts +14 -0
- package/directives/equal-validator/index.d.ts +5 -0
- package/directives/equal-validator/public-api.d.ts +1 -0
- package/esm2022/animations/cmat-animations.mjs +5 -0
- package/esm2022/animations/defaults.mjs +12 -0
- package/esm2022/animations/drop.mjs +26 -0
- package/esm2022/animations/expand-collapse.mjs +17 -0
- package/esm2022/animations/fade.mjs +170 -0
- package/esm2022/animations/public-api.mjs +19 -0
- package/esm2022/animations/shake.mjs +59 -0
- package/esm2022/animations/slide.mjs +124 -0
- package/esm2022/animations/transform.mjs +16 -0
- package/esm2022/animations/zoom.mjs +38 -0
- package/esm2022/cmat.mjs +5 -0
- package/esm2022/components/adapter/cmat-components-adapter.mjs +5 -0
- package/esm2022/components/adapter/datetime-adapter.mjs +127 -0
- package/esm2022/components/adapter/datetime-formats.mjs +3 -0
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +198 -0
- package/esm2022/components/adapter/dayjs-date-formats.mjs +12 -0
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +100 -0
- package/esm2022/components/adapter/dayjs-datetime-formats.mjs +21 -0
- package/esm2022/components/adapter/native-datetime-adapter.mjs +130 -0
- package/esm2022/components/adapter/native-datetime-formats.mjs +15 -0
- package/esm2022/components/adapter/public-api.mjs +9 -0
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +19 -0
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +95 -0
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +336 -0
- package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +5 -0
- package/esm2022/components/breadcrumb/public-api.mjs +4 -0
- package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +2 -0
- package/esm2022/components/breadcrumb/types/breadcrumb.mjs +2 -0
- package/esm2022/components/card/card.component.mjs +58 -0
- package/esm2022/components/card/card.types.mjs +2 -0
- package/esm2022/components/card/cmat-components-card.mjs +5 -0
- package/esm2022/components/card/public-api.mjs +2 -0
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +53 -0
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +263 -0
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +29 -0
- package/esm2022/components/cascade/cmat-components-cascade.mjs +5 -0
- package/esm2022/components/cascade/options.interface.mjs +2 -0
- package/esm2022/components/cascade/public-api.mjs +3 -0
- package/esm2022/components/date-range/cmat-components-date-range.mjs +5 -0
- package/esm2022/components/date-range/date-range.component.mjs +540 -0
- package/esm2022/components/date-range/public-api.mjs +2 -0
- package/esm2022/components/drawer/cmat-components-drawer.mjs +5 -0
- package/esm2022/components/drawer/drawer.component.mjs +301 -0
- package/esm2022/components/drawer/drawer.service.mjs +41 -0
- package/esm2022/components/drawer/drawer.types.mjs +2 -0
- package/esm2022/components/drawer/public-api.mjs +4 -0
- package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +5 -0
- package/esm2022/components/fullscreen/fullscreen.component.mjs +101 -0
- package/esm2022/components/fullscreen/fullscreen.types.mjs +2 -0
- package/esm2022/components/fullscreen/public-api.mjs +3 -0
- package/esm2022/components/highlight/cmat-components-highlight.mjs +5 -0
- package/esm2022/components/highlight/highlight.component.mjs +80 -0
- package/esm2022/components/highlight/highlight.service.mjs +47 -0
- package/esm2022/components/highlight/public-api.mjs +3 -0
- package/esm2022/components/masonry/cmat-components-masonry.mjs +5 -0
- package/esm2022/components/masonry/masonry.component.mjs +54 -0
- package/esm2022/components/masonry/public-api.mjs +2 -0
- package/esm2022/components/material-color-picker/base-color.mjs +13 -0
- package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +5 -0
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +138 -0
- package/esm2022/components/material-color-picker/public-api.mjs +3 -0
- package/esm2022/components/material-color-picker/selected-color.mjs +3 -0
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +80 -0
- package/esm2022/components/material-datetimepicker/calendar.mjs +678 -0
- package/esm2022/components/material-datetimepicker/clock.mjs +293 -0
- package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +5 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +34 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +6 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +8 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +340 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +63 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +88 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +2 -0
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +534 -0
- package/esm2022/components/material-datetimepicker/month-view.mjs +146 -0
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +198 -0
- package/esm2022/components/material-datetimepicker/public-api.mjs +10 -0
- package/esm2022/components/material-datetimepicker/time.mjs +456 -0
- package/esm2022/components/material-datetimepicker/year-view.mjs +125 -0
- package/esm2022/components/navigation/cmat-components-navigation.mjs +5 -0
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +70 -0
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +83 -0
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +47 -0
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +47 -0
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +88 -0
- package/esm2022/components/navigation/navigation.service.mjs +140 -0
- package/esm2022/components/navigation/navigation.types.mjs +3 -0
- package/esm2022/components/navigation/public-api.mjs +5 -0
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +162 -0
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +76 -0
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +279 -0
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +56 -0
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +79 -0
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +56 -0
- package/esm2022/components/navigation/vertical/vertical.component.mjs +586 -0
- package/esm2022/components/pagination/cmat-components-pagination.mjs +5 -0
- package/esm2022/components/pagination/pagination.component.mjs +71 -0
- package/esm2022/components/pagination/pagination.directive.mjs +197 -0
- package/esm2022/components/pagination/pagination.instance.mjs +2 -0
- package/esm2022/components/pagination/pagination.pipe.mjs +100 -0
- package/esm2022/components/pagination/pagination.service.mjs +90 -0
- package/esm2022/components/pagination/public-api.mjs +5 -0
- package/esm2022/components/password-strength/animations/index.mjs +48 -0
- package/esm2022/components/password-strength/cmat-components-password-strength.mjs +5 -0
- package/esm2022/components/password-strength/enum.mjs +17 -0
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +27 -0
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +206 -0
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +151 -0
- package/esm2022/components/password-strength/mat-password-strength-validator.mjs +36 -0
- package/esm2022/components/password-strength/public-api.mjs +4 -0
- package/esm2022/components/password-strength/regexp.class.mjs +8 -0
- package/esm2022/components/popover/cmat-components-popover.mjs +5 -0
- package/esm2022/components/popover/popover.component.mjs +350 -0
- package/esm2022/components/popover/popover.errors.mjs +27 -0
- package/esm2022/components/popover/popover.interfaces.mjs +2 -0
- package/esm2022/components/popover/popover.type.mjs +2 -0
- package/esm2022/components/popover/public-api.mjs +2 -0
- package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +5 -0
- package/esm2022/components/progress-bar/progress-bar.component.mjs +55 -0
- package/esm2022/components/progress-bar/public-api.mjs +2 -0
- package/esm2022/components/rating/cmat-components-rating.mjs +5 -0
- package/esm2022/components/rating/public-api.mjs +2 -0
- package/esm2022/components/rating/rating.component.mjs +91 -0
- package/esm2022/components/select-search/cmat-components-select-search.mjs +5 -0
- package/esm2022/components/select-search/default-options.mjs +16 -0
- package/esm2022/components/select-search/public-api.mjs +3 -0
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +14 -0
- package/esm2022/components/select-search/select-search-clear.directive.mjs +14 -0
- package/esm2022/components/select-search/select-search.component.mjs +488 -0
- package/esm2022/components/select-tree/cmat-components-select-tree.mjs +5 -0
- package/esm2022/components/select-tree/public-api.mjs +2 -0
- package/esm2022/components/select-tree/select-tree.component.mjs +458 -0
- package/esm2022/components/select-tree/select-tree.flatnode.mjs +3 -0
- package/esm2022/components/select-tree/select-tree.node.mjs +3 -0
- package/esm2022/components/timeline/cmat-components-timeline.mjs +5 -0
- package/esm2022/components/timeline/public-api.mjs +3 -0
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +68 -0
- package/esm2022/components/timeline/timeline.component.mjs +114 -0
- package/esm2022/components/toast/cmat-components-toast.mjs +5 -0
- package/esm2022/components/toast/models/global-config.model.mjs +2 -0
- package/esm2022/components/toast/models/toast.model.mjs +2 -0
- package/esm2022/components/toast/models/type.model.mjs +2 -0
- package/esm2022/components/toast/public-api.mjs +3 -0
- package/esm2022/components/toast/toast-modal.component.mjs +53 -0
- package/esm2022/components/toast/toast.component.mjs +30 -0
- package/esm2022/components/toast/toast.service.mjs +122 -0
- package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +5 -0
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +85 -0
- package/esm2022/components/transfer-picker/interface.mjs +17 -0
- package/esm2022/components/transfer-picker/public-api.mjs +8 -0
- package/esm2022/components/transfer-picker/search/search.component.mjs +34 -0
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +178 -0
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +34 -0
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +82 -0
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +134 -0
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +126 -0
- package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +5 -0
- package/esm2022/directives/animate-on-scroll/public-api.mjs +2 -0
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +38 -0
- package/esm2022/directives/autofocus/autofocus.directive.mjs +20 -0
- package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +5 -0
- package/esm2022/directives/autofocus/public-api.mjs +2 -0
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +34 -0
- package/esm2022/directives/debounce/cmat-directives-debounce.mjs +5 -0
- package/esm2022/directives/debounce/debounce-click.directive.mjs +25 -0
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +25 -0
- package/esm2022/directives/debounce/public-api.mjs +3 -0
- package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +5 -0
- package/esm2022/directives/digit-only/digit-only.directive.mjs +282 -0
- package/esm2022/directives/digit-only/mask.directive.mjs +69 -0
- package/esm2022/directives/digit-only/public-api.mjs +3 -0
- package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +5 -0
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +54 -0
- package/esm2022/directives/equal-validator/public-api.mjs +2 -0
- package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +5 -0
- package/esm2022/lib/mock-api/mock-api.constants.mjs +3 -0
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +73 -0
- package/esm2022/lib/mock-api/mock-api.request-handler.mjs +48 -0
- package/esm2022/lib/mock-api/mock-api.service.mjs +93 -0
- package/esm2022/lib/mock-api/mock-api.types.mjs +2 -0
- package/esm2022/lib/mock-api/mock-api.utils.mjs +17 -0
- package/esm2022/lib/mock-api/public-api.mjs +6 -0
- package/esm2022/pipes/bytes/bytes.pipe.mjs +25 -0
- package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +5 -0
- package/esm2022/pipes/bytes/public-api.mjs +2 -0
- package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +5 -0
- package/esm2022/pipes/date-format/date-format.pipe.mjs +18 -0
- package/esm2022/pipes/date-format/public-api.mjs +2 -0
- package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +5 -0
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +23 -0
- package/esm2022/pipes/find-by-key/public-api.mjs +2 -0
- package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +5 -0
- package/esm2022/pipes/group-by/group-by.pipe.mjs +29 -0
- package/esm2022/pipes/group-by/public-api.mjs +2 -0
- package/esm2022/pipes/keys/cmat-pipes-keys.mjs +5 -0
- package/esm2022/pipes/keys/keys.pipe.mjs +26 -0
- package/esm2022/pipes/keys/public-api.mjs +2 -0
- package/esm2022/pipes/secure/cmat-pipes-secure.mjs +5 -0
- package/esm2022/pipes/secure/public-api.mjs +2 -0
- package/esm2022/pipes/secure/secure-pipe.mjs +43 -0
- package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +5 -0
- package/esm2022/pipes/uppercase/public-api.mjs +2 -0
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +17 -0
- package/esm2022/public-api.mjs +2 -0
- package/esm2022/services/alert/alert.dialog.mjs +12 -0
- package/esm2022/services/alert/alert.message.mjs +9 -0
- package/esm2022/services/alert/alert.service.mjs +165 -0
- package/esm2022/services/alert/cmat-services-alert.mjs +5 -0
- package/esm2022/services/alert/enum.mjs +15 -0
- package/esm2022/services/alert/public-api.mjs +5 -0
- package/esm2022/services/config/cmat-services-config.mjs +5 -0
- package/esm2022/services/config/config.constants.mjs +3 -0
- package/esm2022/services/config/config.service.mjs +35 -0
- package/esm2022/services/config/public-api.mjs +4 -0
- package/esm2022/services/config/urlStateConfig.service.mjs +30 -0
- package/esm2022/services/confirmation/cmat-services-confirmation.mjs +5 -0
- package/esm2022/services/confirmation/confirmation.service.mjs +51 -0
- package/esm2022/services/confirmation/confirmation.types.mjs +2 -0
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +25 -0
- package/esm2022/services/confirmation/public-api.mjs +3 -0
- package/esm2022/services/data/cmat-services-data.mjs +5 -0
- package/esm2022/services/data/data.service.mjs +169 -0
- package/esm2022/services/data/public-api.mjs +2 -0
- package/esm2022/services/loading/cmat-services-loading.mjs +5 -0
- package/esm2022/services/loading/loading.interceptor.mjs +29 -0
- package/esm2022/services/loading/loading.service.mjs +72 -0
- package/esm2022/services/loading/public-api.mjs +3 -0
- package/esm2022/services/local-storage/cmat-services-local-storage.mjs +5 -0
- package/esm2022/services/local-storage/local-storage.service.mjs +22 -0
- package/esm2022/services/local-storage/public-api.mjs +2 -0
- package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +5 -0
- package/esm2022/services/media-watcher/media-watcher.service.mjs +55 -0
- package/esm2022/services/media-watcher/public-api.mjs +2 -0
- package/esm2022/services/platform/cmat-services-platform.mjs +5 -0
- package/esm2022/services/platform/platform.service.mjs +46 -0
- package/esm2022/services/platform/public-api.mjs +2 -0
- package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +5 -0
- package/esm2022/services/splash-screen/public-api.mjs +2 -0
- package/esm2022/services/splash-screen/splash-screen.service.mjs +42 -0
- package/esm2022/services/title/cmat-services-title.mjs +5 -0
- package/esm2022/services/title/public-api.mjs +2 -0
- package/esm2022/services/title/title.service.mjs +46 -0
- package/esm2022/services/translation/cmat-services-translation.mjs +5 -0
- package/esm2022/services/translation/public-api.mjs +2 -0
- package/esm2022/services/translation/translation.service.mjs +62 -0
- package/esm2022/services/utils/cmat-services-utils.mjs +5 -0
- package/esm2022/services/utils/public-api.mjs +2 -0
- package/esm2022/services/utils/utils.service.mjs +391 -0
- package/esm2022/validators/cmat-validators.mjs +5 -0
- package/esm2022/validators/public-api.mjs +2 -0
- package/esm2022/validators/validators.mjs +33 -0
- package/esm2022/version/cmat-version.mjs +5 -0
- package/esm2022/version/public-api.mjs +2 -0
- package/esm2022/version/version.mjs +11 -0
- package/fesm2022/cmat-animations.mjs +466 -0
- package/fesm2022/cmat-animations.mjs.map +1 -0
- package/fesm2022/cmat-components-adapter.mjs +600 -0
- package/fesm2022/cmat-components-adapter.mjs.map +1 -0
- package/fesm2022/cmat-components-breadcrumb.mjs +449 -0
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/cmat-components-card.mjs +65 -0
- package/fesm2022/cmat-components-card.mjs.map +1 -0
- package/fesm2022/cmat-components-cascade.mjs +334 -0
- package/fesm2022/cmat-components-cascade.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +547 -0
- package/fesm2022/cmat-components-date-range.mjs.map +1 -0
- package/fesm2022/cmat-components-drawer.mjs +346 -0
- package/fesm2022/cmat-components-drawer.mjs.map +1 -0
- package/fesm2022/cmat-components-fullscreen.mjs +108 -0
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -0
- package/fesm2022/cmat-components-highlight.mjs +131 -0
- package/fesm2022/cmat-components-highlight.mjs.map +1 -0
- package/fesm2022/cmat-components-masonry.mjs +61 -0
- package/fesm2022/cmat-components-masonry.mjs.map +1 -0
- package/fesm2022/cmat-components-material-color-picker.mjs +160 -0
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -0
- package/fesm2022/cmat-components-material-datetimepicker.mjs +2976 -0
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -0
- package/fesm2022/cmat-components-navigation.mjs +1656 -0
- package/fesm2022/cmat-components-navigation.mjs.map +1 -0
- package/fesm2022/cmat-components-pagination.mjs +455 -0
- package/fesm2022/cmat-components-pagination.mjs.map +1 -0
- package/fesm2022/cmat-components-password-strength.mjs +489 -0
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -0
- package/fesm2022/cmat-components-popover.mjs +383 -0
- package/fesm2022/cmat-components-popover.mjs.map +1 -0
- package/fesm2022/cmat-components-progress-bar.mjs +62 -0
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -0
- package/fesm2022/cmat-components-rating.mjs +98 -0
- package/fesm2022/cmat-components-rating.mjs.map +1 -0
- package/fesm2022/cmat-components-select-search.mjs +531 -0
- package/fesm2022/cmat-components-select-search.mjs.map +1 -0
- package/fesm2022/cmat-components-select-tree.mjs +467 -0
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -0
- package/fesm2022/cmat-components-timeline.mjs +186 -0
- package/fesm2022/cmat-components-timeline.mjs.map +1 -0
- package/fesm2022/cmat-components-toast.mjs +205 -0
- package/fesm2022/cmat-components-toast.mjs.map +1 -0
- package/fesm2022/cmat-components-transfer-picker.mjs +536 -0
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -0
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +166 -0
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -0
- package/fesm2022/cmat-directives-autofocus.mjs +27 -0
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -0
- package/fesm2022/cmat-directives-debounce.mjs +85 -0
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -0
- package/fesm2022/cmat-directives-digit-only.mjs +356 -0
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -0
- package/fesm2022/cmat-directives-equal-validator.mjs +61 -0
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -0
- package/fesm2022/cmat-lib-mock-api.mjs +232 -0
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -0
- package/fesm2022/cmat-pipes-bytes.mjs +32 -0
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -0
- package/fesm2022/cmat-pipes-date-format.mjs +25 -0
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -0
- package/fesm2022/cmat-pipes-find-by-key.mjs +30 -0
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -0
- package/fesm2022/cmat-pipes-group-by.mjs +36 -0
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -0
- package/fesm2022/cmat-pipes-keys.mjs +33 -0
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -0
- package/fesm2022/cmat-pipes-secure.mjs +50 -0
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -0
- package/fesm2022/cmat-pipes-uppercase.mjs +24 -0
- package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -0
- package/fesm2022/cmat-services-alert.mjs +207 -0
- package/fesm2022/cmat-services-alert.mjs.map +1 -0
- package/fesm2022/cmat-services-config.mjs +69 -0
- package/fesm2022/cmat-services-config.mjs.map +1 -0
- package/fesm2022/cmat-services-confirmation.mjs +79 -0
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -0
- package/fesm2022/cmat-services-data.mjs +176 -0
- package/fesm2022/cmat-services-data.mjs.map +1 -0
- package/fesm2022/cmat-services-loading.mjs +104 -0
- package/fesm2022/cmat-services-loading.mjs.map +1 -0
- package/fesm2022/cmat-services-local-storage.mjs +29 -0
- package/fesm2022/cmat-services-local-storage.mjs.map +1 -0
- package/fesm2022/cmat-services-media-watcher.mjs +62 -0
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -0
- package/fesm2022/cmat-services-platform.mjs +53 -0
- package/fesm2022/cmat-services-platform.mjs.map +1 -0
- package/fesm2022/cmat-services-splash-screen.mjs +49 -0
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -0
- package/fesm2022/cmat-services-title.mjs +53 -0
- package/fesm2022/cmat-services-title.mjs.map +1 -0
- package/fesm2022/cmat-services-translation.mjs +69 -0
- package/fesm2022/cmat-services-translation.mjs.map +1 -0
- package/fesm2022/cmat-services-utils.mjs +398 -0
- package/fesm2022/cmat-services-utils.mjs.map +1 -0
- package/fesm2022/cmat-validators.mjs +39 -0
- package/fesm2022/cmat-validators.mjs.map +1 -0
- package/fesm2022/cmat-version.mjs +17 -0
- package/fesm2022/cmat-version.mjs.map +1 -0
- package/fesm2022/cmat.mjs +4 -0
- package/fesm2022/cmat.mjs.map +1 -0
- package/icons/CSV.svg +3 -0
- package/icons/EXCEL.svg +3 -0
- package/icons/FILE.svg +3 -0
- package/icons/GIF.svg +3 -0
- package/icons/JPG.svg +3 -0
- package/icons/PDF.svg +3 -0
- package/icons/PNG.svg +3 -0
- package/icons/PPT.svg +3 -0
- package/icons/TEXT.svg +3 -0
- package/icons/VIDEO.svg +3 -0
- package/icons/WORD.svg +3 -0
- package/icons/ZIP.svg +3 -0
- package/icons/arrow-cursor.svg +3 -0
- package/icons/material-icons/heroicons-outline.svg +893 -0
- package/icons/material-icons/heroicons-solid.svg +958 -0
- package/icons/material-icons/material-outline.svg +3586 -0
- package/icons/material-icons/material-solid.svg +3586 -0
- package/index.d.ts +5 -0
- package/lib/mock-api/index.d.ts +5 -0
- package/lib/mock-api/mock-api.constants.d.ts +2 -0
- package/lib/mock-api/mock-api.interceptor.d.ts +12 -0
- package/lib/mock-api/mock-api.request-handler.d.ts +18 -0
- package/lib/mock-api/mock-api.service.d.ts +22 -0
- package/lib/mock-api/mock-api.types.d.ts +9 -0
- package/lib/mock-api/mock-api.utils.d.ts +3 -0
- package/lib/mock-api/public-api.d.ts +5 -0
- package/package.json +344 -0
- package/pipes/bytes/bytes.pipe.d.ts +7 -0
- package/pipes/bytes/index.d.ts +5 -0
- package/pipes/bytes/public-api.d.ts +1 -0
- package/pipes/date-format/date-format.pipe.d.ts +7 -0
- package/pipes/date-format/index.d.ts +5 -0
- package/pipes/date-format/public-api.d.ts +1 -0
- package/pipes/find-by-key/find-by-key.pipe.d.ts +7 -0
- package/pipes/find-by-key/index.d.ts +5 -0
- package/pipes/find-by-key/public-api.d.ts +1 -0
- package/pipes/group-by/group-by.pipe.d.ts +7 -0
- package/pipes/group-by/index.d.ts +5 -0
- package/pipes/group-by/public-api.d.ts +1 -0
- package/pipes/keys/index.d.ts +5 -0
- package/pipes/keys/keys.pipe.d.ts +7 -0
- package/pipes/keys/public-api.d.ts +1 -0
- package/pipes/secure/index.d.ts +5 -0
- package/pipes/secure/public-api.d.ts +1 -0
- package/pipes/secure/secure-pipe.d.ts +18 -0
- package/pipes/uppercase/index.d.ts +5 -0
- package/pipes/uppercase/public-api.d.ts +1 -0
- package/pipes/uppercase/uppercase.pipe.d.ts +7 -0
- package/public-api.d.ts +1 -0
- package/services/alert/alert.dialog.d.ts +11 -0
- package/services/alert/alert.message.d.ts +8 -0
- package/services/alert/alert.service.d.ts +37 -0
- package/services/alert/enum.d.ts +12 -0
- package/services/alert/index.d.ts +5 -0
- package/services/alert/public-api.d.ts +4 -0
- package/services/config/config.constants.d.ts +6 -0
- package/services/config/config.service.d.ts +11 -0
- package/services/config/index.d.ts +5 -0
- package/services/config/public-api.d.ts +3 -0
- package/services/config/urlStateConfig.service.d.ts +10 -0
- package/services/confirmation/confirmation.service.d.ts +12 -0
- package/services/confirmation/confirmation.types.d.ts +21 -0
- package/services/confirmation/dialog/dialog.component.d.ts +10 -0
- package/services/confirmation/index.d.ts +5 -0
- package/services/confirmation/public-api.d.ts +2 -0
- package/services/data/data.service.d.ts +20 -0
- package/services/data/index.d.ts +5 -0
- package/services/data/public-api.d.ts +1 -0
- package/services/loading/index.d.ts +5 -0
- package/services/loading/loading.interceptor.d.ts +12 -0
- package/services/loading/loading.service.d.ts +24 -0
- package/services/loading/public-api.d.ts +2 -0
- package/services/local-storage/index.d.ts +5 -0
- package/services/local-storage/local-storage.service.d.ts +8 -0
- package/services/local-storage/public-api.d.ts +1 -0
- package/services/media-watcher/index.d.ts +5 -0
- package/services/media-watcher/media-watcher.service.d.ts +20 -0
- package/services/media-watcher/public-api.d.ts +1 -0
- package/services/platform/index.d.ts +5 -0
- package/services/platform/platform.service.d.ts +9 -0
- package/services/platform/public-api.d.ts +1 -0
- package/services/splash-screen/index.d.ts +5 -0
- package/services/splash-screen/public-api.d.ts +1 -0
- package/services/splash-screen/splash-screen.service.d.ts +14 -0
- package/services/title/index.d.ts +5 -0
- package/services/title/public-api.d.ts +1 -0
- package/services/title/title.service.d.ts +13 -0
- package/services/translation/index.d.ts +5 -0
- package/services/translation/public-api.d.ts +1 -0
- package/services/translation/translation.service.d.ts +20 -0
- package/services/utils/index.d.ts +5 -0
- package/services/utils/public-api.d.ts +1 -0
- package/services/utils/utils.service.d.ts +57 -0
- package/styles/components/input.scss +42 -0
- package/styles/main.scss +9 -0
- package/styles/overrides/angular-material.scss +1403 -0
- package/styles/overrides/fullcalendar.scss +550 -0
- package/styles/overrides/highlightjs.scss +81 -0
- package/styles/styles.scss +3 -0
- package/styles/tailwind.scss +86 -0
- package/styles/themes.scss +164 -0
- package/styles/user-themes.scss +1 -0
- package/tailwind/plugins/icon-size.js +49 -0
- package/tailwind/plugins/theming.js +256 -0
- package/tailwind/plugins/utilities.js +66 -0
- package/tailwind/utils/generate-contrasts.js +29 -0
- package/tailwind/utils/generate-palette.js +100 -0
- package/tailwind/utils/json-to-sass-map.js +67 -0
- package/validators/index.d.ts +5 -0
- package/validators/public-api.d.ts +1 -0
- package/validators/validators.d.ts +5 -0
- package/version/index.d.ts +5 -0
- package/version/public-api.d.ts +1 -0
- package/version/version.d.ts +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmat-components-select-search.mjs","sources":["../../../projects/cmat/components/select-search/select-search-clear.directive.ts","../../../projects/cmat/components/select-search/select-no-entries-found.directive.ts","../../../projects/cmat/components/select-search/default-options.ts","../../../projects/cmat/components/select-search/select-search.component.ts","../../../projects/cmat/components/select-search/select-search.component.html","../../../projects/cmat/components/select-search/cmat-components-select-search.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\r\n selector: '[cmatSelectSearchClear]',\r\n standalone: true\r\n})\nexport class CmatSelectSearchClearDirective { }\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSelectNoEntriesFound]',\r\n standalone: true\r\n})\r\nexport class CmatSelectNoEntriesFoundDirective { }\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CmatSelectSearchComponent } from './select-search.component';\r\n\r\n/** List of inputs of CmatSelectSearchComponent that can be configured with a global default. */\r\nexport const configurableDefaultOptions = [\r\n 'ariaLabel',\r\n 'clearSearchInput',\r\n 'disableInitialFocus',\r\n 'disableScrollToActiveOnOptionsChanged',\r\n 'enableClearOnEscapePressed',\r\n 'hideClearSearchButton',\r\n 'noEntriesFoundLabel',\r\n 'placeholderLabel',\r\n 'preventHomeEndKeyPropagation',\r\n 'searching',\r\n] as const;\r\n\r\nexport type ConfigurableDefaultOptions = typeof configurableDefaultOptions[number];\r\n\r\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken<MatSelectSearchOptions>('mat-selectsearch-default-options');\r\n\r\n/** Global configurable options for MatSelectSearch. */\r\nexport type MatSelectSearchOptions = Readonly<Partial<Pick<CmatSelectSearchComponent, ConfigurableDefaultOptions>>>;\r\n","import {\r\n ChangeDetectionStrategy, ChangeDetectorRef,\r\n Component, ElementRef, EventEmitter, forwardRef, Inject, Input, OnDestroy, OnInit, QueryList,\r\n ViewChild,\r\n ContentChild, Optional, HostBinding, Output, ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { ViewportRuler } from '@angular/cdk/scrolling';\r\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\r\nimport { delay, filter, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { CmatSelectSearchClearDirective } from './select-search-clear.directive';\r\nimport { MatOption, _countGroupLabelsBeforeOption } from '@angular/material/core';\r\nimport { MatFormField, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { CmatSelectNoEntriesFoundDirective } from './select-no-entries-found.directive';\r\nimport { configurableDefaultOptions, MatSelectSearchOptions, MAT_SELECTSEARCH_DEFAULT_OPTIONS } from './default-options';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { NgClass, NgIf, AsyncPipe } from '@angular/common';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nconst SELECT_PANEL_MAX_HEIGHT = 256;\r\n\r\n@Component({\r\n selector: 'cmat-select-search',\r\n templateUrl: './select-search.component.html',\r\n styleUrls: ['./select-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatSelectSearchComponent),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n exportAs: 'cmatSelectSearch',\r\n imports: [MatInputModule, NgClass, NgIf, MatCheckboxModule, MatTooltipModule, MatFormFieldModule,\r\n MatIconModule, FormsModule, ReactiveFormsModule, MatProgressSpinnerModule, MatButtonModule, AsyncPipe]\r\n})\r\nexport class CmatSelectSearchComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n\r\n @Input() placeholderLabel = '查询';\r\n\r\n @Input() type = 'text';\r\n\r\n @Input() noEntriesFoundLabel = '无结果';\r\n\r\n @Input() showNoFoundLabel = true;\r\n\r\n @Input() indexAndLengthScreenReaderText = ' of ';\r\n\r\n @Input() clearSearchInput = true;\r\n\r\n @Input() searching = false;\r\n\r\n @Input() disableInitialFocus = false;\r\n\r\n @Input() enableClearOnEscapePressed = false;\r\n\r\n @Input() preventHomeEndKeyPropagation = false;\r\n\r\n @Input() disableScrollToActiveOnOptionsChanged = false;\r\n\r\n @Input() ariaLabel = '下拉查询';\r\n\r\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\r\n @Input() showToggleAllCheckbox = false;\r\n\r\n /** select all checkbox checked state */\r\n @Input() toggleAllCheckboxChecked = false;\r\n\r\n /** select all checkbox indeterminate state */\r\n @Input() toggleAllCheckboxIndeterminate = false;\r\n\r\n @Input() toggleAllCheckboxTooltipMessage = '';\r\n\r\n @Input() toggleAllCheckboxTooltipPosition: 'left' | 'right' | 'above' | 'below' | 'before' | 'after' = 'below';\r\n\r\n @Input() hideClearSearchButton = false;\r\n\r\n @Input() alwaysRestoreSelectedOptionsMulti = false;\r\n\r\n /** Output emitter to send to parent component with the toggle all boolean */\r\n @Output() toggleAll = new EventEmitter<boolean>();\r\n\r\n @ViewChild('searchSelectInput', { read: ElementRef, static: true }) searchSelectInput: ElementRef;\r\n\r\n @ViewChild('innerSelectSearch', { read: ElementRef, static: true }) innerSelectSearch: ElementRef;\r\n @ContentChild(CmatSelectSearchClearDirective, { static: false }) clearIcon: CmatSelectSearchClearDirective;\r\n @ContentChild(CmatSelectNoEntriesFoundDirective) noEntriesFound: CmatSelectNoEntriesFoundDirective;\r\n formControl: FormControl = new FormControl('');\r\n\r\n private _options$: BehaviorSubject<QueryList<MatOption> | null> = new BehaviorSubject<QueryList<MatOption> | null>(null);\r\n private _lastExternalInputValue?: string;\r\n\r\n private _optionsList$: Observable<MatOption[] | null> = this._options$.pipe(\r\n switchMap(_options => _options ?\r\n _options.changes.pipe(\r\n map(options => options.toArray()),\r\n startWith<MatOption[]>(_options.toArray()),\r\n ) : of(null)\r\n )\r\n );\r\n\r\n private _optionsLength$: Observable<number> = this._optionsList$.pipe(\r\n map(options => options ? options.length : 0)\r\n );\r\n\r\n private _previousSelectedValues: any[];\r\n private _onDestroy = new Subject<void>();\r\n /** Reference to active descendant for ARIA Support. */\r\n private _activeDescendant?: HTMLElement;\r\n\r\n constructor(@Inject(MatSelect) protected matSelect: MatSelect,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _viewportRuler: ViewportRuler,\r\n @Optional() @Inject(MatOption) private _matOption: MatOption | null = null,\r\n @Optional() @Inject(MatFormField) protected matFormField: MatFormField | null = null,\r\n @Optional() @Inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS) private _defaultOptions?: MatSelectSearchOptions\r\n ) {\r\n this._applyDefaultOptions(this._defaultOptions);\r\n }\r\n\r\n /** whether to show the no entries found message */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n showNoEntriesFound$: Observable<boolean> = combineLatest([\r\n this.formControl.valueChanges,\r\n this._optionsLength$\r\n ]).pipe(\r\n map(([value, optionsLength]) => this.noEntriesFoundLabel && value\r\n && optionsLength === this._getOptionsLengthOffset())\r\n );\r\n\r\n @HostBinding('class.cmat-select-search-inside-mat-option')\r\n get isInsideMatOption(): boolean {\r\n return !!this._matOption;\r\n }\r\n\r\n get value(): string {\r\n return this.formControl.value;\r\n }\r\n\r\n public get _options(): QueryList<MatOption> | null {\r\n return this._options$.getValue();\r\n }\r\n public set _options(_options: QueryList<MatOption>) {\r\n this._options$.next(_options);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched: () => any = () => { };\r\n\r\n ngOnInit(): void {\r\n const panelClass = 'cmat-select-search-panel';\r\n if (this.matSelect.panelClass) {\r\n if (Array.isArray(this.matSelect.panelClass)) {\r\n (this.matSelect.panelClass as string[]).push(panelClass);\r\n } else if (typeof this.matSelect.panelClass === 'string') {\r\n this.matSelect.panelClass = [this.matSelect.panelClass, panelClass];\r\n } else if (typeof this.matSelect.panelClass === 'object') {\r\n this.matSelect.panelClass.entries[panelClass] = true;\r\n }\r\n } else {\r\n this.matSelect.panelClass = panelClass;\r\n }\r\n\r\n if (this._matOption) {\r\n this._matOption.disabled = true;\r\n this._matOption._getHostElement().classList.add('contains-cmat-select-search');\r\n this._matOption._getHostElement().setAttribute('aria-hidden', 'true');\r\n } else {\r\n console.error('<cmat-select-search> must be placed inside a <mat-option> element');\r\n }\r\n\r\n\r\n this.matSelect.openedChange\r\n .pipe(\r\n delay(1),\r\n takeUntil(this._onDestroy)\r\n )\r\n .subscribe((opened) => {\r\n if (opened) {\r\n this.updateInputWidth();\r\n if (!this.disableInitialFocus) {\r\n this.focus();\r\n }\r\n } else {\r\n if (this.clearSearchInput) {\r\n this.reset();\r\n }\r\n }\r\n });\r\n\r\n this.matSelect.openedChange\r\n .pipe(take(1))\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n if (this.matSelect._keyManager) {\r\n this.matSelect._keyManager.change.pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => this._adjustScrollTopToFitActiveOptionIntoView());\r\n } else {\r\n console.log('_keyManager was not initialized.');\r\n }\r\n\r\n this._options = this.matSelect.options;\r\n let previousFirstOption = this._options.toArray()[this._getOptionsLengthOffset()];\r\n\r\n this._options.changes\r\n .pipe(\r\n takeUntil(this._onDestroy)\r\n )\r\n .subscribe(() => {\r\n // avoid \"expression has been changed\" error\r\n setTimeout(() => {\r\n if (this._options) {\r\n // Convert the QueryList to an array\r\n const options = this._options.toArray();\r\n\r\n // The true first item is offset by 1\r\n const currentFirstOption = options[this._getOptionsLengthOffset()];\r\n\r\n const keyManager = this.matSelect._keyManager;\r\n if (keyManager && this.matSelect.panelOpen) {\r\n\r\n // set first item active and input width\r\n\r\n // Check to see if the first option in these changes is different from the previous.\r\n const firstOptionIsChanged = !this.matSelect.compareWith(previousFirstOption, currentFirstOption);\r\n\r\n if (firstOptionIsChanged\r\n || !keyManager.activeItem\r\n || !options.find(option => this.matSelect.compareWith(option, keyManager.activeItem))) {\r\n keyManager.setFirstItemActive();\r\n }\r\n\r\n // wait for panel width changes\r\n setTimeout(() => {\r\n this.updateInputWidth();\r\n });\r\n\r\n if (!this.disableScrollToActiveOnOptionsChanged) {\r\n this._adjustScrollTopToFitActiveOptionIntoView();\r\n }\r\n }\r\n\r\n // Update our reference\r\n previousFirstOption = currentFirstOption;\r\n }\r\n });\r\n });\r\n });\r\n\r\n // add or remove css class depending on whether to show the no entries found message\r\n // note: this is hacky\r\n this.showNoEntriesFound$.pipe(\r\n takeUntil(this._onDestroy)\r\n ).subscribe((showNoEntriesFound) => {\r\n // set no entries found class on mat option\r\n if (this._matOption) {\r\n if (showNoEntriesFound) {\r\n this._matOption._getHostElement().classList.add('cmat-select-search-no-entries-found');\r\n } else {\r\n this._matOption._getHostElement().classList.remove('cmat-select-search-no-entries-found');\r\n }\r\n }\r\n });\r\n\r\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\r\n this._viewportRuler.change()\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n if (this.matSelect.panelOpen) {\r\n this.updateInputWidth();\r\n }\r\n });\r\n\r\n this._initMultipleHandling();\r\n\r\n this._optionsList$.pipe(\r\n takeUntil(this._onDestroy)\r\n ).subscribe(() => {\r\n // update view when available options change\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n emitSelectAllBooleanToParent(state: boolean): void {\r\n this.toggleAll.emit(state);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._onDestroy.next(void 0);\r\n this._onDestroy.complete();\r\n }\r\n\r\n isToggleAllCheckboxVisible(): boolean {\r\n return this.matSelect.multiple && this.showToggleAllCheckbox;\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if ((event.key && event.key.length === 1) ||\r\n (event.code === 'KeyA') || (event.code === 'KeyB') || (event.code === 'KeyC') || (event.code === 'KeyD') || (event.code === 'KeyE') || (event.code === 'KeyF')\r\n || (event.code === 'KeyG') || (event.code === 'KeyH') || (event.code === 'KeyI') || (event.code === 'KeyJ') || (event.code === 'KeyK') || (event.code === 'KeyL')\r\n || (event.code === 'KeyM') || (event.code === 'KeyN') || (event.code === 'KeyO') || (event.code === 'KeyP') || (event.code === 'KeyQ') || (event.code === 'KeyR')\r\n || (event.code === 'KeyS') || (event.code === 'KeyT') || (event.code === 'KeyU') || (event.code === 'KeyV') || (event.code === 'KeyW')\r\n || (event.code === 'KeyX') || (event.code === 'KeyY') || (event.code === 'KeyZ') || (event.code === 'Digit0') || (event.code === 'Digit1')\r\n || (event.code === 'Digit2') || (event.code === 'Digit3') || (event.code === 'Digit4') || (event.code === 'Digit5') || (event.code === 'Digit6')\r\n || (event.code === 'Digit7') || (event.code === 'Digit8') || (event.code === 'Digit9')\r\n || (event.code === 'Space')\r\n || (this.preventHomeEndKeyPropagation && (event.code === 'Home' || event.code === 'End'))\r\n ) {\r\n event.stopPropagation();\r\n }\r\n\r\n if (this.matSelect.multiple && event.key && event.code === 'Enter') {\r\n // Regain focus after multiselect, so we can further type\r\n setTimeout(() => this.focus());\r\n }\r\n\r\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\r\n if (this.enableClearOnEscapePressed === true && event.code === 'Escape' && this.value) {\r\n this.reset(true);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n /**\r\n * Handles the key up event with MatSelect.\r\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\r\n */\r\n handleKeyup(event: KeyboardEvent): void {\r\n if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {\r\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\r\n const index = this._options?.toArray().findIndex(item => item.id === ariaActiveDescendantId);\r\n if (index && index !== -1) {\r\n this._unselectActiveDescendant();\r\n this._activeDescendant = this._options?.toArray()[index]._getHostElement();\r\n this._activeDescendant?.setAttribute('aria-selected', 'true');\r\n this.searchSelectInput.nativeElement.setAttribute('aria-activedescendant', ariaActiveDescendantId);\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: string): void {\r\n this._lastExternalInputValue = value;\r\n this.formControl.setValue(value);\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n onBlur(): void {\r\n this._unselectActiveDescendant();\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.formControl.valueChanges.pipe(\r\n filter(value => value !== this._lastExternalInputValue),\r\n tap(() => this._lastExternalInputValue = undefined),\r\n takeUntil(this._onDestroy)\r\n ).subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public focus(): void {\r\n if (!this.searchSelectInput || !this.matSelect.panel) {\r\n return;\r\n }\r\n const panel = this.matSelect.panel.nativeElement;\r\n const scrollTop = panel.scrollTop;\r\n\r\n this.searchSelectInput.nativeElement.focus();\r\n\r\n panel.scrollTop = scrollTop;\r\n }\r\n\r\n public reset(focus?: boolean): void {\r\n this.formControl.setValue('');\r\n if (focus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n public updateInputWidth(): void {\r\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\r\n return;\r\n }\r\n const element: HTMLElement = this.innerSelectSearch.nativeElement;\r\n let panelElement: HTMLElement | void = void 0;\r\n while (element === element.parentElement) {\r\n if (element.classList.contains('mat-select-panel')) {\r\n panelElement = element;\r\n break;\r\n }\r\n }\r\n if (panelElement) {\r\n this.innerSelectSearch.nativeElement.style.width = panelElement.clientWidth + 'px';\r\n }\r\n }\r\n\r\n private _getMatOptionHeight(): number {\r\n if (this.matSelect.options.length > 0) {\r\n return this.matSelect.options.first._getHostElement().getBoundingClientRect().height;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private _getOptionsLengthOffset(): number {\r\n if (this._matOption) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private _unselectActiveDescendant(): void {\r\n this._activeDescendant?.removeAttribute('aria-selected');\r\n this.searchSelectInput.nativeElement.removeAttribute('aria-activedescendant');\r\n }\r\n private _applyDefaultOptions(defaultOptions?: MatSelectSearchOptions): void {\r\n if (!defaultOptions) {\r\n return;\r\n }\r\n for (const key of configurableDefaultOptions) {\r\n if (Object.prototype.hasOwnProperty.call(defaultOptions, key)) {\r\n (this[key] as any) = defaultOptions[key];\r\n }\r\n }\r\n }\r\n /*\r\n * Initializes handling <mat-select [multiple]=\"true\">\r\n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\r\n */\r\n private _initMultipleHandling(): void {\r\n if (!this.matSelect.ngControl) {\r\n if (this.matSelect.multiple) {\r\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\r\n // is necessary to properly work in multi-selection mode.\r\n console.error('the mat-select containing cmat-select-search must have a ngModel or formControl directive when multiple=true');\r\n }\r\n return;\r\n }\r\n // if <mat-select [multiple]=\"true\">\r\n // store previously selected values and restore them when they are deselected\r\n // because the option is not available while we are currently filtering\r\n this._previousSelectedValues = this.matSelect.ngControl.value;\r\n\r\n this.matSelect.ngControl.valueChanges?.pipe(takeUntil(this._onDestroy))\r\n .subscribe((values) => {\r\n let restoreSelectedValues = false;\r\n if (this.matSelect.multiple) {\r\n if ((this.alwaysRestoreSelectedOptionsMulti || (this.formControl.value && this.formControl.value.length))\r\n && this._previousSelectedValues && Array.isArray(this._previousSelectedValues)) {\r\n if (!values || !Array.isArray(values)) {\r\n values = [];\r\n }\r\n const optionValues = this.matSelect.options.map(option => option.value);\r\n this._previousSelectedValues.forEach((previousValue) => {\r\n if (!values.some((v: any) => this.matSelect.compareWith(v, previousValue))\r\n && !optionValues.some(v => this.matSelect.compareWith(v, previousValue))) {\r\n // if a value that was selected before is deselected and not found in the options, it was deselected\r\n // due to the filtering, so we restore it.\r\n values.push(previousValue);\r\n restoreSelectedValues = true;\r\n }\r\n });\r\n }\r\n }\r\n this._previousSelectedValues = values;\r\n\r\n if (restoreSelectedValues) {\r\n this.matSelect._onChange(values);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Scrolls the currently active option into the view if it is not yet visible.\r\n */\r\n private _adjustScrollTopToFitActiveOptionIntoView(): void {\r\n if (this.matSelect.panel && this.matSelect.options.length > 0) {\r\n const matOptionHeight = this._getMatOptionHeight();\r\n const activeOptionIndex = this.matSelect._keyManager.activeItemIndex || 0;\r\n const labelCount = _countGroupLabelsBeforeOption(activeOptionIndex, this.matSelect.options, this.matSelect.optionGroups);\r\n // If the component is in a MatOption, the activeItemIndex will be offset by one.\r\n const indexOfOptionToFitIntoView = (this._matOption ? -1 : 0) + labelCount + activeOptionIndex;\r\n const currentScrollTop = this.matSelect.panel.nativeElement.scrollTop;\r\n\r\n const searchInputHeight = this.innerSelectSearch.nativeElement.offsetHeight;\r\n const amountOfVisibleOptions = Math.floor((SELECT_PANEL_MAX_HEIGHT - searchInputHeight) / matOptionHeight);\r\n\r\n const indexOfFirstVisibleOption = Math.round((currentScrollTop + searchInputHeight) / matOptionHeight) - 1;\r\n\r\n if (indexOfFirstVisibleOption >= indexOfOptionToFitIntoView) {\r\n this.matSelect.panel.nativeElement.scrollTop = indexOfOptionToFitIntoView * matOptionHeight;\r\n } else if (indexOfFirstVisibleOption + amountOfVisibleOptions <= indexOfOptionToFitIntoView) {\r\n this.matSelect.panel.nativeElement.scrollTop = (indexOfOptionToFitIntoView + 1) * matOptionHeight\r\n - (SELECT_PANEL_MAX_HEIGHT - searchInputHeight);\r\n }\r\n }\r\n }\r\n}\r\n","<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div #innerSelectSearch class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{'cmat-select-search-inner-multiple': matSelect.multiple, 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible() }\">\r\n\r\n <mat-checkbox *ngIf=\"isToggleAllCheckboxVisible()\" [color]=\"matFormField?.color\"\r\n class=\"cmat-select-search-toggle-all-checkbox\" [checked]=\"toggleAllCheckboxChecked\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate\" [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\" [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\">\r\n </mat-checkbox>\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon class=\"cmat-select-search-icon\" color=\"primary\" svgIcon=\"heroicons_solid:magnifying-glass\"></mat-icon>\r\n </span>\r\n <input matInput class=\"cmat-select-search-input cmat-input-element\" autocomplete=\"off\" [type]=\"type\"\r\n [formControl]=\"formControl\" #searchSelectInput (keydown)=\"handleKeydown($event)\" (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\" [placeholder]=\"placeholderLabel\" [attr.aria-label]=\"ariaLabel\" />\r\n <mat-spinner *ngIf=\"searching\" class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n\r\n <button type=\"button\" *ngIf=\"!hideClearSearchButton && value && !searching\" mat-icon-button aria-label=\"Clear\"\r\n (click)=\"reset(true)\" class=\"cmat-select-search-clear\">\r\n <ng-content *ngIf=\"clearIcon; else defaultIcon\" select=\"[cmatSelectSearchClear]\"></ng-content>\r\n <ng-template #defaultIcon>\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </ng-template>\r\n </button>\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n<div *ngIf=\"showNoEntriesFound$ | async\" class=\"cmat-select-search-no-entries-found\">\r\n <ng-content *ngIf=\"noEntriesFound; else defaultNoEntriesFound\" select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n <ng-template #defaultNoEntriesFound>{{noEntriesFoundLabel}}</ng-template>\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i5 from '@angular/forms';
|
|
4
|
+
import { FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { ReplaySubject, Subject, merge } from 'rxjs';
|
|
6
|
+
import { takeUntil, debounceTime } from 'rxjs/operators';
|
|
7
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
8
|
+
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
9
|
+
import * as i6 from '@angular/material/tree';
|
|
10
|
+
import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
|
|
11
|
+
import * as i3 from '@angular/material/select';
|
|
12
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
13
|
+
import * as i8 from '@angular/material/checkbox';
|
|
14
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
15
|
+
import * as i7 from '@angular/material/button';
|
|
16
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
17
|
+
import { CmatSelectSearchComponent } from 'cmat/components/select-search';
|
|
18
|
+
import * as i2 from '@angular/material/icon';
|
|
19
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
20
|
+
import { NgIf, NgFor, NgClass, AsyncPipe, NgStyle } from '@angular/common';
|
|
21
|
+
import * as i1 from '@angular/material/form-field';
|
|
22
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
23
|
+
import { isNil } from 'lodash-es';
|
|
24
|
+
import * as i4 from '@angular/material/core';
|
|
25
|
+
|
|
26
|
+
class CmatSelectTreeFlatNode {
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
class CmatSelectTreeComponent {
|
|
30
|
+
constructor(_cd) {
|
|
31
|
+
this._cd = _cd;
|
|
32
|
+
this.showLabel = true;
|
|
33
|
+
this.noEntriesFoundLabel = '无结果';
|
|
34
|
+
this.showNoFoundLabel = true;
|
|
35
|
+
this.placeholder = '部门';
|
|
36
|
+
this.prefixIcon = 'heroicons_solid:building-library';
|
|
37
|
+
this.overallSearchEnabled = true;
|
|
38
|
+
this.canNull = false;
|
|
39
|
+
this.showToggleAllCheckbox = false;
|
|
40
|
+
this.flatNodeMap = new Map();
|
|
41
|
+
this.nestedNodeMap = new Map();
|
|
42
|
+
this.selectedParent = null;
|
|
43
|
+
this.checklistSelection = new SelectionModel(true);
|
|
44
|
+
this.isIndeterminate = false;
|
|
45
|
+
this.isChecked = false;
|
|
46
|
+
this.dataCount = 0;
|
|
47
|
+
this.matSelectData = new ReplaySubject(1);
|
|
48
|
+
this._controlValueAccessorKeys = [
|
|
49
|
+
'formControl',
|
|
50
|
+
'formControlName'
|
|
51
|
+
];
|
|
52
|
+
this._unsubscribeAll = new Subject();
|
|
53
|
+
this.getLevel = (node) => node.level;
|
|
54
|
+
this.isExpandable = (node) => node.expandable;
|
|
55
|
+
this.getChildren = (node) => node.children;
|
|
56
|
+
this.hasChild = (_, _nodeData) => _nodeData.expandable;
|
|
57
|
+
this.hasNoContent = (_, _nodeData) => _nodeData.name === '';
|
|
58
|
+
this.transformer = (node, level) => {
|
|
59
|
+
const existingNode = this.nestedNodeMap.get(node);
|
|
60
|
+
const flatNode = existingNode && existingNode.name === node.name
|
|
61
|
+
? existingNode
|
|
62
|
+
: new CmatSelectTreeFlatNode();
|
|
63
|
+
flatNode.id = node.id;
|
|
64
|
+
flatNode.name = node.name;
|
|
65
|
+
flatNode.level = level;
|
|
66
|
+
flatNode.expandable = !!node.children && node.children.length > 0;
|
|
67
|
+
this.flatNodeMap.set(flatNode, node);
|
|
68
|
+
this.nestedNodeMap.set(node, flatNode);
|
|
69
|
+
return flatNode;
|
|
70
|
+
};
|
|
71
|
+
this.overallFilterControl = new FormControl();
|
|
72
|
+
this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel, this.isExpandable, this.getChildren);
|
|
73
|
+
this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
|
|
74
|
+
this.treeDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
|
|
75
|
+
}
|
|
76
|
+
ngOnInit() {
|
|
77
|
+
this.multiple = this.multiple || false;
|
|
78
|
+
this.required = this.required || false;
|
|
79
|
+
this.treeDataSource.data = this.dataSource;
|
|
80
|
+
this.dataCount = this.treeControl.dataNodes.length;
|
|
81
|
+
this.matSelectData.next(this.treeControl.dataNodes);
|
|
82
|
+
if (this.expandable) {
|
|
83
|
+
this.treeControl.expandAll();
|
|
84
|
+
}
|
|
85
|
+
let panelClass = '';
|
|
86
|
+
if (!this.overallSearchEnabled) {
|
|
87
|
+
panelClass = 'cmat-select-search-panel overflow-auto md:overflow-hidden';
|
|
88
|
+
}
|
|
89
|
+
if (this._matSelect.panelClass) {
|
|
90
|
+
if (Array.isArray(this._matSelect.panelClass)) {
|
|
91
|
+
this._matSelect.panelClass.push(panelClass);
|
|
92
|
+
}
|
|
93
|
+
else if (typeof this._matSelect.panelClass === 'string') {
|
|
94
|
+
this._matSelect.panelClass = [this._matSelect.panelClass, panelClass];
|
|
95
|
+
}
|
|
96
|
+
else if (typeof this._matSelect.panelClass === 'object') {
|
|
97
|
+
this._matSelect.panelClass.entries[panelClass] = true;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this._matSelect.panelClass = panelClass;
|
|
102
|
+
}
|
|
103
|
+
this._matSelect.openedChange
|
|
104
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
105
|
+
.subscribe((opened) => {
|
|
106
|
+
if (opened && this.multiple) {
|
|
107
|
+
this.checklistSelection.selected.forEach((node) => {
|
|
108
|
+
if (node.expandable) {
|
|
109
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
110
|
+
this.checklistSelection.select(...descendants);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
if (!opened) {
|
|
115
|
+
if (this.overallSearchEnabled) {
|
|
116
|
+
this._resetFilters();
|
|
117
|
+
}
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
if (!isNil(this.checklistSelection.selected)) {
|
|
120
|
+
if (this.multiple) {
|
|
121
|
+
const findOutNode = [];
|
|
122
|
+
this.checklistSelection.selected.forEach((node) => {
|
|
123
|
+
const parentNode = this.getParentNode(node);
|
|
124
|
+
if (parentNode && this.checklistSelection.isSelected(parentNode)) {
|
|
125
|
+
findOutNode.push(node);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
findOutNode.forEach((node) => {
|
|
129
|
+
this.checklistSelection.deselect(node);
|
|
130
|
+
});
|
|
131
|
+
this._matSelect.writeValue(this.checklistSelection.selected);
|
|
132
|
+
if (this._matSelect.value !== this.checklistSelection.selected) {
|
|
133
|
+
this._matSelect.value = this.checklistSelection.selected;
|
|
134
|
+
}
|
|
135
|
+
this._matSelect._onChange(this.checklistSelection.selected);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
if (this.checklistSelection.selected && this.checklistSelection.selected.length > 0) {
|
|
139
|
+
this._matSelect.writeValue(this.checklistSelection.selected[0]);
|
|
140
|
+
if (this._matSelect.value !== this.checklistSelection.selected[0]) {
|
|
141
|
+
this._matSelect.value = this.checklistSelection.selected[0];
|
|
142
|
+
}
|
|
143
|
+
this._matSelect._onChange(this.checklistSelection.selected[0]);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}, 200);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
ngAfterViewInit() {
|
|
152
|
+
merge(this.overallFilterControl.valueChanges)
|
|
153
|
+
.pipe(takeUntil(this._unsubscribeAll), debounceTime(200))
|
|
154
|
+
.subscribe(() => {
|
|
155
|
+
const dataClone = JSON.parse(JSON.stringify([...this.dataSource]));
|
|
156
|
+
const arr = [];
|
|
157
|
+
for (let i = dataClone.length - 1; i >= 0; i--) {
|
|
158
|
+
if (!this._applyColumnLevelFilters(dataClone[i], this.overallFilterControl.value.toLowerCase())) {
|
|
159
|
+
arr.push(i);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
arr.forEach((v) => { dataClone.splice(v, 1); });
|
|
163
|
+
this.treeDataSource.data = dataClone;
|
|
164
|
+
this.matSelectData.next(this.treeControl.dataNodes);
|
|
165
|
+
if (this.expandable) {
|
|
166
|
+
this.treeControl.expandAll();
|
|
167
|
+
}
|
|
168
|
+
this._updateSelect(this.checklistSelection.selected);
|
|
169
|
+
this._cd.detectChanges();
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
ngOnDestroy() {
|
|
173
|
+
this._unsubscribeAll.next(void 0);
|
|
174
|
+
this._unsubscribeAll.complete();
|
|
175
|
+
}
|
|
176
|
+
registerOnChange(fn) {
|
|
177
|
+
const proxyFn = (value) => {
|
|
178
|
+
fn(value);
|
|
179
|
+
};
|
|
180
|
+
this._matSelect.registerOnChange(proxyFn);
|
|
181
|
+
}
|
|
182
|
+
registerOnTouched(fn) {
|
|
183
|
+
this._matSelect.registerOnTouched(fn);
|
|
184
|
+
}
|
|
185
|
+
setDisabledState(isDisabled) {
|
|
186
|
+
this._matSelect.setDisabledState(isDisabled);
|
|
187
|
+
}
|
|
188
|
+
writeValue(value) {
|
|
189
|
+
if (!isNil(value)) {
|
|
190
|
+
this._updateChecklistSelection(value);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
this.checklistSelection.clear();
|
|
194
|
+
}
|
|
195
|
+
if (this.multiple) {
|
|
196
|
+
this._matSelect.writeValue(this.checklistSelection.selected);
|
|
197
|
+
if (this._matSelect.value !== this.checklistSelection.selected) {
|
|
198
|
+
this._matSelect.value = this.checklistSelection.selected;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
this._matSelect.writeValue(this.checklistSelection.selected[0]);
|
|
203
|
+
if (this._matSelect.value !== this.checklistSelection.selected[0]) {
|
|
204
|
+
this._matSelect.value = this.checklistSelection.selected[0];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
ngOnChanges(changes) {
|
|
209
|
+
if (!isNil(changes['matSelectConfigurator'])) {
|
|
210
|
+
const configuration = changes['matSelectConfigurator'].currentValue;
|
|
211
|
+
Object.keys(configuration)
|
|
212
|
+
.filter(key => !['multiple', 'panelClass'].includes(key) && !this._controlValueAccessorKeys.includes(key))
|
|
213
|
+
.forEach(key => this._matSelect[key] = configuration[key]);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
simpleTriggerLabelFn(value) {
|
|
217
|
+
return value.map((node) => {
|
|
218
|
+
if (isNil(node)) {
|
|
219
|
+
return '';
|
|
220
|
+
}
|
|
221
|
+
if (isNil(this.customTriggerLabelTemplate)
|
|
222
|
+
|| typeof this.customTriggerLabelTemplate !== 'string'
|
|
223
|
+
|| this.customTriggerLabelTemplate.trim().length === 0) {
|
|
224
|
+
return `${node.id}`;
|
|
225
|
+
}
|
|
226
|
+
let atLeastPartialSubstitution = false;
|
|
227
|
+
const substitution = this.customTriggerLabelTemplate.replace(/[$][{]([^}]+)[}]/g, (_, key) => !isNil(node[key]) && (atLeastPartialSubstitution = true) ? node[key] : '');
|
|
228
|
+
if (atLeastPartialSubstitution === false) {
|
|
229
|
+
return `${node.id}`;
|
|
230
|
+
}
|
|
231
|
+
return substitution.trim();
|
|
232
|
+
}).join(', ');
|
|
233
|
+
}
|
|
234
|
+
/** Whether all the descendants of the node are selected. */
|
|
235
|
+
descendantsAllSelected(node) {
|
|
236
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
237
|
+
return descendants.every(child => this.checklistSelection.isSelected(child));
|
|
238
|
+
}
|
|
239
|
+
/** Whether part of the descendants are selected */
|
|
240
|
+
descendantsPartiallySelected(node) {
|
|
241
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
242
|
+
const result = descendants.some(child => this.checklistSelection.isSelected(child));
|
|
243
|
+
return result && !this.descendantsAllSelected(node);
|
|
244
|
+
}
|
|
245
|
+
/** Toggle the to-do item selection. Select/deselect all the descendants node */
|
|
246
|
+
todoItemSelectionToggle(event, node) {
|
|
247
|
+
event.stopPropagation();
|
|
248
|
+
if (this.multiple) {
|
|
249
|
+
this.checklistSelection.toggle(node);
|
|
250
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
251
|
+
this.checklistSelection.isSelected(node) ? this.checklistSelection.select(...descendants) : this.checklistSelection.deselect(...descendants);
|
|
252
|
+
this.checkAllParentsSelection(node);
|
|
253
|
+
if (this.showToggleAllCheckbox) {
|
|
254
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
255
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
this.checklistSelection.clear();
|
|
260
|
+
this.checklistSelection.select(node);
|
|
261
|
+
this._matSelect.close();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/** Toggle a leaf to-do item selection. Check all the parents to see if they changed */
|
|
265
|
+
todoLeafItemSelectionToggle(event, node) {
|
|
266
|
+
event.stopPropagation();
|
|
267
|
+
if (this.multiple) {
|
|
268
|
+
this.checklistSelection.toggle(node);
|
|
269
|
+
this.checkAllParentsSelection(node);
|
|
270
|
+
if (this.showToggleAllCheckbox) {
|
|
271
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
272
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
this.checklistSelection.clear();
|
|
277
|
+
this.checklistSelection.select(node);
|
|
278
|
+
this._matSelect.close();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
noClick() {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
/* Checks all the parents when a leaf node is selected/unselected */
|
|
285
|
+
checkAllParentsSelection(node) {
|
|
286
|
+
let parent = this.getParentNode(node);
|
|
287
|
+
while (parent) {
|
|
288
|
+
parent.expandable = true;
|
|
289
|
+
this.treeControl.expand(parent);
|
|
290
|
+
this.checkRootNodeSelection(parent);
|
|
291
|
+
parent = this.getParentNode(parent);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/** Check root node checked state and change it accordingly */
|
|
295
|
+
checkRootNodeSelection(node) {
|
|
296
|
+
const nodeSelected = this.checklistSelection.isSelected(node);
|
|
297
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
298
|
+
const descAllSelected = descendants.every(child => this.checklistSelection.isSelected(child));
|
|
299
|
+
if (nodeSelected && !descAllSelected) {
|
|
300
|
+
this.checklistSelection.deselect(node);
|
|
301
|
+
}
|
|
302
|
+
else if (!nodeSelected && (descAllSelected || descendants.length === 0)) {
|
|
303
|
+
this.checklistSelection.select(node);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/* Get the parent node of a node */
|
|
307
|
+
getParentNode(node) {
|
|
308
|
+
const currentLevel = this.getLevel(node);
|
|
309
|
+
if (currentLevel < 1) {
|
|
310
|
+
return null;
|
|
311
|
+
}
|
|
312
|
+
const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;
|
|
313
|
+
for (let i = startIndex; i >= 0; i--) {
|
|
314
|
+
const currentNode = this.treeControl.dataNodes[i];
|
|
315
|
+
if (this.getLevel(currentNode) < currentLevel) {
|
|
316
|
+
return currentNode;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
toggleSelectAll(selectAllValue) {
|
|
322
|
+
if (selectAllValue) {
|
|
323
|
+
this.treeControl.dataNodes.forEach((node) => {
|
|
324
|
+
this.checklistSelection.select(node);
|
|
325
|
+
this.checkAllParentsSelection(node);
|
|
326
|
+
});
|
|
327
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
328
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
this.checklistSelection.clear();
|
|
332
|
+
this.isChecked = false;
|
|
333
|
+
this.isIndeterminate = false;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
compareObjects(o1, o2) {
|
|
337
|
+
return o1 && o2 ? o1?.name === o2?.name && o1?.id === o2?.id : o1 === o2;
|
|
338
|
+
}
|
|
339
|
+
trackByFn(index, item) {
|
|
340
|
+
return index || item;
|
|
341
|
+
}
|
|
342
|
+
_updateChecklistSelection(value) {
|
|
343
|
+
this.checklistSelection.clear();
|
|
344
|
+
if (!isNil(value)) {
|
|
345
|
+
const valueArray = !Array.isArray(value) ? [value] : value;
|
|
346
|
+
valueArray.forEach((item) => {
|
|
347
|
+
const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);
|
|
348
|
+
if (isNil(nodeFound)) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
this.checklistSelection.select(nodeFound);
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
_updateSelect(value) {
|
|
356
|
+
if (!isNil(value)) {
|
|
357
|
+
const valueArray = !Array.isArray(value) ? [value] : value;
|
|
358
|
+
if (this.overallSearchEnabled) //有搜索功能,转化选中节点为当前数据源节点
|
|
359
|
+
{
|
|
360
|
+
valueArray.forEach((item) => {
|
|
361
|
+
const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);
|
|
362
|
+
if (isNil(nodeFound)) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
this.checklistSelection.deselect(item);
|
|
366
|
+
this.checklistSelection.select(nodeFound);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
if (this.multiple) {
|
|
370
|
+
this.checklistSelection.selected.forEach((item) => {
|
|
371
|
+
this.checkAllParentsSelection(item);
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
if (this.showToggleAllCheckbox) {
|
|
375
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
376
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
_applyColumnLevelFilters(node, filter) {
|
|
381
|
+
let result = false;
|
|
382
|
+
if (node && node.children && node.children.length > 0) {
|
|
383
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
384
|
+
const resultTemp = this._applyColumnLevelFilters(node.children[i], filter);
|
|
385
|
+
if (!resultTemp) {
|
|
386
|
+
node.children.splice(i, 1);
|
|
387
|
+
}
|
|
388
|
+
result = resultTemp || result;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
if (node && node.children && node.children.length === 0) {
|
|
392
|
+
node.children = null;
|
|
393
|
+
}
|
|
394
|
+
const cellValue = node['name'].toLowerCase();
|
|
395
|
+
if (cellValue.indexOf(filter) > -1) {
|
|
396
|
+
result = true;
|
|
397
|
+
}
|
|
398
|
+
return result;
|
|
399
|
+
}
|
|
400
|
+
_resetFilters() {
|
|
401
|
+
if (this.overallSearchEnabled) {
|
|
402
|
+
this.overallFilterControl.setValue('');
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatSelectTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatSelectTreeComponent, isStandalone: true, selector: "cmat-select-tree", inputs: { dataSource: "dataSource", showLabel: "showLabel", noEntriesFoundLabel: "noEntriesFoundLabel", showNoFoundLabel: "showNoFoundLabel", placeholder: "placeholder", prefixIcon: "prefixIcon", multiple: "multiple", required: "required", overallSearchEnabled: "overallSearchEnabled", canNull: "canNull", customTriggerLabelFn: "customTriggerLabelFn", customTriggerLabelTemplate: "customTriggerLabelTemplate", matSelectConfigurator: "matSelectConfigurator", matSelectSearchConfigurator: "matSelectSearchConfigurator", expandable: "expandable", showToggleAllCheckbox: "showToggleAllCheckbox" }, providers: [
|
|
407
|
+
{
|
|
408
|
+
provide: NG_VALUE_ACCESSOR,
|
|
409
|
+
useExisting: forwardRef(() => CmatSelectTreeComponent),
|
|
410
|
+
multi: true
|
|
411
|
+
}
|
|
412
|
+
], viewQueries: [{ propertyName: "_matSelect", first: true, predicate: ["componentSelect"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"w-full\">\r\n <mat-label *ngIf=\"showLabel\">{{placeholder}}</mat-label>\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"prefixIcon\" matPrefix></mat-icon>\r\n <mat-select #componentSelect [placeholder]=\"placeholder\" [multiple]=\"multiple\" [required]=\"required\"\r\n [compareWith]=\"compareObjects\">\r\n <mat-select-trigger>\r\n <ng-container *ngIf=\"!customTriggerLabelFn\">{{simpleTriggerLabelFn(checklistSelection.selected)}}\r\n </ng-container>\r\n <ng-container *ngIf=\"customTriggerLabelFn\">{{customTriggerLabelFn}}\r\n </ng-container>\r\n </mat-select-trigger>\r\n\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-option *ngIf=\"overallSearchEnabled\">\r\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox\">\r\n </cmat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"canNull\">\u7A7A</mat-option>\r\n <mat-option *ngFor=\"let selectData of matSelectData | async ;trackBy: trackByFn\" class=\"hidden\"\r\n [value]=\"selectData\">{{selectData.name}}</mat-option>\r\n\r\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button disabled>\r\n\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" class=\"checklist-leaf-node\" (click)=\"noClick()\"\r\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.filename\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" [checked]=\"descendantsAllSelected(node)\" (click)=\"noClick()\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </mat-select>\r\n</mat-form-field>", styles: ["cmat-select-tree{display:block;z-index:101}cmat-select-tree.hidden{display:none}cmat-select-tree .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;@apply flex flex-row;}cmat-select-tree .cmat-select-search-inner span{@apply flex place-items-center;}cmat-select-tree .cmat-select-search-no-entries-found{@apply w-full text-center bg-card rounded;box-shadow:0 2px 8px #00000059}cmat-select-tree .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree .mat-mdc-option-pseudo-checkbox{display:none}.mat-tree-node{@apply hover:bg-hover cursor-pointer;}.selected{@apply text-primary bg-hover !important;}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i3.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: CmatSelectSearchComponent, selector: "cmat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "showNoFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"], exportAs: ["cmatSelectSearch"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i6.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i6.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i6.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i6.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i6.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
413
|
+
}
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatSelectTreeComponent, decorators: [{
|
|
415
|
+
type: Component,
|
|
416
|
+
args: [{ selector: 'cmat-select-tree', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
417
|
+
{
|
|
418
|
+
provide: NG_VALUE_ACCESSOR,
|
|
419
|
+
useExisting: forwardRef(() => CmatSelectTreeComponent),
|
|
420
|
+
multi: true
|
|
421
|
+
}
|
|
422
|
+
], standalone: true, imports: [MatFormFieldModule, NgIf, MatIconModule, MatSelectModule,
|
|
423
|
+
CmatSelectSearchComponent, FormsModule, ReactiveFormsModule, NgFor, MatTreeModule, NgClass,
|
|
424
|
+
MatButtonModule, MatCheckboxModule, AsyncPipe, NgStyle], template: "<mat-form-field class=\"w-full\">\r\n <mat-label *ngIf=\"showLabel\">{{placeholder}}</mat-label>\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"prefixIcon\" matPrefix></mat-icon>\r\n <mat-select #componentSelect [placeholder]=\"placeholder\" [multiple]=\"multiple\" [required]=\"required\"\r\n [compareWith]=\"compareObjects\">\r\n <mat-select-trigger>\r\n <ng-container *ngIf=\"!customTriggerLabelFn\">{{simpleTriggerLabelFn(checklistSelection.selected)}}\r\n </ng-container>\r\n <ng-container *ngIf=\"customTriggerLabelFn\">{{customTriggerLabelFn}}\r\n </ng-container>\r\n </mat-select-trigger>\r\n\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-option *ngIf=\"overallSearchEnabled\">\r\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox\">\r\n </cmat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"canNull\">\u7A7A</mat-option>\r\n <mat-option *ngFor=\"let selectData of matSelectData | async ;trackBy: trackByFn\" class=\"hidden\"\r\n [value]=\"selectData\">{{selectData.name}}</mat-option>\r\n\r\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button disabled>\r\n\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" class=\"checklist-leaf-node\" (click)=\"noClick()\"\r\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.filename\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" [checked]=\"descendantsAllSelected(node)\" (click)=\"noClick()\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </mat-select>\r\n</mat-form-field>", styles: ["cmat-select-tree{display:block;z-index:101}cmat-select-tree.hidden{display:none}cmat-select-tree .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;@apply flex flex-row;}cmat-select-tree .cmat-select-search-inner span{@apply flex place-items-center;}cmat-select-tree .cmat-select-search-no-entries-found{@apply w-full text-center bg-card rounded;box-shadow:0 2px 8px #00000059}cmat-select-tree .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree .mat-mdc-option-pseudo-checkbox{display:none}.mat-tree-node{@apply hover:bg-hover cursor-pointer;}.selected{@apply text-primary bg-hover !important;}\n"] }]
|
|
425
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dataSource: [{
|
|
426
|
+
type: Input
|
|
427
|
+
}], showLabel: [{
|
|
428
|
+
type: Input
|
|
429
|
+
}], noEntriesFoundLabel: [{
|
|
430
|
+
type: Input
|
|
431
|
+
}], showNoFoundLabel: [{
|
|
432
|
+
type: Input
|
|
433
|
+
}], placeholder: [{
|
|
434
|
+
type: Input
|
|
435
|
+
}], prefixIcon: [{
|
|
436
|
+
type: Input
|
|
437
|
+
}], multiple: [{
|
|
438
|
+
type: Input
|
|
439
|
+
}], required: [{
|
|
440
|
+
type: Input
|
|
441
|
+
}], overallSearchEnabled: [{
|
|
442
|
+
type: Input
|
|
443
|
+
}], canNull: [{
|
|
444
|
+
type: Input
|
|
445
|
+
}], customTriggerLabelFn: [{
|
|
446
|
+
type: Input
|
|
447
|
+
}], customTriggerLabelTemplate: [{
|
|
448
|
+
type: Input
|
|
449
|
+
}], matSelectConfigurator: [{
|
|
450
|
+
type: Input
|
|
451
|
+
}], matSelectSearchConfigurator: [{
|
|
452
|
+
type: Input
|
|
453
|
+
}], expandable: [{
|
|
454
|
+
type: Input
|
|
455
|
+
}], showToggleAllCheckbox: [{
|
|
456
|
+
type: Input
|
|
457
|
+
}], _matSelect: [{
|
|
458
|
+
type: ViewChild,
|
|
459
|
+
args: ['componentSelect', { static: true }]
|
|
460
|
+
}] } });
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* Generated bundle index. Do not edit.
|
|
464
|
+
*/
|
|
465
|
+
|
|
466
|
+
export { CmatSelectTreeComponent };
|
|
467
|
+
//# sourceMappingURL=cmat-components-select-tree.mjs.map
|