cmat 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/animations/defaults.d.ts +11 -0
- package/animations/drop.d.ts +2 -0
- package/animations/expand-collapse.d.ts +2 -0
- package/animations/fade.d.ts +11 -0
- package/animations/index.d.ts +5 -0
- package/animations/public-api.d.ts +1 -0
- package/animations/shake.d.ts +2 -0
- package/animations/slide.d.ts +9 -0
- package/animations/transform.d.ts +2 -0
- package/animations/zoom.d.ts +3 -0
- package/components/adapter/datetime-adapter.d.ts +45 -0
- package/components/adapter/datetime-formats.d.ts +22 -0
- package/components/adapter/dayjs-date-adapter.d.ts +63 -0
- package/components/adapter/dayjs-date-formats.d.ts +2 -0
- package/components/adapter/dayjs-datetime-adapter.d.ts +22 -0
- package/components/adapter/dayjs-datetime-formats.d.ts +2 -0
- package/components/adapter/index.d.ts +5 -0
- package/components/adapter/native-datetime-adapter.d.ts +31 -0
- package/components/adapter/native-datetime-formats.d.ts +2 -0
- package/components/adapter/public-api.d.ts +8 -0
- package/components/breadcrumb/breadcrumb-item.directive.d.ts +10 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +57 -0
- package/components/breadcrumb/breadcrumb.component.scss +18 -0
- package/components/breadcrumb/breadcrumb.service.d.ts +126 -0
- package/components/breadcrumb/index.d.ts +5 -0
- package/components/breadcrumb/public-api.d.ts +3 -0
- package/components/breadcrumb/types/breadcrumb.config.d.ts +33 -0
- package/components/breadcrumb/types/breadcrumb.d.ts +23 -0
- package/components/card/card.component.d.ts +20 -0
- package/components/card/card.component.scss +63 -0
- package/components/card/card.types.d.ts +1 -0
- package/components/card/index.d.ts +5 -0
- package/components/card/public-api.d.ts +1 -0
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +14 -0
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +43 -0
- package/components/cascade/cascade-list/cascade-list.component.d.ts +52 -0
- package/components/cascade/cascade-list/cascade-list.component.scss +22 -0
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +10 -0
- package/components/cascade/cascade-menu/cascade-menu.component.scss +48 -0
- package/components/cascade/index.d.ts +5 -0
- package/components/cascade/options.interface.d.ts +8 -0
- package/components/cascade/public-api.d.ts +2 -0
- package/components/date-range/date-range.component.d.ts +134 -0
- package/components/date-range/date-range.component.scss +232 -0
- package/components/date-range/index.d.ts +5 -0
- package/components/date-range/public-api.d.ts +1 -0
- package/components/drawer/drawer.component.d.ts +75 -0
- package/components/drawer/drawer.component.scss +133 -0
- package/components/drawer/drawer.service.d.ts +26 -0
- package/components/drawer/drawer.types.d.ts +2 -0
- package/components/drawer/index.d.ts +5 -0
- package/components/drawer/public-api.d.ts +3 -0
- package/components/fullscreen/fullscreen.component.d.ts +18 -0
- package/components/fullscreen/fullscreen.types.d.ts +13 -0
- package/components/fullscreen/index.d.ts +5 -0
- package/components/fullscreen/public-api.d.ts +2 -0
- package/components/highlight/highlight.component.d.ts +21 -0
- package/components/highlight/highlight.component.scss +3 -0
- package/components/highlight/highlight.service.d.ts +7 -0
- package/components/highlight/index.d.ts +5 -0
- package/components/highlight/public-api.d.ts +2 -0
- package/components/masonry/index.d.ts +5 -0
- package/components/masonry/masonry.component.d.ts +13 -0
- package/components/masonry/public-api.d.ts +1 -0
- package/components/material-color-picker/base-color.d.ts +1 -0
- package/components/material-color-picker/index.d.ts +5 -0
- package/components/material-color-picker/material-color-picker.component.d.ts +35 -0
- package/components/material-color-picker/material-color-picker.component.scss +5 -0
- package/components/material-color-picker/public-api.d.ts +2 -0
- package/components/material-color-picker/selected-color.d.ts +5 -0
- package/components/material-datetimepicker/calendar-body.d.ts +43 -0
- package/components/material-datetimepicker/calendar-body.scss +58 -0
- package/components/material-datetimepicker/calendar.d.ts +146 -0
- package/components/material-datetimepicker/calendar.scss +194 -0
- package/components/material-datetimepicker/clock.d.ts +74 -0
- package/components/material-datetimepicker/clock.scss +90 -0
- package/components/material-datetimepicker/datetimepicker-animations.d.ts +4 -0
- package/components/material-datetimepicker/datetimepicker-content.scss +151 -0
- package/components/material-datetimepicker/datetimepicker-errors.d.ts +1 -0
- package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +5 -0
- package/components/material-datetimepicker/datetimepicker-input.d.ts +106 -0
- package/components/material-datetimepicker/datetimepicker-intl.d.ts +51 -0
- package/components/material-datetimepicker/datetimepicker-toggle.d.ts +40 -0
- package/components/material-datetimepicker/datetimepicker-types.d.ts +13 -0
- package/components/material-datetimepicker/datetimepicker.d.ts +195 -0
- package/components/material-datetimepicker/datetimepicker.scss +145 -0
- package/components/material-datetimepicker/index.d.ts +5 -0
- package/components/material-datetimepicker/month-view.d.ts +64 -0
- package/components/material-datetimepicker/multi-year-view.d.ts +74 -0
- package/components/material-datetimepicker/public-api.d.ts +9 -0
- package/components/material-datetimepicker/time.d.ts +129 -0
- package/components/material-datetimepicker/time.scss +82 -0
- package/components/material-datetimepicker/year-view.d.ts +56 -0
- package/components/navigation/horizontal/components/basic/basic.component.d.ts +27 -0
- package/components/navigation/horizontal/components/branch/branch.component.d.ts +39 -0
- package/components/navigation/horizontal/components/divider/divider.component.d.ts +23 -0
- package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +23 -0
- package/components/navigation/horizontal/horizontal.component.d.ts +43 -0
- package/components/navigation/horizontal/horizontal.component.scss +167 -0
- package/components/navigation/index.d.ts +5 -0
- package/components/navigation/navigation.service.d.ts +71 -0
- package/components/navigation/navigation.types.d.ts +34 -0
- package/components/navigation/public-api.d.ts +4 -0
- package/components/navigation/vertical/components/aside/aside.component.d.ts +63 -0
- package/components/navigation/vertical/components/basic/basic.component.d.ts +30 -0
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +74 -0
- package/components/navigation/vertical/components/divider/divider.component.d.ts +26 -0
- package/components/navigation/vertical/components/group/group.component.d.ts +36 -0
- package/components/navigation/vertical/components/spacer/spacer.component.d.ts +26 -0
- package/components/navigation/vertical/styles/appearances/compact.scss +103 -0
- package/components/navigation/vertical/styles/appearances/default.scss +550 -0
- package/components/navigation/vertical/styles/appearances/dense.scss +171 -0
- package/components/navigation/vertical/styles/appearances/thin.scss +91 -0
- package/components/navigation/vertical/vertical.component.d.ts +176 -0
- package/components/navigation/vertical/vertical.component.scss +4 -0
- package/components/pagination/index.d.ts +5 -0
- package/components/pagination/pagination.component.d.ts +24 -0
- package/components/pagination/pagination.directive.d.ts +40 -0
- package/components/pagination/pagination.instance.d.ts +11 -0
- package/components/pagination/pagination.pipe.d.ts +29 -0
- package/components/pagination/pagination.service.d.ts +20 -0
- package/components/pagination/public-api.d.ts +4 -0
- package/components/password-strength/animations/index.d.ts +4 -0
- package/components/password-strength/enum.d.ts +13 -0
- package/components/password-strength/index.d.ts +5 -0
- package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +11 -0
- package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +52 -0
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +16 -0
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +19 -0
- package/components/password-strength/mat-password-strength-validator.d.ts +6 -0
- package/components/password-strength/public-api.d.ts +3 -0
- package/components/password-strength/regexp.class.d.ts +6 -0
- package/components/popover/index.d.ts +5 -0
- package/components/popover/popover.component.d.ts +139 -0
- package/components/popover/popover.component.scss +174 -0
- package/components/popover/popover.errors.d.ts +14 -0
- package/components/popover/popover.interfaces.d.ts +44 -0
- package/components/popover/popover.type.d.ts +5 -0
- package/components/popover/public-api.d.ts +1 -0
- package/components/progress-bar/index.d.ts +5 -0
- package/components/progress-bar/progress-bar.component.d.ts +17 -0
- package/components/progress-bar/progress-bar.component.scss +7 -0
- package/components/progress-bar/public-api.d.ts +1 -0
- package/components/rating/index.d.ts +5 -0
- package/components/rating/public-api.d.ts +1 -0
- package/components/rating/rating.component.d.ts +28 -0
- package/components/rating/rating.component.scss +33 -0
- package/components/select-search/default-options.d.ts +8 -0
- package/components/select-search/index.d.ts +5 -0
- package/components/select-search/public-api.d.ts +2 -0
- package/components/select-search/select-no-entries-found.directive.d.ts +5 -0
- package/components/select-search/select-search-clear.directive.d.ts +5 -0
- package/components/select-search/select-search.component.d.ts +91 -0
- package/components/select-search/select-search.component.scss +126 -0
- package/components/select-tree/index.d.ts +5 -0
- package/components/select-tree/public-api.d.ts +1 -0
- package/components/select-tree/select-tree.component.d.ts +85 -0
- package/components/select-tree/select-tree.component.scss +54 -0
- package/components/select-tree/select-tree.flatnode.d.ts +6 -0
- package/components/select-tree/select-tree.node.d.ts +5 -0
- package/components/timeline/index.d.ts +5 -0
- package/components/timeline/public-api.d.ts +2 -0
- package/components/timeline/timeline-item/timeline-item.component.d.ts +25 -0
- package/components/timeline/timeline-item/timeline-item.component.scss +329 -0
- package/components/timeline/timeline.component.d.ts +32 -0
- package/components/timeline/timeline.component.scss +42 -0
- package/components/toast/index.d.ts +5 -0
- package/components/toast/models/global-config.model.d.ts +12 -0
- package/components/toast/models/toast.model.d.ts +6 -0
- package/components/toast/models/type.model.d.ts +12 -0
- package/components/toast/public-api.d.ts +2 -0
- package/components/toast/toast-modal.component.d.ts +18 -0
- package/components/toast/toast-modal.component.scss +119 -0
- package/components/toast/toast.component.d.ts +17 -0
- package/components/toast/toast.component.scss +62 -0
- package/components/toast/toast.service.d.ts +26 -0
- package/components/transfer-picker/filter/filter.component.d.ts +24 -0
- package/components/transfer-picker/filter/filter.component.scss +40 -0
- package/components/transfer-picker/index.d.ts +5 -0
- package/components/transfer-picker/interface.d.ts +42 -0
- package/components/transfer-picker/public-api.d.ts +7 -0
- package/components/transfer-picker/search/search.component.d.ts +14 -0
- package/components/transfer-picker/search/search.component.scss +7 -0
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +49 -0
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +25 -0
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +12 -0
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +27 -0
- package/components/transfer-picker/transfer-picker.component.d.ts +28 -0
- package/components/transfer-picker/transfer-picker.component.scss +8 -0
- package/components/transfer-picker/transfer-picker.service.d.ts +31 -0
- package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +29 -0
- package/directives/animate-on-scroll/index.d.ts +5 -0
- package/directives/animate-on-scroll/public-api.d.ts +1 -0
- package/directives/animate-on-scroll/scroll.service.d.ts +15 -0
- package/directives/autofocus/autofocus.directive.d.ts +10 -0
- package/directives/autofocus/index.d.ts +5 -0
- package/directives/autofocus/public-api.d.ts +1 -0
- package/directives/debounce/abstract-debounce.directive.d.ts +15 -0
- package/directives/debounce/debounce-click.directive.d.ts +8 -0
- package/directives/debounce/debounce-keyup.directive.d.ts +8 -0
- package/directives/debounce/index.d.ts +5 -0
- package/directives/debounce/public-api.d.ts +2 -0
- package/directives/digit-only/digit-only.directive.d.ts +34 -0
- package/directives/digit-only/index.d.ts +5 -0
- package/directives/digit-only/mask.directive.d.ts +14 -0
- package/directives/digit-only/public-api.d.ts +2 -0
- package/directives/equal-validator/equal-validator.directive.d.ts +14 -0
- package/directives/equal-validator/index.d.ts +5 -0
- package/directives/equal-validator/public-api.d.ts +1 -0
- package/esm2022/animations/cmat-animations.mjs +5 -0
- package/esm2022/animations/defaults.mjs +12 -0
- package/esm2022/animations/drop.mjs +26 -0
- package/esm2022/animations/expand-collapse.mjs +17 -0
- package/esm2022/animations/fade.mjs +170 -0
- package/esm2022/animations/public-api.mjs +19 -0
- package/esm2022/animations/shake.mjs +59 -0
- package/esm2022/animations/slide.mjs +124 -0
- package/esm2022/animations/transform.mjs +16 -0
- package/esm2022/animations/zoom.mjs +38 -0
- package/esm2022/cmat.mjs +5 -0
- package/esm2022/components/adapter/cmat-components-adapter.mjs +5 -0
- package/esm2022/components/adapter/datetime-adapter.mjs +127 -0
- package/esm2022/components/adapter/datetime-formats.mjs +3 -0
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +198 -0
- package/esm2022/components/adapter/dayjs-date-formats.mjs +12 -0
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +100 -0
- package/esm2022/components/adapter/dayjs-datetime-formats.mjs +21 -0
- package/esm2022/components/adapter/native-datetime-adapter.mjs +130 -0
- package/esm2022/components/adapter/native-datetime-formats.mjs +15 -0
- package/esm2022/components/adapter/public-api.mjs +9 -0
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +19 -0
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +95 -0
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +336 -0
- package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +5 -0
- package/esm2022/components/breadcrumb/public-api.mjs +4 -0
- package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +2 -0
- package/esm2022/components/breadcrumb/types/breadcrumb.mjs +2 -0
- package/esm2022/components/card/card.component.mjs +58 -0
- package/esm2022/components/card/card.types.mjs +2 -0
- package/esm2022/components/card/cmat-components-card.mjs +5 -0
- package/esm2022/components/card/public-api.mjs +2 -0
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +53 -0
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +263 -0
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +29 -0
- package/esm2022/components/cascade/cmat-components-cascade.mjs +5 -0
- package/esm2022/components/cascade/options.interface.mjs +2 -0
- package/esm2022/components/cascade/public-api.mjs +3 -0
- package/esm2022/components/date-range/cmat-components-date-range.mjs +5 -0
- package/esm2022/components/date-range/date-range.component.mjs +540 -0
- package/esm2022/components/date-range/public-api.mjs +2 -0
- package/esm2022/components/drawer/cmat-components-drawer.mjs +5 -0
- package/esm2022/components/drawer/drawer.component.mjs +301 -0
- package/esm2022/components/drawer/drawer.service.mjs +41 -0
- package/esm2022/components/drawer/drawer.types.mjs +2 -0
- package/esm2022/components/drawer/public-api.mjs +4 -0
- package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +5 -0
- package/esm2022/components/fullscreen/fullscreen.component.mjs +101 -0
- package/esm2022/components/fullscreen/fullscreen.types.mjs +2 -0
- package/esm2022/components/fullscreen/public-api.mjs +3 -0
- package/esm2022/components/highlight/cmat-components-highlight.mjs +5 -0
- package/esm2022/components/highlight/highlight.component.mjs +80 -0
- package/esm2022/components/highlight/highlight.service.mjs +47 -0
- package/esm2022/components/highlight/public-api.mjs +3 -0
- package/esm2022/components/masonry/cmat-components-masonry.mjs +5 -0
- package/esm2022/components/masonry/masonry.component.mjs +54 -0
- package/esm2022/components/masonry/public-api.mjs +2 -0
- package/esm2022/components/material-color-picker/base-color.mjs +13 -0
- package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +5 -0
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +138 -0
- package/esm2022/components/material-color-picker/public-api.mjs +3 -0
- package/esm2022/components/material-color-picker/selected-color.mjs +3 -0
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +80 -0
- package/esm2022/components/material-datetimepicker/calendar.mjs +678 -0
- package/esm2022/components/material-datetimepicker/clock.mjs +293 -0
- package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +5 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +34 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +6 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +8 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +340 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +63 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +88 -0
- package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +2 -0
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +534 -0
- package/esm2022/components/material-datetimepicker/month-view.mjs +146 -0
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +198 -0
- package/esm2022/components/material-datetimepicker/public-api.mjs +10 -0
- package/esm2022/components/material-datetimepicker/time.mjs +456 -0
- package/esm2022/components/material-datetimepicker/year-view.mjs +125 -0
- package/esm2022/components/navigation/cmat-components-navigation.mjs +5 -0
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +70 -0
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +83 -0
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +47 -0
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +47 -0
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +88 -0
- package/esm2022/components/navigation/navigation.service.mjs +140 -0
- package/esm2022/components/navigation/navigation.types.mjs +3 -0
- package/esm2022/components/navigation/public-api.mjs +5 -0
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +162 -0
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +76 -0
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +279 -0
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +56 -0
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +79 -0
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +56 -0
- package/esm2022/components/navigation/vertical/vertical.component.mjs +586 -0
- package/esm2022/components/pagination/cmat-components-pagination.mjs +5 -0
- package/esm2022/components/pagination/pagination.component.mjs +71 -0
- package/esm2022/components/pagination/pagination.directive.mjs +197 -0
- package/esm2022/components/pagination/pagination.instance.mjs +2 -0
- package/esm2022/components/pagination/pagination.pipe.mjs +100 -0
- package/esm2022/components/pagination/pagination.service.mjs +90 -0
- package/esm2022/components/pagination/public-api.mjs +5 -0
- package/esm2022/components/password-strength/animations/index.mjs +48 -0
- package/esm2022/components/password-strength/cmat-components-password-strength.mjs +5 -0
- package/esm2022/components/password-strength/enum.mjs +17 -0
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +27 -0
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +206 -0
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +151 -0
- package/esm2022/components/password-strength/mat-password-strength-validator.mjs +36 -0
- package/esm2022/components/password-strength/public-api.mjs +4 -0
- package/esm2022/components/password-strength/regexp.class.mjs +8 -0
- package/esm2022/components/popover/cmat-components-popover.mjs +5 -0
- package/esm2022/components/popover/popover.component.mjs +350 -0
- package/esm2022/components/popover/popover.errors.mjs +27 -0
- package/esm2022/components/popover/popover.interfaces.mjs +2 -0
- package/esm2022/components/popover/popover.type.mjs +2 -0
- package/esm2022/components/popover/public-api.mjs +2 -0
- package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +5 -0
- package/esm2022/components/progress-bar/progress-bar.component.mjs +55 -0
- package/esm2022/components/progress-bar/public-api.mjs +2 -0
- package/esm2022/components/rating/cmat-components-rating.mjs +5 -0
- package/esm2022/components/rating/public-api.mjs +2 -0
- package/esm2022/components/rating/rating.component.mjs +91 -0
- package/esm2022/components/select-search/cmat-components-select-search.mjs +5 -0
- package/esm2022/components/select-search/default-options.mjs +16 -0
- package/esm2022/components/select-search/public-api.mjs +3 -0
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +14 -0
- package/esm2022/components/select-search/select-search-clear.directive.mjs +14 -0
- package/esm2022/components/select-search/select-search.component.mjs +488 -0
- package/esm2022/components/select-tree/cmat-components-select-tree.mjs +5 -0
- package/esm2022/components/select-tree/public-api.mjs +2 -0
- package/esm2022/components/select-tree/select-tree.component.mjs +458 -0
- package/esm2022/components/select-tree/select-tree.flatnode.mjs +3 -0
- package/esm2022/components/select-tree/select-tree.node.mjs +3 -0
- package/esm2022/components/timeline/cmat-components-timeline.mjs +5 -0
- package/esm2022/components/timeline/public-api.mjs +3 -0
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +68 -0
- package/esm2022/components/timeline/timeline.component.mjs +114 -0
- package/esm2022/components/toast/cmat-components-toast.mjs +5 -0
- package/esm2022/components/toast/models/global-config.model.mjs +2 -0
- package/esm2022/components/toast/models/toast.model.mjs +2 -0
- package/esm2022/components/toast/models/type.model.mjs +2 -0
- package/esm2022/components/toast/public-api.mjs +3 -0
- package/esm2022/components/toast/toast-modal.component.mjs +53 -0
- package/esm2022/components/toast/toast.component.mjs +30 -0
- package/esm2022/components/toast/toast.service.mjs +122 -0
- package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +5 -0
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +85 -0
- package/esm2022/components/transfer-picker/interface.mjs +17 -0
- package/esm2022/components/transfer-picker/public-api.mjs +8 -0
- package/esm2022/components/transfer-picker/search/search.component.mjs +34 -0
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +178 -0
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +34 -0
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +82 -0
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +134 -0
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +126 -0
- package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +5 -0
- package/esm2022/directives/animate-on-scroll/public-api.mjs +2 -0
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +38 -0
- package/esm2022/directives/autofocus/autofocus.directive.mjs +20 -0
- package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +5 -0
- package/esm2022/directives/autofocus/public-api.mjs +2 -0
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +34 -0
- package/esm2022/directives/debounce/cmat-directives-debounce.mjs +5 -0
- package/esm2022/directives/debounce/debounce-click.directive.mjs +25 -0
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +25 -0
- package/esm2022/directives/debounce/public-api.mjs +3 -0
- package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +5 -0
- package/esm2022/directives/digit-only/digit-only.directive.mjs +282 -0
- package/esm2022/directives/digit-only/mask.directive.mjs +69 -0
- package/esm2022/directives/digit-only/public-api.mjs +3 -0
- package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +5 -0
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +54 -0
- package/esm2022/directives/equal-validator/public-api.mjs +2 -0
- package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +5 -0
- package/esm2022/lib/mock-api/mock-api.constants.mjs +3 -0
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +73 -0
- package/esm2022/lib/mock-api/mock-api.request-handler.mjs +48 -0
- package/esm2022/lib/mock-api/mock-api.service.mjs +93 -0
- package/esm2022/lib/mock-api/mock-api.types.mjs +2 -0
- package/esm2022/lib/mock-api/mock-api.utils.mjs +17 -0
- package/esm2022/lib/mock-api/public-api.mjs +6 -0
- package/esm2022/pipes/bytes/bytes.pipe.mjs +25 -0
- package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +5 -0
- package/esm2022/pipes/bytes/public-api.mjs +2 -0
- package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +5 -0
- package/esm2022/pipes/date-format/date-format.pipe.mjs +18 -0
- package/esm2022/pipes/date-format/public-api.mjs +2 -0
- package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +5 -0
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +23 -0
- package/esm2022/pipes/find-by-key/public-api.mjs +2 -0
- package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +5 -0
- package/esm2022/pipes/group-by/group-by.pipe.mjs +29 -0
- package/esm2022/pipes/group-by/public-api.mjs +2 -0
- package/esm2022/pipes/keys/cmat-pipes-keys.mjs +5 -0
- package/esm2022/pipes/keys/keys.pipe.mjs +26 -0
- package/esm2022/pipes/keys/public-api.mjs +2 -0
- package/esm2022/pipes/secure/cmat-pipes-secure.mjs +5 -0
- package/esm2022/pipes/secure/public-api.mjs +2 -0
- package/esm2022/pipes/secure/secure-pipe.mjs +43 -0
- package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +5 -0
- package/esm2022/pipes/uppercase/public-api.mjs +2 -0
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +17 -0
- package/esm2022/public-api.mjs +2 -0
- package/esm2022/services/alert/alert.dialog.mjs +12 -0
- package/esm2022/services/alert/alert.message.mjs +9 -0
- package/esm2022/services/alert/alert.service.mjs +165 -0
- package/esm2022/services/alert/cmat-services-alert.mjs +5 -0
- package/esm2022/services/alert/enum.mjs +15 -0
- package/esm2022/services/alert/public-api.mjs +5 -0
- package/esm2022/services/config/cmat-services-config.mjs +5 -0
- package/esm2022/services/config/config.constants.mjs +3 -0
- package/esm2022/services/config/config.service.mjs +35 -0
- package/esm2022/services/config/public-api.mjs +4 -0
- package/esm2022/services/config/urlStateConfig.service.mjs +30 -0
- package/esm2022/services/confirmation/cmat-services-confirmation.mjs +5 -0
- package/esm2022/services/confirmation/confirmation.service.mjs +51 -0
- package/esm2022/services/confirmation/confirmation.types.mjs +2 -0
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +25 -0
- package/esm2022/services/confirmation/public-api.mjs +3 -0
- package/esm2022/services/data/cmat-services-data.mjs +5 -0
- package/esm2022/services/data/data.service.mjs +169 -0
- package/esm2022/services/data/public-api.mjs +2 -0
- package/esm2022/services/loading/cmat-services-loading.mjs +5 -0
- package/esm2022/services/loading/loading.interceptor.mjs +29 -0
- package/esm2022/services/loading/loading.service.mjs +72 -0
- package/esm2022/services/loading/public-api.mjs +3 -0
- package/esm2022/services/local-storage/cmat-services-local-storage.mjs +5 -0
- package/esm2022/services/local-storage/local-storage.service.mjs +22 -0
- package/esm2022/services/local-storage/public-api.mjs +2 -0
- package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +5 -0
- package/esm2022/services/media-watcher/media-watcher.service.mjs +55 -0
- package/esm2022/services/media-watcher/public-api.mjs +2 -0
- package/esm2022/services/platform/cmat-services-platform.mjs +5 -0
- package/esm2022/services/platform/platform.service.mjs +46 -0
- package/esm2022/services/platform/public-api.mjs +2 -0
- package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +5 -0
- package/esm2022/services/splash-screen/public-api.mjs +2 -0
- package/esm2022/services/splash-screen/splash-screen.service.mjs +42 -0
- package/esm2022/services/title/cmat-services-title.mjs +5 -0
- package/esm2022/services/title/public-api.mjs +2 -0
- package/esm2022/services/title/title.service.mjs +46 -0
- package/esm2022/services/translation/cmat-services-translation.mjs +5 -0
- package/esm2022/services/translation/public-api.mjs +2 -0
- package/esm2022/services/translation/translation.service.mjs +62 -0
- package/esm2022/services/utils/cmat-services-utils.mjs +5 -0
- package/esm2022/services/utils/public-api.mjs +2 -0
- package/esm2022/services/utils/utils.service.mjs +391 -0
- package/esm2022/validators/cmat-validators.mjs +5 -0
- package/esm2022/validators/public-api.mjs +2 -0
- package/esm2022/validators/validators.mjs +33 -0
- package/esm2022/version/cmat-version.mjs +5 -0
- package/esm2022/version/public-api.mjs +2 -0
- package/esm2022/version/version.mjs +11 -0
- package/fesm2022/cmat-animations.mjs +466 -0
- package/fesm2022/cmat-animations.mjs.map +1 -0
- package/fesm2022/cmat-components-adapter.mjs +600 -0
- package/fesm2022/cmat-components-adapter.mjs.map +1 -0
- package/fesm2022/cmat-components-breadcrumb.mjs +449 -0
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/cmat-components-card.mjs +65 -0
- package/fesm2022/cmat-components-card.mjs.map +1 -0
- package/fesm2022/cmat-components-cascade.mjs +334 -0
- package/fesm2022/cmat-components-cascade.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +547 -0
- package/fesm2022/cmat-components-date-range.mjs.map +1 -0
- package/fesm2022/cmat-components-drawer.mjs +346 -0
- package/fesm2022/cmat-components-drawer.mjs.map +1 -0
- package/fesm2022/cmat-components-fullscreen.mjs +108 -0
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -0
- package/fesm2022/cmat-components-highlight.mjs +131 -0
- package/fesm2022/cmat-components-highlight.mjs.map +1 -0
- package/fesm2022/cmat-components-masonry.mjs +61 -0
- package/fesm2022/cmat-components-masonry.mjs.map +1 -0
- package/fesm2022/cmat-components-material-color-picker.mjs +160 -0
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -0
- package/fesm2022/cmat-components-material-datetimepicker.mjs +2976 -0
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -0
- package/fesm2022/cmat-components-navigation.mjs +1656 -0
- package/fesm2022/cmat-components-navigation.mjs.map +1 -0
- package/fesm2022/cmat-components-pagination.mjs +455 -0
- package/fesm2022/cmat-components-pagination.mjs.map +1 -0
- package/fesm2022/cmat-components-password-strength.mjs +489 -0
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -0
- package/fesm2022/cmat-components-popover.mjs +383 -0
- package/fesm2022/cmat-components-popover.mjs.map +1 -0
- package/fesm2022/cmat-components-progress-bar.mjs +62 -0
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -0
- package/fesm2022/cmat-components-rating.mjs +98 -0
- package/fesm2022/cmat-components-rating.mjs.map +1 -0
- package/fesm2022/cmat-components-select-search.mjs +531 -0
- package/fesm2022/cmat-components-select-search.mjs.map +1 -0
- package/fesm2022/cmat-components-select-tree.mjs +467 -0
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -0
- package/fesm2022/cmat-components-timeline.mjs +186 -0
- package/fesm2022/cmat-components-timeline.mjs.map +1 -0
- package/fesm2022/cmat-components-toast.mjs +205 -0
- package/fesm2022/cmat-components-toast.mjs.map +1 -0
- package/fesm2022/cmat-components-transfer-picker.mjs +536 -0
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -0
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +166 -0
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -0
- package/fesm2022/cmat-directives-autofocus.mjs +27 -0
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -0
- package/fesm2022/cmat-directives-debounce.mjs +85 -0
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -0
- package/fesm2022/cmat-directives-digit-only.mjs +356 -0
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -0
- package/fesm2022/cmat-directives-equal-validator.mjs +61 -0
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -0
- package/fesm2022/cmat-lib-mock-api.mjs +232 -0
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -0
- package/fesm2022/cmat-pipes-bytes.mjs +32 -0
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -0
- package/fesm2022/cmat-pipes-date-format.mjs +25 -0
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -0
- package/fesm2022/cmat-pipes-find-by-key.mjs +30 -0
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -0
- package/fesm2022/cmat-pipes-group-by.mjs +36 -0
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -0
- package/fesm2022/cmat-pipes-keys.mjs +33 -0
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -0
- package/fesm2022/cmat-pipes-secure.mjs +50 -0
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -0
- package/fesm2022/cmat-pipes-uppercase.mjs +24 -0
- package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -0
- package/fesm2022/cmat-services-alert.mjs +207 -0
- package/fesm2022/cmat-services-alert.mjs.map +1 -0
- package/fesm2022/cmat-services-config.mjs +69 -0
- package/fesm2022/cmat-services-config.mjs.map +1 -0
- package/fesm2022/cmat-services-confirmation.mjs +79 -0
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -0
- package/fesm2022/cmat-services-data.mjs +176 -0
- package/fesm2022/cmat-services-data.mjs.map +1 -0
- package/fesm2022/cmat-services-loading.mjs +104 -0
- package/fesm2022/cmat-services-loading.mjs.map +1 -0
- package/fesm2022/cmat-services-local-storage.mjs +29 -0
- package/fesm2022/cmat-services-local-storage.mjs.map +1 -0
- package/fesm2022/cmat-services-media-watcher.mjs +62 -0
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -0
- package/fesm2022/cmat-services-platform.mjs +53 -0
- package/fesm2022/cmat-services-platform.mjs.map +1 -0
- package/fesm2022/cmat-services-splash-screen.mjs +49 -0
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -0
- package/fesm2022/cmat-services-title.mjs +53 -0
- package/fesm2022/cmat-services-title.mjs.map +1 -0
- package/fesm2022/cmat-services-translation.mjs +69 -0
- package/fesm2022/cmat-services-translation.mjs.map +1 -0
- package/fesm2022/cmat-services-utils.mjs +398 -0
- package/fesm2022/cmat-services-utils.mjs.map +1 -0
- package/fesm2022/cmat-validators.mjs +39 -0
- package/fesm2022/cmat-validators.mjs.map +1 -0
- package/fesm2022/cmat-version.mjs +17 -0
- package/fesm2022/cmat-version.mjs.map +1 -0
- package/fesm2022/cmat.mjs +4 -0
- package/fesm2022/cmat.mjs.map +1 -0
- package/icons/CSV.svg +3 -0
- package/icons/EXCEL.svg +3 -0
- package/icons/FILE.svg +3 -0
- package/icons/GIF.svg +3 -0
- package/icons/JPG.svg +3 -0
- package/icons/PDF.svg +3 -0
- package/icons/PNG.svg +3 -0
- package/icons/PPT.svg +3 -0
- package/icons/TEXT.svg +3 -0
- package/icons/VIDEO.svg +3 -0
- package/icons/WORD.svg +3 -0
- package/icons/ZIP.svg +3 -0
- package/icons/arrow-cursor.svg +3 -0
- package/icons/material-icons/heroicons-outline.svg +893 -0
- package/icons/material-icons/heroicons-solid.svg +958 -0
- package/icons/material-icons/material-outline.svg +3586 -0
- package/icons/material-icons/material-solid.svg +3586 -0
- package/index.d.ts +5 -0
- package/lib/mock-api/index.d.ts +5 -0
- package/lib/mock-api/mock-api.constants.d.ts +2 -0
- package/lib/mock-api/mock-api.interceptor.d.ts +12 -0
- package/lib/mock-api/mock-api.request-handler.d.ts +18 -0
- package/lib/mock-api/mock-api.service.d.ts +22 -0
- package/lib/mock-api/mock-api.types.d.ts +9 -0
- package/lib/mock-api/mock-api.utils.d.ts +3 -0
- package/lib/mock-api/public-api.d.ts +5 -0
- package/package.json +344 -0
- package/pipes/bytes/bytes.pipe.d.ts +7 -0
- package/pipes/bytes/index.d.ts +5 -0
- package/pipes/bytes/public-api.d.ts +1 -0
- package/pipes/date-format/date-format.pipe.d.ts +7 -0
- package/pipes/date-format/index.d.ts +5 -0
- package/pipes/date-format/public-api.d.ts +1 -0
- package/pipes/find-by-key/find-by-key.pipe.d.ts +7 -0
- package/pipes/find-by-key/index.d.ts +5 -0
- package/pipes/find-by-key/public-api.d.ts +1 -0
- package/pipes/group-by/group-by.pipe.d.ts +7 -0
- package/pipes/group-by/index.d.ts +5 -0
- package/pipes/group-by/public-api.d.ts +1 -0
- package/pipes/keys/index.d.ts +5 -0
- package/pipes/keys/keys.pipe.d.ts +7 -0
- package/pipes/keys/public-api.d.ts +1 -0
- package/pipes/secure/index.d.ts +5 -0
- package/pipes/secure/public-api.d.ts +1 -0
- package/pipes/secure/secure-pipe.d.ts +18 -0
- package/pipes/uppercase/index.d.ts +5 -0
- package/pipes/uppercase/public-api.d.ts +1 -0
- package/pipes/uppercase/uppercase.pipe.d.ts +7 -0
- package/public-api.d.ts +1 -0
- package/services/alert/alert.dialog.d.ts +11 -0
- package/services/alert/alert.message.d.ts +8 -0
- package/services/alert/alert.service.d.ts +37 -0
- package/services/alert/enum.d.ts +12 -0
- package/services/alert/index.d.ts +5 -0
- package/services/alert/public-api.d.ts +4 -0
- package/services/config/config.constants.d.ts +6 -0
- package/services/config/config.service.d.ts +11 -0
- package/services/config/index.d.ts +5 -0
- package/services/config/public-api.d.ts +3 -0
- package/services/config/urlStateConfig.service.d.ts +10 -0
- package/services/confirmation/confirmation.service.d.ts +12 -0
- package/services/confirmation/confirmation.types.d.ts +21 -0
- package/services/confirmation/dialog/dialog.component.d.ts +10 -0
- package/services/confirmation/index.d.ts +5 -0
- package/services/confirmation/public-api.d.ts +2 -0
- package/services/data/data.service.d.ts +20 -0
- package/services/data/index.d.ts +5 -0
- package/services/data/public-api.d.ts +1 -0
- package/services/loading/index.d.ts +5 -0
- package/services/loading/loading.interceptor.d.ts +12 -0
- package/services/loading/loading.service.d.ts +24 -0
- package/services/loading/public-api.d.ts +2 -0
- package/services/local-storage/index.d.ts +5 -0
- package/services/local-storage/local-storage.service.d.ts +8 -0
- package/services/local-storage/public-api.d.ts +1 -0
- package/services/media-watcher/index.d.ts +5 -0
- package/services/media-watcher/media-watcher.service.d.ts +20 -0
- package/services/media-watcher/public-api.d.ts +1 -0
- package/services/platform/index.d.ts +5 -0
- package/services/platform/platform.service.d.ts +9 -0
- package/services/platform/public-api.d.ts +1 -0
- package/services/splash-screen/index.d.ts +5 -0
- package/services/splash-screen/public-api.d.ts +1 -0
- package/services/splash-screen/splash-screen.service.d.ts +14 -0
- package/services/title/index.d.ts +5 -0
- package/services/title/public-api.d.ts +1 -0
- package/services/title/title.service.d.ts +13 -0
- package/services/translation/index.d.ts +5 -0
- package/services/translation/public-api.d.ts +1 -0
- package/services/translation/translation.service.d.ts +20 -0
- package/services/utils/index.d.ts +5 -0
- package/services/utils/public-api.d.ts +1 -0
- package/services/utils/utils.service.d.ts +57 -0
- package/styles/components/input.scss +42 -0
- package/styles/main.scss +9 -0
- package/styles/overrides/angular-material.scss +1403 -0
- package/styles/overrides/fullcalendar.scss +550 -0
- package/styles/overrides/highlightjs.scss +81 -0
- package/styles/styles.scss +3 -0
- package/styles/tailwind.scss +86 -0
- package/styles/themes.scss +164 -0
- package/styles/user-themes.scss +1 -0
- package/tailwind/plugins/icon-size.js +49 -0
- package/tailwind/plugins/theming.js +256 -0
- package/tailwind/plugins/utilities.js +66 -0
- package/tailwind/utils/generate-contrasts.js +29 -0
- package/tailwind/utils/generate-palette.js +100 -0
- package/tailwind/utils/json-to-sass-map.js +67 -0
- package/validators/index.d.ts +5 -0
- package/validators/public-api.d.ts +1 -0
- package/validators/validators.d.ts +5 -0
- package/version/index.d.ts +5 -0
- package/version/public-api.d.ts +1 -0
- package/version/version.d.ts +9 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './select-tree.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9zZWxlY3QtdHJlZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlbGVjdC10cmVlLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { merge, ReplaySubject, Subject } from 'rxjs';
|
|
4
|
+
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
6
|
+
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
7
|
+
import { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';
|
|
8
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
9
|
+
import { CmatSelectTreeFlatNode } from './select-tree.flatnode';
|
|
10
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
11
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
12
|
+
import { CmatSelectSearchComponent } from 'cmat/components/select-search';
|
|
13
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
14
|
+
import { NgIf, NgFor, NgClass, AsyncPipe, NgStyle } from '@angular/common';
|
|
15
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
16
|
+
import { isNil } from 'lodash-es';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "@angular/material/form-field";
|
|
19
|
+
import * as i2 from "@angular/material/icon";
|
|
20
|
+
import * as i3 from "@angular/material/select";
|
|
21
|
+
import * as i4 from "@angular/material/core";
|
|
22
|
+
import * as i5 from "@angular/forms";
|
|
23
|
+
import * as i6 from "@angular/material/tree";
|
|
24
|
+
import * as i7 from "@angular/material/button";
|
|
25
|
+
import * as i8 from "@angular/material/checkbox";
|
|
26
|
+
export class CmatSelectTreeComponent {
|
|
27
|
+
constructor(_cd) {
|
|
28
|
+
this._cd = _cd;
|
|
29
|
+
this.showLabel = true;
|
|
30
|
+
this.noEntriesFoundLabel = '无结果';
|
|
31
|
+
this.showNoFoundLabel = true;
|
|
32
|
+
this.placeholder = '部门';
|
|
33
|
+
this.prefixIcon = 'heroicons_solid:building-library';
|
|
34
|
+
this.overallSearchEnabled = true;
|
|
35
|
+
this.canNull = false;
|
|
36
|
+
this.showToggleAllCheckbox = false;
|
|
37
|
+
this.flatNodeMap = new Map();
|
|
38
|
+
this.nestedNodeMap = new Map();
|
|
39
|
+
this.selectedParent = null;
|
|
40
|
+
this.checklistSelection = new SelectionModel(true);
|
|
41
|
+
this.isIndeterminate = false;
|
|
42
|
+
this.isChecked = false;
|
|
43
|
+
this.dataCount = 0;
|
|
44
|
+
this.matSelectData = new ReplaySubject(1);
|
|
45
|
+
this._controlValueAccessorKeys = [
|
|
46
|
+
'formControl',
|
|
47
|
+
'formControlName'
|
|
48
|
+
];
|
|
49
|
+
this._unsubscribeAll = new Subject();
|
|
50
|
+
this.getLevel = (node) => node.level;
|
|
51
|
+
this.isExpandable = (node) => node.expandable;
|
|
52
|
+
this.getChildren = (node) => node.children;
|
|
53
|
+
this.hasChild = (_, _nodeData) => _nodeData.expandable;
|
|
54
|
+
this.hasNoContent = (_, _nodeData) => _nodeData.name === '';
|
|
55
|
+
this.transformer = (node, level) => {
|
|
56
|
+
const existingNode = this.nestedNodeMap.get(node);
|
|
57
|
+
const flatNode = existingNode && existingNode.name === node.name
|
|
58
|
+
? existingNode
|
|
59
|
+
: new CmatSelectTreeFlatNode();
|
|
60
|
+
flatNode.id = node.id;
|
|
61
|
+
flatNode.name = node.name;
|
|
62
|
+
flatNode.level = level;
|
|
63
|
+
flatNode.expandable = !!node.children && node.children.length > 0;
|
|
64
|
+
this.flatNodeMap.set(flatNode, node);
|
|
65
|
+
this.nestedNodeMap.set(node, flatNode);
|
|
66
|
+
return flatNode;
|
|
67
|
+
};
|
|
68
|
+
this.overallFilterControl = new FormControl();
|
|
69
|
+
this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel, this.isExpandable, this.getChildren);
|
|
70
|
+
this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
|
|
71
|
+
this.treeDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
|
|
72
|
+
}
|
|
73
|
+
ngOnInit() {
|
|
74
|
+
this.multiple = this.multiple || false;
|
|
75
|
+
this.required = this.required || false;
|
|
76
|
+
this.treeDataSource.data = this.dataSource;
|
|
77
|
+
this.dataCount = this.treeControl.dataNodes.length;
|
|
78
|
+
this.matSelectData.next(this.treeControl.dataNodes);
|
|
79
|
+
if (this.expandable) {
|
|
80
|
+
this.treeControl.expandAll();
|
|
81
|
+
}
|
|
82
|
+
let panelClass = '';
|
|
83
|
+
if (!this.overallSearchEnabled) {
|
|
84
|
+
panelClass = 'cmat-select-search-panel overflow-auto md:overflow-hidden';
|
|
85
|
+
}
|
|
86
|
+
if (this._matSelect.panelClass) {
|
|
87
|
+
if (Array.isArray(this._matSelect.panelClass)) {
|
|
88
|
+
this._matSelect.panelClass.push(panelClass);
|
|
89
|
+
}
|
|
90
|
+
else if (typeof this._matSelect.panelClass === 'string') {
|
|
91
|
+
this._matSelect.panelClass = [this._matSelect.panelClass, panelClass];
|
|
92
|
+
}
|
|
93
|
+
else if (typeof this._matSelect.panelClass === 'object') {
|
|
94
|
+
this._matSelect.panelClass.entries[panelClass] = true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this._matSelect.panelClass = panelClass;
|
|
99
|
+
}
|
|
100
|
+
this._matSelect.openedChange
|
|
101
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
102
|
+
.subscribe((opened) => {
|
|
103
|
+
if (opened && this.multiple) {
|
|
104
|
+
this.checklistSelection.selected.forEach((node) => {
|
|
105
|
+
if (node.expandable) {
|
|
106
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
107
|
+
this.checklistSelection.select(...descendants);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (!opened) {
|
|
112
|
+
if (this.overallSearchEnabled) {
|
|
113
|
+
this._resetFilters();
|
|
114
|
+
}
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
if (!isNil(this.checklistSelection.selected)) {
|
|
117
|
+
if (this.multiple) {
|
|
118
|
+
const findOutNode = [];
|
|
119
|
+
this.checklistSelection.selected.forEach((node) => {
|
|
120
|
+
const parentNode = this.getParentNode(node);
|
|
121
|
+
if (parentNode && this.checklistSelection.isSelected(parentNode)) {
|
|
122
|
+
findOutNode.push(node);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
findOutNode.forEach((node) => {
|
|
126
|
+
this.checklistSelection.deselect(node);
|
|
127
|
+
});
|
|
128
|
+
this._matSelect.writeValue(this.checklistSelection.selected);
|
|
129
|
+
if (this._matSelect.value !== this.checklistSelection.selected) {
|
|
130
|
+
this._matSelect.value = this.checklistSelection.selected;
|
|
131
|
+
}
|
|
132
|
+
this._matSelect._onChange(this.checklistSelection.selected);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
if (this.checklistSelection.selected && this.checklistSelection.selected.length > 0) {
|
|
136
|
+
this._matSelect.writeValue(this.checklistSelection.selected[0]);
|
|
137
|
+
if (this._matSelect.value !== this.checklistSelection.selected[0]) {
|
|
138
|
+
this._matSelect.value = this.checklistSelection.selected[0];
|
|
139
|
+
}
|
|
140
|
+
this._matSelect._onChange(this.checklistSelection.selected[0]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}, 200);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
ngAfterViewInit() {
|
|
149
|
+
merge(this.overallFilterControl.valueChanges)
|
|
150
|
+
.pipe(takeUntil(this._unsubscribeAll), debounceTime(200))
|
|
151
|
+
.subscribe(() => {
|
|
152
|
+
const dataClone = JSON.parse(JSON.stringify([...this.dataSource]));
|
|
153
|
+
const arr = [];
|
|
154
|
+
for (let i = dataClone.length - 1; i >= 0; i--) {
|
|
155
|
+
if (!this._applyColumnLevelFilters(dataClone[i], this.overallFilterControl.value.toLowerCase())) {
|
|
156
|
+
arr.push(i);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
arr.forEach((v) => { dataClone.splice(v, 1); });
|
|
160
|
+
this.treeDataSource.data = dataClone;
|
|
161
|
+
this.matSelectData.next(this.treeControl.dataNodes);
|
|
162
|
+
if (this.expandable) {
|
|
163
|
+
this.treeControl.expandAll();
|
|
164
|
+
}
|
|
165
|
+
this._updateSelect(this.checklistSelection.selected);
|
|
166
|
+
this._cd.detectChanges();
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
ngOnDestroy() {
|
|
170
|
+
this._unsubscribeAll.next(void 0);
|
|
171
|
+
this._unsubscribeAll.complete();
|
|
172
|
+
}
|
|
173
|
+
registerOnChange(fn) {
|
|
174
|
+
const proxyFn = (value) => {
|
|
175
|
+
fn(value);
|
|
176
|
+
};
|
|
177
|
+
this._matSelect.registerOnChange(proxyFn);
|
|
178
|
+
}
|
|
179
|
+
registerOnTouched(fn) {
|
|
180
|
+
this._matSelect.registerOnTouched(fn);
|
|
181
|
+
}
|
|
182
|
+
setDisabledState(isDisabled) {
|
|
183
|
+
this._matSelect.setDisabledState(isDisabled);
|
|
184
|
+
}
|
|
185
|
+
writeValue(value) {
|
|
186
|
+
if (!isNil(value)) {
|
|
187
|
+
this._updateChecklistSelection(value);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.checklistSelection.clear();
|
|
191
|
+
}
|
|
192
|
+
if (this.multiple) {
|
|
193
|
+
this._matSelect.writeValue(this.checklistSelection.selected);
|
|
194
|
+
if (this._matSelect.value !== this.checklistSelection.selected) {
|
|
195
|
+
this._matSelect.value = this.checklistSelection.selected;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
this._matSelect.writeValue(this.checklistSelection.selected[0]);
|
|
200
|
+
if (this._matSelect.value !== this.checklistSelection.selected[0]) {
|
|
201
|
+
this._matSelect.value = this.checklistSelection.selected[0];
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
ngOnChanges(changes) {
|
|
206
|
+
if (!isNil(changes['matSelectConfigurator'])) {
|
|
207
|
+
const configuration = changes['matSelectConfigurator'].currentValue;
|
|
208
|
+
Object.keys(configuration)
|
|
209
|
+
.filter(key => !['multiple', 'panelClass'].includes(key) && !this._controlValueAccessorKeys.includes(key))
|
|
210
|
+
.forEach(key => this._matSelect[key] = configuration[key]);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
simpleTriggerLabelFn(value) {
|
|
214
|
+
return value.map((node) => {
|
|
215
|
+
if (isNil(node)) {
|
|
216
|
+
return '';
|
|
217
|
+
}
|
|
218
|
+
if (isNil(this.customTriggerLabelTemplate)
|
|
219
|
+
|| typeof this.customTriggerLabelTemplate !== 'string'
|
|
220
|
+
|| this.customTriggerLabelTemplate.trim().length === 0) {
|
|
221
|
+
return `${node.id}`;
|
|
222
|
+
}
|
|
223
|
+
let atLeastPartialSubstitution = false;
|
|
224
|
+
const substitution = this.customTriggerLabelTemplate.replace(/[$][{]([^}]+)[}]/g, (_, key) => !isNil(node[key]) && (atLeastPartialSubstitution = true) ? node[key] : '');
|
|
225
|
+
if (atLeastPartialSubstitution === false) {
|
|
226
|
+
return `${node.id}`;
|
|
227
|
+
}
|
|
228
|
+
return substitution.trim();
|
|
229
|
+
}).join(', ');
|
|
230
|
+
}
|
|
231
|
+
/** Whether all the descendants of the node are selected. */
|
|
232
|
+
descendantsAllSelected(node) {
|
|
233
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
234
|
+
return descendants.every(child => this.checklistSelection.isSelected(child));
|
|
235
|
+
}
|
|
236
|
+
/** Whether part of the descendants are selected */
|
|
237
|
+
descendantsPartiallySelected(node) {
|
|
238
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
239
|
+
const result = descendants.some(child => this.checklistSelection.isSelected(child));
|
|
240
|
+
return result && !this.descendantsAllSelected(node);
|
|
241
|
+
}
|
|
242
|
+
/** Toggle the to-do item selection. Select/deselect all the descendants node */
|
|
243
|
+
todoItemSelectionToggle(event, node) {
|
|
244
|
+
event.stopPropagation();
|
|
245
|
+
if (this.multiple) {
|
|
246
|
+
this.checklistSelection.toggle(node);
|
|
247
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
248
|
+
this.checklistSelection.isSelected(node) ? this.checklistSelection.select(...descendants) : this.checklistSelection.deselect(...descendants);
|
|
249
|
+
this.checkAllParentsSelection(node);
|
|
250
|
+
if (this.showToggleAllCheckbox) {
|
|
251
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
252
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
this.checklistSelection.clear();
|
|
257
|
+
this.checklistSelection.select(node);
|
|
258
|
+
this._matSelect.close();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/** Toggle a leaf to-do item selection. Check all the parents to see if they changed */
|
|
262
|
+
todoLeafItemSelectionToggle(event, node) {
|
|
263
|
+
event.stopPropagation();
|
|
264
|
+
if (this.multiple) {
|
|
265
|
+
this.checklistSelection.toggle(node);
|
|
266
|
+
this.checkAllParentsSelection(node);
|
|
267
|
+
if (this.showToggleAllCheckbox) {
|
|
268
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
269
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
this.checklistSelection.clear();
|
|
274
|
+
this.checklistSelection.select(node);
|
|
275
|
+
this._matSelect.close();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
noClick() {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
/* Checks all the parents when a leaf node is selected/unselected */
|
|
282
|
+
checkAllParentsSelection(node) {
|
|
283
|
+
let parent = this.getParentNode(node);
|
|
284
|
+
while (parent) {
|
|
285
|
+
parent.expandable = true;
|
|
286
|
+
this.treeControl.expand(parent);
|
|
287
|
+
this.checkRootNodeSelection(parent);
|
|
288
|
+
parent = this.getParentNode(parent);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/** Check root node checked state and change it accordingly */
|
|
292
|
+
checkRootNodeSelection(node) {
|
|
293
|
+
const nodeSelected = this.checklistSelection.isSelected(node);
|
|
294
|
+
const descendants = this.treeControl.getDescendants(node);
|
|
295
|
+
const descAllSelected = descendants.every(child => this.checklistSelection.isSelected(child));
|
|
296
|
+
if (nodeSelected && !descAllSelected) {
|
|
297
|
+
this.checklistSelection.deselect(node);
|
|
298
|
+
}
|
|
299
|
+
else if (!nodeSelected && (descAllSelected || descendants.length === 0)) {
|
|
300
|
+
this.checklistSelection.select(node);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/* Get the parent node of a node */
|
|
304
|
+
getParentNode(node) {
|
|
305
|
+
const currentLevel = this.getLevel(node);
|
|
306
|
+
if (currentLevel < 1) {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;
|
|
310
|
+
for (let i = startIndex; i >= 0; i--) {
|
|
311
|
+
const currentNode = this.treeControl.dataNodes[i];
|
|
312
|
+
if (this.getLevel(currentNode) < currentLevel) {
|
|
313
|
+
return currentNode;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
toggleSelectAll(selectAllValue) {
|
|
319
|
+
if (selectAllValue) {
|
|
320
|
+
this.treeControl.dataNodes.forEach((node) => {
|
|
321
|
+
this.checklistSelection.select(node);
|
|
322
|
+
this.checkAllParentsSelection(node);
|
|
323
|
+
});
|
|
324
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
325
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
this.checklistSelection.clear();
|
|
329
|
+
this.isChecked = false;
|
|
330
|
+
this.isIndeterminate = false;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
compareObjects(o1, o2) {
|
|
334
|
+
return o1 && o2 ? o1?.name === o2?.name && o1?.id === o2?.id : o1 === o2;
|
|
335
|
+
}
|
|
336
|
+
trackByFn(index, item) {
|
|
337
|
+
return index || item;
|
|
338
|
+
}
|
|
339
|
+
_updateChecklistSelection(value) {
|
|
340
|
+
this.checklistSelection.clear();
|
|
341
|
+
if (!isNil(value)) {
|
|
342
|
+
const valueArray = !Array.isArray(value) ? [value] : value;
|
|
343
|
+
valueArray.forEach((item) => {
|
|
344
|
+
const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);
|
|
345
|
+
if (isNil(nodeFound)) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
this.checklistSelection.select(nodeFound);
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
_updateSelect(value) {
|
|
353
|
+
if (!isNil(value)) {
|
|
354
|
+
const valueArray = !Array.isArray(value) ? [value] : value;
|
|
355
|
+
if (this.overallSearchEnabled) //有搜索功能,转化选中节点为当前数据源节点
|
|
356
|
+
{
|
|
357
|
+
valueArray.forEach((item) => {
|
|
358
|
+
const nodeFound = this.treeControl.dataNodes.find(node => node.id === item.id);
|
|
359
|
+
if (isNil(nodeFound)) {
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
this.checklistSelection.deselect(item);
|
|
363
|
+
this.checklistSelection.select(nodeFound);
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
if (this.multiple) {
|
|
367
|
+
this.checklistSelection.selected.forEach((item) => {
|
|
368
|
+
this.checkAllParentsSelection(item);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
if (this.showToggleAllCheckbox) {
|
|
372
|
+
this.isIndeterminate = this.checklistSelection.selected.length < this.dataCount && this.checklistSelection.selected.length > 0;
|
|
373
|
+
this.isChecked = this.checklistSelection.selected.length === this.dataCount;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
_applyColumnLevelFilters(node, filter) {
|
|
378
|
+
let result = false;
|
|
379
|
+
if (node && node.children && node.children.length > 0) {
|
|
380
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
381
|
+
const resultTemp = this._applyColumnLevelFilters(node.children[i], filter);
|
|
382
|
+
if (!resultTemp) {
|
|
383
|
+
node.children.splice(i, 1);
|
|
384
|
+
}
|
|
385
|
+
result = resultTemp || result;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (node && node.children && node.children.length === 0) {
|
|
389
|
+
node.children = null;
|
|
390
|
+
}
|
|
391
|
+
const cellValue = node['name'].toLowerCase();
|
|
392
|
+
if (cellValue.indexOf(filter) > -1) {
|
|
393
|
+
result = true;
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
_resetFilters() {
|
|
398
|
+
if (this.overallSearchEnabled) {
|
|
399
|
+
this.overallFilterControl.setValue('');
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatSelectTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
403
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatSelectTreeComponent, isStandalone: true, selector: "cmat-select-tree", inputs: { dataSource: "dataSource", showLabel: "showLabel", noEntriesFoundLabel: "noEntriesFoundLabel", showNoFoundLabel: "showNoFoundLabel", placeholder: "placeholder", prefixIcon: "prefixIcon", multiple: "multiple", required: "required", overallSearchEnabled: "overallSearchEnabled", canNull: "canNull", customTriggerLabelFn: "customTriggerLabelFn", customTriggerLabelTemplate: "customTriggerLabelTemplate", matSelectConfigurator: "matSelectConfigurator", matSelectSearchConfigurator: "matSelectSearchConfigurator", expandable: "expandable", showToggleAllCheckbox: "showToggleAllCheckbox" }, providers: [
|
|
404
|
+
{
|
|
405
|
+
provide: NG_VALUE_ACCESSOR,
|
|
406
|
+
useExisting: forwardRef(() => CmatSelectTreeComponent),
|
|
407
|
+
multi: true
|
|
408
|
+
}
|
|
409
|
+
], viewQueries: [{ propertyName: "_matSelect", first: true, predicate: ["componentSelect"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"w-full\">\r\n <mat-label *ngIf=\"showLabel\">{{placeholder}}</mat-label>\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"prefixIcon\" matPrefix></mat-icon>\r\n <mat-select #componentSelect [placeholder]=\"placeholder\" [multiple]=\"multiple\" [required]=\"required\"\r\n [compareWith]=\"compareObjects\">\r\n <mat-select-trigger>\r\n <ng-container *ngIf=\"!customTriggerLabelFn\">{{simpleTriggerLabelFn(checklistSelection.selected)}}\r\n </ng-container>\r\n <ng-container *ngIf=\"customTriggerLabelFn\">{{customTriggerLabelFn}}\r\n </ng-container>\r\n </mat-select-trigger>\r\n\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-option *ngIf=\"overallSearchEnabled\">\r\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox\">\r\n </cmat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"canNull\">\u7A7A</mat-option>\r\n <mat-option *ngFor=\"let selectData of matSelectData | async ;trackBy: trackByFn\" class=\"hidden\"\r\n [value]=\"selectData\">{{selectData.name}}</mat-option>\r\n\r\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button disabled>\r\n\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" class=\"checklist-leaf-node\" (click)=\"noClick()\"\r\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.filename\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" [checked]=\"descendantsAllSelected(node)\" (click)=\"noClick()\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </mat-select>\r\n</mat-form-field>", styles: ["cmat-select-tree{display:block;z-index:101}cmat-select-tree.hidden{display:none}cmat-select-tree .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;@apply flex flex-row;}cmat-select-tree .cmat-select-search-inner span{@apply flex place-items-center;}cmat-select-tree .cmat-select-search-no-entries-found{@apply w-full text-center bg-card rounded;box-shadow:0 2px 8px #00000059}cmat-select-tree .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree .mat-mdc-option-pseudo-checkbox{display:none}.mat-tree-node{@apply hover:bg-hover cursor-pointer;}.selected{@apply text-primary bg-hover !important;}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i3.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: CmatSelectSearchComponent, selector: "cmat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "showNoFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"], exportAs: ["cmatSelectSearch"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i6.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i6.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i6.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i6.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i6.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
410
|
+
}
|
|
411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatSelectTreeComponent, decorators: [{
|
|
412
|
+
type: Component,
|
|
413
|
+
args: [{ selector: 'cmat-select-tree', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
414
|
+
{
|
|
415
|
+
provide: NG_VALUE_ACCESSOR,
|
|
416
|
+
useExisting: forwardRef(() => CmatSelectTreeComponent),
|
|
417
|
+
multi: true
|
|
418
|
+
}
|
|
419
|
+
], standalone: true, imports: [MatFormFieldModule, NgIf, MatIconModule, MatSelectModule,
|
|
420
|
+
CmatSelectSearchComponent, FormsModule, ReactiveFormsModule, NgFor, MatTreeModule, NgClass,
|
|
421
|
+
MatButtonModule, MatCheckboxModule, AsyncPipe, NgStyle], template: "<mat-form-field class=\"w-full\">\r\n <mat-label *ngIf=\"showLabel\">{{placeholder}}</mat-label>\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"prefixIcon\" matPrefix></mat-icon>\r\n <mat-select #componentSelect [placeholder]=\"placeholder\" [multiple]=\"multiple\" [required]=\"required\"\r\n [compareWith]=\"compareObjects\">\r\n <mat-select-trigger>\r\n <ng-container *ngIf=\"!customTriggerLabelFn\">{{simpleTriggerLabelFn(checklistSelection.selected)}}\r\n </ng-container>\r\n <ng-container *ngIf=\"customTriggerLabelFn\">{{customTriggerLabelFn}}\r\n </ng-container>\r\n </mat-select-trigger>\r\n\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-option *ngIf=\"overallSearchEnabled\">\r\n <cmat-select-search [showNoFoundLabel]=\"showNoFoundLabel\" [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\r\n [formControl]=\"overallFilterControl\" [clearSearchInput]=\"true\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\" [showToggleAllCheckbox]=\"showToggleAllCheckbox\">\r\n </cmat-select-search>\r\n </mat-option>\r\n <mat-option *ngIf=\"canNull\">\u7A7A</mat-option>\r\n <mat-option *ngFor=\"let selectData of matSelectData | async ;trackBy: trackByFn\" class=\"hidden\"\r\n [value]=\"selectData\">{{selectData.name}}</mat-option>\r\n\r\n <mat-tree [dataSource]=\"treeDataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoLeafItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button disabled>\r\n\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" class=\"checklist-leaf-node\" (click)=\"noClick()\"\r\n [checked]=\"checklistSelection.isSelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding\r\n [ngClass]=\"checklistSelection.isSelected(node)?'selected':''\"\r\n (click)=\"todoItemSelectionToggle($event,node)\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.filename\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n [svgIcon]=\"treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox *ngIf=\"multiple\" [checked]=\"descendantsAllSelected(node)\" (click)=\"noClick()\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\">{{node.name}}</mat-checkbox>\r\n <span *ngIf=\"!multiple\">{{node.name}}</span>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </mat-select>\r\n</mat-form-field>", styles: ["cmat-select-tree{display:block;z-index:101}cmat-select-tree.hidden{display:none}cmat-select-tree .cmat-select-search-inner{overflow:hidden;position:fixed;line-height:45px;@apply flex flex-row;}cmat-select-tree .cmat-select-search-inner span{@apply flex place-items-center;}cmat-select-tree .cmat-select-search-no-entries-found{@apply w-full text-center bg-card rounded;box-shadow:0 2px 8px #00000059}cmat-select-tree .cmat-select-search-input{padding-top:0;padding-bottom:0;height:48px;line-height:48px}cmat-select-tree .cmat-select-search-clear{top:3px;margin:0 10px}cmat-select-tree .cmat-select-search-icon{margin-right:0;margin-left:10px}cmat-select-tree .mat-mdc-option-pseudo-checkbox{display:none}.mat-tree-node{@apply hover:bg-hover cursor-pointer;}.selected{@apply text-primary bg-hover !important;}\n"] }]
|
|
422
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dataSource: [{
|
|
423
|
+
type: Input
|
|
424
|
+
}], showLabel: [{
|
|
425
|
+
type: Input
|
|
426
|
+
}], noEntriesFoundLabel: [{
|
|
427
|
+
type: Input
|
|
428
|
+
}], showNoFoundLabel: [{
|
|
429
|
+
type: Input
|
|
430
|
+
}], placeholder: [{
|
|
431
|
+
type: Input
|
|
432
|
+
}], prefixIcon: [{
|
|
433
|
+
type: Input
|
|
434
|
+
}], multiple: [{
|
|
435
|
+
type: Input
|
|
436
|
+
}], required: [{
|
|
437
|
+
type: Input
|
|
438
|
+
}], overallSearchEnabled: [{
|
|
439
|
+
type: Input
|
|
440
|
+
}], canNull: [{
|
|
441
|
+
type: Input
|
|
442
|
+
}], customTriggerLabelFn: [{
|
|
443
|
+
type: Input
|
|
444
|
+
}], customTriggerLabelTemplate: [{
|
|
445
|
+
type: Input
|
|
446
|
+
}], matSelectConfigurator: [{
|
|
447
|
+
type: Input
|
|
448
|
+
}], matSelectSearchConfigurator: [{
|
|
449
|
+
type: Input
|
|
450
|
+
}], expandable: [{
|
|
451
|
+
type: Input
|
|
452
|
+
}], showToggleAllCheckbox: [{
|
|
453
|
+
type: Input
|
|
454
|
+
}], _matSelect: [{
|
|
455
|
+
type: ViewChild,
|
|
456
|
+
args: ['componentSelect', { static: true }]
|
|
457
|
+
}] } });
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3NlbGVjdC10cmVlL3NlbGVjdC10cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9zZWxlY3QtdHJlZS9zZWxlY3QtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEgsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEcsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVB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QTBCO3NCQUFsQyxLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRWtELFVBQVU7c0JBQWpFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IG1lcmdlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIsIE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBDbWF0U2VsZWN0VHJlZUZsYXROb2RlIH0gZnJvbSAnLi9zZWxlY3QtdHJlZS5mbGF0bm9kZSc7XHJcbmltcG9ydCB7IENtYXRTZWxlY3RUcmVlTm9kZSB9IGZyb20gJy4vc2VsZWN0LXRyZWUubm9kZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBDbWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnY21hdC9jb21wb25lbnRzL3NlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ0NsYXNzLCBBc3luY1BpcGUsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtc2VsZWN0LXRyZWUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC10cmVlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbWF0U2VsZWN0VHJlZUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0Rm9ybUZpZWxkTW9kdWxlLCBOZ0lmLCBNYXRJY29uTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgQ21hdFNlbGVjdFNlYXJjaENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nRm9yLCBNYXRUcmVlTW9kdWxlLCBOZ0NsYXNzLFxyXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIEFzeW5jUGlwZSwgTmdTdHlsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRTZWxlY3RUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpIGRhdGFTb3VyY2U6IENtYXRTZWxlY3RUcmVlTm9kZVtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgbm9FbnRyaWVzRm91bmRMYWJlbCA9ICfml6Dnu5PmnpwnO1xyXG5cclxuICAgIEBJbnB1dCgpIHNob3dOb0ZvdW5kTGFiZWwgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn6YOo6ZeoJztcclxuXHJcbiAgICBASW5wdXQoKSBwcmVmaXhJY29uOiBzdHJpbmcgPSAnaGVyb2ljb25zX3NvbGlkOmJ1aWxkaW5nLWxpYnJhcnknO1xyXG5cclxuICAgIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIG92ZXJhbGxTZWFyY2hFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKSBjYW5OdWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgY3VzdG9tVHJpZ2dlckxhYmVsRm46ICh2YWx1ZTogQ21hdFNlbGVjdFRyZWVOb2RlW10pID0+IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSBjdXN0b21UcmlnZ2VyTGFiZWxUZW1wbGF0ZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIG1hdFNlbGVjdENvbmZpZ3VyYXRvcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuXHJcbiAgICBASW5wdXQoKSBtYXRTZWxlY3RTZWFyY2hDb25maWd1cmF0b3I6IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcblxyXG4gICAgQElucHV0KCkgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKSBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdjb21wb25lbnRTZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIF9tYXRTZWxlY3Q6IE1hdFNlbGVjdDtcclxuXHJcbiAgICBmbGF0Tm9kZU1hcCA9IG5ldyBNYXA8Q21hdFNlbGVjdFRyZWVGbGF0Tm9kZSwgQ21hdFNlbGVjdFRyZWVOb2RlPigpO1xyXG5cclxuICAgIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPENtYXRTZWxlY3RUcmVlTm9kZSwgQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZT4oKTtcclxuXHJcbiAgICBzZWxlY3RlZFBhcmVudDogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8Q21hdFNlbGVjdFRyZWVGbGF0Tm9kZT47XHJcblxyXG4gICAgdHJlZUZsYXR0ZW5lcjogTWF0VHJlZUZsYXR0ZW5lcjxDbWF0U2VsZWN0VHJlZU5vZGUsIENtYXRTZWxlY3RUcmVlRmxhdE5vZGU+O1xyXG5cclxuICAgIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxDbWF0U2VsZWN0VHJlZUZsYXROb2RlPih0cnVlKTtcclxuXHJcbiAgICB0cmVlRGF0YVNvdXJjZTogTWF0VHJlZUZsYXREYXRhU291cmNlPENtYXRTZWxlY3RUcmVlTm9kZSwgQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZT47XHJcblxyXG4gICAgb3ZlcmFsbEZpbHRlckNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuICAgIGlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgaXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICBkYXRhQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgbWF0U2VsZWN0RGF0YTogUmVwbGF5U3ViamVjdDxhbnlbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxhbnlbXT4oMSk7XHJcblxyXG4gICAgcHJpdmF0ZSBfY29udHJvbFZhbHVlQWNjZXNzb3JLZXlzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAnZm9ybUNvbnRyb2wnLFxyXG4gICAgICAgICdmb3JtQ29udHJvbE5hbWUnXHJcbiAgICBdO1xyXG5cclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICB0aGlzLm92ZXJhbGxGaWx0ZXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gICAgICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKHRoaXMudHJhbnNmb3JtZXIsIHRoaXMuZ2V0TGV2ZWwsXHJcbiAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRhYmxlLCB0aGlzLmdldENoaWxkcmVuKTtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxDbWF0U2VsZWN0VHJlZUZsYXROb2RlPih0aGlzLmdldExldmVsLCB0aGlzLmlzRXhwYW5kYWJsZSk7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMZXZlbCA9IChub2RlOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlKTogbnVtYmVyID0+IG5vZGUubGV2ZWw7XHJcblxyXG4gICAgaXNFeHBhbmRhYmxlID0gKG5vZGU6IENtYXRTZWxlY3RUcmVlRmxhdE5vZGUpOiBib29sZWFuID0+IG5vZGUuZXhwYW5kYWJsZTtcclxuXHJcbiAgICBnZXRDaGlsZHJlbiA9IChub2RlOiBDbWF0U2VsZWN0VHJlZU5vZGUpOiBDbWF0U2VsZWN0VHJlZU5vZGVbXSB8IG51bGwgPT4gbm9kZS5jaGlsZHJlbjtcclxuXHJcbiAgICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZSk6IGJvb2xlYW4gPT4gX25vZGVEYXRhLmV4cGFuZGFibGU7XHJcblxyXG4gICAgaGFzTm9Db250ZW50ID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlKTogYm9vbGVhbiA9PiBfbm9kZURhdGEubmFtZSA9PT0gJyc7XHJcblxyXG4gICAgdHJhbnNmb3JtZXIgPSAobm9kZTogQ21hdFNlbGVjdFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKTogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOb2RlID0gdGhpcy5uZXN0ZWROb2RlTWFwLmdldChub2RlKTtcclxuICAgICAgICBjb25zdCBmbGF0Tm9kZSA9IGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUubmFtZSA9PT0gbm9kZS5uYW1lXHJcbiAgICAgICAgICAgID8gZXhpc3RpbmdOb2RlXHJcbiAgICAgICAgICAgIDogbmV3IENtYXRTZWxlY3RUcmVlRmxhdE5vZGUoKTtcclxuICAgICAgICBmbGF0Tm9kZS5pZCA9IG5vZGUuaWQ7XHJcbiAgICAgICAgZmxhdE5vZGUubmFtZSA9IG5vZGUubmFtZTtcclxuICAgICAgICBmbGF0Tm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICAgIGZsYXROb2RlLmV4cGFuZGFibGUgPSAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwO1xyXG4gICAgICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcclxuICAgICAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcclxuICAgICAgICByZXR1cm4gZmxhdE5vZGU7XHJcbiAgICB9O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB0aGlzLm11bHRpcGxlIHx8IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkIHx8IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnRyZWVEYXRhU291cmNlLmRhdGEgPSB0aGlzLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgdGhpcy5kYXRhQ291bnQgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7XHJcblxyXG4gICAgICAgIHRoaXMubWF0U2VsZWN0RGF0YS5uZXh0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kYWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZEFsbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBhbmVsQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gICAgICAgIGlmICghdGhpcy5vdmVyYWxsU2VhcmNoRW5hYmxlZCkge1xyXG4gICAgICAgICAgICBwYW5lbENsYXNzID0gJ2NtYXQtc2VsZWN0LXNlYXJjaC1wYW5lbCBvdmVyZmxvdy1hdXRvIG1kOm92ZXJmbG93LWhpZGRlbic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MpIHtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAodGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MgYXMgc3RyaW5nW10pLnB1c2gocGFuZWxDbGFzcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX21hdFNlbGVjdC5wYW5lbENsYXNzID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MgPSBbdGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MsIHBhbmVsQ2xhc3NdO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9tYXRTZWxlY3QucGFuZWxDbGFzcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX21hdFNlbGVjdC5wYW5lbENsYXNzLmVudHJpZXNbcGFuZWxDbGFzc10gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LnBhbmVsQ2xhc3MgPSBwYW5lbENsYXNzO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHRoaXMuX21hdFNlbGVjdC5vcGVuZWRDaGFuZ2VcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3BlbmVkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3BlbmVkICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLmV4cGFuZGFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIW9wZW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJhbGxTZWFyY2hFbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0RmlsdGVycygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNOaWwodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5kT3V0Tm9kZTogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5nZXRQYXJlbnROb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAmJiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHBhcmVudE5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kT3V0Tm9kZS5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRPdXROb2RlLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3Qobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hdFNlbGVjdC53cml0ZVZhbHVlKHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX21hdFNlbGVjdC52YWx1ZSAhPT0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LnZhbHVlID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hdFNlbGVjdC5fb25DaGFuZ2UodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkICYmIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LndyaXRlVmFsdWUodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbWF0U2VsZWN0LnZhbHVlICE9PSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZFswXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LnZhbHVlID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWRbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0Ll9vbkNoYW5nZSh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZFswXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBtZXJnZSh0aGlzLm92ZXJhbGxGaWx0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcylcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSwgZGVib3VuY2VUaW1lKDIwMCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YUNsb25lOiBDbWF0U2VsZWN0VHJlZU5vZGVbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWy4uLnRoaXMuZGF0YVNvdXJjZV0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBhcnI6IG51bWJlcltdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGRhdGFDbG9uZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYXBwbHlDb2x1bW5MZXZlbEZpbHRlcnMoZGF0YUNsb25lW2ldLCB0aGlzLm92ZXJhbGxGaWx0ZXJDb250cm9sLnZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFyci5mb3JFYWNoKCh2KSA9PiB7IGRhdGFDbG9uZS5zcGxpY2UodiwgMSk7IH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZURhdGFTb3VyY2UuZGF0YSA9IGRhdGFDbG9uZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0U2VsZWN0RGF0YS5uZXh0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZGFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZEFsbCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwcm94eUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGZuKHZhbHVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX21hdFNlbGVjdC5yZWdpc3Rlck9uQ2hhbmdlKHByb3h5Rm4pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXRTZWxlY3QucmVnaXN0ZXJPblRvdWNoZWQoZm4pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21hdFNlbGVjdC5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghaXNOaWwodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNoZWNrbGlzdFNlbGVjdGlvbih2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LndyaXRlVmFsdWUodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWF0U2VsZWN0LnZhbHVlICE9PSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0U2VsZWN0LnZhbHVlID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXRTZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZFswXSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXRTZWxlY3QudmFsdWUgIT09IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkWzBdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXRTZWxlY3QudmFsdWUgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZFswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFpc05pbChjaGFuZ2VzWydtYXRTZWxlY3RDb25maWd1cmF0b3InXSkpIHtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNoYW5nZXNbJ21hdFNlbGVjdENvbmZpZ3VyYXRvciddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMoY29uZmlndXJhdGlvbilcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoa2V5ID0+ICFbJ211bHRpcGxlJywgJ3BhbmVsQ2xhc3MnXS5pbmNsdWRlcyhrZXkpICYmICF0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvcktleXMuaW5jbHVkZXMoa2V5KSlcclxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiAodGhpcy5fbWF0U2VsZWN0IGFzIGFueSlba2V5XSA9IGNvbmZpZ3VyYXRpb25ba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNpbXBsZVRyaWdnZXJMYWJlbEZuKHZhbHVlOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlW10pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKG5vZGUpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc05pbChub2RlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc05pbCh0aGlzLmN1c3RvbVRyaWdnZXJMYWJlbFRlbXBsYXRlKVxyXG4gICAgICAgICAgICAgICAgfHwgdHlwZW9mIHRoaXMuY3VzdG9tVHJpZ2dlckxhYmVsVGVtcGxhdGUgIT09ICdzdHJpbmcnXHJcbiAgICAgICAgICAgICAgICB8fCB0aGlzLmN1c3RvbVRyaWdnZXJMYWJlbFRlbXBsYXRlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtub2RlLmlkfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGF0TGVhc3RQYXJ0aWFsU3Vic3RpdHV0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbjogc3RyaW5nID0gdGhpcy5jdXN0b21UcmlnZ2VyTGFiZWxUZW1wbGF0ZS5yZXBsYWNlKC9bJF1be10oW159XSspW31dL2csIChfLCBrZXkpID0+XHJcbiAgICAgICAgICAgICAgICAhaXNOaWwoKG5vZGUgYXMgYW55KVtrZXldKSAmJiAoYXRMZWFzdFBhcnRpYWxTdWJzdGl0dXRpb24gPSB0cnVlKSA/IChub2RlIGFzIGFueSlba2V5XSA6ICcnKTtcclxuICAgICAgICAgICAgaWYgKGF0TGVhc3RQYXJ0aWFsU3Vic3RpdHV0aW9uID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke25vZGUuaWR9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0aW9uLnRyaW0oKTtcclxuICAgICAgICB9KS5qb2luKCcsICcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBXaGV0aGVyIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIG5vZGUgYXJlIHNlbGVjdGVkLiAqL1xyXG4gICAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xyXG4gICAgICAgIHJldHVybiBkZXNjZW5kYW50cy5ldmVyeShjaGlsZCA9PlxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXHJcbiAgICBkZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IENtYXRTZWxlY3RUcmVlRmxhdE5vZGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZGVzY2VuZGFudHMuc29tZShjaGlsZCA9PiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAmJiAhdGhpcy5kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXHJcbiAgICB0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShldmVudDogYW55LCBub2RlOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xyXG4gICAgICAgICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpID8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KC4uLmRlc2NlbmRhbnRzKSA6IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KC4uLmRlc2NlbmRhbnRzKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1RvZ2dsZUFsbENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA8IHRoaXMuZGF0YUNvdW50ICYmIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5kYXRhQ291bnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9tYXRTZWxlY3QuY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRvZ2dsZSBhIGxlYWYgdG8tZG8gaXRlbSBzZWxlY3Rpb24uIENoZWNrIGFsbCB0aGUgcGFyZW50cyB0byBzZWUgaWYgdGhleSBjaGFuZ2VkICovXHJcbiAgICB0b2RvTGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUoZXZlbnQ6IGFueSwgbm9kZTogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZSk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIDwgdGhpcy5kYXRhQ291bnQgJiYgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmRhdGFDb3VudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21hdFNlbGVjdC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBub0NsaWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBDaGVja3MgYWxsIHRoZSBwYXJlbnRzIHdoZW4gYSBsZWFmIG5vZGUgaXMgc2VsZWN0ZWQvdW5zZWxlY3RlZCAqL1xyXG4gICAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IENtYXRTZWxlY3RUcmVlRmxhdE5vZGUpOiB2b2lkIHtcclxuICAgICAgICBsZXQgcGFyZW50OiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlIHwgbnVsbCA9IHRoaXMuZ2V0UGFyZW50Tm9kZShub2RlKTtcclxuICAgICAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgICAgICAgIHBhcmVudC5leHBhbmRhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQocGFyZW50KTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XHJcbiAgICAgICAgICAgIHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50Tm9kZShwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xyXG4gICAgY2hlY2tSb290Tm9kZVNlbGVjdGlvbihub2RlOiBDbWF0U2VsZWN0VHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgbm9kZVNlbGVjdGVkID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKTtcclxuICAgICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICAgICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID0gZGVzY2VuZGFudHMuZXZlcnkoY2hpbGQgPT5cclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChub2RlU2VsZWN0ZWQgJiYgIWRlc2NBbGxTZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChub2RlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgKGRlc2NBbGxTZWxlY3RlZCB8fCBkZXNjZW5kYW50cy5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogR2V0IHRoZSBwYXJlbnQgbm9kZSBvZiBhIG5vZGUgKi9cclxuICAgIGdldFBhcmVudE5vZGUobm9kZTogQ21hdFNlbGVjdFRyZWVGbGF0Tm9kZSk6IENtYXRTZWxlY3RUcmVlRmxhdE5vZGUgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5nZXRMZXZlbChjdXJyZW50Tm9kZSkgPCBjdXJyZW50TGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RBbGwoc2VsZWN0QWxsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA8IHRoaXMuZGF0YUNvdW50ICYmIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmRhdGFDb3VudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb21wYXJlT2JqZWN0cyhvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG8xICYmIG8yID8gbzE/Lm5hbWUgPT09IG8yPy5uYW1lICYmIG8xPy5pZCA9PT0gbzI/LmlkIDogbzEgPT09IG8yO1xyXG4gICAgfVxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4IHx8IGl0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ2hlY2tsaXN0U2VsZWN0aW9uKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICAgICAgaWYgKCFpc05pbCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVBcnJheTogYW55W10gPSAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbdmFsdWVdIDogdmFsdWU7XHJcbiAgICAgICAgICAgIHZhbHVlQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZUZvdW5kID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChub2RlID0+IG5vZGUuaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzTmlsKG5vZGVGb3VuZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZUZvdW5kKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGVjdCh2YWx1ZTogYW55W10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWlzTmlsKHZhbHVlKSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFycmF5OiBhbnlbXSA9ICFBcnJheS5pc0FycmF5KHZhbHVlKSA/IFt2YWx1ZV0gOiB2YWx1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmFsbFNlYXJjaEVuYWJsZWQpLy/mnInmkJzntKLlip/og73vvIzovazljJbpgInkuK3oioLngrnkuLrlvZPliY3mlbDmja7mupDoioLngrlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFsdWVBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUZvdW5kID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChub2RlID0+IG5vZGUuaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05pbChub2RlRm91bmQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoaXRlbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlRm91bmQpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dUb2dnbGVBbGxDaGVja2JveCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPCB0aGlzLmRhdGFDb3VudCAmJiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0NoZWNrZWQgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPT09IHRoaXMuZGF0YUNvdW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FwcGx5Q29sdW1uTGV2ZWxGaWx0ZXJzKG5vZGU6IENtYXRTZWxlY3RUcmVlTm9kZSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChub2RlICYmIG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRUZW1wID0gdGhpcy5fYXBwbHlDb2x1bW5MZXZlbEZpbHRlcnMobm9kZS5jaGlsZHJlbltpXSwgZmlsdGVyKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdFRlbXApIHtcclxuICAgICAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHRUZW1wIHx8IHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IG5vZGVbJ25hbWUnXS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGlmIChjZWxsVmFsdWUuaW5kZXhPZihmaWx0ZXIpID4gLTEpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXNldEZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMub3ZlcmFsbFNlYXJjaEVuYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVyYWxsRmlsdGVyQ29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cInNob3dMYWJlbFwiPnt7cGxhY2Vob2xkZXJ9fTwvbWF0LWxhYmVsPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBbc3ZnSWNvbl09XCJwcmVmaXhJY29uXCIgbWF0UHJlZml4PjwvbWF0LWljb24+XHJcbiAgICA8bWF0LXNlbGVjdCAjY29tcG9uZW50U2VsZWN0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCI+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21UcmlnZ2VyTGFiZWxGblwiPnt7c2ltcGxlVHJpZ2dlckxhYmVsRm4oY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKX19XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tVHJpZ2dlckxhYmVsRm5cIj57e2N1c3RvbVRyaWdnZXJMYWJlbEZufX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG8gbGc6b3ZlcmZsb3cteS1oaWRkZW4gbGc6aG92ZXI6b3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1jdXN0b21cIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJvdmVyYWxsU2VhcmNoRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbc2hvd05vRm91bmRMYWJlbF09XCJzaG93Tm9Gb3VuZExhYmVsXCIgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwibm9FbnRyaWVzRm91bmRMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm92ZXJhbGxGaWx0ZXJDb250cm9sXCIgW2NsZWFyU2VhcmNoSW5wdXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZV09XCJpc0luZGV0ZXJtaW5hdGVcIiBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiIFtzaG93VG9nZ2xlQWxsQ2hlY2tib3hdPVwic2hvd1RvZ2dsZUFsbENoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICA8L2NtYXQtc2VsZWN0LXNlYXJjaD5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImNhbk51bGxcIj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZWxlY3REYXRhIG9mIG1hdFNlbGVjdERhdGEgfCBhc3luYyA7dHJhY2tCeTogdHJhY2tCeUZuXCIgY2xhc3M9XCJoaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdERhdGFcIj57e3NlbGVjdERhdGEubmFtZX19PC9tYXQtb3B0aW9uPlxyXG5cclxuICAgICAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cInRyZWVEYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIG1hdFRyZWVOb2RlVG9nZ2xlIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpPydzZWxlY3RlZCc6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2RvTGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUoJGV2ZW50LG5vZGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cImNoZWNrbGlzdC1sZWFmLW5vZGVcIiAoY2xpY2spPVwibm9DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIj57e25vZGUubmFtZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbXVsdGlwbGVcIj57e25vZGUubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBoYXNDaGlsZFwiIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpPydzZWxlY3RlZCc6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZSgkZXZlbnQsbm9kZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VHJlZU5vZGVUb2dnbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLmZpbGVuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwidHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdtYXRfb3V0bGluZTpleHBhbmRfbW9yZScgOiAnbWF0X291dGxpbmU6Y2hldnJvbl9yaWdodCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0lmPVwibXVsdGlwbGVcIiBbY2hlY2tlZF09XCJkZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpXCIgKGNsaWNrKT1cIm5vQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZSlcIj57e25vZGUubmFtZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbXVsdGlwbGVcIj57e25vZGUubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxyXG4gICAgICAgICAgICA8L21hdC10cmVlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class CmatSelectTreeFlatNode {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUuZmxhdG5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvc2VsZWN0LXRyZWUvc2VsZWN0LXRyZWUuZmxhdG5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHNCQUFzQjtDQUtsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDbWF0U2VsZWN0VHJlZUZsYXROb2RlIHtcclxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBsZXZlbDogbnVtYmVyO1xyXG4gICAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class CmatSelectTreeNode {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUubm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9zZWxlY3QtdHJlZS9zZWxlY3QtdHJlZS5ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7Q0FJOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ21hdFNlbGVjdFRyZWVOb2RlIHtcclxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBjaGlsZHJlbjogQ21hdFNlbGVjdFRyZWVOb2RlW10gfCBudWxsO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1jb21wb25lbnRzLXRpbWVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3RpbWVsaW5lL2NtYXQtY29tcG9uZW50cy10aW1lbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './timeline-item/timeline-item.component';
|
|
2
|
+
export * from './timeline.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy90aW1lbGluZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGltZWxpbmUtaXRlbS90aW1lbGluZS1pdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGltZWxpbmUuY29tcG9uZW50JztcclxuIl19
|