cmat 0.0.6 → 0.0.8
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/adapter/dayjs-datetime-adapter.d.ts +1 -1
- package/components/breadcrumb/breadcrumb.service.d.ts +1 -1
- package/components/breadcrumb/public-api.d.ts +2 -0
- package/components/card/card.component.d.ts +1 -1
- package/components/card/public-api.d.ts +1 -0
- package/components/cascade/cascade-list/cascade-list.component.d.ts +45 -21
- package/components/cascade/public-api.d.ts +1 -0
- package/components/chip-input/chip-input.component.d.ts +39 -12
- package/components/custom-formly/extension/addons.extension.d.ts +2 -0
- package/components/custom-formly/index.d.ts +5 -0
- package/components/custom-formly/public-api.d.ts +21 -0
- package/components/custom-formly/types/button/button.component.d.ts +18 -0
- package/components/custom-formly/types/checklist/checklist.component.d.ts +41 -0
- package/components/custom-formly/types/chips/chips.component.d.ts +27 -0
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +44 -0
- package/components/custom-formly/types/number/number.component.d.ts +20 -0
- package/components/custom-formly/types/radio/radio.component.d.ts +44 -0
- package/components/custom-formly/types/rating/rating.component.d.ts +24 -0
- package/components/custom-formly/types/repeat/repeat.component.d.ts +16 -0
- package/components/custom-formly/types/select/select.component.d.ts +54 -0
- package/components/custom-formly/types/select-tree/select-tree.component.d.ts +43 -0
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +9 -0
- package/components/custom-formly/types/stepper/stepper.type.d.ts +6 -0
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +9 -0
- package/components/custom-formly/types/table/table.component.d.ts +43 -0
- package/components/custom-formly/types/tabs/tab.component.d.ts +8 -0
- package/components/custom-formly/types/tags/tags.component.d.ts +41 -0
- package/components/custom-formly/types/textarea/textarea.component.d.ts +13 -0
- package/components/custom-formly/wrappers/addons/addons.component.d.ts +10 -0
- package/components/custom-formly/wrappers/card/card.component.d.ts +6 -0
- package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +6 -0
- package/components/custom-formly/wrappers/panel/panel.component.d.ts +6 -0
- package/components/date-range/date-range.component.d.ts +8 -6
- package/components/drawer/drawer.component.d.ts +2 -2
- package/components/fullscreen/fullscreen.component.d.ts +2 -9
- package/components/fullscreen/public-api.d.ts +0 -1
- package/components/material-color-picker/material-color-picker.component.d.ts +8 -4
- package/components/material-datetimepicker/calendar.d.ts +2 -2
- package/components/material-datetimepicker/clock.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker-input.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker-toggle.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker.d.ts +5 -10
- package/components/material-datetimepicker/month-view.d.ts +1 -2
- package/components/material-datetimepicker/multi-year-view.d.ts +1 -1
- package/components/material-datetimepicker/public-api.d.ts +1 -0
- package/components/material-datetimepicker/time.d.ts +2 -2
- package/components/material-datetimepicker/year-view.d.ts +1 -1
- package/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
- package/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
- package/components/navigation/horizontal/horizontal.component.d.ts +2 -2
- package/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
- package/components/navigation/vertical/components/basic/basic.component.d.ts +1 -7
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
- package/components/navigation/vertical/components/group/group.component.d.ts +1 -1
- package/components/navigation/vertical/vertical.component.d.ts +5 -5
- package/components/pagination/public-api.d.ts +1 -0
- package/components/popover/popover-trigger.d.ts +121 -0
- package/components/popover/popover.component.d.ts +3 -3
- package/components/popover/popover.target.d.ts +8 -0
- package/components/popover/public-api.d.ts +3 -0
- package/components/rating/rating.component.d.ts +38 -9
- package/components/select-search/select-search.component.d.ts +4 -4
- package/components/select-tree/public-api.d.ts +2 -0
- package/components/select-tree/select-tree.component.d.ts +50 -21
- package/components/toast/public-api.d.ts +4 -0
- package/components/toast/toast.component.d.ts +4 -4
- package/components/transfer-picker/filter/filter.component.d.ts +1 -1
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
- package/components/transfer-picker/transfer-picker.component.d.ts +1 -1
- package/components/upload/files.type.d.ts +22 -0
- package/components/upload/files.util.service.d.ts +20 -0
- package/components/upload/index.d.ts +5 -0
- package/components/upload/public-api.d.ts +4 -0
- package/components/upload/upload-queue/upload-queue.component.d.ts +39 -0
- package/components/upload/upload.component.d.ts +32 -0
- package/esm2022/animations/public-api.mjs +2 -2
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +6 -6
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +5 -5
- 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 +5 -5
- package/esm2022/components/breadcrumb/public-api.mjs +3 -1
- package/esm2022/components/card/card.component.mjs +5 -5
- package/esm2022/components/card/public-api.mjs +2 -1
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +7 -7
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +207 -114
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +4 -4
- package/esm2022/components/cascade/public-api.mjs +2 -1
- package/esm2022/components/chip-input/chip-input.component.mjs +152 -49
- package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +5 -0
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +13 -0
- package/esm2022/components/custom-formly/public-api.mjs +22 -0
- package/esm2022/components/custom-formly/types/button/button.component.mjs +39 -0
- package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +161 -0
- package/esm2022/components/custom-formly/types/chips/chips.component.mjs +55 -0
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +89 -0
- package/esm2022/components/custom-formly/types/number/number.component.mjs +27 -0
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +88 -0
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +27 -0
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +28 -0
- package/esm2022/components/custom-formly/types/select/select.component.mjs +169 -0
- package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +66 -0
- package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +31 -0
- package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +2 -0
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +31 -0
- package/esm2022/components/custom-formly/types/table/table.component.mjs +116 -0
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +19 -0
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +149 -0
- package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +25 -0
- package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +92 -0
- package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +14 -0
- package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +14 -0
- package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +12 -0
- package/esm2022/components/date-range/date-range.component.mjs +26 -17
- package/esm2022/components/drawer/drawer.component.mjs +5 -5
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +16 -73
- package/esm2022/components/fullscreen/public-api.mjs +1 -2
- package/esm2022/components/highlight/highlight.component.mjs +5 -5
- package/esm2022/components/highlight/highlight.service.mjs +3 -3
- package/esm2022/components/json-editor/json-editor.component.mjs +3 -3
- package/esm2022/components/masonry/masonry.component.mjs +5 -5
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +22 -12
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +3 -3
- package/esm2022/components/material-datetimepicker/calendar.mjs +11 -12
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -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 +17 -22
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +7 -8
- package/esm2022/components/material-datetimepicker/public-api.mjs +2 -1
- package/esm2022/components/material-datetimepicker/time.mjs +8 -8
- package/esm2022/components/material-datetimepicker/year-view.mjs +7 -8
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +8 -8
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +8 -8
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +6 -6
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +6 -6
- package/esm2022/components/navigation/navigation.service.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +11 -11
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -24
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +10 -10
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -9
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -6
- package/esm2022/components/navigation/vertical/vertical.component.mjs +11 -11
- package/esm2022/components/pagination/pagination.component.mjs +10 -10
- package/esm2022/components/pagination/pagination.directive.mjs +4 -4
- package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
- package/esm2022/components/pagination/pagination.service.mjs +3 -3
- package/esm2022/components/pagination/public-api.mjs +2 -1
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +6 -6
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +5 -5
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +6 -6
- package/esm2022/components/popover/popover-trigger.mjs +444 -0
- package/esm2022/components/popover/popover.component.mjs +8 -9
- package/esm2022/components/popover/popover.target.mjs +18 -0
- package/esm2022/components/popover/public-api.mjs +4 -1
- package/esm2022/components/progress-bar/progress-bar.component.mjs +6 -6
- package/esm2022/components/rating/rating.component.mjs +122 -23
- 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 +15 -15
- package/esm2022/components/select-tree/public-api.mjs +3 -1
- package/esm2022/components/select-tree/select-tree.component.mjs +281 -157
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
- package/esm2022/components/timeline/timeline.component.mjs +5 -5
- package/esm2022/components/toast/public-api.mjs +5 -1
- 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 +3 -3
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +9 -9
- package/esm2022/components/transfer-picker/search/search.component.mjs +6 -6
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +11 -11
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +7 -7
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
- package/esm2022/components/upload/cmat-components-upload.mjs +5 -0
- package/esm2022/components/upload/files.type.mjs +2 -0
- package/esm2022/components/upload/files.util.service.mjs +100 -0
- package/esm2022/components/upload/public-api.mjs +5 -0
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +154 -0
- package/esm2022/components/upload/upload.component.mjs +118 -0
- 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 +3 -3
- package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +5 -5
- package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
- package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
- package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
- package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
- package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/services/alert/alert.service.mjs +7 -7
- package/esm2022/services/alert/enum.mjs +2 -2
- package/esm2022/services/config/config.service.mjs +5 -5
- package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
- package/esm2022/services/confirmation/confirmation.service.mjs +5 -5
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +7 -7
- package/esm2022/services/data/data.service.mjs +5 -5
- package/esm2022/services/loading/loading.interceptor.mjs +4 -4
- 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 +5 -5
- package/esm2022/services/platform/platform.service.mjs +4 -4
- package/esm2022/services/splash-screen/splash-screen.service.mjs +6 -6
- package/esm2022/services/title/title.service.mjs +4 -4
- package/esm2022/services/translation/translation.service.mjs +3 -3
- package/esm2022/services/utils/utils.service.mjs +54 -9
- package/fesm2022/cmat-animations.mjs +15 -15
- package/fesm2022/cmat-animations.mjs.map +1 -1
- package/fesm2022/cmat-components-adapter.mjs +11 -11
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +11 -11
- 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 +215 -123
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +153 -50
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +1141 -0
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +27 -18
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +8 -8
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +16 -73
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +7 -7
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs +4 -4
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +21 -11
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +189 -195
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +166 -183
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +20 -20
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +13 -13
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +464 -10
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +6 -6
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +121 -22
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +41 -41
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +285 -158
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +33 -33
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +366 -0
- package/fesm2022/cmat-components-upload.mjs.map +1 -0
- 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 +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- 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 +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +4 -4
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +6 -6
- 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 +11 -11
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +5 -5
- 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 +4 -4
- 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 +5 -5
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- 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-utils.mjs +53 -8
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/package.json +75 -63
- package/pipes/secure/secure-pipe.d.ts +1 -1
- package/services/alert/enum.d.ts +1 -1
- package/services/confirmation/confirmation.service.d.ts +1 -1
- package/services/data/data.service.d.ts +1 -1
- package/services/media-watcher/media-watcher.service.d.ts +1 -1
- package/services/title/title.service.d.ts +1 -1
- package/services/utils/utils.service.d.ts +1 -0
- package/styles/components/bundle.scss +18 -5
- package/styles/overrides/angular-material.scss +51 -52
- package/styles/tailwind.scss +2 -8
- package/styles/themes.scss +7 -7
- package/styles/user-themes.scss +1 -1
- package/tailwind/plugins/utilities.js +1 -1
- package/components/fullscreen/fullscreen.types.d.ts +0 -13
- package/esm2022/components/fullscreen/fullscreen.types.mjs +0 -2
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { FieldArrayType, FormlyModule } from '@ngx-formly/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-formly/core";
|
|
7
|
+
import * as i2 from "@angular/material/icon";
|
|
8
|
+
import * as i3 from "@angular/material/button";
|
|
9
|
+
export class CmatRepeatTypeComponent extends FieldArrayType {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.defaultOptions = {
|
|
13
|
+
props: {
|
|
14
|
+
addText: '新增'
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
trackByFn(index) {
|
|
19
|
+
return index;
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRepeatTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatRepeatTypeComponent, isStandalone: true, selector: "cmat-repeat-type", usesInheritance: true, ngImport: i0, template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track trackByFn($index)) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"\u5220\u9664\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>", styles: [":host{width:100%}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-infix .mat-mdc-floating-label{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-text-field-wrapper{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRepeatTypeComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'cmat-repeat-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormlyModule, MatIconModule, MatButtonModule], template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track trackByFn($index)) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"\u5220\u9664\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>", styles: [":host{width:100%}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-infix .mat-mdc-floating-label{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-text-field-wrapper{margin-top:8px}\n"] }]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3JlcGVhdC9yZXBlYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmVwZWF0L3JlcGVhdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBcUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBY25HLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxjQUE0QztJQVJ6Rjs7UUFTVyxtQkFBYyxHQUFHO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0YsQ0FBQztLQUtIO0lBSEMsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQVRVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1HQ2pCcEMsdXdDQW9DTSx5Y0RyQk0sWUFBWSx3SEFBRSxhQUFhLG1MQUFFLGVBQWU7OzJGQUUzQyx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRmllbGRBcnJheVR5cGUsIEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcywgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcblxyXG5pbnRlcmZhY2UgUmVwZWF0UHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICBhZGRUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY21hdC1yZXBlYXQtdHlwZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybWx5TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UmVwZWF0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkVHlwZUNvbmZpZzxSZXBlYXRQcm9wcz4+IHtcclxuICBvdmVycmlkZSBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGFkZFRleHQ6ICfmlrDlop4nXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTJcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuICAgIEBpZihwcm9wcy5sYWJlbCl7XHJcbiAgICA8bGVnZW5kIGNsYXNzPVwidGV4dC1sZ1wiPlxyXG4gICAgICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICAgICAgQGlmKHByb3BzLnJlcXVpcmVkKXtcclxuICAgICAgICA8c3Bhbj4qPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgfVxyXG5cclxuICAgIEBpZihwcm9wcy5kZXNjcmlwdGlvbil7XHJcbiAgICA8cD57eyBwcm9wcy5kZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMiBoLTEgYm9yZGVyLXNvbGlkIGJvcmRlci1iLTJcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHJlcGVhdC1ib2R5XCI+XHJcbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGQuZmllbGRHcm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyByZXBlYXQtaXRlbVwiPlxyXG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIGNsYXNzPVwicmVwZWF0LWZpZWxkXCI+PC9mb3JtbHktZmllbGQ+XHJcbiAgICAgICAgICAgIEBpZighcHJvcHMuZGlzYWJsZWQpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcGwtMiBwcmludDpoaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmUoJGluZGV4KVwiIG1hdFRvb2x0aXA9XCLliKDpmaRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJ3YXJuXCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19vdXRsaW5lOnRyYXNoJ1wiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoIXByb3BzLmRpc2FibGVkKXtcclxuICAgIDxkaXYgY2xhc3M9XCJtdC0yIHByaW50OmhpZGRlblwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZCgpXCI+e3sgcHJvcHMuYWRkVGV4dH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { AsyncPipe } from '@angular/common';
|
|
2
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
5
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
6
|
+
import { FieldType } from '@ngx-formly/material/form-field';
|
|
7
|
+
import { isArray } from 'lodash-es';
|
|
8
|
+
import { ReplaySubject, Subject, of, take, takeUntil } from 'rxjs';
|
|
9
|
+
import { CmatSelectSearchComponent } from 'cmat/components/select-search';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "@angular/material/select";
|
|
13
|
+
import * as i3 from "@angular/material/core";
|
|
14
|
+
import * as i4 from "@angular/forms";
|
|
15
|
+
export class CmatSelectTypeComponent extends FieldType {
|
|
16
|
+
constructor(_http) {
|
|
17
|
+
super();
|
|
18
|
+
this._http = _http;
|
|
19
|
+
this.defaultOptions = {
|
|
20
|
+
props: {
|
|
21
|
+
search: true,
|
|
22
|
+
canNull: false,
|
|
23
|
+
showToggleAllCheckbox: false
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
this.filteredCustomDetails = new ReplaySubject(1);
|
|
27
|
+
this.filteredCache = [];
|
|
28
|
+
this.isIndeterminate = false;
|
|
29
|
+
this.isChecked = false;
|
|
30
|
+
this.multiFilterCtrl = new FormControl('');
|
|
31
|
+
this._urlData = [];
|
|
32
|
+
this._unsubscribeAll = new Subject();
|
|
33
|
+
}
|
|
34
|
+
get datas() {
|
|
35
|
+
if (isArray(this.field.props?.options)) {
|
|
36
|
+
return this._urlData?.length > 0 ? this._urlData : this.field.props?.options || [];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return this._urlData?.length > 0 ? this._urlData : this.optionsData || [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
if (this.field.props?.options && !isArray(this.field.props?.options)) {
|
|
44
|
+
this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
|
|
45
|
+
this.optionsData = data;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const url = this.field.props?.domain?.url;
|
|
49
|
+
if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {
|
|
50
|
+
this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
|
|
51
|
+
if (data) {
|
|
52
|
+
const datas = data.filter((i) => {
|
|
53
|
+
if (this.field.props?.domain?.key)
|
|
54
|
+
return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;
|
|
55
|
+
return false;
|
|
56
|
+
});
|
|
57
|
+
if (datas && this.field.props?.domain?.value) {
|
|
58
|
+
this._urlData = datas[0][this.field.props?.domain?.value];
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this._urlData = [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this._urlData = [];
|
|
66
|
+
}
|
|
67
|
+
this.filteredCache = this.datas.slice();
|
|
68
|
+
this.filteredCustomDetails.next(this.filteredCache);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this._urlData = [];
|
|
73
|
+
this.filteredCache = this.datas.slice();
|
|
74
|
+
this.filteredCustomDetails.next(this.filteredCache);
|
|
75
|
+
}
|
|
76
|
+
of(this.props.multiple).pipe(takeUntil(this._unsubscribeAll))
|
|
77
|
+
.subscribe(() => {
|
|
78
|
+
if (!isArray(this.formControl.value)) {
|
|
79
|
+
const value = [this.formControl.value];
|
|
80
|
+
this.formControl.setValue(value);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this.multiFilterCtrl.valueChanges
|
|
84
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
85
|
+
.subscribe(() => {
|
|
86
|
+
this.filterMulti();
|
|
87
|
+
if (this.props.multiple)
|
|
88
|
+
this.setToggleAllCheckboxState();
|
|
89
|
+
});
|
|
90
|
+
this.formControl.valueChanges
|
|
91
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
92
|
+
.subscribe(() => {
|
|
93
|
+
if (this.props.multiple)
|
|
94
|
+
this.setToggleAllCheckboxState();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
ngOnDestroy() {
|
|
98
|
+
this._unsubscribeAll.next(void (0));
|
|
99
|
+
this._unsubscribeAll.complete();
|
|
100
|
+
}
|
|
101
|
+
getAriaLabelledby() {
|
|
102
|
+
if (this.props.attributes?.['aria-labelledby']) {
|
|
103
|
+
return this.props.attributes['aria-labelledby'];
|
|
104
|
+
}
|
|
105
|
+
return this.formField?._labelId;
|
|
106
|
+
}
|
|
107
|
+
getAriaLabel() {
|
|
108
|
+
return this.props.attributes?.['aria-label'];
|
|
109
|
+
}
|
|
110
|
+
toggleSelectAll(selectAllValue) {
|
|
111
|
+
this.filteredCustomDetails.pipe(take(1), takeUntil(this._unsubscribeAll))
|
|
112
|
+
.subscribe((val) => {
|
|
113
|
+
if (selectAllValue) {
|
|
114
|
+
this.formControl.setValue(val.filter(o => !o.disabled));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.formControl.setValue([]);
|
|
118
|
+
}
|
|
119
|
+
this.formControl.markAsDirty();
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
filterMulti() {
|
|
123
|
+
if (!this.datas) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
let search = this.multiFilterCtrl.value;
|
|
127
|
+
if (!search) {
|
|
128
|
+
this.filteredCache = this.datas.slice();
|
|
129
|
+
this.filteredCustomDetails.next(this.filteredCache);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
search = search.toLowerCase();
|
|
134
|
+
}
|
|
135
|
+
this.filteredCache = this.datas.filter(items => items.value.toString().toLowerCase().indexOf(search) > -1 || items.label.toString().toLowerCase().indexOf(search) > -1);
|
|
136
|
+
this.filteredCustomDetails.next(this.filteredCache);
|
|
137
|
+
}
|
|
138
|
+
setToggleAllCheckboxState() {
|
|
139
|
+
let filteredLength = 0;
|
|
140
|
+
if (this.formControl.value && this.props.search) {
|
|
141
|
+
const cache = this.filteredCache.filter(o => !o.disabled);
|
|
142
|
+
const v = isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];
|
|
143
|
+
cache.forEach((el) => {
|
|
144
|
+
if (v.findIndex((t) => t.value === el.value && t.label === el.label) > -1) {
|
|
145
|
+
filteredLength++;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
this.isIndeterminate = filteredLength > 0 && filteredLength < cache.length;
|
|
149
|
+
this.isChecked = filteredLength > 0 && filteredLength === cache.length;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.isIndeterminate = false;
|
|
153
|
+
this.isChecked = false;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
trackByFn(index) {
|
|
157
|
+
return index;
|
|
158
|
+
}
|
|
159
|
+
compareWithFn(o1, o2) {
|
|
160
|
+
return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;
|
|
161
|
+
}
|
|
162
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatSelectTypeComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatSelectTypeComponent, isStandalone: true, selector: "cmat-select-search-type", usesInheritance: true, ngImport: i0, template: "@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: CmatSelectSearchComponent, selector: "cmat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "showNoFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"], exportAs: ["cmatSelectSearch"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
164
|
+
}
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatSelectTypeComponent, decorators: [{
|
|
166
|
+
type: Component,
|
|
167
|
+
args: [{ selector: 'cmat-select-search-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe], template: "@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track trackByFn($index)) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track trackByFn($index)) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n", styles: [":host{width:100%}\n"] }]
|
|
168
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQXlCMUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQXVDO0lBbUJoRixZQUFvQixLQUFpQjtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQVk7UUFsQjVCLG1CQUFjLEdBQUc7WUFDdEIsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSxJQUFJO2dCQUNaLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQixFQUFFLEtBQUs7YUFDL0I7U0FDSixDQUFDO1FBSUYsMEJBQXFCLEdBQXlCLElBQUksYUFBYSxDQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsb0JBQWUsR0FBZ0IsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbkQsYUFBUSxHQUFPLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRzdELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUN0RjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1NBQzdFO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3JFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxDQUNKLENBQUM7U0FDTDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDMUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxJQUFJLEVBQUU7b0JBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO3dCQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHOzRCQUM3QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQzt3QkFFL0UsT0FBTyxLQUFLLENBQUM7b0JBQ2pCLENBQUMsQ0FDQSxDQUFDO29CQUNGLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFFN0Q7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7cUJBQ3RCO2lCQUVKO3FCQUFNO29CQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN2RDtRQUVELEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWTthQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQ25CLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFXLENBQUM7U0FDN0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBVyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsY0FBdUI7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQ2xDO2FBQ0ksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixJQUFJLGNBQWMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDakM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNWO2FBQU07WUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEssSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBOEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNwRyxjQUFjLEVBQUUsQ0FBQztpQkFDcEI7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxHQUFHLENBQUMsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxDQUFDLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDMUU7YUFBSTtZQUNELElBQUksQ0FBQyxlQUFlLEdBQUUsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUUsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBTyxFQUFFLEVBQU87UUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBL0tRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBHQ3BDcEMsZ3NHQXFFQSw0RURuQ2MsaUJBQWlCLDhCQUFFLGVBQWUscXpCQUFFLHlCQUF5Qiwra0JBQUUsbUJBQW1CLGtoQkFBRSxTQUFTOzsyRkFFOUYsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRTZWxlY3RQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvc2VsZWN0JztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBvZiwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENtYXRTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICdjbWF0L2NvbXBvbmVudHMvc2VsZWN0LXNlYXJjaCc7XHJcblxyXG5pbnRlcmZhY2UgU2VsZWN0UHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzLCBGb3JtbHlGaWVsZFNlbGVjdFByb3BzIHtcclxuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmc/OiBib29sZWFuO1xyXG4gICAgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD86IG51bWJlcjtcclxuICAgIHNlYXJjaDogYm9vbGVhbjtcclxuICAgIGNhbk51bGw6IGJvb2xlYW47XHJcbiAgICBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1zZWxlY3Qtc2VhcmNoLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRDaGVja2JveE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBDbWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0U2VsZWN0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc8U2VsZWN0UHJvcHM+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgIHNlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuTnVsbDogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dUb2dnbGVBbGxDaGVja2JveDogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zRGF0YTogYW55W107XHJcblxyXG4gICAgZmlsdGVyZWRDdXN0b21EZXRhaWxzOiBSZXBsYXlTdWJqZWN0PGFueVtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueVtdPigxKTtcclxuICAgIGZpbHRlcmVkQ2FjaGU6IGFueVtdID0gW107XHJcbiAgICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIGlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgbXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgICBwcml2YXRlIF91cmxEYXRhOiBbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRhdGFzKCk6IGFueVtdIHtcclxuICAgICAgICBpZiAoaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdXJsRGF0YT8ubGVuZ3RoID4gMCA/IHRoaXMuX3VybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91cmxEYXRhPy5sZW5ndGggPiAwID8gdGhpcy5fdXJsRGF0YSA6IHRoaXMub3B0aW9uc0RhdGEgfHwgW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zICYmICFpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0RhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IGRhdGFzWzBdW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWVdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDdXN0b21EZXRhaWxzLm5leHQodGhpcy5maWx0ZXJlZENhY2hlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9mKHRoaXMucHJvcHMubXVsdGlwbGUpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck11bHRpKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubXVsdGlwbGUpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm11bHRpcGxlKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgKDApKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYXR0cmlidXRlcz8uWydhcmlhLWxhYmVsbGVkYnknXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5hdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/Ll9sYWJlbElkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmF0dHJpYnV0ZXM/LlsnYXJpYS1sYWJlbCddIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RBbGwoc2VsZWN0QWxsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5waXBlKFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RBbGxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJNdWx0aSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlYXJjaCA9IHRoaXMubXVsdGlGaWx0ZXJDdHJsLnZhbHVlO1xyXG4gICAgICAgIGlmICghc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEN1c3RvbURldGFpbHMubmV4dCh0aGlzLmZpbHRlcmVkQ2FjaGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLmZpbHRlcihpdGVtcyA9PiBpdGVtcy52YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTEgfHwgaXRlbXMubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSA+IC0xKTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgZmlsdGVyZWRMZW5ndGggPSAwO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICYmIHRoaXMucHJvcHMuc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gdGhpcy5maWx0ZXJlZENhY2hlLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSBpc0FycmF5KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA6IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgIGNhY2hlLmZvckVhY2goKGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodi5maW5kSW5kZXgoKHQ6IHsgdmFsdWU6IGFueTsgbGFiZWw6IGFueTsgfSkgPT4gdC52YWx1ZSA9PT0gZWwudmFsdWUgJiYgdC5sYWJlbCA9PT0gZWwubGFiZWwpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZExlbmd0aCsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmlsdGVyZWRMZW5ndGggPiAwICYmIGZpbHRlcmVkTGVuZ3RoIDwgY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA9PT0gY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBjb21wYXJlV2l0aEZuKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbzEgJiYgbzIgPyBvMT8ubGFiZWwgPT09IG8yPy5sYWJlbCAmJiBvMT8udmFsdWUgPT09IG8yPy52YWx1ZSA6IG8xID09PSBvMjtcclxuICAgIH1cclxufVxyXG4iLCJAaWYocHJvcHMubXVsdGlwbGUpe1xyXG48bWF0LXNlbGVjdCAjbXVsdGlTZWxlY3QgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyPz8nJ1wiIG11bHRpcGxlXHJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIiBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVdpdGhGblwiXHJcbiAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIiBbYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoKVwiIFthcmlhLWxhYmVsbGVkYnldPVwiZ2V0QXJpYUxhYmVsbGVkYnkoKVwiXHJcbiAgICBbZGlzYWJsZU9wdGlvbkNlbnRlcmluZ109XCJwcm9wcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nXCJcclxuICAgIFt0eXBlYWhlYWREZWJvdW5jZUludGVydmFsXT1cInByb3BzLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWxcIlxyXG4gICAgW3BhbmVsQ2xhc3NdPVwiJ292ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbSdcIj5cclxuICAgIEBpZiAoKGZpbHRlcmVkQ3VzdG9tRGV0YWlscyB8IGFzeW5jKTsgYXMgY3VzdG9tRGV0YWlscykge1xyXG4gICAgQGlmIChwcm9wcy5zZWFyY2gpIHsgICAgICAgIFxyXG4gICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbZm9ybUNvbnRyb2xdPVwibXVsdGlGaWx0ZXJDdHJsXCIgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJwcm9wcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY21hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGlmIChwcm9wcy5jYW5OdWxsKSB7XHJcbiAgICA8bWF0LW9wdGlvbj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICBAZm9yIChpIG9mIGN1c3RvbURldGFpbHM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICBAaWYoaS5ncm91cCl7XHJcbiAgICA8bWF0LW9wdGdyb3VwIFtsYWJlbF09XCJpLmxhYmVsXCI+XHJcbiAgICAgICAgQGZvciAoY2hpbGQgb2YgaS5ncm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hpbGRcIiBbZGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAge3sgY2hpbGQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImlcIiBbZGlzYWJsZWRdPVwiaS5kaXNhYmxlZFwiPnt7aS5sYWJlbH19PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG48L21hdC1zZWxlY3Q+XHJcbn1AZWxzZSB7XHJcbjxtYXQtc2VsZWN0ICNtdWx0aVNlbGVjdCBbaWRdPVwiaWRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwicHJvcHMucGxhY2Vob2xkZXI/PycnXCJcclxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aEZuXCJcclxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiIFthcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgpXCIgW2FyaWEtbGFiZWxsZWRieV09XCJnZXRBcmlhTGFiZWxsZWRieSgpXCJcclxuICAgIFtkaXNhYmxlT3B0aW9uQ2VudGVyaW5nXT1cInByb3BzLmRpc2FibGVPcHRpb25DZW50ZXJpbmdcIlxyXG4gICAgW3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWxdPVwicHJvcHMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbFwiXHJcbiAgICBbcGFuZWxDbGFzc109XCInb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tJ1wiPlxyXG4gICAgQGlmICgoZmlsdGVyZWRDdXN0b21EZXRhaWxzIHwgYXN5bmMpOyBhcyBjdXN0b21EZXRhaWxzKSB7XHJcbiAgICBAaWYgKHByb3BzLnNlYXJjaCkge1xyXG4gICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbZm9ybUNvbnRyb2xdPVwibXVsdGlGaWx0ZXJDdHJsXCIgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJwcm9wcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY21hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGlmIChwcm9wcy5jYW5OdWxsKSB7XHJcbiAgICA8bWF0LW9wdGlvbj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICBAZm9yIChpIG9mIGN1c3RvbURldGFpbHM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICBAaWYoaS5ncm91cCl7XHJcbiAgICA8bWF0LW9wdGdyb3VwIFtsYWJlbF09XCJpLmxhYmVsXCI+XHJcbiAgICAgICAgQGZvciAoY2hpbGQgb2YgaS5ncm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hpbGRcIiBbZGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAge3sgY2hpbGQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImlcIiBbZGlzYWJsZWRdPVwiaS5kaXNhYmxlZFwiPnt7aS5sYWJlbH19PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG48L21hdC1zZWxlY3Q+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { FieldType } from '@ngx-formly/material';
|
|
4
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
+
import { CmatSelectTreeComponent } from 'cmat/components/select-tree';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "@angular/forms";
|
|
9
|
+
export class CmatSelectTreeTypeComponent extends FieldType {
|
|
10
|
+
constructor(_http, _changeDetectorRef) {
|
|
11
|
+
super();
|
|
12
|
+
this._http = _http;
|
|
13
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
14
|
+
this.defaultOptions = {
|
|
15
|
+
props: {
|
|
16
|
+
multiple: false,
|
|
17
|
+
search: true,
|
|
18
|
+
canNull: false,
|
|
19
|
+
showToggleAllCheckbox: false,
|
|
20
|
+
expandable: true,
|
|
21
|
+
customTriggerLabelTemplate: '${name}'
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
this.urlData = [];
|
|
25
|
+
this._unsubscribeAll = new Subject();
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
const url = this.field.props?.domain?.url;
|
|
29
|
+
if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {
|
|
30
|
+
this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
|
|
31
|
+
if (data) {
|
|
32
|
+
const datas = data.filter((i) => {
|
|
33
|
+
if (this.field.props?.domain?.key)
|
|
34
|
+
return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;
|
|
35
|
+
return false;
|
|
36
|
+
});
|
|
37
|
+
if (datas && this.field.props?.domain?.value) {
|
|
38
|
+
this.urlData = datas[0][this.field.props?.domain?.value];
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.urlData = [];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.urlData = [];
|
|
46
|
+
}
|
|
47
|
+
this._changeDetectorRef.markForCheck();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.urlData = [];
|
|
52
|
+
this._changeDetectorRef.markForCheck();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
ngOnDestroy() {
|
|
56
|
+
this._unsubscribeAll.next(void 0);
|
|
57
|
+
this._unsubscribeAll.complete();
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatSelectTreeTypeComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatSelectTreeTypeComponent, isStandalone: true, selector: "cmat-select-tree-type", usesInheritance: true, ngImport: i0, template: "<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>", styles: [":host{width:100%}cmat-select-tree-type{display:block;z-index:101}cmat-select-tree-type.hidden{display:none}cmat-select-tree-type .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;display:flex;flex-direction:row}cmat-select-tree-type .cmat-select-search-inner span{display:flex;place-items:center}cmat-select-tree-type .cmat-select-search-no-entries-found{width:100%;text-align:center;border-radius:.25rem;box-shadow:0 2px 8px #00000059}cmat-select-tree-type .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree-type .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree-type .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree-type .mat-mdc-option-pseudo-checkbox{display:none}cmat-select-tree-type .mat-tree-node{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CmatSelectTreeComponent, selector: "cmat-select-tree", inputs: ["id", "dataSource", "noEntriesFoundLabel", "showNoFoundLabel", "multiple", "overallSearchEnabled", "canNull", "customTriggerLabelFn", "customTriggerLabelTemplate", "expandable", "showToggleAllCheckbox", "placeholder", "value", "required", "disabled"], exportAs: ["cmatSelectTree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatSelectTreeTypeComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{ selector: 'cmat-select-tree-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, CmatSelectTreeComponent], template: "<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>", styles: [":host{width:100%}cmat-select-tree-type{display:block;z-index:101}cmat-select-tree-type.hidden{display:none}cmat-select-tree-type .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;display:flex;flex-direction:row}cmat-select-tree-type .cmat-select-search-inner span{display:flex;place-items:center}cmat-select-tree-type .cmat-select-search-no-entries-found{width:100%;text-align:center;border-radius:.25rem;box-shadow:0 2px 8px #00000059}cmat-select-tree-type .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree-type .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree-type .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree-type .mat-mdc-option-pseudo-checkbox{display:none}cmat-select-tree-type .mat-tree-node{cursor:pointer}\n"] }]
|
|
65
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc2VsZWN0LXRyZWUvc2VsZWN0LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc2VsZWN0LXRyZWUvc2VsZWN0LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQXlCdEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLFNBQTJDO0lBY3hGLFlBQW9CLEtBQWlCLEVBQVUsa0JBQXFDO1FBQ2hGLEtBQUssRUFBRSxDQUFDO1FBRFEsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFiM0UsbUJBQWMsR0FBRztZQUN0QixLQUFLLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsTUFBTSxFQUFFLElBQUk7Z0JBQ1osT0FBTyxFQUFFLEtBQUs7Z0JBQ2QscUJBQXFCLEVBQUUsS0FBSztnQkFDNUIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLDBCQUEwQixFQUFFLFNBQVM7YUFDeEM7U0FDSixDQUFDO1FBQ0YsWUFBTyxHQUFPLEVBQUUsQ0FBQztRQUVULG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7SUFHN0QsQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQzNHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUMvRCxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNWLElBQUksSUFBSSxFQUFFO29CQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTt3QkFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRzs0QkFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7d0JBRS9FLE9BQU8sS0FBSyxDQUFDO29CQUNqQixDQUFDLENBQ0EsQ0FBQztvQkFDRixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQzVEO3lCQUFNO3dCQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztpQkFDckI7Z0JBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNDLENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBRWxCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBckRRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLHdHQ2pDeEMsOGFBR3lFLCszQkQ0QjNELG1CQUFtQix1aEJBQUUsdUJBQXVCOzsyRkFFN0MsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRTZWxlY3RQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvc2VsZWN0JztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDbWF0U2VsZWN0VHJlZUNvbXBvbmVudCB9IGZyb20gJ2NtYXQvY29tcG9uZW50cy9zZWxlY3QtdHJlZSc7XHJcblxyXG5pbnRlcmZhY2UgU2VsZWN0VHJlZVByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcywgRm9ybWx5RmllbGRTZWxlY3RQcm9wcyB7XHJcbiAgICBtdWx0aXBsZTogYm9vbGVhbjtcclxuICAgIHNlYXJjaDogYm9vbGVhbjtcclxuICAgIGNhbk51bGw6IGJvb2xlYW47XHJcbiAgICBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gICAgY3VzdG9tVHJpZ2dlckxhYmVsVGVtcGxhdGU6IHN0cmluZztcclxuICAgIGRvbWFpbj86IHtcclxuICAgICAgICB1cmw/OiBzdHJpbmc7XHJcbiAgICAgICAgY29kZT86IHN0cmluZztcclxuICAgICAgICBrZXk/OiBzdHJpbmc7XHJcbiAgICAgICAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXNlbGVjdC10cmVlLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC10cmVlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ21hdFNlbGVjdFRyZWVDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0U2VsZWN0VHJlZVR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNlbGVjdFRyZWVQcm9wcz4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgb3ZlcnJpZGUgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBzZWFyY2g6IHRydWUsXHJcbiAgICAgICAgICAgIGNhbk51bGw6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGZhbHNlLFxyXG4gICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjdXN0b21UcmlnZ2VyTGFiZWxUZW1wbGF0ZTogJyR7bmFtZX0nXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbiAgICB1cmxEYXRhOiBbXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gZGF0YXNbMF1bdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn0iLCI8Y21hdC1zZWxlY3QtdHJlZSBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbZGF0YVNvdXJjZV09XCJ1cmxEYXRhXCIgW2N1c3RvbVRyaWdnZXJMYWJlbFRlbXBsYXRlXT1cIicke25hbWV9J1wiXHJcbiAgICBbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGVcIiBbb3ZlcmFsbFNlYXJjaEVuYWJsZWRdPVwicHJvcHMuc2VhcmNoXCIgW2Nhbk51bGxdPVwicHJvcHMuY2FuTnVsbFwiXHJcbiAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cInByb3BzLnNob3dUb2dnbGVBbGxDaGVja2JveFwiIFtleHBhbmRhYmxlXT1cInByb3BzLmV4cGFuZGFibGVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW3RhYkluZGV4XT1cInByb3BzLnRhYmluZGV4XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCI+PC9jbWF0LXNlbGVjdC10cmVlPiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
6
|
+
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngx-formly/core";
|
|
9
|
+
import * as i2 from "@angular/material/stepper";
|
|
10
|
+
import * as i3 from "@angular/material/button";
|
|
11
|
+
import * as i4 from "@angular/material/icon";
|
|
12
|
+
export class CmatStepperHorizontalTypeComponent extends FieldType {
|
|
13
|
+
isValid(field) {
|
|
14
|
+
if (field.key) {
|
|
15
|
+
if (field.formControl)
|
|
16
|
+
return field.formControl.valid;
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;
|
|
20
|
+
}
|
|
21
|
+
trackByFn(index) {
|
|
22
|
+
return index;
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatStepperHorizontalTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatStepperHorizontalTypeComponent, isStandalone: true, selector: "cmat-stepper-horizontal-type", usesInheritance: true, ngImport: i0, template: "<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">\u4E0A\u4E00\u6B65</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n \u4E0B\u4E00\u6B65\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i2.MatStepperNext, selector: "button[matStepperNext]" }, { kind: "directive", type: i2.MatStepperPrevious, selector: "button[matStepperPrevious]" }, { kind: "directive", type: i2.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatStepperHorizontalTypeComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'cmat-stepper-horizontal-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule], template: "<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">\u4E0A\u4E00\u6B65</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n \u4E0B\u4E00\u6B65\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>", styles: [":host{width:100%}\n"] }]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy9zdGVwcGVyL2hvcml6b250YWwvc3RlcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy9zdGVwcGVyL2hvcml6b250YWwvc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBc0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVcvRixNQUFNLE9BQU8sa0NBQW1DLFNBQVEsU0FBd0M7SUFDNUYsT0FBTyxDQUFDLEtBQXdCO1FBQzVCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFFbkMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0FkUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrR0NoQi9DLHd6Q0E2QnlCLDRFRGZYLFlBQVksd0hBQUUsZ0JBQWdCLHV6QkFBRSxlQUFlLDJOQUFDLG1CQUFtQiw4QkFBQyxhQUFhOzsyRkFFbEYsa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNJLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLG1CQUFtQixFQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFN0ZXBwZXJQcm9wcyB9IGZyb20gJy4uL3N0ZXBwZXIudHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1zdGVwcGVyLWhvcml6b250YWwtdHlwZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6WycuL3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGb3JtbHlNb2R1bGUsIE1hdFN0ZXBwZXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlLE1hdEljb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0U3RlcHBlckhvcml6b250YWxUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxTdGVwcGVyUHJvcHM+PiB7XHJcbiAgICBpc1ZhbGlkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChmaWVsZC5rZXkpIHtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLmZvcm1Db250cm9sKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLmZvcm1Db250cm9sLnZhbGlkO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmllbGQuZmllbGRHcm91cCA/IGZpZWxkLmZpZWxkR3JvdXAuZXZlcnkoZiA9PiB0aGlzLmlzVmFsaWQoZikpIDogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtsaW5lYXJdPVwicHJvcHMuaXNMaW5lYXJcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcHBlckljb249XCJlZGl0XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6cGVuY2lsJ1wiIGNsYXNzPVwiaWNvbi1zaXplLTRcIj48L21hdC1pY29uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImRvbmVcIj5cclxuICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19vdXRsaW5lOmNoZWNrJ1wiIGNsYXNzPVwiaWNvbi1zaXplLTRcIj48L21hdC1pY29uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICBAZm9yIChzdGVwIG9mIGZpZWxkLmZpZWxkR3JvdXA7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICA8bWF0LXN0ZXAgW3N0ZXBDb250cm9sXT1cInN0ZXAuZm9ybUNvbnRyb2whXCIgW2VkaXRhYmxlXT1cInN0ZXAucHJvcHM/LmlzRWRpdGFibGV8fCRsYXN0XCIgW29wdGlvbmFsXT1cInN0ZXAucHJvcHM/LmlzT3B0aW9uYWxcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPnt7IHN0ZXAucHJvcHM/LmxhYmVsfHwnJyB9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTJcIj5cclxuICAgICAgICAgICAgPGZvcm1seS1maWVsZCBbZmllbGRdPVwic3RlcFwiPjwvZm9ybWx5LWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHNwYWNlLXgtMlwiPlxyXG4gICAgICAgICAgICBAaWYoJGluZGV4ICE9PSAwKXtcclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXRTdGVwcGVyUHJldmlvdXMgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiPuS4iuS4gOatpTwvYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYoISRsYXN0KXtcclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXRTdGVwcGVyTmV4dCBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkKHN0ZXApXCI+XHJcbiAgICAgICAgICAgICAgICDkuIvkuIDmraVcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXN0ZXA+XHJcbiAgICB9XHJcblxyXG48L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc3RlcHBlci9zdGVwcGVyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RlcHBlclByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgICBpc0VkaXRhYmxlPzogYm9vbGVhbjtcclxuICAgIGlzTGluZWFyPzogYm9vbGVhbjtcclxuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
6
|
+
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngx-formly/core";
|
|
9
|
+
import * as i2 from "@angular/material/stepper";
|
|
10
|
+
import * as i3 from "@angular/material/button";
|
|
11
|
+
import * as i4 from "@angular/material/icon";
|
|
12
|
+
export class CmatStepperVerticalTypeComponent extends FieldType {
|
|
13
|
+
isValid(field) {
|
|
14
|
+
if (field.key) {
|
|
15
|
+
if (field.formControl)
|
|
16
|
+
return field.formControl.valid;
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;
|
|
20
|
+
}
|
|
21
|
+
trackByFn(index) {
|
|
22
|
+
return index;
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatStepperVerticalTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatStepperVerticalTypeComponent, isStandalone: true, selector: "cmat-stepper-vertical-type", usesInheritance: true, ngImport: i0, template: "<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">\u4E0A\u4E00\u6B65</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n \u4E0B\u4E00\u6B65\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatStepperModule }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i2.MatStepperNext, selector: "button[matStepperNext]" }, { kind: "directive", type: i2.MatStepperPrevious, selector: "button[matStepperPrevious]" }, { kind: "directive", type: i2.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatStepperVerticalTypeComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'cmat-stepper-vertical-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule], template: "<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:pencil'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:check'\" class=\"icon-size-4\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track trackByFn($index)) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 space-x-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious mat-raised-button color=\"primary\" type=\"button\">\u4E0A\u4E00\u6B65</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext mat-raised-button color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n \u4E0B\u4E00\u6B65\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>", styles: [":host{width:100%}\n"] }]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy9zdGVwcGVyL3ZlcnRpY2FsL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc3RlcHBlci92ZXJ0aWNhbC9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFzQyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBVy9GLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxTQUF3QztJQUMxRixPQUFPLENBQUMsS0FBd0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxLQUFLLENBQUMsV0FBVztnQkFDakIsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUVuQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xGLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQWRRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLDZHQ2hCN0MsOHlDQTRCdUIsNEVEZFYsWUFBWSx3SEFBRSxnQkFBZ0IsdXpCQUFFLGVBQWUsMk5BQUMsbUJBQW1CLDhCQUFDLGFBQWE7OzJGQUVqRixnQ0FBZ0M7a0JBUjVDLFNBQVM7K0JBQ0ksNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ3BDLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsbUJBQW1CLEVBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgU3RlcHBlclByb3BzIH0gZnJvbSAnLi4vc3RlcHBlci50eXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXN0ZXBwZXItdmVydGljYWwtdHlwZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6WycuL3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTp0cnVlLFxyXG4gICAgaW1wb3J0czpbRm9ybWx5TW9kdWxlLCBNYXRTdGVwcGVyTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsUmVhY3RpdmVGb3Jtc01vZHVsZSxNYXRJY29uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFN0ZXBwZXJWZXJ0aWNhbFR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFN0ZXBwZXJQcm9wcz4+IHtcclxuICAgIGlzVmFsaWQoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGZpZWxkLmtleSkge1xyXG4gICAgICAgICAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2wpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQuZm9ybUNvbnRyb2wudmFsaWQ7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZC5maWVsZEdyb3VwID8gZmllbGQuZmllbGRHcm91cC5ldmVyeShmID0+IHRoaXMuaXNWYWxpZChmKSkgOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcbn1cclxuIiwiPG1hdC12ZXJ0aWNhbC1zdGVwcGVyIFtsaW5lYXJdPVwicHJvcHMuaXNMaW5lYXJcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImVkaXRcIj5cclxuICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDpwZW5jaWwnXCIgY2xhc3M9XCJpY29uLXNpemUtNFwiPjwvbWF0LWljb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBwZXJJY29uPVwiZG9uZVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX291dGxpbmU6Y2hlY2snXCIgY2xhc3M9XCJpY29uLXNpemUtNFwiPjwvbWF0LWljb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIEBmb3IgKHN0ZXAgb2YgZmllbGQuZmllbGRHcm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgIDxtYXQtc3RlcCBbc3RlcENvbnRyb2xdPVwic3RlcC5mb3JtQ29udHJvbCFcIiBbZWRpdGFibGVdPVwic3RlcC5wcm9wcz8uaXNFZGl0YWJsZXx8JGxhc3RcIiBbb3B0aW9uYWxdPVwic3RlcC5wcm9wcz8uaXNPcHRpb25hbFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+e3sgc3RlcC5wcm9wcz8ubGFiZWx8fCcnIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJzdGVwXCI+PC9mb3JtbHktZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHNwYWNlLXgtMlwiPlxyXG4gICAgICAgICAgICBAaWYoJGluZGV4IT09MCl7XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0U3RlcHBlclByZXZpb3VzIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIj7kuIrkuIDmraU8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmKCEkbGFzdCl7XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0U3RlcHBlck5leHQgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZChzdGVwKVwiPlxyXG4gICAgICAgICAgICAgICAg5LiL5LiA5q2lXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1zdGVwPlxyXG4gICAgfVxyXG48L21hdC12ZXJ0aWNhbC1zdGVwcGVyPiJdfQ==
|