cmat 0.0.13 → 0.0.15
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/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -1
- package/components/cascade/cascade-list/cascade-list.component.d.ts +3 -3
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
- package/components/cascade/options.interface.d.ts +1 -1
- package/components/chip-input/chip-input.component.d.ts +0 -1
- package/components/custom-formly/public-api.d.ts +1 -0
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +0 -1
- package/components/custom-formly/types/quill/quill.component.d.ts +42 -0
- package/components/custom-formly/types/radio/radio.component.d.ts +0 -1
- package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -1
- package/components/custom-formly/types/select/select.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/table/table.component.d.ts +2 -3
- package/components/custom-formly/types/tabs/tab.component.d.ts +0 -1
- package/components/custom-formly/types/tags/tags.component.d.ts +0 -1
- package/components/material-color-picker/material-color-picker.component.d.ts +0 -1
- package/components/material-datetimepicker/calendar-body.d.ts +0 -1
- package/components/material-datetimepicker/calendar.d.ts +3 -4
- package/components/material-datetimepicker/clock.d.ts +2 -3
- package/components/material-datetimepicker/datetimepicker.d.ts +3 -4
- package/components/material-datetimepicker/month-view.d.ts +0 -1
- package/components/navigation/navigation.types.d.ts +1 -1
- package/components/pagination/pagination.component.d.ts +0 -1
- package/components/password-strength/mat-password-strength-validator.d.ts +1 -1
- package/components/popover/popover.component.d.ts +4 -7
- package/components/popover/popover.interfaces.d.ts +1 -2
- package/components/select-tree/select-tree.component.d.ts +0 -1
- package/components/timeline/timeline.component.d.ts +4 -6
- package/components/transfer-picker/filter/filter.component.d.ts +1 -2
- package/components/transfer-picker/interface.d.ts +4 -4
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +1 -2
- package/components/transfer-picker/transfer-picker.component.d.ts +5 -5
- package/components/transfer-picker/transfer-picker.service.d.ts +6 -6
- package/components/upload/upload-queue/upload-queue.component.d.ts +1 -1
- package/directives/digit-only/mask.directive.d.ts +2 -0
- package/directives/equal-validator/equal-validator.directive.d.ts +1 -3
- package/esm2022/components/adapter/datetime-adapter.mjs +1 -1
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +5 -5
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
- package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +9 -12
- package/esm2022/components/card/card.component.mjs +4 -4
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -8
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +12 -10
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -8
- package/esm2022/components/cascade/options.interface.mjs +1 -1
- package/esm2022/components/chip-input/chip-input.component.mjs +10 -11
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +2 -2
- package/esm2022/components/custom-formly/public-api.mjs +2 -1
- package/esm2022/components/custom-formly/types/button/button.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/chips/chips.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -5
- package/esm2022/components/custom-formly/types/number/number.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/quill/quill.component.mjs +171 -0
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +5 -6
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/select/select.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/table/table.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +7 -10
- package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
- package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
- package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +5 -5
- package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
- package/esm2022/components/date-range/date-range.component.mjs +20 -15
- package/esm2022/components/drawer/drawer.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +5 -5
- package/esm2022/components/highlight/highlight.component.mjs +4 -4
- package/esm2022/components/highlight/highlight.service.mjs +4 -4
- package/esm2022/components/json-editor/json-editor.component.mjs +10 -10
- package/esm2022/components/masonry/masonry.component.mjs +4 -4
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +7 -8
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +6 -9
- package/esm2022/components/material-datetimepicker/calendar.mjs +9 -15
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -8
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +7 -5
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +14 -15
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -8
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +5 -5
- package/esm2022/components/material-datetimepicker/time.mjs +10 -10
- package/esm2022/components/material-datetimepicker/year-view.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -5
- package/esm2022/components/navigation/navigation.service.mjs +4 -4
- package/esm2022/components/navigation/navigation.types.mjs +1 -1
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
- package/esm2022/components/pagination/pagination.component.mjs +5 -8
- package/esm2022/components/pagination/pagination.directive.mjs +4 -4
- package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
- package/esm2022/components/pagination/pagination.service.mjs +4 -4
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
- package/esm2022/components/password-strength/mat-password-strength-validator.mjs +2 -2
- package/esm2022/components/popover/popover-trigger.mjs +6 -8
- package/esm2022/components/popover/popover.component.mjs +8 -9
- package/esm2022/components/popover/popover.interfaces.mjs +1 -1
- package/esm2022/components/popover/popover.target.mjs +3 -3
- package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/components/rating/rating.component.mjs +11 -7
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search.component.mjs +9 -9
- package/esm2022/components/select-tree/select-tree.component.mjs +10 -11
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
- package/esm2022/components/timeline/timeline.component.mjs +8 -15
- package/esm2022/components/toast/toast-modal.component.mjs +5 -5
- package/esm2022/components/toast/toast.component.mjs +6 -6
- package/esm2022/components/toast/toast.service.mjs +10 -10
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +6 -9
- package/esm2022/components/transfer-picker/interface.mjs +1 -1
- package/esm2022/components/transfer-picker/search/search.component.mjs +3 -3
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -8
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +8 -8
- package/esm2022/components/upload/files.util.service.mjs +4 -4
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +8 -8
- package/esm2022/components/upload/upload.component.mjs +5 -5
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
- package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
- package/esm2022/directives/digit-only/digit-only.directive.mjs +6 -6
- package/esm2022/directives/digit-only/mask.directive.mjs +20 -5
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
- package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.types.mjs +1 -1
- package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -2
- package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
- package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
- package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
- package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/services/alert/alert.service.mjs +11 -10
- package/esm2022/services/config/config.service.mjs +3 -3
- package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
- package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +3 -3
- package/esm2022/services/data/data.service.mjs +4 -4
- package/esm2022/services/loading/loading.interceptor.mjs +4 -4
- package/esm2022/services/loading/loading.service.mjs +4 -4
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
- package/esm2022/services/platform/platform.service.mjs +4 -4
- package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
- package/esm2022/services/title/title.service.mjs +4 -4
- package/esm2022/services/translation/translation.service.mjs +4 -4
- package/esm2022/services/utils/utils.service.mjs +9 -11
- package/esm2022/validators/validators.mjs +1 -1
- package/fesm2022/cmat-animations.mjs +1 -1
- package/fesm2022/cmat-components-adapter.mjs +10 -10
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +16 -19
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +19 -23
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +9 -10
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +257 -115
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +20 -15
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +7 -7
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +4 -4
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +9 -9
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +6 -7
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +70 -83
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +48 -48
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +14 -17
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +15 -15
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +15 -18
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +9 -5
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +15 -15
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +9 -10
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +17 -24
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +18 -18
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +25 -31
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +14 -14
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +24 -9
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +7 -8
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +10 -9
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +7 -7
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +8 -10
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/fesm2022/cmat-validators.mjs.map +1 -1
- package/lib/mock-api/mock-api.request-handler.d.ts +1 -3
- package/lib/mock-api/mock-api.service.d.ts +1 -3
- package/lib/mock-api/mock-api.types.d.ts +2 -4
- package/package.json +76 -67
- package/pipes/group-by/group-by.pipe.d.ts +1 -1
- package/services/config/urlStateConfig.service.d.ts +0 -1
- package/services/translation/translation.service.d.ts +2 -2
- package/services/utils/utils.service.d.ts +5 -7
- package/styles/overrides/angular-material.scss +0 -1
- package/styles/overrides/quill.scss +102 -0
- package/styles/themes.scss +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-select-tree.mjs","sources":["../../../projects/cmat/components/select-tree/select-tree.flatnode.ts","../../../projects/cmat/components/select-tree/select-tree.component.ts","../../../projects/cmat/components/select-tree/select-tree.component.html","../../../projects/cmat/components/select-tree/select-tree.node.ts","../../../projects/cmat/components/select-tree/cmat-components-select-tree.ts"],"sourcesContent":["export class CmatSelectTreeFlatNode {\r\n id: string | number;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { NgClass, AsyncPipe, NgStyle } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, ReactiveFormsModule, NgControl } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSelect, MatSelectModule } from '@angular/material/select';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\r\nimport { isNil, isUndefined } from 'lodash-es';\r\nimport { merge, ReplaySubject, Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\nimport { CmatSelectTreeFlatNode } from './select-tree.flatnode';\r\nimport { CmatSelectTreeNode } from './select-tree.node';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-select-tree',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatSelectTreeComponent }],\r\n exportAs: 'cmatSelectTree',\r\n standalone: true,\r\n imports: [MatIconModule, MatSelectModule, CmatSelectSearchComponent,\r\n ReactiveFormsModule, MatTreeModule, NgClass, MatButtonModule, MatCheckboxModule, AsyncPipe, NgStyle]\r\n})\r\nexport class CmatSelectTreeComponent implements MatFormFieldControl<any>, ControlValueAccessor, OnChanges, AfterViewInit, OnDestroy {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-select-tree-${NEXT_ID++}`;\r\n\r\n @Input() dataSource: CmatSelectTreeNode[];\r\n\r\n @Input() noEntriesFoundLabel = '无结果';\r\n\r\n @Input() showNoFoundLabel = true;\r\n\r\n @Input() multiple: boolean = false;\r\n\r\n @Input() overallSearchEnabled: boolean = true;\r\n\r\n @Input() canNull: boolean = false;\r\n\r\n @Input() customTriggerLabelFn: (value: CmatSelectTreeNode[]) => string;\r\n\r\n @Input() customTriggerLabelTemplate: string;\r\n\r\n @Input() expandable: boolean;\r\n\r\n @Input() showToggleAllCheckbox: boolean = false;\r\n\r\n flatNodeMap = new Map<CmatSelectTreeFlatNode, CmatSelectTreeNode>();\r\n\r\n nestedNodeMap = new Map<CmatSelectTreeNode, CmatSelectTreeFlatNode>();\r\n\r\n selectedParent: CmatSelectTreeFlatNode | null = null;\r\n\r\n treeControl: FlatTreeControl<CmatSelectTreeFlatNode>;\r\n\r\n treeFlattener: MatTreeFlattener<CmatSelectTreeNode, CmatSelectTreeFlatNode>;\r\n\r\n checklistSelection = new SelectionModel<CmatSelectTreeFlatNode>(true);\r\n\r\n treeDataSource: MatTreeFlatDataSource<CmatSelectTreeNode, CmatSelectTreeFlatNode>;\r\n\r\n overallFilterControl: FormControl = new FormControl();\r\n\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n checkCount: number = 0;\r\n\r\n selectControl: FormControl = new FormControl();\r\n matSelectData: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n touched: boolean = false;\r\n controlType: string = 'cmat-select-tree';\r\n\r\n private _matSelect: MatSelect;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _changeDetectorRef: ChangeDetectorRef) {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel,\r\n this.isExpandable, this.getChildren);\r\n this.treeControl = new FlatTreeControl<CmatSelectTreeFlatNode>(this.getLevel, this.isExpandable);\r\n this.treeDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n }\r\n\r\n @ViewChild('componentSelect', { static: false }) set matSelect(m: MatSelect) {\r\n const existsSelect = !isUndefined(this._matSelect);\r\n this._matSelect = m;\r\n\r\n if (!existsSelect) {\r\n this._init(this.value);\r\n }\r\n }\r\n\r\n @HostListener('document:click')\r\n clickedOut():void {\r\n if (!this._matSelect?.panelOpen) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n getLevel = (node: CmatSelectTreeFlatNode): number => node.level;\r\n\r\n isExpandable = (node: CmatSelectTreeFlatNode): boolean => node.expandable;\r\n\r\n getChildren = (node: CmatSelectTreeNode): CmatSelectTreeNode[] | null => node.children;\r\n\r\n hasChild = (_: number, _nodeData: CmatSelectTreeFlatNode): boolean => _nodeData.expandable;\r\n\r\n hasNoContent = (_: number, _nodeData: CmatSelectTreeFlatNode): boolean => _nodeData.name === '';\r\n\r\n transformer = (node: CmatSelectTreeNode, level: number): CmatSelectTreeFlatNode => {\r\n const existingNode = this.nestedNodeMap.get(node);\r\n const flatNode = existingNode && existingNode.name === node.name\r\n ? existingNode\r\n : new CmatSelectTreeFlatNode();\r\n flatNode.id = node.id;\r\n flatNode.name = node.name;\r\n flatNode.level = level;\r\n flatNode.expandable = !!node.children && node.children.length > 0;\r\n this.flatNodeMap.set(flatNode, node);\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['dataSource']) {\r\n this.treeDataSource.data = this.dataSource;\r\n this.matSelectData.next(this.treeControl.dataNodes);\r\n\r\n if (this.dataSource.length > 0) {\r\n this._init(this.value);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let panelClass: string = '';\r\n if (!this.overallSearchEnabled) {\r\n panelClass = 'cmat-select-search-panel overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom';\r\n }\r\n\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\r\n this._matSelect.openedChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((opened) => {\r\n if (opened && this.multiple) {\r\n this.checklistSelection.selected.forEach((node) => {\r\n if (node.expandable) {\r\n const descendants = this.treeControl.getDescendants(node);\r\n this.checklistSelection.select(...descendants);\r\n }\r\n });\r\n }\r\n\r\n if (!opened) {\r\n setTimeout(() => {\r\n if (!isNil(this.checklistSelection.selected)) {\r\n\r\n if (this.multiple) {\r\n const findOutNode: CmatSelectTreeFlatNode[] = [];\r\n this.checklistSelection.selected.forEach((node) => {\r\n const parentNode = this._getParentNode(node);\r\n if (parentNode && this.checklistSelection.isSelected(parentNode)) {\r\n findOutNode.push(node);\r\n }\r\n });\r\n\r\n findOutNode.forEach((node) => {\r\n this.checklistSelection.deselect(node);\r\n });\r\n\r\n this.value = this.checklistSelection.selected;\r\n } else {\r\n if (this.checklistSelection.selected && this.checklistSelection.selected.length > 0) {\r\n this.value = this.checklistSelection.selected[0];\r\n }\r\n }\r\n\r\n this._matSelect.writeValue(this.value);\r\n this._matSelect._onChange(this.value);\r\n }\r\n }, 200);\r\n }\r\n });\r\n\r\n merge(this.overallFilterControl.valueChanges)\r\n .pipe(takeUntil(this._unsubscribeAll), debounceTime(200))\r\n .subscribe(() => {\r\n if (this._matSelect.panelOpen) {\r\n const dataClone: CmatSelectTreeNode[] = JSON.parse(JSON.stringify([...this.dataSource]));\r\n\r\n const arr: number[] = [];\r\n\r\n for (let i = dataClone.length - 1; i >= 0; i--) {\r\n if (!this._applyColumnLevelFilters(dataClone[i], this.overallFilterControl.value.toLowerCase())) {\r\n arr.push(i);\r\n }\r\n }\r\n arr.forEach((v) => { dataClone.splice(v, 1); });\r\n\r\n this.treeDataSource.data = dataClone;\r\n this.matSelectData.next(this.treeControl.dataNodes);\r\n if (this.expandable) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n this._updateSelect(this.checklistSelection.selected);\r\n\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.touched && this.ngControl?.invalid) ?? false;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl && this.ngControl.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._matSelect?.setDisabledState(isDisabled);\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n this._matSelect?.setDescribedByIds(ids);\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._matSelect?.focus();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n if (!this._matSelect.panel.nativeElement.contains(event.relatedTarget as Element)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._init(value);\r\n }\r\n\r\n simpleTriggerLabelFn(value: CmatSelectTreeFlatNode[]): string {\r\n return value.map((node) => {\r\n\r\n if (isNil(node)) {\r\n return '';\r\n }\r\n if (isNil(this.customTriggerLabelTemplate)\r\n || typeof this.customTriggerLabelTemplate !== 'string'\r\n || this.customTriggerLabelTemplate.trim().length === 0) {\r\n return `${node.id}`;\r\n }\r\n let atLeastPartialSubstitution = false;\r\n const substitution: string = this.customTriggerLabelTemplate.replace(/[$][{]([^}]+)[}]/g, (_, key) =>\r\n !isNil((node as any)[key]) && (atLeastPartialSubstitution = true) ? (node as any)[key] : '');\r\n if (atLeastPartialSubstitution === false) {\r\n return `${node.id}`;\r\n }\r\n return substitution.trim();\r\n }).join(', ');\r\n }\r\n\r\n /** Whether all the descendants of the node are selected. */\r\n descendantsAllSelected(node: CmatSelectTreeFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n return descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: CmatSelectTreeFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !descendants.every(child => this.checklistSelection.isSelected(child));\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(event: any, node: CmatSelectTreeFlatNode): void {\r\n event.stopPropagation();\r\n if (this.multiple) {\r\n this.checklistSelection.toggle(node);\r\n\r\n const descendants = this.treeControl.getDescendants(node);\r\n const diffCount = descendants.filter(child =>\r\n this.checklistSelection.isSelected(child)\r\n ).length;\r\n\r\n if (this.checklistSelection.isSelected(node)) {\r\n this.checklistSelection.select(...descendants);\r\n\r\n this.checkCount = this.checkCount + 1 + descendants.length - diffCount;\r\n } else {\r\n this.checklistSelection.deselect(...descendants);\r\n\r\n this.checkCount = this.checkCount - 1 - descendants.length;\r\n }\r\n\r\n this._checkAllParentsSelection(node);\r\n\r\n this._updateCheckState();\r\n } else {\r\n this.checklistSelection.clear();\r\n this.checklistSelection.select(node);\r\n\r\n this._matSelect.close();\r\n }\r\n }\r\n\r\n /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */\r\n todoLeafItemSelectionToggle(event: any, node: CmatSelectTreeFlatNode): void {\r\n event.stopPropagation();\r\n if (this.multiple) {\r\n this.checklistSelection.toggle(node);\r\n\r\n this.checklistSelection.isSelected(node) ? this.checkCount += 1 : this.checkCount -= 1;\r\n\r\n this._checkAllParentsSelection(node);\r\n\r\n this._updateCheckState();\r\n } else {\r\n this.checklistSelection.clear();\r\n this.checklistSelection.select(node);\r\n\r\n this._matSelect.close();\r\n }\r\n }\r\n\r\n clearSelection(): void {\r\n this.checklistSelection.clear();\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n\r\n this.checkCount = 0;\r\n\r\n this.value = null;\r\n this._matSelect.writeValue(null);\r\n this._matSelect._onChange(null); \r\n }\r\n\r\n\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n if (selectAllValue) {\r\n this.treeControl.dataNodes.forEach((node) => {\r\n this.checklistSelection.select(node);\r\n });\r\n this.isIndeterminate = false;\r\n this.isChecked = true;\r\n\r\n this.checkCount = this.checklistSelection.selected.length;\r\n } else {\r\n this.checklistSelection.clear();\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n\r\n this.checkCount = 0;\r\n }\r\n }\r\n\r\n compareObjects(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.name === o2?.name && o1?.id === o2?.id : o1 === o2;\r\n }\r\n trackByFn(index: number, item: any): any {\r\n return index || item;\r\n }\r\n\r\n private _onModelChange: (value: any) => void = () => { };\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n\r\n private _init(v: any): void {\r\n if (this.dataSource.length > 0 && this.treeControl.dataNodes && this._matSelect) {\r\n if (this.expandable) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n if (!isNil(v)) {\r\n this._updateChecklistSelection(v);\r\n } else {\r\n this.checklistSelection.clear();\r\n }\r\n\r\n if (v && v.length > 0) {\r\n\r\n if (this.multiple) {\r\n const findOutNode: CmatSelectTreeFlatNode[] = [];\r\n this.checklistSelection.selected.forEach((node) => {\r\n const parentNode = this._getParentNode(node);\r\n if (parentNode && this.checklistSelection.isSelected(parentNode)) {\r\n findOutNode.push(node);\r\n }\r\n });\r\n\r\n findOutNode.forEach((node) => {\r\n this.checklistSelection.deselect(node);\r\n });\r\n\r\n this.value = this.checklistSelection.selected;\r\n\r\n this.checkCount = this.checklistSelection.selected.length;\r\n\r\n } else {\r\n this.value = this.checklistSelection.selected;\r\n\r\n this.checkCount = 1;\r\n }\r\n\r\n } else {\r\n this.value = v;\r\n this.checkCount = 0;\r\n }\r\n this._matSelect.writeValue(this.value);\r\n this._matSelect._onChange(this.value);\r\n\r\n this._updateCheckState();\r\n\r\n this._changeDetectorRef.markForCheck();\r\n } else {\r\n this.value = v;\r\n }\r\n }\r\n /* Checks all the parents when a leaf node is selected/unselected */\r\n private _checkAllParentsSelection(node: CmatSelectTreeFlatNode): void {\r\n let parent: CmatSelectTreeFlatNode | null = this._getParentNode(node);\r\n while (parent) {\r\n parent.expandable = true;\r\n this.treeControl.expand(parent);\r\n this._checkRootNodeSelection(parent);\r\n parent = this._getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Check root node checked state and change it accordingly */\r\n private _checkRootNodeSelection(node: CmatSelectTreeFlatNode): void {\r\n const nodeSelected = this.checklistSelection.isSelected(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelection.deselect(node);\r\n\r\n this.checkCount -= 1;\r\n } else if (!nodeSelected && (descAllSelected || descendants.length === 0)) {\r\n this.checklistSelection.select(node);\r\n\r\n this.checkCount += 1;\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n private _getParentNode(node: CmatSelectTreeFlatNode): CmatSelectTreeFlatNode | null {\r\n const currentLevel = this.getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _updateChecklistSelection(value: any[]): void {\r\n this.checklistSelection.clear();\r\n if (!isNil(value)) {\r\n const valueArray: any[] = !Array.isArray(value) ? [value] : value;\r\n valueArray.forEach((item) => {\r\n const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);\r\n if (isNil(nodeFound)) {\r\n return;\r\n }\r\n this.checklistSelection.select(nodeFound);\r\n });\r\n }\r\n }\r\n\r\n private _updateSelect(value: any[]): void {\r\n if (!isNil(value)) {\r\n const valueArray: any[] = !Array.isArray(value) ? [value] : value;\r\n\r\n this.checkCount = 0;\r\n\r\n if (this.overallSearchEnabled)//有搜索功能,转化选中节点为当前数据源节点\r\n {\r\n valueArray.forEach((item) => {\r\n const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);\r\n if (isNil(nodeFound)) {\r\n return;\r\n }\r\n\r\n this.checkCount += 1;\r\n\r\n this.checklistSelection.deselect(item);\r\n\r\n this.checklistSelection.select(nodeFound);\r\n });\r\n }\r\n\r\n if (this.multiple) {\r\n this.checklistSelection.selected.forEach((item) => {\r\n this._checkAllParentsSelection(item);\r\n });\r\n }\r\n\r\n this._updateCheckState();\r\n }\r\n }\r\n\r\n private _applyColumnLevelFilters(node: CmatSelectTreeNode, filter: string): boolean {\r\n let result = false;\r\n\r\n if (node && node.children && node.children.length > 0) {\r\n for (let i = node.children.length - 1; i >= 0; i--) {\r\n const resultTemp = this._applyColumnLevelFilters(node.children[i], filter);\r\n\r\n if (!resultTemp) {\r\n node.children.splice(i, 1);\r\n }\r\n\r\n result = resultTemp || result;\r\n }\r\n }\r\n\r\n if (node && node.children && node.children.length === 0) {\r\n node.children = null;\r\n }\r\n\r\n const cellValue = node['name'].toLowerCase();\r\n if (cellValue.indexOf(filter) > -1) {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n private _updateCheckState(): void {\r\n if (this.showToggleAllCheckbox && this.dataSource.length > 0) {\r\n this.isIndeterminate = this.checkCount < this.treeControl.dataNodes.length && this.checkCount > 0;\r\n this.isChecked = this.checkCount === this.treeControl.dataNodes.length && this.checkCount > 0;\r\n }\r\n }\r\n}\r\n","@if(multiple){\n<mat-select #componentSelect [placeholder]=\"placeholder\" multiple [required]=\"required\" [formControl]=\"selectControl\"\n [compareWith]=\"compareObjects\" (focusin)=\"onFocusIn()\"\n panelClass=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-select-trigger>\n @if (!customTriggerLabelFn) {\n {{simpleTriggerLabelFn(checklistSelection.selected)}}\n }\n @else{\n {{customTriggerLabelFn}}\n }\n </mat-select-trigger>\n\n <div (focusout)=\"onFocusOut($event)\">\n @if (overallSearchEnabled) {\n <mat-option>\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox&&multiple\">\n </cmat-select-search>\n </mat-option>\n }\n @if (canNull&&treeDataSource.data.length!==0) {\n <mat-option (click)=\"clearSelection()\" class=\"pl-10\">空</mat-option>\n }\n @for (selectData of matSelectData | async ; track trackByFn($index, selectData)) {\n <mat-option class=\"hidden\" [value]=\"selectData\">{{selectData.name}}</mat-option>\n }\n\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button disabled>\n\n </button>\n @if (multiple) {\n <mat-checkbox class=\"checklist-leaf-node text-current\" [color]=\"'primary'\"\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else{\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\" (click)=\"todoItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'toggle ' + node.name\">\n <mat-icon class=\"mat-icon-rtl-mirror\"\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\n </mat-icon>\n </button>\n @if (multiple) {\n <mat-checkbox [checked]=\"descendantsAllSelected(node)\" [color]=\"'primary'\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" class=\"text-current\">{{node.name}}</mat-checkbox>\n }\n @else {\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n </mat-tree>\n </div>\n</mat-select>\n}\n@else {\n<mat-select #componentSelect [placeholder]=\"placeholder\" [required]=\"required\" [formControl]=\"selectControl\"\n [compareWith]=\"compareObjects\" (focusin)=\"onFocusIn()\"\n panelClass=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-select-trigger>\n @if (!customTriggerLabelFn) {\n {{simpleTriggerLabelFn(checklistSelection.selected)}}\n }\n @else{\n {{customTriggerLabelFn}}\n }\n </mat-select-trigger>\n\n <div (focusout)=\"onFocusOut($event)\">\n @if (overallSearchEnabled) {\n <mat-option>\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox&&multiple\">\n </cmat-select-search>\n </mat-option>\n }\n @if (canNull&&treeDataSource.data.length!==0) {\n <mat-option (click)=\"clearSelection()\" class=\"pl-10\">空</mat-option>\n }\n @for (selectData of matSelectData | async ; track trackByFn($index, selectData)) {\n <mat-option class=\"hidden\" [value]=\"selectData\">{{selectData.name}}</mat-option>\n }\n\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button disabled>\n\n </button>\n @if (multiple) {\n <mat-checkbox class=\"checklist-leaf-node text-current\" [color]=\"'primary'\"\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else{\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\" (click)=\"todoItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'toggle ' + node.name\">\n <mat-icon class=\"mat-icon-rtl-mirror\"\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\n </mat-icon>\n </button>\n @if (multiple) {\n <mat-checkbox [checked]=\"descendantsAllSelected(node)\" [color]=\"'primary'\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" class=\"text-current\">{{node.name}}</mat-checkbox>\n }\n @else {\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n </mat-tree>\n </div>\n</mat-select>\n}","export class CmatSelectTreeNode {\r\n id: string | number;\r\n children: CmatSelectTreeNode[] | null;\r\n name: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-select-tree.mjs","sources":["../../../projects/cmat/components/select-tree/select-tree.flatnode.ts","../../../projects/cmat/components/select-tree/select-tree.component.ts","../../../projects/cmat/components/select-tree/select-tree.component.html","../../../projects/cmat/components/select-tree/select-tree.node.ts","../../../projects/cmat/components/select-tree/cmat-components-select-tree.ts"],"sourcesContent":["export class CmatSelectTreeFlatNode {\r\n id: string | number;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { NgClass, AsyncPipe, NgStyle } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, ReactiveFormsModule, NgControl } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSelect, MatSelectModule } from '@angular/material/select';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\r\nimport { isNil, isUndefined } from 'lodash-es';\r\nimport { merge, ReplaySubject, Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\nimport { CmatSelectTreeFlatNode } from './select-tree.flatnode';\r\nimport { CmatSelectTreeNode } from './select-tree.node';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-select-tree',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatSelectTreeComponent }],\r\n exportAs: 'cmatSelectTree',\r\n standalone: true,\r\n imports: [MatIconModule, MatSelectModule, CmatSelectSearchComponent,\r\n ReactiveFormsModule, MatTreeModule, NgClass, MatButtonModule, MatCheckboxModule, AsyncPipe, NgStyle]\r\n})\r\nexport class CmatSelectTreeComponent implements MatFormFieldControl<any>, ControlValueAccessor, OnChanges, AfterViewInit, OnDestroy {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-select-tree-${NEXT_ID++}`;\r\n\r\n @Input() dataSource: CmatSelectTreeNode[];\r\n\r\n @Input() noEntriesFoundLabel = '无结果';\r\n\r\n @Input() showNoFoundLabel = true;\r\n\r\n @Input() multiple: boolean = false;\r\n\r\n @Input() overallSearchEnabled: boolean = true;\r\n\r\n @Input() canNull: boolean = false;\r\n\r\n @Input() customTriggerLabelFn: (value: CmatSelectTreeNode[]) => string;\r\n\r\n @Input() customTriggerLabelTemplate: string;\r\n\r\n @Input() expandable: boolean;\r\n\r\n @Input() showToggleAllCheckbox: boolean = false;\r\n\r\n flatNodeMap = new Map<CmatSelectTreeFlatNode, CmatSelectTreeNode>();\r\n\r\n nestedNodeMap = new Map<CmatSelectTreeNode, CmatSelectTreeFlatNode>();\r\n\r\n selectedParent: CmatSelectTreeFlatNode | null = null;\r\n\r\n treeControl: FlatTreeControl<CmatSelectTreeFlatNode>;\r\n\r\n treeFlattener: MatTreeFlattener<CmatSelectTreeNode, CmatSelectTreeFlatNode>;\r\n\r\n checklistSelection = new SelectionModel<CmatSelectTreeFlatNode>(true);\r\n\r\n treeDataSource: MatTreeFlatDataSource<CmatSelectTreeNode, CmatSelectTreeFlatNode>;\r\n\r\n overallFilterControl: FormControl = new FormControl();\r\n\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n checkCount: number = 0;\r\n\r\n selectControl: FormControl = new FormControl();\r\n matSelectData: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n touched: boolean = false;\r\n controlType: string = 'cmat-select-tree';\r\n\r\n private _matSelect: MatSelect;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _changeDetectorRef: ChangeDetectorRef) {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel,\r\n this.isExpandable, this.getChildren);\r\n this.treeControl = new FlatTreeControl<CmatSelectTreeFlatNode>(this.getLevel, this.isExpandable);\r\n this.treeDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n }\r\n\r\n @ViewChild('componentSelect', { static: false }) set matSelect(m: MatSelect) {\r\n const existsSelect = !isUndefined(this._matSelect);\r\n this._matSelect = m;\r\n\r\n if (!existsSelect) {\r\n this._init(this.value);\r\n }\r\n }\r\n\r\n @HostListener('document:click')\r\n clickedOut():void {\r\n if (!this._matSelect?.panelOpen) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n getLevel = (node: CmatSelectTreeFlatNode): number => node.level;\r\n\r\n isExpandable = (node: CmatSelectTreeFlatNode): boolean => node.expandable;\r\n\r\n getChildren = (node: CmatSelectTreeNode): CmatSelectTreeNode[] | null => node.children;\r\n\r\n hasChild = (_: number, _nodeData: CmatSelectTreeFlatNode): boolean => _nodeData.expandable;\r\n\r\n hasNoContent = (_: number, _nodeData: CmatSelectTreeFlatNode): boolean => _nodeData.name === '';\r\n\r\n transformer = (node: CmatSelectTreeNode, level: number): CmatSelectTreeFlatNode => {\r\n const existingNode = this.nestedNodeMap.get(node);\r\n const flatNode = existingNode && existingNode.name === node.name\r\n ? existingNode\r\n : new CmatSelectTreeFlatNode();\r\n flatNode.id = node.id;\r\n flatNode.name = node.name;\r\n flatNode.level = level;\r\n flatNode.expandable = !!node.children && node.children.length > 0;\r\n this.flatNodeMap.set(flatNode, node);\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['dataSource']) {\r\n this.treeDataSource.data = this.dataSource;\r\n this.matSelectData.next(this.treeControl.dataNodes);\r\n\r\n if (this.dataSource.length > 0) {\r\n this._init(this.value);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let panelClass: string = '';\r\n if (!this.overallSearchEnabled) {\r\n panelClass = 'cmat-select-search-panel overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom';\r\n }\r\n\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\r\n this._matSelect.openedChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((opened) => {\r\n if (opened && this.multiple) {\r\n this.checklistSelection.selected.forEach((node) => {\r\n if (node.expandable) {\r\n const descendants = this.treeControl.getDescendants(node);\r\n this.checklistSelection.select(...descendants);\r\n }\r\n });\r\n }\r\n\r\n if (!opened) {\r\n setTimeout(() => {\r\n if (!isNil(this.checklistSelection.selected)) {\r\n\r\n if (this.multiple) {\r\n const findOutNode: CmatSelectTreeFlatNode[] = [];\r\n this.checklistSelection.selected.forEach((node) => {\r\n const parentNode = this._getParentNode(node);\r\n if (parentNode && this.checklistSelection.isSelected(parentNode)) {\r\n findOutNode.push(node);\r\n }\r\n });\r\n\r\n findOutNode.forEach((node) => {\r\n this.checklistSelection.deselect(node);\r\n });\r\n\r\n this.value = this.checklistSelection.selected;\r\n } else {\r\n if (this.checklistSelection.selected && this.checklistSelection.selected.length > 0) {\r\n this.value = this.checklistSelection.selected[0];\r\n }\r\n }\r\n\r\n this._matSelect.writeValue(this.value);\r\n this._matSelect._onChange(this.value);\r\n }\r\n }, 200);\r\n }\r\n });\r\n\r\n merge(this.overallFilterControl.valueChanges)\r\n .pipe(takeUntil(this._unsubscribeAll), debounceTime(200))\r\n .subscribe(() => {\r\n if (this._matSelect.panelOpen) {\r\n const dataClone: CmatSelectTreeNode[] = JSON.parse(JSON.stringify([...this.dataSource]));\r\n\r\n const arr: number[] = [];\r\n\r\n for (let i = dataClone.length - 1; i >= 0; i--) {\r\n if (!this._applyColumnLevelFilters(dataClone[i], this.overallFilterControl.value.toLowerCase())) {\r\n arr.push(i);\r\n }\r\n }\r\n arr.forEach((v) => { dataClone.splice(v, 1); });\r\n\r\n this.treeDataSource.data = dataClone;\r\n this.matSelectData.next(this.treeControl.dataNodes);\r\n if (this.expandable) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n this._updateSelect(this.checklistSelection.selected);\r\n\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.touched && this.ngControl?.invalid) ?? false;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._matSelect?.setDisabledState(isDisabled);\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n this._matSelect?.setDescribedByIds(ids);\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._matSelect?.focus();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n if (!this._matSelect.panel.nativeElement.contains(event.relatedTarget as Element)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._init(value);\r\n }\r\n\r\n simpleTriggerLabelFn(value: CmatSelectTreeFlatNode[]): string {\r\n return value.map((node) => {\r\n\r\n if (isNil(node)) {\r\n return '';\r\n }\r\n if (isNil(this.customTriggerLabelTemplate)\r\n || typeof this.customTriggerLabelTemplate !== 'string'\r\n || this.customTriggerLabelTemplate.trim().length === 0) {\r\n return `${node.id}`;\r\n }\r\n let atLeastPartialSubstitution = false;\r\n const substitution: string = this.customTriggerLabelTemplate.replace(/[$][{]([^}]+)[}]/g, (_, key) =>\r\n !isNil((node as any)[key]) && (atLeastPartialSubstitution = true) ? (node as any)[key] : '');\r\n if (atLeastPartialSubstitution === false) {\r\n return `${node.id}`;\r\n }\r\n return substitution.trim();\r\n }).join(', ');\r\n }\r\n\r\n /** Whether all the descendants of the node are selected. */\r\n descendantsAllSelected(node: CmatSelectTreeFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n return descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: CmatSelectTreeFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !descendants.every(child => this.checklistSelection.isSelected(child));\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(event: any, node: CmatSelectTreeFlatNode): void {\r\n event.stopPropagation();\r\n if (this.multiple) {\r\n this.checklistSelection.toggle(node);\r\n\r\n const descendants = this.treeControl.getDescendants(node);\r\n const diffCount = descendants.filter(child =>\r\n this.checklistSelection.isSelected(child)\r\n ).length;\r\n\r\n if (this.checklistSelection.isSelected(node)) {\r\n this.checklistSelection.select(...descendants);\r\n\r\n this.checkCount = this.checkCount + 1 + descendants.length - diffCount;\r\n } else {\r\n this.checklistSelection.deselect(...descendants);\r\n\r\n this.checkCount = this.checkCount - 1 - descendants.length;\r\n }\r\n\r\n this._checkAllParentsSelection(node);\r\n\r\n this._updateCheckState();\r\n } else {\r\n this.checklistSelection.clear();\r\n this.checklistSelection.select(node);\r\n\r\n this._matSelect.close();\r\n }\r\n }\r\n\r\n /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */\r\n todoLeafItemSelectionToggle(event: any, node: CmatSelectTreeFlatNode): void {\r\n event.stopPropagation();\r\n if (this.multiple) {\r\n this.checklistSelection.toggle(node);\r\n\r\n this.checklistSelection.isSelected(node) ? this.checkCount += 1 : this.checkCount -= 1;\r\n\r\n this._checkAllParentsSelection(node);\r\n\r\n this._updateCheckState();\r\n } else {\r\n this.checklistSelection.clear();\r\n this.checklistSelection.select(node);\r\n\r\n this._matSelect.close();\r\n }\r\n }\r\n\r\n clearSelection(): void {\r\n this.checklistSelection.clear();\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n\r\n this.checkCount = 0;\r\n\r\n this.value = null;\r\n this._matSelect.writeValue(null);\r\n this._matSelect._onChange(null); \r\n }\r\n\r\n\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n if (selectAllValue) {\r\n this.treeControl.dataNodes.forEach((node) => {\r\n this.checklistSelection.select(node);\r\n });\r\n this.isIndeterminate = false;\r\n this.isChecked = true;\r\n\r\n this.checkCount = this.checklistSelection.selected.length;\r\n } else {\r\n this.checklistSelection.clear();\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n\r\n this.checkCount = 0;\r\n }\r\n }\r\n\r\n compareObjects(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.name === o2?.name && o1?.id === o2?.id : o1 === o2;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onModelChange: (value: any) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n\r\n private _init(v: any): void {\r\n if (this.dataSource.length > 0 && this.treeControl.dataNodes && this._matSelect) {\r\n if (this.expandable) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n if (!isNil(v)) {\r\n this._updateChecklistSelection(v);\r\n } else {\r\n this.checklistSelection.clear();\r\n }\r\n\r\n if (v && v.length > 0) {\r\n\r\n if (this.multiple) {\r\n const findOutNode: CmatSelectTreeFlatNode[] = [];\r\n this.checklistSelection.selected.forEach((node) => {\r\n const parentNode = this._getParentNode(node);\r\n if (parentNode && this.checklistSelection.isSelected(parentNode)) {\r\n findOutNode.push(node);\r\n }\r\n });\r\n\r\n findOutNode.forEach((node) => {\r\n this.checklistSelection.deselect(node);\r\n });\r\n\r\n this.value = this.checklistSelection.selected;\r\n\r\n this.checkCount = this.checklistSelection.selected.length;\r\n\r\n } else {\r\n this.value = this.checklistSelection.selected;\r\n\r\n this.checkCount = 1;\r\n }\r\n\r\n } else {\r\n this.value = v;\r\n this.checkCount = 0;\r\n }\r\n this._matSelect.writeValue(this.value);\r\n this._matSelect._onChange(this.value);\r\n\r\n this._updateCheckState();\r\n\r\n this._changeDetectorRef.markForCheck();\r\n } else {\r\n this.value = v;\r\n }\r\n }\r\n /* Checks all the parents when a leaf node is selected/unselected */\r\n private _checkAllParentsSelection(node: CmatSelectTreeFlatNode): void {\r\n let parent: CmatSelectTreeFlatNode | null = this._getParentNode(node);\r\n while (parent) {\r\n parent.expandable = true;\r\n this.treeControl.expand(parent);\r\n this._checkRootNodeSelection(parent);\r\n parent = this._getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Check root node checked state and change it accordingly */\r\n private _checkRootNodeSelection(node: CmatSelectTreeFlatNode): void {\r\n const nodeSelected = this.checklistSelection.isSelected(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelection.deselect(node);\r\n\r\n this.checkCount -= 1;\r\n } else if (!nodeSelected && (descAllSelected || descendants.length === 0)) {\r\n this.checklistSelection.select(node);\r\n\r\n this.checkCount += 1;\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n private _getParentNode(node: CmatSelectTreeFlatNode): CmatSelectTreeFlatNode | null {\r\n const currentLevel = this.getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _updateChecklistSelection(value: any[]): void {\r\n this.checklistSelection.clear();\r\n if (!isNil(value)) {\r\n const valueArray: any[] = !Array.isArray(value) ? [value] : value;\r\n valueArray.forEach((item) => {\r\n const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);\r\n if (isNil(nodeFound)) {\r\n return;\r\n }\r\n this.checklistSelection.select(nodeFound);\r\n });\r\n }\r\n }\r\n\r\n private _updateSelect(value: any[]): void {\r\n if (!isNil(value)) {\r\n const valueArray: any[] = !Array.isArray(value) ? [value] : value;\r\n\r\n this.checkCount = 0;\r\n\r\n if (this.overallSearchEnabled)//有搜索功能,转化选中节点为当前数据源节点\r\n {\r\n valueArray.forEach((item) => {\r\n const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);\r\n if (isNil(nodeFound)) {\r\n return;\r\n }\r\n\r\n this.checkCount += 1;\r\n\r\n this.checklistSelection.deselect(item);\r\n\r\n this.checklistSelection.select(nodeFound);\r\n });\r\n }\r\n\r\n if (this.multiple) {\r\n this.checklistSelection.selected.forEach((item) => {\r\n this._checkAllParentsSelection(item);\r\n });\r\n }\r\n\r\n this._updateCheckState();\r\n }\r\n }\r\n\r\n private _applyColumnLevelFilters(node: CmatSelectTreeNode, filter: string): boolean {\r\n let result = false;\r\n\r\n if (node?.children && node.children.length > 0) {\r\n for (let i = node.children.length - 1; i >= 0; i--) {\r\n const resultTemp = this._applyColumnLevelFilters(node.children[i], filter);\r\n\r\n if (!resultTemp) {\r\n node.children.splice(i, 1);\r\n }\r\n\r\n result = resultTemp || result;\r\n }\r\n }\r\n\r\n if (node?.children && node.children.length === 0) {\r\n node.children = null;\r\n }\r\n\r\n const cellValue = node['name'].toLowerCase();\r\n if (cellValue.indexOf(filter) > -1) {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n private _updateCheckState(): void {\r\n if (this.showToggleAllCheckbox && this.dataSource.length > 0) {\r\n this.isIndeterminate = this.checkCount < this.treeControl.dataNodes.length && this.checkCount > 0;\r\n this.isChecked = this.checkCount === this.treeControl.dataNodes.length && this.checkCount > 0;\r\n }\r\n }\r\n}\r\n","@if(multiple){\n<mat-select #componentSelect multiple panelClass=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" [placeholder]=\"placeholder\" [required]=\"required\"\n [formControl]=\"selectControl\" [compareWith]=\"compareObjects\"\n (focusin)=\"onFocusIn()\">\n <mat-select-trigger>\n @if (!customTriggerLabelFn) {\n {{simpleTriggerLabelFn(checklistSelection.selected)}}\n }\n @else{\n {{customTriggerLabelFn}}\n }\n </mat-select-trigger>\n\n <div (focusout)=\"onFocusOut($event)\">\n @if (overallSearchEnabled) {\n <mat-option>\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\n [showToggleAllCheckbox]=\"showToggleAllCheckbox&&multiple\" (toggleAll)=\"toggleSelectAll($event)\">\n </cmat-select-search>\n </mat-option>\n }\n @if (canNull&&treeDataSource.data.length!==0) {\n <mat-option class=\"pl-10\" (click)=\"clearSelection()\">空</mat-option>\n }\n @for (selectData of matSelectData | async ; track $index) {\n <mat-option class=\"hidden\" [value]=\"selectData\">{{selectData.name}}</mat-option>\n }\n\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button disabled>\n\n </button>\n @if (multiple) {\n <mat-checkbox class=\"checklist-leaf-node text-current\" [color]=\"'primary'\"\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else{\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\" (click)=\"todoItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'toggle ' + node.name\">\n <mat-icon class=\"mat-icon-rtl-mirror\"\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\n </mat-icon>\n </button>\n @if (multiple) {\n <mat-checkbox class=\"text-current\" [checked]=\"descendantsAllSelected(node)\"\n [color]=\"'primary'\" [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else {\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n </mat-tree>\n </div>\n</mat-select>\n}\n@else {\n<mat-select #componentSelect panelClass=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" [placeholder]=\"placeholder\" [required]=\"required\"\n [formControl]=\"selectControl\" [compareWith]=\"compareObjects\"\n (focusin)=\"onFocusIn()\">\n <mat-select-trigger>\n @if (!customTriggerLabelFn) {\n {{simpleTriggerLabelFn(checklistSelection.selected)}}\n }\n @else{\n {{customTriggerLabelFn}}\n }\n </mat-select-trigger>\n\n <div (focusout)=\"onFocusOut($event)\">\n @if (overallSearchEnabled) {\n <mat-option>\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\n [showToggleAllCheckbox]=\"showToggleAllCheckbox&&multiple\" (toggleAll)=\"toggleSelectAll($event)\">\n </cmat-select-search>\n </mat-option>\n }\n @if (canNull&&treeDataSource.data.length!==0) {\n <mat-option class=\"pl-10\" (click)=\"clearSelection()\">空</mat-option>\n }\n @for (selectData of matSelectData | async ; track $index) {\n <mat-option class=\"hidden\" [value]=\"selectData\">{{selectData.name}}</mat-option>\n }\n\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button disabled>\n\n </button>\n @if (multiple) {\n <mat-checkbox class=\"checklist-leaf-node text-current\" [color]=\"'primary'\"\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else{\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\" (click)=\"todoItemSelectionToggle($event,node)\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'toggle ' + node.name\">\n <mat-icon class=\"mat-icon-rtl-mirror\"\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\n </mat-icon>\n </button>\n @if (multiple) {\n <mat-checkbox class=\"text-current\" [checked]=\"descendantsAllSelected(node)\"\n [color]=\"'primary'\" [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\n }\n @else {\n <span class=\"text-current\">{{node.name}}</span>\n }\n </mat-tree-node>\n </mat-tree>\n </div>\n</mat-select>\n}","export class CmatSelectTreeNode {\r\n id: string | number;\r\n children: CmatSelectTreeNode[] | null;\r\n name: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@ import { Directive, TemplateRef, Component, ViewEncapsulation, ChangeDetectionSt
|
|
|
4
4
|
import * as i1 from '@angular/material/icon';
|
|
5
5
|
import { MatIconModule } from '@angular/material/icon';
|
|
6
6
|
import { Subject, Observable } from 'rxjs';
|
|
7
|
-
import {
|
|
7
|
+
import { throttleTime, tap, takeUntil } from 'rxjs/operators';
|
|
8
8
|
|
|
9
9
|
class CmatTimelineItemIconDirective {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: CmatTimelineItemIconDirective, isStandalone: true, selector: "ng-template[cmatTimelineItemIcon]", ngImport: i0 }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemIconDirective, decorators: [{
|
|
14
14
|
type: Directive,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: 'ng-template[cmatTimelineItemIcon]',
|
|
@@ -18,10 +18,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
20
|
class CmatTimelineItemLabelDirective {
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
22
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: CmatTimelineItemLabelDirective, isStandalone: true, selector: "ng-template[cmatTimelineItemLabel]", ngImport: i0 }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemLabelDirective, decorators: [{
|
|
25
25
|
type: Directive,
|
|
26
26
|
args: [{
|
|
27
27
|
selector: 'ng-template[cmatTimelineItemLabel]',
|
|
@@ -40,12 +40,12 @@ class CmatTimelineItemComponent {
|
|
|
40
40
|
this._fillEl.nativeElement.style.minHeight = this._contentEl.nativeElement.offsetHeight + 'px';
|
|
41
41
|
this._fillEl.nativeElement.style.minWidth = 'unset';
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatTimelineItemComponent, isStandalone: true, selector: "cmat-timeline-item", inputs: { label: "label", icon: "icon", svgIcon: "svgIcon", iconUrl: "iconUrl" }, host: { properties: { "class": "this.class" } }, queries: [{ propertyName: "customIconTpl", first: true, predicate: CmatTimelineItemIconDirective, descendants: true, read: TemplateRef }, { propertyName: "customLabelTpl", first: true, predicate: CmatTimelineItemLabelDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_contentEl", first: true, predicate: ["contentEl"], descendants: true, static: true }, { propertyName: "_fillEl", first: true, predicate: ["fillEl"], descendants: true, static: true }], exportAs: ["cmatTimelineItem"], ngImport: i0, template: "<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon [svgIcon]=\"$any(svgIcon)\" class=\"cmat-timeline-item-icon\"></mat-icon>\n } @else {\n @if (iconUrl) {\n <img [src]=\"iconUrl\" alt=\"icon\" class=\"cmat-timeline-item-icon\" />\n }\n }\n }\n </ng-template>\n\n\n\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\n\n <ng-template #labelTpl>\n @if (label) {\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\n }\n </ng-template>\n\n <div class=\"cmat-timeline-item-line\"></div>\n\n</div>\n\n<div #contentEl class=\"cmat-timeline-item-content\">\n <ng-content></ng-content>\n</div>", styles: [".cmat-timeline-item{display:flex;gap:24px}.cmat-timeline-item:last-child .cmat-timeline-item-line{display:none}.cmat-timeline-item-timeline{display:flex;gap:8px}.cmat-timeline-item-icon{margin:0;padding:0;width:24px;height:24px;object-fit:cover;border-radius:50%}.cmat-timeline-item-line{flex:1;background-color:var(--cmat-divider)}.cmat-timeline-item-fill,.cmat-timeline-item-content{flex:1}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child){margin-bottom:8px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-timeline{min-width:48px;max-width:48px;flex-direction:column;justify-content:flex-start;align-items:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-label{width:100%;text-align:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-line{width:1px;height:auto;min-height:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-bottom:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:row}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child){margin-right:8px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-timeline{min-height:48px;max-height:48px;flex-direction:row;justify-content:flex-start;align-items:center}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-label{width:auto;text-align:left}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-line{width:auto;min-width:8px;height:1px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-right:8px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CmatTimelineItemComponent, isStandalone: true, selector: "cmat-timeline-item", inputs: { label: "label", icon: "icon", svgIcon: "svgIcon", iconUrl: "iconUrl" }, host: { properties: { "class": "this.class" } }, queries: [{ propertyName: "customIconTpl", first: true, predicate: CmatTimelineItemIconDirective, descendants: true, read: TemplateRef }, { propertyName: "customLabelTpl", first: true, predicate: CmatTimelineItemLabelDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_contentEl", first: true, predicate: ["contentEl"], descendants: true, static: true }, { propertyName: "_fillEl", first: true, predicate: ["fillEl"], descendants: true, static: true }], exportAs: ["cmatTimelineItem"], ngImport: i0, template: "<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon class=\"cmat-timeline-item-icon\" [svgIcon]=\"svgIcon\"></mat-icon>\n } @else {\n @if (iconUrl) {\n <img alt=\"icon\" class=\"cmat-timeline-item-icon\" [src]=\"iconUrl\" />\n }\n }\n }\n </ng-template>\n\n\n\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\n\n <ng-template #labelTpl>\n @if (label) {\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\n }\n </ng-template>\n\n <div class=\"cmat-timeline-item-line\"></div>\n\n</div>\n\n<div #contentEl class=\"cmat-timeline-item-content\">\n <ng-content></ng-content>\n</div>", styles: [".cmat-timeline-item{display:flex;gap:24px}.cmat-timeline-item:last-child .cmat-timeline-item-line{display:none}.cmat-timeline-item-timeline{display:flex;gap:8px}.cmat-timeline-item-icon{margin:0;padding:0;width:24px;height:24px;object-fit:cover;border-radius:50%}.cmat-timeline-item-line{flex:1;background-color:var(--cmat-divider)}.cmat-timeline-item-fill,.cmat-timeline-item-content{flex:1}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child){margin-bottom:8px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-timeline{min-width:48px;max-width:48px;flex-direction:column;justify-content:flex-start;align-items:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-label{width:100%;text-align:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-line{width:1px;height:auto;min-height:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-bottom:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:row}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child){margin-right:8px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-timeline{min-height:48px;max-height:48px;flex-direction:row;justify-content:flex-start;align-items:center}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-label{width:auto;text-align:left}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-line{width:auto;min-width:8px;height:1px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-right:8px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineItemComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
|
-
args: [{ selector: 'cmat-timeline-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTimelineItem', standalone: true, imports: [MatIconModule, NgTemplateOutlet], template: "<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon
|
|
48
|
+
args: [{ selector: 'cmat-timeline-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTimelineItem', standalone: true, imports: [MatIconModule, NgTemplateOutlet], template: "<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon class=\"cmat-timeline-item-icon\" [svgIcon]=\"svgIcon\"></mat-icon>\n } @else {\n @if (iconUrl) {\n <img alt=\"icon\" class=\"cmat-timeline-item-icon\" [src]=\"iconUrl\" />\n }\n }\n }\n </ng-template>\n\n\n\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\n\n <ng-template #labelTpl>\n @if (label) {\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\n }\n </ng-template>\n\n <div class=\"cmat-timeline-item-line\"></div>\n\n</div>\n\n<div #contentEl class=\"cmat-timeline-item-content\">\n <ng-content></ng-content>\n</div>", styles: [".cmat-timeline-item{display:flex;gap:24px}.cmat-timeline-item:last-child .cmat-timeline-item-line{display:none}.cmat-timeline-item-timeline{display:flex;gap:8px}.cmat-timeline-item-icon{margin:0;padding:0;width:24px;height:24px;object-fit:cover;border-radius:50%}.cmat-timeline-item-line{flex:1;background-color:var(--cmat-divider)}.cmat-timeline-item-fill,.cmat-timeline-item-content{flex:1}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child){margin-bottom:8px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-timeline{min-width:48px;max-width:48px;flex-direction:column;justify-content:flex-start;align-items:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-label{width:100%;text-align:center}.cmat-timeline-vertical>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-line{width:1px;height:auto;min-height:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-bottom:8px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-bottom:48px}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-bottom:0}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:row}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:row}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{text-align:left;display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:row-reverse}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-vertical.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{text-align:right;display:flex;justify-content:flex-end;align-items:flex-start}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item{justify-content:flex-start;align-items:stretch}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child){margin-right:8px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-fill,.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item:not(:last-child) .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-timeline{min-height:48px;max-height:48px;flex-direction:row;justify-content:flex-start;align-items:center}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-label{width:auto;text-align:left}.cmat-timeline-horizontal .cmat-timeline-content>.cmat-timeline-item .cmat-timeline-item-line{width:auto;min-width:8px;height:1px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child{margin-right:8px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-line{display:block}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-fill,.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:last-child .cmat-timeline-item-content{margin-right:48px}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-line{display:none}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content .cmat-timeline-item:first-child .cmat-timeline-item-content{margin-right:0}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item{flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-start>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n){flex-direction:column}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(2n) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-start}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd){flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-center-alt>.cmat-timeline-content .cmat-timeline-item:nth-child(odd) .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item{flex-direction:column-reverse}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-content{display:flex;justify-content:flex-start;align-items:flex-end}.cmat-timeline-horizontal.cmat-timeline-end>.cmat-timeline-content .cmat-timeline-item .cmat-timeline-item-fill{display:none}\n"] }]
|
|
49
49
|
}], propDecorators: { label: [{
|
|
50
50
|
type: Input
|
|
51
51
|
}], icon: [{
|
|
@@ -72,16 +72,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
72
72
|
}] } });
|
|
73
73
|
|
|
74
74
|
class CmatTimelineComponent {
|
|
75
|
-
constructor(_host
|
|
75
|
+
constructor(_host) {
|
|
76
76
|
this._host = _host;
|
|
77
|
-
this._ngZone = _ngZone;
|
|
78
77
|
this.items = new QueryList();
|
|
78
|
+
this.class = 'cmat-timeline';
|
|
79
79
|
this._reverse = false;
|
|
80
80
|
this._position = 'start';
|
|
81
81
|
this._orientation = 'vertical';
|
|
82
82
|
this._unsubscribeAll = new Subject();
|
|
83
83
|
}
|
|
84
|
-
get class() { return 'cmat-timeline'; }
|
|
85
84
|
get isStartPosition() {
|
|
86
85
|
return this._position === 'start';
|
|
87
86
|
}
|
|
@@ -115,9 +114,6 @@ class CmatTimelineComponent {
|
|
|
115
114
|
this._reverse = reverse;
|
|
116
115
|
this.updateLayout();
|
|
117
116
|
}
|
|
118
|
-
ngOnChanges() {
|
|
119
|
-
this._ngZone.onStable.pipe(tap(() => this.updateLayout()), first()).subscribe();
|
|
120
|
-
}
|
|
121
117
|
ngOnInit() {
|
|
122
118
|
new Observable((observer) => {
|
|
123
119
|
const ro = new ResizeObserver(entries => observer.next(entries));
|
|
@@ -139,18 +135,15 @@ class CmatTimelineComponent {
|
|
|
139
135
|
});
|
|
140
136
|
}
|
|
141
137
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: CmatTimelineComponent, isStandalone: true, selector: "cmat-timeline", inputs: { position: "position", orientation: "orientation", reverse: "reverse" }, host: { properties: { "class.cmat-timeline-start": "this.isStartPosition", "class.cmat-timeline-end": "this.isEndPosition", "class.cmat-timeline-center": "this.isCenterPosition", "class.cmat-timeline-center-alt": "this.isCenterAltPosition", "class.cmat-timeline-vertical": "this.isVerticalOrientation", "class.cmat-timeline-horizontal": "this.isHorizontalOrientation", "class.cmat-timeline-reverse": "this.isReverse" } }, queries: [{ propertyName: "items", predicate: CmatTimelineItemComponent }], exportAs: ["cmatTimeLine"], ngImport: i0, template: "<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cmat-timeline{margin:0;padding:0;width:100%;display:flex;justify-content:stretch;align-items:stretch;overflow:auto}.cmat-timeline-content{margin:0;padding:0;width:100%;display:flex;justify-content:stretch;align-items:stretch;min-width:min-content;min-height:min-content}.cmat-timeline-center>.cmat-timeline-content,.cmat-timeline-center-alt>.cmat-timeline-content{align-items:center}.cmat-timeline-vertical>.cmat-timeline-content{flex-direction:column}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content{flex-direction:column-reverse}.cmat-timeline-horizontal>.cmat-timeline-content{flex-direction:row}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
144
140
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTimelineComponent, decorators: [{
|
|
146
142
|
type: Component,
|
|
147
143
|
args: [{ selector: 'cmat-timeline', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatTimeLine', standalone: true, imports: [], template: "<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cmat-timeline{margin:0;padding:0;width:100%;display:flex;justify-content:stretch;align-items:stretch;overflow:auto}.cmat-timeline-content{margin:0;padding:0;width:100%;display:flex;justify-content:stretch;align-items:stretch;min-width:min-content;min-height:min-content}.cmat-timeline-center>.cmat-timeline-content,.cmat-timeline-center-alt>.cmat-timeline-content{align-items:center}.cmat-timeline-vertical>.cmat-timeline-content{flex-direction:column}.cmat-timeline-vertical.cmat-timeline-reverse>.cmat-timeline-content{flex-direction:column-reverse}.cmat-timeline-horizontal>.cmat-timeline-content{flex-direction:row}.cmat-timeline-horizontal.cmat-timeline-reverse>.cmat-timeline-content{flex-direction:row-reverse}\n"] }]
|
|
148
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }
|
|
144
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { items: [{
|
|
149
145
|
type: ContentChildren,
|
|
150
146
|
args: [CmatTimelineItemComponent]
|
|
151
|
-
}], class: [{
|
|
152
|
-
type: HostBinding,
|
|
153
|
-
args: ['class']
|
|
154
147
|
}], isStartPosition: [{
|
|
155
148
|
type: HostBinding,
|
|
156
149
|
args: ['class.cmat-timeline-start']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-timeline.mjs","sources":["../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.ts","../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.html","../../../projects/cmat/components/timeline/timeline.component.ts","../../../projects/cmat/components/timeline/timeline.component.html","../../../projects/cmat/components/timeline/cmat-components-timeline.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Directive,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemIcon]',\r\n standalone: true\r\n})\r\nexport class CmatTimelineItemIconDirective {\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemLabel]',\r\n standalone: true\r\n})\r\nexport class CmatTimelineItemLabelDirective {\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTimelineItem',\r\n standalone: true,\r\n imports: [MatIconModule, NgTemplateOutlet]\r\n})\r\nexport class CmatTimelineItemComponent {\r\n\r\n @Input()\r\n label?: string | null;\r\n\r\n @Input()\r\n icon?: string | null;\r\n\r\n @Input()\r\n svgIcon?: string | null;\r\n\r\n @Input()\r\n iconUrl?: string | null;\r\n\r\n @HostBinding('class') class='cmat-timeline-item';\r\n \r\n @ContentChild(CmatTimelineItemIconDirective, { read: TemplateRef })\r\n customIconTpl?: TemplateRef<any>;\r\n\r\n @ContentChild(CmatTimelineItemLabelDirective, { read: TemplateRef })\r\n customLabelTpl?: TemplateRef<any>;\r\n\r\n @ViewChild('contentEl', { static: true })\r\n private _contentEl!: ElementRef;\r\n\r\n @ViewChild('fillEl', { static: true })\r\n private _fillEl!: ElementRef;\r\n\r\n \r\n\r\n updateVerticalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minWidth = this._contentEl.nativeElement.offsetWidth + 'px';\r\n this._fillEl.nativeElement.style.minHeight = 'unset';\r\n }\r\n\r\n updateHorizontalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minHeight = this._contentEl.nativeElement.offsetHeight + 'px';\r\n this._fillEl.nativeElement.style.minWidth = 'unset';\r\n }\r\n\r\n}\r\n","<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon [svgIcon]=\"$any(svgIcon)\" class=\"cmat-timeline-item-icon\"></mat-icon>\n } @else {\n @if (iconUrl) {\n <img [src]=\"iconUrl\" alt=\"icon\" class=\"cmat-timeline-item-icon\" />\n }\n }\n }\n </ng-template>\n\n\n\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\n\n <ng-template #labelTpl>\n @if (label) {\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\n }\n </ng-template>\n\n <div class=\"cmat-timeline-item-line\"></div>\n\n</div>\n\n<div #contentEl class=\"cmat-timeline-item-content\">\n <ng-content></ng-content>\n</div>","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input, NgZone, OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { first, takeUntil, tap, throttleTime } from 'rxjs/operators';\nimport { CmatTimelineItemComponent } from './timeline-item/timeline-item.component';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type CMAT_TIMELINE_POSITION = 'start' | 'end' | 'center' | 'center-alt';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type CMAT_TIMELINE_ORIENTATION = 'vertical' | 'horizontal';\n\n\n@Component({\n selector: 'cmat-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'cmatTimeLine',\n standalone: true,\n imports: []\n})\nexport class CmatTimelineComponent implements OnInit, OnDestroy, OnChanges {\n @ContentChildren(CmatTimelineItemComponent)\n readonly items: QueryList<CmatTimelineItemComponent> = new QueryList();\n\n private _reverse: boolean = false;\n private _position: CMAT_TIMELINE_POSITION = 'start';\n private _orientation: CMAT_TIMELINE_ORIENTATION = 'vertical';\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n constructor(\n private _host: ElementRef,\n private _ngZone: NgZone\n ) { }\n\n @HostBinding('class') get class(): string { return 'cmat-timeline'; }\n\n @HostBinding('class.cmat-timeline-start')\n get isStartPosition(): boolean {\n return this._position === 'start';\n }\n @HostBinding('class.cmat-timeline-end')\n get isEndPosition(): boolean {\n return this._position === 'end';\n }\n\n @HostBinding('class.cmat-timeline-center')\n get isCenterPosition(): boolean {\n return this._position === 'center';\n }\n\n @HostBinding('class.cmat-timeline-center-alt')\n get isCenterAltPosition(): boolean {\n return this._position === 'center-alt';\n }\n\n @HostBinding('class.cmat-timeline-vertical')\n get isVerticalOrientation(): boolean {\n return this._orientation === 'vertical';\n }\n\n @HostBinding('class.cmat-timeline-horizontal')\n get isHorizontalOrientation(): boolean {\n return this._orientation === 'horizontal';\n }\n\n @HostBinding('class.cmat-timeline-reverse')\n get isReverse(): boolean {\n return this._reverse;\n }\n\n @Input()\n set position(position: CMAT_TIMELINE_POSITION) {\n this._position = position;\n this.updateLayout();\n }\n\n @Input()\n set orientation(orientation: CMAT_TIMELINE_ORIENTATION) {\n this._orientation = orientation;\n this.updateLayout();\n }\n\n @Input()\n set reverse(reverse: boolean) {\n this._reverse = reverse;\n this.updateLayout();\n }\n\n ngOnChanges(): void {\n this._ngZone.onStable.pipe(\n tap(() => this.updateLayout()),\n first()\n ).subscribe();\n }\n\n ngOnInit(): void {\n new Observable((observer) => {\n const ro = new ResizeObserver(entries => observer.next(entries));\n ro.observe(this._host.nativeElement);\n\n return ():void => {\n ro.unobserve(this._host.nativeElement);\n ro.disconnect();\n };\n }).pipe(\n throttleTime(10),\n tap(() => this.updateLayout()),\n takeUntil(this._unsubscribeAll)\n ).subscribe();\n }\n\n ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n updateLayout(): void {\n if (this.isCenterPosition || this.isCenterAltPosition) {\n this.items.forEach((item) => {\n this.isVerticalOrientation ? item.updateVerticalCenteredLayout() : item.updateHorizontalCenteredLayout();\n });\n }\n }\n}\n","<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-timeline.mjs","sources":["../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.ts","../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.html","../../../projects/cmat/components/timeline/timeline.component.ts","../../../projects/cmat/components/timeline/timeline.component.html","../../../projects/cmat/components/timeline/cmat-components-timeline.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Directive,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemIcon]',\r\n standalone: true\r\n})\r\nexport class CmatTimelineItemIconDirective {\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemLabel]',\r\n standalone: true\r\n})\r\nexport class CmatTimelineItemLabelDirective {\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTimelineItem',\r\n standalone: true,\r\n imports: [MatIconModule, NgTemplateOutlet]\r\n})\r\nexport class CmatTimelineItemComponent {\r\n\r\n @Input()\r\n label?: string | null;\r\n\r\n @Input()\r\n icon?: string | null;\r\n\r\n @Input()\r\n svgIcon?: string | null;\r\n\r\n @Input()\r\n iconUrl?: string | null;\r\n\r\n @HostBinding('class') class='cmat-timeline-item';\r\n \r\n @ContentChild(CmatTimelineItemIconDirective, { read: TemplateRef })\r\n customIconTpl?: TemplateRef<any>;\r\n\r\n @ContentChild(CmatTimelineItemLabelDirective, { read: TemplateRef })\r\n customLabelTpl?: TemplateRef<any>;\r\n\r\n @ViewChild('contentEl', { static: true })\r\n private _contentEl!: ElementRef;\r\n\r\n @ViewChild('fillEl', { static: true })\r\n private _fillEl!: ElementRef;\r\n\r\n \r\n\r\n updateVerticalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minWidth = this._contentEl.nativeElement.offsetWidth + 'px';\r\n this._fillEl.nativeElement.style.minHeight = 'unset';\r\n }\r\n\r\n updateHorizontalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minHeight = this._contentEl.nativeElement.offsetHeight + 'px';\r\n this._fillEl.nativeElement.style.minWidth = 'unset';\r\n }\r\n\r\n}\r\n","<div #fillEl class=\"cmat-timeline-item-fill\"></div>\n\n<div class=\"cmat-timeline-item-timeline\">\n\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\n\n <ng-template #iconTpl>\n @if (icon) {\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\n } @else {\n @if (svgIcon) {\n <mat-icon class=\"cmat-timeline-item-icon\" [svgIcon]=\"svgIcon\"></mat-icon>\n } @else {\n @if (iconUrl) {\n <img alt=\"icon\" class=\"cmat-timeline-item-icon\" [src]=\"iconUrl\" />\n }\n }\n }\n </ng-template>\n\n\n\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\n\n <ng-template #labelTpl>\n @if (label) {\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\n }\n </ng-template>\n\n <div class=\"cmat-timeline-item-line\"></div>\n\n</div>\n\n<div #contentEl class=\"cmat-timeline-item-content\">\n <ng-content></ng-content>\n</div>","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil, tap, throttleTime } from 'rxjs/operators';\nimport { CmatTimelineItemComponent } from './timeline-item/timeline-item.component';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type CMAT_TIMELINE_POSITION = 'start' | 'end' | 'center' | 'center-alt';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport type CMAT_TIMELINE_ORIENTATION = 'vertical' | 'horizontal';\n\n\n@Component({\n selector: 'cmat-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'cmatTimeLine',\n standalone: true,\n imports: []\n})\nexport class CmatTimelineComponent implements OnInit, OnDestroy {\n @ContentChildren(CmatTimelineItemComponent)\n readonly items = new QueryList<CmatTimelineItemComponent>();\n readonly class = 'cmat-timeline';\n\n private _reverse: boolean = false;\n private _position: CMAT_TIMELINE_POSITION = 'start';\n private _orientation: CMAT_TIMELINE_ORIENTATION = 'vertical';\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n constructor(\n private _host: ElementRef\n ) { } \n\n @HostBinding('class.cmat-timeline-start')\n get isStartPosition(): boolean {\n return this._position === 'start';\n }\n @HostBinding('class.cmat-timeline-end')\n get isEndPosition(): boolean {\n return this._position === 'end';\n }\n\n @HostBinding('class.cmat-timeline-center')\n get isCenterPosition(): boolean {\n return this._position === 'center';\n }\n\n @HostBinding('class.cmat-timeline-center-alt')\n get isCenterAltPosition(): boolean {\n return this._position === 'center-alt';\n }\n\n @HostBinding('class.cmat-timeline-vertical')\n get isVerticalOrientation(): boolean {\n return this._orientation === 'vertical';\n }\n\n @HostBinding('class.cmat-timeline-horizontal')\n get isHorizontalOrientation(): boolean {\n return this._orientation === 'horizontal';\n }\n\n @HostBinding('class.cmat-timeline-reverse')\n get isReverse(): boolean {\n return this._reverse;\n }\n\n @Input()\n set position(position: CMAT_TIMELINE_POSITION) {\n this._position = position;\n this.updateLayout();\n }\n\n @Input()\n set orientation(orientation: CMAT_TIMELINE_ORIENTATION) {\n this._orientation = orientation;\n this.updateLayout();\n }\n\n @Input()\n set reverse(reverse: boolean) {\n this._reverse = reverse;\n this.updateLayout();\n }\n\n ngOnInit(): void {\n new Observable((observer) => {\n const ro = new ResizeObserver(entries => observer.next(entries));\n ro.observe(this._host.nativeElement);\n\n return ():void => {\n ro.unobserve(this._host.nativeElement);\n ro.disconnect();\n };\n }).pipe(\n throttleTime(10),\n tap(() => this.updateLayout()),\n takeUntil(this._unsubscribeAll)\n ).subscribe();\n }\n\n ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n updateLayout(): void {\n if (this.isCenterPosition || this.isCenterAltPosition) {\n this.items.forEach((item) => {\n this.isVerticalOrientation ? item.updateVerticalCenteredLayout() : item.updateHorizontalCenteredLayout();\n });\n }\n }\n}\n","<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|