cmat 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/components/cascade/cascade-list/cascade-list.component.d.ts +3 -3
- package/components/cascade/options.interface.d.ts +1 -1
- package/components/custom-formly/public-api.d.ts +1 -0
- package/components/custom-formly/types/button/button.component.d.ts +19 -3
- package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
- package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
- package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
- package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
- package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -3
- package/components/custom-formly/types/number/number.component.d.ts +3 -2
- package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
- package/components/custom-formly/types/radio/radio.component.d.ts +3 -3
- package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
- package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
- package/components/custom-formly/types/select/select.component.d.ts +3 -2
- package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
- package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
- package/components/custom-formly/types/table/table.component.d.ts +13 -7
- package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
- package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
- package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
- package/components/material-datetimepicker/clock.d.ts +2 -2
- package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
- package/components/navigation/navigation.types.d.ts +1 -1
- package/components/password-strength/mat-password-strength-validator.d.ts +1 -1
- package/components/popover/popover.component.d.ts +1 -3
- package/components/timeline/timeline.component.d.ts +1 -1
- package/components/transfer-picker/filter/filter.component.d.ts +1 -1
- 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 -1
- 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 +4 -3
- package/directives/digit-only/mask.directive.d.ts +2 -0
- package/directives/equal-validator/equal-validator.directive.d.ts +1 -3
- package/esm2022/animations/dropdown.mjs +1 -1
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +5 -5
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
- package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
- 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 +10 -13
- package/esm2022/components/card/card.component.mjs +5 -5
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +13 -11
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
- package/esm2022/components/cascade/options.interface.mjs +1 -1
- package/esm2022/components/chip-input/chip-input.component.mjs +10 -9
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +3 -3
- package/esm2022/components/custom-formly/public-api.mjs +2 -1
- package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
- 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 +4 -4
- 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 +7 -7
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +5 -6
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
- 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 -5
- package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +7 -7
- 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 +3 -3
- 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/form-field/form-field.component.mjs +47 -0
- 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 +3 -3
- 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 +3 -3
- package/esm2022/components/highlight/highlight.service.mjs +3 -3
- package/esm2022/components/json-editor/json-editor.component.mjs +12 -12
- package/esm2022/components/masonry/masonry.component.mjs +3 -3
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +7 -5
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +6 -6
- package/esm2022/components/material-datetimepicker/calendar.mjs +6 -6
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
- 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 +18 -15
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
- 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 +4 -4
- package/esm2022/components/navigation/navigation.service.mjs +3 -3
- 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 +5 -5
- 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 -5
- package/esm2022/components/pagination/pagination.directive.mjs +3 -3
- 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 +3 -3
- package/esm2022/components/popover/popover.component.mjs +6 -6
- package/esm2022/components/popover/popover.target.mjs +3 -3
- package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
- 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 +4 -4
- package/esm2022/components/select-search/select-search.component.mjs +9 -9
- package/esm2022/components/select-tree/select-tree.component.mjs +11 -9
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
- package/esm2022/components/timeline/timeline.component.mjs +5 -8
- package/esm2022/components/toast/toast-modal.component.mjs +6 -6
- package/esm2022/components/toast/toast.component.mjs +5 -5
- package/esm2022/components/toast/toast.service.mjs +10 -10
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +6 -6
- package/esm2022/components/transfer-picker/interface.mjs +1 -1
- package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +8 -8
- package/esm2022/components/upload/files.util.service.mjs +3 -3
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +15 -14
- package/esm2022/components/upload/upload.component.mjs +5 -5
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
- 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 +12 -12
- package/esm2022/directives/digit-only/mask.directive.mjs +21 -6
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
- 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 +3 -3
- package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
- package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
- package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
- 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 +5 -5
- package/esm2022/services/data/data.service.mjs +3 -3
- package/esm2022/services/loading/loading.interceptor.mjs +5 -5
- package/esm2022/services/loading/loading.service.mjs +3 -3
- 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 +3 -3
- 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 +5 -5
- package/esm2022/services/utils/utils.service.mjs +13 -14
- package/fesm2022/cmat-animations.mjs.map +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 +17 -20
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +4 -4
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +20 -18
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +9 -8
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +248 -157
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +19 -14
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +6 -6
- 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-json-editor.mjs +11 -11
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +6 -4
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +69 -64
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +47 -47
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +14 -14
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +14 -14
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +11 -11
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +4 -4
- 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 +14 -14
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +10 -8
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +14 -17
- 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 +28 -28
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +21 -20
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +31 -16
- 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 +6 -7
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +6 -4
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- 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-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 +7 -7
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +7 -7
- 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-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 +4 -4
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +12 -13
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/icons/material-icons/material-solid.svg +3585 -3585
- 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 +95 -95
- package/pipes/date-format/date-format.pipe.d.ts +1 -1
- 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 +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-toast.mjs","sources":["../../../projects/cmat/components/toast/toast-modal.component.ts","../../../projects/cmat/components/toast/toast-modal.component.html","../../../projects/cmat/components/toast/toast.service.ts","../../../projects/cmat/components/toast/toast.component.ts","../../../projects/cmat/components/toast/toast.component.html","../../../projects/cmat/components/toast/cmat-components-toast.ts"],"sourcesContent":["import { NgClass, NgStyle } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { CmatToastModel } from './models/toast.model';\r\n\r\n@Component({\r\n selector: 'cmat-toast-modal',\r\n templateUrl: './toast-modal.component.html',\r\n styleUrls: ['./toast-modal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToastModal',\r\n standalone: true,\r\n imports: [NgClass, NgStyle]\r\n})\r\nexport class CmatToastModalComponent implements AfterViewInit {\r\n @Input() toast: CmatToastModel;\r\n @Output() closeToastEvent: EventEmitter<number> = new EventEmitter();\r\n\r\n progressPercent = 0;\r\n timeout: number;\r\n\r\n private _progressInterval: number;\r\n private _startTime: number = performance.now();\r\n\r\n constructor(private _ref: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.handleProgress();\r\n }\r\n\r\n handleProgress(): void {\r\n this.timeout = this.toast.timeout || 0;\r\n\r\n if (this.toast.showDuration && this.timeout > 0) {\r\n this._progressInterval = window.setInterval(() => {\r\n this.progressPercent = (100 - ((performance.now() - this._startTime) / this.timeout * 100));\r\n if (this.toast.isCountdown) {\r\n const timeRemaining = (this.timeout - (performance.now() - this._startTime));\r\n const secondsRemaining = Math.ceil(timeRemaining / 1000);\r\n this.toast.title = `剩余时间: ${secondsRemaining.toString()}秒`;\r\n this.toast.type = 'toasta-type-wait';\r\n this.toast.message = '';\r\n }\r\n this._ref.detectChanges();\r\n\r\n if (this.progressPercent <= 0) {\r\n clearInterval(this._progressInterval);\r\n this.close(this.toast);\r\n }\r\n });\r\n }\r\n }\r\n\r\n close(toast: CmatToastModel): void {\r\n if (toast.id) {\r\n this.closeToastEvent.next(toast.id);\r\n }\r\n\r\n if (this._progressInterval) {\r\n clearInterval(this._progressInterval);\r\n }\r\n }\r\n}\r\n","<div class=\"toast\" [ngClass]=\"[toast.type, toast.theme]\">\n @if (toast.showClose) {\n <button type=\"button\" class=\"close-button\" (click)=\"close(toast)\">\n </button>\n }\n @if (toast.title || toast.message) {\n <div class=\"toast-text\">\n @if (toast.title) {\n <span class=\"toast-title\">{{toast.title}}</span>\n }\n @if (toast.title && toast.message) {\n <br />\n }\n @if (toast.message) {\n <span class=\"toast-message\">{{toast.message}}</span>\n }\n </div>\n }\n @if (toast.showDuration && timeout > 0) {\n <div class=\"durationbackground\">\n <div class=\"durationbar\" [ngStyle]=\"{'width':progressPercent+'%'}\">\n </div>\n </div>\n }\n</div>","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { GlobalConfigModel } from './models/global-config.model';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { GlobalPosition, GlobalTheme, GlobalType } from './models/type.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatToastService {\r\n toasts: CmatToastModel[] = [];\r\n\r\n private _positionSubject = new BehaviorSubject<string>('toasta-position-bottom-right');\r\n private _toastPopSubject = new Subject<CmatToastModel[]>();\r\n private _globalConfigs: GlobalConfigModel;\r\n private _counter = 1;\r\n\r\n get position$(): Observable<string> {\r\n return this._positionSubject.asObservable();\r\n }\r\n get toastPop$(): Observable<CmatToastModel[]> {\r\n return this._toastPopSubject.asObservable();\r\n }\r\n\r\n\r\n receiveGlobalConfigs(configs: GlobalConfigModel): void {\r\n this._globalConfigs = { ...configs };\r\n }\r\n\r\n removeToast(toastId: number): void {\r\n this.toasts = this.toasts.filter(t => t.id !== toastId);\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearAll(): void {\r\n this.toasts.length = 0;\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearLast(): void {\r\n this.toasts.pop();\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n addToast(toast: CmatToastModel): void {\r\n const defaultToast = this._getDefaultToast();\r\n const globalToast = this._setGlobalValues(defaultToast);\r\n\r\n const finalToast: CmatToastModel = {\r\n type: `toasta-type-${toast.type}` as GlobalType,\r\n message: toast.message,\r\n title: toast.title || globalToast.title,\r\n showClose: toast.showClose || globalToast.showClose,\r\n showDuration: toast.showDuration || globalToast.showDuration,\r\n theme: toast.theme ? (`toasta-theme-${toast.theme}` as GlobalTheme) : globalToast.theme,\r\n timeout: toast.timeout !== null ? toast.timeout : globalToast.timeout,\r\n position: toast.position ? (`toasta-position-${toast.position}` as GlobalPosition) : globalToast.position,\r\n limit: toast.limit || globalToast.limit,\r\n isCountdown: toast.isCountdown || globalToast.isCountdown,\r\n };\r\n\r\n if (toast.showClose === false) {\r\n finalToast.showClose = false;\r\n }\r\n\r\n if (toast.showDuration === false) {\r\n finalToast.showDuration = false;\r\n }\r\n\r\n this._setPosition(finalToast);\r\n this._serveToast(finalToast);\r\n }\r\n\r\n getGlobalConfigs(): GlobalConfigModel {\r\n return this._globalConfigs;\r\n }\r\n\r\n getToasts(): CmatToastModel[] {\r\n return this.toasts;\r\n }\r\n\r\n private _getDefaultToast(): GlobalConfigModel {\r\n const defaultToast: GlobalConfigModel = {\r\n title: '',\r\n showClose: true,\r\n showDuration: true,\r\n theme: 'toasta-theme-material',\r\n timeout: 5000,\r\n position: 'toasta-position-bottom-right',\r\n limit: 5,\r\n isCountdown: false,\r\n };\r\n\r\n return defaultToast;\r\n }\r\n\r\n private _setGlobalValues(toast: GlobalConfigModel): GlobalConfigModel {\r\n if (this._globalConfigs) {\r\n for (const [key, value] of Object.entries(this._globalConfigs)) {\r\n toast = {\r\n ...toast,\r\n [key]: value,\r\n };\r\n }\r\n\r\n if (this._globalConfigs.theme) {\r\n toast.theme = `toasta-theme-${this._globalConfigs.theme}` as GlobalTheme;\r\n }\r\n\r\n if (this._globalConfigs.position) {\r\n toast.position = `toasta-position-${this._globalConfigs.position}` as GlobalPosition;\r\n }\r\n\r\n if (this._globalConfigs.showClose === false) {\r\n toast.showClose = false;\r\n }\r\n\r\n if (this._globalConfigs.showDuration === false) {\r\n toast.showDuration = false;\r\n }\r\n }\r\n return toast;\r\n }\r\n\r\n private _setPosition(toast: CmatToastModel): void {\r\n const position = toast.position || 'toasta-position-bottom-right';\r\n\r\n this._positionSubject.next(position);\r\n }\r\n\r\n private _serveToast(toast: any): void {\r\n const latestToast = {\r\n ...toast,\r\n id: this._counter++,\r\n };\r\n\r\n if (this.toasts.length >= toast.limit) {\r\n this.toasts.shift();\r\n }\r\n this.toasts.push(latestToast);\r\n\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n}\r\n","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { CmatToastModalComponent } from './toast-modal.component';\r\nimport { CmatToastService } from './toast.service';\r\n\r\n@Component({\r\n selector: 'cmat-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToast',\r\n standalone: true,\r\n imports: [NgClass, CmatToastModalComponent, AsyncPipe]\r\n})\r\nexport class CmatToastComponent implements OnInit {\r\n toasts$: Observable<CmatToastModel[]>;\r\n position$: Observable<string>;\r\n\r\n constructor(private _cmatToastService: CmatToastService) { }\r\n\r\n ngOnInit(): void {\r\n this.listenForToastEvent();\r\n }\r\n\r\n listenForToastEvent(): void {\r\n this.toasts$ = this._cmatToastService.toastPop$;\r\n this.position$ = this._cmatToastService.position$;\r\n }\r\n\r\n clearToast(toastId: any): void {\r\n this._cmatToastService.removeToast(toastId);\r\n }\r\n\r\n trackByFn(index: number, item: CmatToastModel): any {\r\n return item.id || index;\r\n }\r\n}\r\n","@if ((toasts$ | async); as toasts) {\r\n <div class=\"toast-wrapper\" [ngClass]=\"[position$ | async]\">\r\n @for (toast of toasts; track trackByFn($index, toast)) {\r\n <cmat-toast-modal [toast]=\"toast\"\r\n (closeToastEvent)=\"clearToast($event)\">\r\n </cmat-toast-modal>\r\n }\r\n </div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatToastService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-toast.mjs","sources":["../../../projects/cmat/components/toast/toast-modal.component.ts","../../../projects/cmat/components/toast/toast-modal.component.html","../../../projects/cmat/components/toast/toast.service.ts","../../../projects/cmat/components/toast/toast.component.ts","../../../projects/cmat/components/toast/toast.component.html","../../../projects/cmat/components/toast/cmat-components-toast.ts"],"sourcesContent":["import { NgClass, NgStyle } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { CmatToastModel } from './models/toast.model';\r\n\r\n@Component({\r\n selector: 'cmat-toast-modal',\r\n templateUrl: './toast-modal.component.html',\r\n styleUrls: ['./toast-modal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToastModal',\r\n standalone: true,\r\n imports: [NgClass, NgStyle]\r\n})\r\nexport class CmatToastModalComponent implements AfterViewInit {\r\n @Input() toast: CmatToastModel;\r\n @Output() closeToastEvent = new EventEmitter<number>();\r\n\r\n progressPercent = 0;\r\n timeout: number;\r\n\r\n private _progressInterval: number;\r\n private _startTime: number = performance.now();\r\n\r\n constructor(private _ref: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.handleProgress();\r\n }\r\n\r\n handleProgress(): void {\r\n this.timeout = this.toast.timeout ?? 0;\r\n\r\n if (this.toast.showDuration && this.timeout > 0) {\r\n this._progressInterval = window.setInterval(() => {\r\n this.progressPercent = (100 - ((performance.now() - this._startTime) / this.timeout * 100));\r\n if (this.toast.isCountdown) {\r\n const timeRemaining = (this.timeout - (performance.now() - this._startTime));\r\n const secondsRemaining = Math.ceil(timeRemaining / 1000);\r\n this.toast.title = `剩余时间: ${secondsRemaining.toString()}秒`;\r\n this.toast.type = 'toasta-type-wait';\r\n this.toast.message = '';\r\n }\r\n this._ref.detectChanges();\r\n\r\n if (this.progressPercent <= 0) {\r\n clearInterval(this._progressInterval);\r\n this.close(this.toast);\r\n }\r\n });\r\n }\r\n }\r\n\r\n close(toast: CmatToastModel): void {\r\n if (toast.id) {\r\n this.closeToastEvent.next(toast.id);\r\n }\r\n\r\n if (this._progressInterval) {\r\n clearInterval(this._progressInterval);\r\n }\r\n }\r\n}\r\n","<div class=\"toast\" [ngClass]=\"[toast.type, toast.theme]\">\r\n @if (toast.showClose) {\r\n <button type=\"button\" class=\"close-button\" (click)=\"close(toast)\">\r\n </button>\r\n }\r\n @if (toast.title || toast.message) {\r\n <div class=\"toast-text\">\r\n @if (toast.title) {\r\n <span class=\"toast-title\">{{toast.title}}</span>\r\n }\r\n @if (toast.title && toast.message) {\r\n <br />\r\n }\r\n @if (toast.message) {\r\n <span class=\"toast-message\">{{toast.message}}</span>\r\n }\r\n </div>\r\n }\r\n @if (toast.showDuration && timeout > 0) {\r\n <div class=\"durationbackground\">\r\n <div class=\"durationbar\" [ngStyle]=\"{'width':progressPercent+'%'}\">\r\n </div>\r\n </div>\r\n }\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { GlobalConfigModel } from './models/global-config.model';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { GlobalPosition, GlobalTheme, GlobalType } from './models/type.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatToastService {\r\n toasts: CmatToastModel[] = [];\r\n\r\n private _positionSubject = new BehaviorSubject<string>('toasta-position-bottom-right');\r\n private _toastPopSubject = new Subject<CmatToastModel[]>();\r\n private _globalConfigs: GlobalConfigModel;\r\n private _counter = 1;\r\n\r\n get position$(): Observable<string> {\r\n return this._positionSubject.asObservable();\r\n }\r\n get toastPop$(): Observable<CmatToastModel[]> {\r\n return this._toastPopSubject.asObservable();\r\n }\r\n\r\n\r\n receiveGlobalConfigs(configs: GlobalConfigModel): void {\r\n this._globalConfigs = { ...configs };\r\n }\r\n\r\n removeToast(toastId: number): void {\r\n this.toasts = this.toasts.filter(t => t.id !== toastId);\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearAll(): void {\r\n this.toasts.length = 0;\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearLast(): void {\r\n this.toasts.pop();\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n addToast(toast: CmatToastModel): void {\r\n const defaultToast = this._getDefaultToast();\r\n const globalToast = this._setGlobalValues(defaultToast);\r\n\r\n const finalToast: CmatToastModel = {\r\n type: `toasta-type-${toast.type}` as GlobalType,\r\n message: toast.message,\r\n title: toast.title ?? globalToast.title,\r\n showClose: toast.showClose ?? globalToast.showClose,\r\n showDuration: toast.showDuration ?? globalToast.showDuration,\r\n theme: toast.theme ? (`toasta-theme-${toast.theme}` as GlobalTheme) : globalToast.theme,\r\n timeout: toast.timeout !== null ? toast.timeout : globalToast.timeout,\r\n position: toast.position ? (`toasta-position-${toast.position}` as GlobalPosition) : globalToast.position,\r\n limit: toast.limit ?? globalToast.limit,\r\n isCountdown: toast.isCountdown ?? globalToast.isCountdown,\r\n };\r\n\r\n if (toast.showClose === false) {\r\n finalToast.showClose = false;\r\n }\r\n\r\n if (toast.showDuration === false) {\r\n finalToast.showDuration = false;\r\n }\r\n\r\n this._setPosition(finalToast);\r\n this._serveToast(finalToast);\r\n }\r\n\r\n getGlobalConfigs(): GlobalConfigModel {\r\n return this._globalConfigs;\r\n }\r\n\r\n getToasts(): CmatToastModel[] {\r\n return this.toasts;\r\n }\r\n\r\n private _getDefaultToast(): GlobalConfigModel {\r\n const defaultToast: GlobalConfigModel = {\r\n title: '',\r\n showClose: true,\r\n showDuration: true,\r\n theme: 'toasta-theme-material',\r\n timeout: 5000,\r\n position: 'toasta-position-bottom-right',\r\n limit: 5,\r\n isCountdown: false,\r\n };\r\n\r\n return defaultToast;\r\n }\r\n\r\n private _setGlobalValues(toast: GlobalConfigModel): GlobalConfigModel {\r\n if (this._globalConfigs) {\r\n for (const [key, value] of Object.entries(this._globalConfigs)) {\r\n toast = {\r\n ...toast,\r\n [key]: value,\r\n };\r\n }\r\n\r\n if (this._globalConfigs.theme) {\r\n toast.theme = `toasta-theme-${this._globalConfigs.theme}` as GlobalTheme;\r\n }\r\n\r\n if (this._globalConfigs.position) {\r\n toast.position = `toasta-position-${this._globalConfigs.position}` as GlobalPosition;\r\n }\r\n\r\n if (this._globalConfigs.showClose === false) {\r\n toast.showClose = false;\r\n }\r\n\r\n if (this._globalConfigs.showDuration === false) {\r\n toast.showDuration = false;\r\n }\r\n }\r\n return toast;\r\n }\r\n\r\n private _setPosition(toast: CmatToastModel): void {\r\n const position = toast.position ?? 'toasta-position-bottom-right';\r\n\r\n this._positionSubject.next(position);\r\n }\r\n\r\n private _serveToast(toast: any): void {\r\n const latestToast = {\r\n ...toast,\r\n id: this._counter++,\r\n };\r\n\r\n if (this.toasts.length >= toast.limit) {\r\n this.toasts.shift();\r\n }\r\n this.toasts.push(latestToast);\r\n\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n}\r\n","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { CmatToastModalComponent } from './toast-modal.component';\r\nimport { CmatToastService } from './toast.service';\r\n\r\n@Component({\r\n selector: 'cmat-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToast',\r\n standalone: true,\r\n imports: [NgClass, CmatToastModalComponent, AsyncPipe]\r\n})\r\nexport class CmatToastComponent implements OnInit {\r\n toasts$: Observable<CmatToastModel[]>;\r\n position$: Observable<string>;\r\n\r\n constructor(private _cmatToastService: CmatToastService) { }\r\n\r\n ngOnInit(): void {\r\n this.listenForToastEvent();\r\n }\r\n\r\n listenForToastEvent(): void {\r\n this.toasts$ = this._cmatToastService.toastPop$;\r\n this.position$ = this._cmatToastService.position$;\r\n }\r\n\r\n clearToast(toastId: any): void {\r\n this._cmatToastService.removeToast(toastId);\r\n }\r\n\r\n trackByFn(index: number, item: CmatToastModel): any {\r\n return item.id ?? index;\r\n }\r\n}\r\n","@if ((toasts$ | async); as toasts) {\r\n <div class=\"toast-wrapper\" [ngClass]=\"[position$ | async]\">\r\n @for (toast of toasts; track trackByFn($index, toast)) {\r\n <cmat-toast-modal [toast]=\"toast\"\r\n (closeToastEvent)=\"clearToast($event)\">\r\n </cmat-toast-modal>\r\n }\r\n </div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatToastService"],"mappings":";;;;;MAuBa,uBAAuB,CAAA;AAUhC,IAAA,WAAA,CAAoB,IAAuB,EAAA;QAAvB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;AARjC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;QAEvD,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AAIZ,QAAA,IAAA,CAAA,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KAEC;IAEhD,eAAe,GAAA;QACX,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,cAAc,GAAA;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;gBAC7C,IAAI,CAAC,eAAe,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5F,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,oBAAA,MAAM,aAAa,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAS,MAAA,EAAA,gBAAgB,CAAC,QAAQ,EAAE,CAAA,CAAA,CAAG,CAAC;AAC3D,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC;AACrC,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;iBAC3B;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAE1B,gBAAA,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;AAC3B,oBAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtC,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC1B;AACL,aAAC,CAAC,CAAC;SACN;KACJ;AAED,IAAA,KAAK,CAAC,KAAqB,EAAA;AACvB,QAAA,IAAI,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACvC;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACzC;KACJ;8GA/CQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,ECvBpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2xBAwBM,EDHQ,MAAA,EAAA,CAAA,wl0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEjB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,iBAGb,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,2xBAAA,EAAA,MAAA,EAAA,CAAA,wl0CAAA,CAAA,EAAA,CAAA;sFAGlB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEhBE,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;QAII,IAAM,CAAA,MAAA,GAAqB,EAAE,CAAC;AAEtB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,8BAA8B,CAAC,CAAC;AAC/E,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAoB,CAAC;QAEnD,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AAgIxB,KAAA;AA9HG,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC/C;AACD,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC/C;AAGD,IAAA,oBAAoB,CAAC,OAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,OAAe,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3C;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3C;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED,IAAA,QAAQ,CAAC,KAAqB,EAAA;AAC1B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAExD,QAAA,MAAM,UAAU,GAAmB;AAC/B,YAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,CAAC,IAAI,CAAgB,CAAA;YAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK;AACvC,YAAA,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS;AACnD,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY;AAC5D,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,KAAK,CAAkB,CAAA,GAAG,WAAW,CAAC,KAAK;AACvF,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;AACrE,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAI,CAAA,gBAAA,EAAmB,KAAK,CAAC,QAAQ,CAAqB,CAAA,GAAG,WAAW,CAAC,QAAQ;AACzG,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK;AACvC,YAAA,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;SAC5D,CAAC;AAEF,QAAA,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;AAC3B,YAAA,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;SAChC;AAED,QAAA,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE;AAC9B,YAAA,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;SACnC;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,gBAAgB,GAAA;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,SAAS,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAEO,gBAAgB,GAAA;AACpB,QAAA,MAAM,YAAY,GAAsB;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,8BAA8B;AACxC,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,WAAW,EAAE,KAAK;SACrB,CAAC;AAEF,QAAA,OAAO,YAAY,CAAC;KACvB;AAEO,IAAA,gBAAgB,CAAC,KAAwB,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC5D,gBAAA,KAAK,GAAG;AACJ,oBAAA,GAAG,KAAK;oBACR,CAAC,GAAG,GAAG,KAAK;iBACf,CAAC;aACL;AAED,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;gBAC3B,KAAK,CAAC,KAAK,GAAG,CAAgB,aAAA,EAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAA,CAAiB,CAAC;aAC5E;AAED,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBAC9B,KAAK,CAAC,QAAQ,GAAG,CAAmB,gBAAA,EAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAA,CAAoB,CAAC;aACxF;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,KAAK,KAAK,EAAE;AACzC,gBAAA,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;aAC3B;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,KAAK,KAAK,EAAE;AAC5C,gBAAA,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;aAC9B;SACJ;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEO,IAAA,YAAY,CAAC,KAAqB,EAAA;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,8BAA8B,CAAC;AAElE,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;AAEO,IAAA,WAAW,CAAC,KAAU,EAAA;AAC1B,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,GAAG,KAAK;AACR,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvB;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3C;8GArIQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCSY,kBAAkB,CAAA;AAI7B,IAAA,WAAA,CAAoB,iBAAmC,EAAA;QAAnC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;KAAK;IAE5D,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;KACnD;AAED,IAAA,UAAU,CAAC,OAAY,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7C;IAED,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC;KACzB;8GArBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,+FCjB/B,oUAQC,EAAA,MAAA,EAAA,CAAA,s8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOW,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,uIAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,iBAGP,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,WAAW,EACT,UAAA,EAAA,IAAI,WACP,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,oUAAA,EAAA,MAAA,EAAA,CAAA,s8BAAA,CAAA,EAAA,CAAA;;;AEfxD;;AAEG;;;;"}
|
|
@@ -78,9 +78,9 @@ class CmatTransferPickerService {
|
|
|
78
78
|
this.selectedValuesChange.next(value);
|
|
79
79
|
}
|
|
80
80
|
filterDataSource({ filterData, keyword }) {
|
|
81
|
-
this._filterData = filterData
|
|
81
|
+
this._filterData = filterData ?? this._filterData;
|
|
82
82
|
this._keyword = keyword === void (0) ? this._keyword : keyword;
|
|
83
|
-
if (filterData
|
|
83
|
+
if (filterData?.filters.length) {
|
|
84
84
|
this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
@@ -94,11 +94,11 @@ class CmatTransferPickerService {
|
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
96
|
if (keyword) {
|
|
97
|
-
this._filterDataSourceByType(this._filterData
|
|
97
|
+
this._filterDataSourceByType(this._filterData?.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
else if (!keyword) {
|
|
101
|
-
if (this._filterData
|
|
101
|
+
if (this._filterData?.filters.length) {
|
|
102
102
|
this._filterDataSourceByType(this._originalDataSource, 'Filters');
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
@@ -157,10 +157,10 @@ class CmatTransferPickerService {
|
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
161
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
161
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerService, providedIn: 'root' }); }
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerService, decorators: [{
|
|
164
164
|
type: Injectable,
|
|
165
165
|
args: [{
|
|
166
166
|
providedIn: 'root'
|
|
@@ -202,7 +202,7 @@ class CmatTransferPickerFilterComponent {
|
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
toggleFilter() {
|
|
205
|
-
if (this.overlayRef
|
|
205
|
+
if (this.overlayRef?.hasAttached()) {
|
|
206
206
|
this.overlayRef.detach();
|
|
207
207
|
}
|
|
208
208
|
else {
|
|
@@ -227,12 +227,12 @@ class CmatTransferPickerFilterComponent {
|
|
|
227
227
|
changeFilterData() {
|
|
228
228
|
this._service.filterDataSource({ filterData: this.filterData });
|
|
229
229
|
}
|
|
230
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
231
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
230
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [{ token: i1.Overlay }, { token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
231
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: "filters" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }], exportAs: ["cmatTransferPickerFilter"], ngImport: i0, template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\r\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\r\n</button>\r\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\r\n <div\r\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\r\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\r\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\r\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n <div class=\"chip-list\">\r\n @for (item of filters; track $index) {\r\n <div class=\"chip-wrapper\" role=\"presentation\"\r\n (click)=\"onFilterClick(item)\">\r\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i6.TemplatePortalDirective, selector: "[cdk-portal], [portal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
232
232
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerFilterComponent, decorators: [{
|
|
234
234
|
type: Component,
|
|
235
|
-
args: [{ selector: 'cmat-transfer-picker-filter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerFilter', standalone: true, imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule], template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button (click)=\"toggleFilter()\"
|
|
235
|
+
args: [{ selector: 'cmat-transfer-picker-filter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerFilter', standalone: true, imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule], template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\r\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\r\n</button>\r\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\r\n <div\r\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\r\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\r\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\r\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n <div class=\"chip-list\">\r\n @for (item of filters; track $index) {\r\n <div class=\"chip-wrapper\" role=\"presentation\"\r\n (click)=\"onFilterClick(item)\">\r\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"] }]
|
|
236
236
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: CmatTransferPickerService }], propDecorators: { filters: [{
|
|
237
237
|
type: Input
|
|
238
238
|
}], overlayOrigin: [{
|
|
@@ -257,12 +257,12 @@ class CmatTransferPickerSearchComponent {
|
|
|
257
257
|
reset() {
|
|
258
258
|
this.keyword.setValue('');
|
|
259
259
|
}
|
|
260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
261
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerSearchComponent, deps: [{ token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
261
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatTransferPickerSearchComponent, isStandalone: true, selector: "cmat-transfer-picker-search", inputs: { searchPlaceholder: "searchPlaceholder" }, exportAs: ["cmatTransferPickerSearch"], ngImport: i0, template: "<mat-form-field>\r\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
262
262
|
}
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerSearchComponent, decorators: [{
|
|
264
264
|
type: Component,
|
|
265
|
-
args: [{ selector: 'cmat-transfer-picker-search', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSearch', standalone: true, imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule], template: "<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"] }]
|
|
265
|
+
args: [{ selector: 'cmat-transfer-picker-search', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSearch', standalone: true, imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule], template: "<mat-form-field>\r\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"] }]
|
|
266
266
|
}], ctorParameters: () => [{ type: CmatTransferPickerService }], propDecorators: { searchPlaceholder: [{
|
|
267
267
|
type: Input
|
|
268
268
|
}] } });
|
|
@@ -454,13 +454,13 @@ class CmatTransferPickerSourceComponent {
|
|
|
454
454
|
}
|
|
455
455
|
return null;
|
|
456
456
|
}
|
|
457
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
458
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
457
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerSourceComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
458
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatTransferPickerSourceComponent, isStandalone: true, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"], ngImport: i0, template: "<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\r\n @if (options.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\r\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\r\n (change)=\"transferItemSelectionToggle(node)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource?.data?.length) {\r\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i3$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i3$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i3$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i3$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i3$2.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerFilterComponent, selector: "cmat-transfer-picker-filter", inputs: ["filters"], exportAs: ["cmatTransferPickerFilter"] }, { kind: "component", type: CmatTransferPickerSearchComponent, selector: "cmat-transfer-picker-search", inputs: ["searchPlaceholder"], exportAs: ["cmatTransferPickerSearch"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
459
459
|
}
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerSourceComponent, decorators: [{
|
|
461
461
|
type: Component,
|
|
462
462
|
args: [{ selector: 'cmat-transfer-picker-source', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSource', standalone: true, imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule,
|
|
463
|
-
CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule], template: "<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\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 <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"] }]
|
|
463
|
+
CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule], template: "<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\r\n @if (options.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\r\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\r\n (change)=\"transferItemSelectionToggle(node)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource?.data?.length) {\r\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"] }]
|
|
464
464
|
}], ctorParameters: () => [{ type: CmatTransferPickerService }, { type: i0.ChangeDetectorRef }] });
|
|
465
465
|
|
|
466
466
|
class CmatTransferPickerTargetComponent {
|
|
@@ -471,12 +471,12 @@ class CmatTransferPickerTargetComponent {
|
|
|
471
471
|
this.selectedList.splice(this.selectedList.indexOf(item), 1);
|
|
472
472
|
this.clearItemChange.next(item);
|
|
473
473
|
}
|
|
474
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
474
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerTargetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatTransferPickerTargetComponent, isStandalone: true, selector: "cmat-transfer-picker-target", inputs: { selectedList: "selectedList" }, outputs: { clearItemChange: "clearItemChange" }, exportAs: ["cmatTransferPickerTarget"], ngImport: i0, template: "<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of selectedList; track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!selectedList.length) {\r\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
476
476
|
}
|
|
477
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerTargetComponent, decorators: [{
|
|
478
478
|
type: Component,
|
|
479
|
-
args: [{ selector: 'cmat-transfer-picker-target', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerTarget', standalone: true, imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule], template: "<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track $index) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"] }]
|
|
479
|
+
args: [{ selector: 'cmat-transfer-picker-target', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerTarget', standalone: true, imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule], template: "<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of selectedList; track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!selectedList.length) {\r\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"] }]
|
|
480
480
|
}], ctorParameters: () => [], propDecorators: { selectedList: [{
|
|
481
481
|
type: Input
|
|
482
482
|
}], clearItemChange: [{
|
|
@@ -531,12 +531,12 @@ class CmatTransferPickerComponent {
|
|
|
531
531
|
this.selectChange.next(this.selectedList);
|
|
532
532
|
this._changeDetectorRef.detectChanges();
|
|
533
533
|
}
|
|
534
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
535
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
535
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CmatTransferPickerComponent, isStandalone: true, selector: "cmat-transfer-picker", inputs: { title: "title", filterable: "filterable", searchable: "searchable", searchPlaceholder: "searchPlaceholder", dataSource: "dataSource", filters: "filters", selectedValues: "selectedValues" }, outputs: { selectChange: "selectChange" }, viewQueries: [{ propertyName: "source", first: true, predicate: CmatTransferPickerSourceComponent, descendants: true, static: true }], exportAs: ["cmatTransferPicker"], ngImport: i0, template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\r\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerSourceComponent, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"] }, { kind: "component", type: CmatTransferPickerTargetComponent, selector: "cmat-transfer-picker-target", inputs: ["selectedList"], outputs: ["clearItemChange"], exportAs: ["cmatTransferPickerTarget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
536
536
|
}
|
|
537
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTransferPickerComponent, decorators: [{
|
|
538
538
|
type: Component,
|
|
539
|
-
args: [{ selector: 'cmat-transfer-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPicker', standalone: true, imports: [MatIconModule, MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent], template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"] }]
|
|
539
|
+
args: [{ selector: 'cmat-transfer-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPicker', standalone: true, imports: [MatIconModule, MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent], template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\r\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"] }]
|
|
540
540
|
}], ctorParameters: () => [{ type: CmatTransferPickerService }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
|
|
541
541
|
type: Input
|
|
542
542
|
}], filterable: [{
|