cmat 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/breadcrumb/breadcrumb.component.d.ts +18 -20
- package/components/card/card.component.d.ts +0 -5
- package/components/cascade/cascade-list/cascade-list.component.d.ts +12 -9
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
- package/components/chip-input/chip-input.component.d.ts +34 -0
- package/components/chip-input/index.d.ts +5 -0
- package/components/chip-input/public-api.d.ts +1 -0
- package/components/date-range/date-range.component.d.ts +3 -2
- package/components/json-editor/index.d.ts +5 -0
- package/components/json-editor/json-editor.component.d.ts +25 -0
- package/components/json-editor/public-api.d.ts +1 -0
- package/components/navigation/vertical/components/aside/aside.component.d.ts +2 -5
- package/components/navigation/vertical/components/basic/basic.component.d.ts +2 -5
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +2 -5
- package/components/navigation/vertical/components/divider/divider.component.d.ts +2 -5
- package/components/navigation/vertical/components/group/group.component.d.ts +2 -5
- package/components/navigation/vertical/components/spacer/spacer.component.d.ts +2 -5
- package/components/navigation/vertical/vertical.component.d.ts +1 -4
- package/components/progress-bar/progress-bar.component.d.ts +3 -2
- package/components/rating/rating.component.d.ts +3 -2
- package/components/select-search/select-search.component.d.ts +1 -2
- package/components/select-tree/select-tree.component.d.ts +5 -12
- package/components/timeline/timeline-item/timeline-item.component.d.ts +1 -1
- package/components/transfer-picker/interface.d.ts +1 -1
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +4 -4
- package/components/transfer-picker/transfer-picker.service.d.ts +2 -1
- package/directives/autofocus/autofocus.directive.d.ts +1 -3
- package/directives/debounce/debounce-keyup.directive.d.ts +1 -1
- package/directives/digit-only/digit-only.directive.d.ts +2 -0
- package/esm2022/animations/dropdown.mjs +26 -0
- package/esm2022/animations/public-api.mjs +2 -2
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +3 -3
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
- package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +16 -17
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/components/card/card.component.mjs +5 -14
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -6
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +65 -39
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -9
- package/esm2022/components/chip-input/chip-input.component.mjs +144 -0
- package/esm2022/components/chip-input/cmat-components-chip-input.mjs +5 -0
- package/esm2022/components/chip-input/public-api.mjs +2 -0
- package/esm2022/components/date-range/date-range.component.mjs +13 -9
- package/esm2022/components/drawer/drawer.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +3 -3
- package/esm2022/components/highlight/highlight.component.mjs +3 -3
- package/esm2022/components/highlight/highlight.service.mjs +3 -3
- package/esm2022/components/json-editor/cmat-components-json-editor.mjs +5 -0
- package/esm2022/components/json-editor/json-editor.component.mjs +176 -0
- package/esm2022/components/json-editor/public-api.mjs +2 -0
- package/esm2022/components/masonry/masonry.component.mjs +3 -3
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +6 -6
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -6
- package/esm2022/components/material-datetimepicker/calendar.mjs +7 -8
- package/esm2022/components/material-datetimepicker/clock.mjs +6 -6
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +8 -9
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +7 -7
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +3 -3
- package/esm2022/components/material-datetimepicker/time.mjs +8 -9
- package/esm2022/components/material-datetimepicker/year-view.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +6 -6
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +7 -8
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -6
- package/esm2022/components/navigation/navigation.service.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +8 -17
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -15
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +8 -19
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +6 -15
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -19
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -15
- package/esm2022/components/navigation/vertical/vertical.component.mjs +7 -18
- package/esm2022/components/pagination/pagination.component.mjs +6 -7
- package/esm2022/components/pagination/pagination.directive.mjs +3 -3
- package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
- package/esm2022/components/pagination/pagination.service.mjs +3 -3
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +3 -3
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +8 -9
- package/esm2022/components/popover/popover.component.mjs +5 -5
- package/esm2022/components/progress-bar/progress-bar.component.mjs +11 -8
- package/esm2022/components/rating/rating.component.mjs +14 -6
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search.component.mjs +8 -11
- package/esm2022/components/select-tree/select-tree.component.mjs +13 -29
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +18 -16
- package/esm2022/components/timeline/timeline.component.mjs +3 -3
- package/esm2022/components/toast/toast-modal.component.mjs +7 -7
- package/esm2022/components/toast/toast.component.mjs +6 -6
- package/esm2022/components/toast/toast.service.mjs +3 -3
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +17 -8
- package/esm2022/components/transfer-picker/interface.mjs +1 -1
- package/esm2022/components/transfer-picker/search/search.component.mjs +9 -5
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +44 -21
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +7 -6
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +9 -7
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +10 -7
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
- package/esm2022/directives/autofocus/autofocus.directive.mjs +7 -7
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +5 -5
- package/esm2022/directives/digit-only/digit-only.directive.mjs +20 -4
- package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
- package/esm2022/directives/digit-only/public-api.mjs +1 -1
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
- package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
- package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
- package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
- package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/services/alert/alert.service.mjs +16 -16
- package/esm2022/services/config/config.constants.mjs +1 -1
- package/esm2022/services/config/config.service.mjs +3 -3
- package/esm2022/services/config/urlStateConfig.service.mjs +4 -4
- package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +6 -6
- package/esm2022/services/data/data.service.mjs +4 -4
- package/esm2022/services/loading/loading.interceptor.mjs +3 -3
- package/esm2022/services/loading/loading.service.mjs +3 -3
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +3 -3
- package/esm2022/services/platform/platform.service.mjs +3 -3
- package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
- package/esm2022/services/title/title.service.mjs +3 -3
- package/esm2022/services/translation/translation.service.mjs +3 -3
- package/esm2022/services/utils/utils.service.mjs +3 -3
- package/fesm2022/cmat-animations.mjs.map +1 -1
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +21 -22
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +4 -13
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +72 -49
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +151 -0
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +12 -8
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +7 -7
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-json-editor.mjs +183 -0
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -0
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +5 -5
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +51 -52
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +58 -125
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +15 -16
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +14 -15
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +4 -4
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +10 -7
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +13 -5
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +13 -16
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +12 -28
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +21 -19
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +13 -13
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +81 -45
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-autofocus.mjs +6 -6
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +10 -10
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +22 -6
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +4 -4
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +15 -15
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +8 -8
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/package.json +75 -65
- package/pipes/secure/secure-pipe.d.ts +1 -1
- package/services/alert/alert.service.d.ts +4 -4
- package/services/config/config.constants.d.ts +1 -1
- package/services/config/urlStateConfig.service.d.ts +3 -2
- package/styles/components/bundle.scss +559 -0
- package/styles/overrides/angular-material.scss +16 -16
- package/styles/styles.scss +6 -1
- package/styles/tailwind.scss +4 -2
- package/components/breadcrumb/breadcrumb.component.scss +0 -18
- package/components/card/card.component.scss +0 -63
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +0 -43
- package/components/cascade/cascade-list/cascade-list.component.scss +0 -22
- package/components/cascade/cascade-menu/cascade-menu.component.scss +0 -48
- package/components/date-range/date-range.component.scss +0 -232
- package/components/drawer/drawer.component.scss +0 -133
- package/components/highlight/highlight.component.scss +0 -3
- package/components/material-color-picker/material-color-picker.component.scss +0 -5
- package/components/material-datetimepicker/calendar-body.scss +0 -58
- package/components/material-datetimepicker/calendar.scss +0 -194
- package/components/material-datetimepicker/clock.scss +0 -90
- package/components/material-datetimepicker/datetimepicker-content.scss +0 -151
- package/components/material-datetimepicker/datetimepicker.scss +0 -145
- package/components/material-datetimepicker/time.scss +0 -82
- package/components/navigation/horizontal/horizontal.component.scss +0 -167
- package/components/navigation/vertical/styles/appearances/compact.scss +0 -103
- package/components/navigation/vertical/styles/appearances/default.scss +0 -550
- package/components/navigation/vertical/styles/appearances/dense.scss +0 -171
- package/components/navigation/vertical/styles/appearances/thin.scss +0 -91
- package/components/navigation/vertical/vertical.component.scss +0 -4
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +0 -19
- package/components/popover/popover.component.scss +0 -174
- package/components/progress-bar/progress-bar.component.scss +0 -7
- package/components/rating/rating.component.scss +0 -33
- package/components/select-search/select-search.component.scss +0 -126
- package/components/select-tree/select-tree.component.scss +0 -54
- package/components/timeline/timeline-item/timeline-item.component.scss +0 -329
- package/components/timeline/timeline.component.scss +0 -42
- package/components/toast/toast-modal.component.scss +0 -119
- package/components/toast/toast.component.scss +0 -62
- package/components/transfer-picker/filter/filter.component.scss +0 -40
- package/components/transfer-picker/search/search.component.scss +0 -7
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +0 -25
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +0 -27
- package/components/transfer-picker/transfer-picker.component.scss +0 -8
- package/esm2022/animations/drop.mjs +0 -26
- package/styles/main.scss +0 -9
- /package/animations/{drop.d.ts → dropdown.d.ts} +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { NgIf } from '@angular/common';
|
|
4
3
|
import { cmatAnimations } from 'cmat/animations';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export class CmatCardComponent {
|
|
@@ -19,14 +18,6 @@ export class CmatCardComponent {
|
|
|
19
18
|
};
|
|
20
19
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
21
20
|
}
|
|
22
|
-
// -----------------------------------------------------------------------------------------------------
|
|
23
|
-
// @ Lifecycle hooks
|
|
24
|
-
// -----------------------------------------------------------------------------------------------------
|
|
25
|
-
/**
|
|
26
|
-
* On changes
|
|
27
|
-
*
|
|
28
|
-
* @param changes
|
|
29
|
-
*/
|
|
30
21
|
ngOnChanges(changes) {
|
|
31
22
|
// Expanded
|
|
32
23
|
if ('expanded' in changes) {
|
|
@@ -39,12 +30,12 @@ export class CmatCardComponent {
|
|
|
39
30
|
this.flippable = coerceBooleanProperty(changes['flippable'].currentValue);
|
|
40
31
|
}
|
|
41
32
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatCardComponent, isStandalone: true, selector: "cmat-card", inputs: { expanded: "expanded", face: "face", flippable: "flippable" }, host: { properties: { "class": "this.classList" } }, exportAs: ["cmatCard"], usesOnChanges: true, ngImport: i0, template: "<!-- Flippable card -->\n@if (flippable) {\n <!-- Front -->\n <div class=\"cmat-card-front\">\n <ng-content select=\"[cmatCardFront]\"></ng-content>\n </div>\n <!-- Back -->\n <div class=\"cmat-card-back overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <ng-content select=\"[cmatCardBack]\"></ng-content>\n </div>\n}\n\n<!-- Normal card -->\n@if (!flippable) {\n <!-- Content -->\n <ng-content></ng-content>\n <!-- Expansion -->\n @if (expanded) {\n <div class=\"cmat-card-expansion\" [@expandCollapse]>\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\n </div>\n }\n}", styles: ["cmat-card{position:relative;display:flex;overflow:hidden;border-radius:1rem}cmat-card.cmat-card-flippable{border-width:0!important;border-radius:1rem;overflow:visible;transform-style:preserve-3d;transition:transform 1s;perspective:600px;background:transparent}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-back{visibility:visible;opacity:1;transform:rotateY(360deg)}cmat-card.cmat-card-flippable .cmat-card-front,cmat-card.cmat-card-flippable .cmat-card-back{display:flex;flex-direction:column;flex:1 1 auto;z-index:10;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;backface-visibility:hidden;border-radius:1rem}cmat-card.cmat-card-flippable .cmat-card-front{position:relative;opacity:1;visibility:visible;transform:rotateY(0);overflow:hidden}cmat-card.cmat-card-flippable .cmat-card-back{position:absolute;inset:0;opacity:0;visibility:hidden;transform:rotateY(180deg)}\n"], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
44
35
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCardComponent, decorators: [{
|
|
46
37
|
type: Component,
|
|
47
|
-
args: [{ selector: 'cmat-card', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: cmatAnimations, exportAs: 'cmatCard', standalone: true, imports: [
|
|
38
|
+
args: [{ selector: 'cmat-card', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: cmatAnimations, exportAs: 'cmatCard', standalone: true, imports: [], template: "<!-- Flippable card -->\n@if (flippable) {\n <!-- Front -->\n <div class=\"cmat-card-front\">\n <ng-content select=\"[cmatCardFront]\"></ng-content>\n </div>\n <!-- Back -->\n <div class=\"cmat-card-back overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <ng-content select=\"[cmatCardBack]\"></ng-content>\n </div>\n}\n\n<!-- Normal card -->\n@if (!flippable) {\n <!-- Content -->\n <ng-content></ng-content>\n <!-- Expansion -->\n @if (expanded) {\n <div class=\"cmat-card-expansion\" [@expandCollapse]>\n <ng-content select=\"[cmatCardExpansion]\"></ng-content>\n </div>\n }\n}", styles: ["cmat-card{position:relative;display:flex;overflow:hidden;border-radius:1rem}cmat-card.cmat-card-flippable{border-width:0!important;border-radius:1rem;overflow:visible;transform-style:preserve-3d;transition:transform 1s;perspective:600px;background:transparent}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}cmat-card.cmat-card-flippable.cmat-card-face-back .cmat-card-back{visibility:visible;opacity:1;transform:rotateY(360deg)}cmat-card.cmat-card-flippable .cmat-card-front,cmat-card.cmat-card-flippable .cmat-card-back{display:flex;flex-direction:column;flex:1 1 auto;z-index:10;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;backface-visibility:hidden;border-radius:1rem}cmat-card.cmat-card-flippable .cmat-card-front{position:relative;opacity:1;visibility:visible;transform:rotateY(0);overflow:hidden}cmat-card.cmat-card-flippable .cmat-card-back{position:absolute;inset:0;opacity:0;visibility:hidden;transform:rotateY(180deg)}\n"] }]
|
|
48
39
|
}], propDecorators: { expanded: [{
|
|
49
40
|
type: Input
|
|
50
41
|
}], face: [{
|
|
@@ -55,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
55
46
|
type: HostBinding,
|
|
56
47
|
args: ['class']
|
|
57
48
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUE0QixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWFqRCxNQUFNLE9BQU8saUJBQWlCO0lBWDlCO1FBaUJhLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFpQixPQUFPLENBQUM7UUFDN0IsY0FBUyxHQUFZLEtBQUssQ0FBQztLQTBCdkM7SUF4QkcsSUFBMEIsU0FBUztRQUMvQix5REFBeUQ7UUFDekQsT0FBTztZQUNILG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25DLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQzdELHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPO1lBQy9ELHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hDLENBQUM7UUFDRix3REFBd0Q7SUFDNUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixXQUFXO1FBQ1gsSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFO1lBQ3ZCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzRTtRQUVELFlBQVk7UUFDWixJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUU7WUFDeEIsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO0lBQ0wsQ0FBQzs4R0FqQ1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsK09DakI5Qixtb0JBc0JDLGtqQ0RWZSxjQUFjOzsyRkFLakIsaUJBQWlCO2tCQVg3QixTQUFTOytCQUNJLFdBQVcsaUJBR04saUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxjQUFjLFlBQ2hCLFVBQVUsY0FDUixJQUFJLFdBQ1AsRUFBRTs4QkFRRixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVvQixTQUFTO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBDbWF0Q2FyZEZhY2UgfSBmcm9tICcuL2NhcmQudHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgY21hdEFuaW1hdGlvbnMgfSBmcm9tICdjbWF0L2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtY2FyZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBhbmltYXRpb25zOiBjbWF0QW5pbWF0aW9ucyxcclxuICAgIGV4cG9ydEFzOiAnY21hdENhcmQnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXhwYW5kZWQ6IEJvb2xlYW5JbnB1dDtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mbGlwcGFibGU6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgICBASW5wdXQoKSBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZmFjZTogQ21hdENhcmRGYWNlID0gJ2Zyb250JztcclxuICAgIEBJbnB1dCgpIGZsaXBwYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NMaXN0KCk6IGFueSB7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ2NtYXQtY2FyZC1leHBhbmRlZCc6IHRoaXMuZXhwYW5kZWQsXHJcbiAgICAgICAgICAgICdjbWF0LWNhcmQtZmFjZS1iYWNrJzogdGhpcy5mbGlwcGFibGUgJiYgdGhpcy5mYWNlID09PSAnYmFjaycsXHJcbiAgICAgICAgICAgICdjbWF0LWNhcmQtZmFjZS1mcm9udCc6IHRoaXMuZmxpcHBhYmxlICYmIHRoaXMuZmFjZSA9PT0gJ2Zyb250JyxcclxuICAgICAgICAgICAgJ2NtYXQtY2FyZC1mbGlwcGFibGUnOiB0aGlzLmZsaXBwYWJsZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgLy8gRXhwYW5kZWRcclxuICAgICAgICBpZiAoJ2V4cGFuZGVkJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgdmFsdWUgdG8gYSBib29sZWFuXHJcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1snZXhwYW5kZWQnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRmxpcHBhYmxlXHJcbiAgICAgICAgaWYgKCdmbGlwcGFibGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cclxuICAgICAgICAgICAgdGhpcy5mbGlwcGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1snZmxpcHBhYmxlJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSBGbGlwcGFibGUgY2FyZCAtLT5cbkBpZiAoZmxpcHBhYmxlKSB7XG4gIDwhLS0gRnJvbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjbWF0LWNhcmQtZnJvbnRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdENhcmRGcm9udF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8IS0tIEJhY2sgLS0+XG4gIDxkaXYgY2xhc3M9XCJjbWF0LWNhcmQtYmFjayBvdmVyZmxvdy15LWF1dG8gbGc6b3ZlcmZsb3cteS1oaWRkZW4gbGc6aG92ZXI6b3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1jdXN0b21cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdENhcmRCYWNrXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59XG5cbjwhLS0gTm9ybWFsIGNhcmQgLS0+XG5AaWYgKCFmbGlwcGFibGUpIHtcbiAgPCEtLSBDb250ZW50IC0tPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwhLS0gRXhwYW5zaW9uIC0tPlxuICBAaWYgKGV4cGFuZGVkKSB7XG4gICAgPGRpdiBjbGFzcz1cImNtYXQtY2FyZC1leHBhbnNpb25cIiBbQGV4cGFuZENvbGxhcHNlXT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjbWF0Q2FyZEV4cGFuc2lvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIH1cbn0iXX0=
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NgFor } from '@angular/common';
|
|
2
1
|
import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation } from '@angular/core';
|
|
3
2
|
import { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';
|
|
4
3
|
import { FormControl } from '@angular/forms';
|
|
@@ -40,14 +39,14 @@ export class CmatCascadeBottomSheetComponent {
|
|
|
40
39
|
trackByFn(index, item) {
|
|
41
40
|
return index || item;
|
|
42
41
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeBottomSheetComponent, deps: [{ token: MAT_BOTTOM_SHEET_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatCascadeBottomSheetComponent, isStandalone: true, selector: "cmat-cascade-bottom-sheet", exportAs: ["cmatCascadeBottomSheet"], ngImport: i0, template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\n <div class=\"sheet-header flex items-center\">\n <p class=\"sheet-title\">{{root.placeholder}}</p>\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\n </button>\n </div>\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\n @for (menuItem of root.steps; track trackByFn(step, menuItem); let step = $index) {\n <mat-tab\n [label]=\"labels[step] || '\u9009\u62E9'\">\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n @for (listItem of menuItem; track trackByFn(i, listItem); let i = $index) {\n <mat-list-item class=\"menu-item\"\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\n <div matLine>{{listItem.label}}</div>\n </mat-list-item>\n }\n </mat-list>\n </mat-tab>\n }\n </mat-tab-group>\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
44
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeBottomSheetComponent, decorators: [{
|
|
47
46
|
type: Component,
|
|
48
|
-
args: [{ selector: 'cmat-cascade-bottom-sheet', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeBottomSheet', standalone: true, imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule
|
|
47
|
+
args: [{ selector: 'cmat-cascade-bottom-sheet', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeBottomSheet', standalone: true, imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule], template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\n <div class=\"sheet-header flex items-center\">\n <p class=\"sheet-title\">{{root.placeholder}}</p>\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\n </button>\n </div>\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\n @for (menuItem of root.steps; track trackByFn(step, menuItem); let step = $index) {\n <mat-tab\n [label]=\"labels[step] || '\u9009\u62E9'\">\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n @for (listItem of menuItem; track trackByFn(i, listItem); let i = $index) {\n <mat-list-item class=\"menu-item\"\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\n <div matLine>{{listItem.label}}</div>\n </mat-list-item>\n }\n </mat-list>\n </mat-tab>\n }\n </mat-tab-group>\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"] }]
|
|
49
48
|
}], ctorParameters: () => [{ type: i5.CmatCascadeListComponent, decorators: [{
|
|
50
49
|
type: Inject,
|
|
51
50
|
args: [MAT_BOTTOM_SHEET_DATA]
|
|
52
51
|
}] }] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZS1ib3R0b20tc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1ib3R0b20tc2hlZXQvY2FzY2FkZS1ib3R0b20tc2hlZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1ib3R0b20tc2hlZXQvY2FzY2FkZS1ib3R0b20tc2hlZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7OztBQVloRCxNQUFNLE9BQU8sK0JBQStCO0lBSXhDLFlBQzBDLElBQThCO1FBQTlCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBSnhFLGFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBS2xCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQXlDLEVBQUUsRUFBRTtZQUNsRSxNQUFNLEtBQUssR0FBdUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWlDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuSCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQUU7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDcEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBaUIsRUFBRSxLQUFhO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9EO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUM5QixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDekIsQ0FBQzs4R0E3QlEsK0JBQStCLGtCQUs1QixxQkFBcUI7a0dBTHhCLCtCQUErQiwySEN0QjVDLHF2Q0F1Qk0sbXhCREhRLGVBQWUsMklBQUUsYUFBYSwybUJBQUUsYUFBYSx1UkFBRSxhQUFhOzsyRkFFN0QsK0JBQStCO2tCQVYzQyxTQUFTOytCQUNJLDJCQUEyQixpQkFHdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDOzswQkFPbEUsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfQk9UVE9NX1NIRUVUX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi4vb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jYXNjYWRlLWxpc3QvY2FzY2FkZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IGlzTnVsbCwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtY2FzY2FkZS1ib3R0b20tc2hlZXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhc2NhZGUtYm90dG9tLXNoZWV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Nhc2NhZGUtYm90dG9tLXNoZWV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBleHBvcnRBczogJ2NtYXRDYXNjYWRlQm90dG9tU2hlZXQnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdFRhYnNNb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FzY2FkZUJvdHRvbVNoZWV0Q29tcG9uZW50IHtcclxuICAgIHNlbGVjdGVkID0gbmV3IEZvcm1Db250cm9sKDApO1xyXG4gICAgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTUFUX0JPVFRPTV9TSEVFVF9EQVRBKSBwdWJsaWMgcm9vdDogQ21hdENhc2NhZGVMaXN0Q29tcG9uZW50LFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5yb290LnN0ZXBzLmZvckVhY2goKGl0ZW1zOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+ID0gaXRlbXMuZmlsdGVyKChpdGVtOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+IGl0ZW0uYWN0aXZlKTtcclxuICAgICAgICAgICAgaWYgKHN0ZXBzWzBdICYmICFpc1VuZGVmaW5lZChzdGVwc1swXS5sYWJlbCkpIHsgdGhpcy5sYWJlbHMucHVzaChzdGVwc1swXS5sYWJlbCk7IH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0hhbmRsZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3QoZGlzYWJsZWQ6IGJvb2xlYW4sIGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOdWxsKHRoaXMuc2VsZWN0ZWQudmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsc1t0aGlzLnNlbGVjdGVkLnZhbHVlXSA9IGxhYmVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMgPSB0aGlzLmxhYmVscy5zbGljZSgwLCB0aGlzLnNlbGVjdGVkLnZhbHVlICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5zZXRWYWx1ZSh0aGlzLnJvb3Quc3RlcHMubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBpbmRleCB8fCBpdGVtO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiY21hdC1jYXNjYWRlLWJvdHRvbS1zaGVldFwiIChjbGljayk9XCJjbGlja0hhbmRsZSgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJzaGVldC1oZWFkZXIgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8cCBjbGFzcz1cInNoZWV0LXRpdGxlXCI+e3tyb290LnBsYWNlaG9sZGVyfX08L3A+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyb290LmJvdHRvbVNoZWV0UmVmLmRpc21pc3MoKVwiPlxuICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfb3V0bGluZTp4LW1hcmsnXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxtYXQtdGFiLWdyb3VwIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkLnZhbHVlXCIgKHNlbGVjdGVkSW5kZXhDaGFuZ2UpPVwic2VsZWN0ZWQuc2V0VmFsdWUoJGV2ZW50KTtcIj5cbiAgICBAZm9yIChtZW51SXRlbSBvZiByb290LnN0ZXBzOyB0cmFjayB0cmFja0J5Rm4oc3RlcCwgbWVudUl0ZW0pOyBsZXQgc3RlcCA9ICRpbmRleCkge1xuICAgICAgPG1hdC10YWJcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsc1tzdGVwXSB8fCAn6YCJ5oupJ1wiPlxuICAgICAgICA8bWF0LWxpc3QgY2xhc3M9XCJtZW51LWxpc3Qgb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tXCI+XG4gICAgICAgICAgQGZvciAobGlzdEl0ZW0gb2YgbWVudUl0ZW07IHRyYWNrIHRyYWNrQnlGbihpLCBsaXN0SXRlbSk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwibGlzdEl0ZW0uYWN0aXZlXCIgW2NsYXNzLmRpc2FibGVkXT1cImxpc3RJdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJvb3Quc2VsZWN0SGFuZGxlKCRldmVudCwgc3RlcCwgaSk7IHNlbGVjdChsaXN0SXRlbS5kaXNhYmxlZCxsaXN0SXRlbS5sYWJlbCk7XCI+XG4gICAgICAgICAgICAgIDxkaXYgbWF0TGluZT57e2xpc3RJdGVtLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbWF0LWxpc3Q+XG4gICAgICA8L21hdC10YWI+XG4gICAgfVxuICA8L21hdC10YWItZ3JvdXA+XG48L2Rpdj4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NgClass
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
4
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
5
|
import { Breakpoints } from '@angular/cdk/layout';
|
|
@@ -10,36 +10,38 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
10
10
|
import { MatIconModule } from '@angular/material/icon';
|
|
11
11
|
import { CmatCascadeMenuComponent } from '../cascade-menu/cascade-menu.component';
|
|
12
12
|
import { isUndefined } from 'lodash-es';
|
|
13
|
+
import { MatInputModule } from '@angular/material/input';
|
|
14
|
+
import { CdkOverlayOrigin, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
15
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
13
16
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/cdk/
|
|
15
|
-
import * as i2 from "@angular/
|
|
16
|
-
import * as i3 from "@angular/material/
|
|
17
|
-
import * as i4 from "@angular/material/
|
|
17
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
18
|
+
import * as i2 from "@angular/cdk/layout";
|
|
19
|
+
import * as i3 from "@angular/material/bottom-sheet";
|
|
20
|
+
import * as i4 from "@angular/material/form-field";
|
|
21
|
+
import * as i5 from "@angular/material/icon";
|
|
22
|
+
import * as i6 from "@angular/material/input";
|
|
23
|
+
import * as i7 from "@angular/cdk/portal";
|
|
18
24
|
let NEXT_ID = 0;
|
|
19
25
|
export class CmatCascadeListComponent {
|
|
20
|
-
constructor(
|
|
21
|
-
this.
|
|
26
|
+
constructor(_overlay, _breakpointObserver, _bottomSheet) {
|
|
27
|
+
this._overlay = _overlay;
|
|
22
28
|
this._breakpointObserver = _breakpointObserver;
|
|
23
29
|
this._bottomSheet = _bottomSheet;
|
|
24
30
|
/* 组件 id */
|
|
25
31
|
this.id = `cmat-cascade-list-${NEXT_ID++}`;
|
|
26
32
|
this.disabled = false;
|
|
27
33
|
this.placeholder = '请选择';
|
|
28
|
-
this.appearance = 'fill';
|
|
29
34
|
this.clearable = false;
|
|
30
35
|
this.fullLevels = true;
|
|
31
36
|
this.changeOnSelect = false;
|
|
32
37
|
this.modelChange = new EventEmitter();
|
|
33
38
|
this.steps = [];
|
|
34
39
|
this.menuVisible = false;
|
|
35
|
-
this.inputHover = false;
|
|
36
40
|
this.currentLabels = [];
|
|
37
41
|
this._touchUi = false;
|
|
38
42
|
this._unsubscribeAll = new Subject();
|
|
39
43
|
this.onTouched = () => { };
|
|
40
44
|
this.controlChange = () => { };
|
|
41
|
-
this.globalListenFunc = () => { };
|
|
42
|
-
this._unsubscribeAll = new Subject();
|
|
43
45
|
}
|
|
44
46
|
// Whether the cascade dropdownlist UI is in touch mode.
|
|
45
47
|
get touchUi() {
|
|
@@ -48,6 +50,34 @@ export class CmatCascadeListComponent {
|
|
|
48
50
|
set touchUi(value) {
|
|
49
51
|
this._touchUi = coerceBooleanProperty(value);
|
|
50
52
|
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
const config = new OverlayConfig({
|
|
55
|
+
hasBackdrop: true,
|
|
56
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
57
|
+
scrollStrategy: this._overlay.scrollStrategies.reposition(),
|
|
58
|
+
positionStrategy: this._overlay
|
|
59
|
+
.position()
|
|
60
|
+
.flexibleConnectedTo(this.overlayOrigin.elementRef)
|
|
61
|
+
.withPositions([
|
|
62
|
+
{
|
|
63
|
+
originX: 'start',
|
|
64
|
+
originY: 'bottom',
|
|
65
|
+
overlayX: 'start',
|
|
66
|
+
overlayY: 'top'
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
originX: 'start',
|
|
70
|
+
originY: 'top',
|
|
71
|
+
overlayX: 'start',
|
|
72
|
+
overlayY: 'bottom'
|
|
73
|
+
}
|
|
74
|
+
])
|
|
75
|
+
});
|
|
76
|
+
this.overlayRef = this._overlay.create(config);
|
|
77
|
+
this.overlayRef.backdropClick().subscribe(() => {
|
|
78
|
+
this.overlayRef.detach();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
51
81
|
ngOnChanges(changes) {
|
|
52
82
|
if (changes['options']) {
|
|
53
83
|
this.options = changes['options'].currentValue;
|
|
@@ -55,8 +85,6 @@ export class CmatCascadeListComponent {
|
|
|
55
85
|
}
|
|
56
86
|
}
|
|
57
87
|
ngOnDestroy() {
|
|
58
|
-
this.globalListenFunc();
|
|
59
|
-
// unsubscribe
|
|
60
88
|
this._unsubscribeAll.next(void 0);
|
|
61
89
|
this._unsubscribeAll.complete();
|
|
62
90
|
}
|
|
@@ -69,10 +97,6 @@ export class CmatCascadeListComponent {
|
|
|
69
97
|
registerOnTouched(fn) {
|
|
70
98
|
this.onTouched = fn;
|
|
71
99
|
}
|
|
72
|
-
close() {
|
|
73
|
-
this.menuVisible = false;
|
|
74
|
-
this.globalListenFunc();
|
|
75
|
-
}
|
|
76
100
|
clickHandle(event) {
|
|
77
101
|
event.stopPropagation();
|
|
78
102
|
if (this.disabled) {
|
|
@@ -84,19 +108,13 @@ export class CmatCascadeListComponent {
|
|
|
84
108
|
return;
|
|
85
109
|
}
|
|
86
110
|
if (this.touchUi) {
|
|
87
|
-
this.
|
|
111
|
+
if (this.overlayRef && this.overlayRef.hasAttached()) {
|
|
112
|
+
this.overlayRef.detach();
|
|
113
|
+
}
|
|
88
114
|
this.openBottomSheet();
|
|
89
115
|
}
|
|
90
116
|
else {
|
|
91
|
-
this.
|
|
92
|
-
if (this.menuVisible) {
|
|
93
|
-
this.globalListenFunc = this._renderer.listen('document', 'click', () => {
|
|
94
|
-
this.menuVisible = false;
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
this.globalListenFunc();
|
|
99
|
-
}
|
|
117
|
+
this.overlayRef.attach(this.menuTemplate);
|
|
100
118
|
}
|
|
101
119
|
}
|
|
102
120
|
changeLabels() {
|
|
@@ -125,7 +143,7 @@ export class CmatCascadeListComponent {
|
|
|
125
143
|
}));
|
|
126
144
|
this.steps = [step1];
|
|
127
145
|
}
|
|
128
|
-
this.menuVisible = false;
|
|
146
|
+
//this.menuVisible = false;
|
|
129
147
|
this.inputValue = '';
|
|
130
148
|
if (event) {
|
|
131
149
|
this.modelChange.emit([]);
|
|
@@ -178,13 +196,15 @@ export class CmatCascadeListComponent {
|
|
|
178
196
|
}
|
|
179
197
|
// last step
|
|
180
198
|
this.changeLabels();
|
|
181
|
-
this.
|
|
199
|
+
if (this.overlayRef && this.overlayRef.hasAttached()) {
|
|
200
|
+
this.overlayRef.detach();
|
|
201
|
+
}
|
|
182
202
|
if (this.touchUi) {
|
|
183
203
|
this.bottomSheetRef.dismiss();
|
|
184
204
|
}
|
|
185
205
|
}
|
|
186
206
|
showClearIcon() {
|
|
187
|
-
return !!(this.clearable && this.
|
|
207
|
+
return !!(this.clearable && this.currentLabels.length);
|
|
188
208
|
}
|
|
189
209
|
openBottomSheet() {
|
|
190
210
|
this.bottomSheetRef = this._bottomSheet.open(CmatCascadeBottomSheetComponent, {
|
|
@@ -218,21 +238,21 @@ export class CmatCascadeListComponent {
|
|
|
218
238
|
this.inputValue = this.currentLabels[this.currentLabels.length - 1].label;
|
|
219
239
|
}
|
|
220
240
|
}
|
|
221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeListComponent, deps: [{ token: i1.Overlay }, { token: i2.BreakpointObserver }, { token: i3.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatCascadeListComponent, isStandalone: true, selector: "cmat-cascade-list", inputs: { id: "id", disabled: "disabled", placeholder: "placeholder", label: "label", options: "options", clearable: "clearable", fullLevels: "fullLevels", changeOnSelect: "changeOnSelect", model: "model", touchUi: "touchUi" }, outputs: { modelChange: "modelChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{
|
|
223
243
|
provide: NG_VALUE_ACCESSOR,
|
|
224
244
|
useExisting: forwardRef(() => CmatCascadeListComponent),
|
|
225
245
|
multi: true
|
|
226
|
-
}], exportAs: ["cmatCascadeList"], usesOnChanges: true, ngImport: i0, template: "<span role=\"presentation\" class=\"cmat-cascade-list\" [ngClass]=\"{'opened': menuVisible, 'disabled': disabled}\"\n
|
|
246
|
+
}], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, static: true }], exportAs: ["cmatCascadeList"], usesOnChanges: true, ngImport: i0, template: "<span role=\"presentation\" class=\"cmat-cascade-list\" [ngClass]=\"{'opened': menuVisible, 'disabled': disabled}\"\n cdk-overlay-origin>\n <mat-form-field>\n @if (label) {\n <mat-label>{{label}}</mat-label>\n }\n <input (click)=\"clickHandle($event)\" [value]=\"inputValue || ''\" matInput readonly\n [placeholder]=\"currentLabels.length ? '' : placeholder\">\n\n @if (showClearIcon()) {\n <button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\"\n (click)=\"clearValue(false,$event)\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\n </button>\n }\n @if (!showClearIcon()) {\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\n }\n </mat-form-field>\n</span>\n\n<ng-template cdk-portal #menuTemplate=\"cdkPortal\">\n <cmat-cascade-menu></cmat-cascade-menu>\n</ng-template>", styles: [".cmat-cascade-list{position:relative;display:inline-block;width:100%;line-height:2}.cmat-cascade-list mat-form-field{width:100%}.cmat-cascade-list input{cursor:pointer}.cmat-cascade-list.disabled .cascade-label{z-index:2}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CmatCascadeMenuComponent, selector: "cmat-cascade-menu", exportAs: ["cmatCascadeMenu"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i7.TemplatePortalDirective, selector: "[cdk-portal], [portal]", exportAs: ["cdkPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
227
247
|
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeListComponent, decorators: [{
|
|
229
249
|
type: Component,
|
|
230
250
|
args: [{ selector: 'cmat-cascade-list', providers: [{
|
|
231
251
|
provide: NG_VALUE_ACCESSOR,
|
|
232
252
|
useExisting: forwardRef(() => CmatCascadeListComponent),
|
|
233
253
|
multi: true
|
|
234
|
-
}], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeList', standalone: true, imports: [MatFormFieldModule, MatIconModule, NgClass,
|
|
235
|
-
}], ctorParameters: () => [{ type:
|
|
254
|
+
}], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeList', standalone: true, imports: [MatFormFieldModule, MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule, OverlayModule, PortalModule], template: "<span role=\"presentation\" class=\"cmat-cascade-list\" [ngClass]=\"{'opened': menuVisible, 'disabled': disabled}\"\n cdk-overlay-origin>\n <mat-form-field>\n @if (label) {\n <mat-label>{{label}}</mat-label>\n }\n <input (click)=\"clickHandle($event)\" [value]=\"inputValue || ''\" matInput readonly\n [placeholder]=\"currentLabels.length ? '' : placeholder\">\n\n @if (showClearIcon()) {\n <button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\"\n (click)=\"clearValue(false,$event)\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\n </button>\n }\n @if (!showClearIcon()) {\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\n }\n </mat-form-field>\n</span>\n\n<ng-template cdk-portal #menuTemplate=\"cdkPortal\">\n <cmat-cascade-menu></cmat-cascade-menu>\n</ng-template>", styles: [".cmat-cascade-list{position:relative;display:inline-block;width:100%;line-height:2}.cmat-cascade-list mat-form-field{width:100%}.cmat-cascade-list input{cursor:pointer}.cmat-cascade-list.disabled .cascade-label{z-index:2}\n"] }]
|
|
255
|
+
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i2.BreakpointObserver }, { type: i3.MatBottomSheet }], propDecorators: { id: [{
|
|
236
256
|
type: HostBinding,
|
|
237
257
|
args: ['attr.id']
|
|
238
258
|
}, {
|
|
@@ -241,7 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
241
261
|
type: Input
|
|
242
262
|
}], placeholder: [{
|
|
243
263
|
type: Input
|
|
244
|
-
}],
|
|
264
|
+
}], label: [{
|
|
245
265
|
type: Input
|
|
246
266
|
}], options: [{
|
|
247
267
|
type: Input,
|
|
@@ -257,7 +277,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
257
277
|
args: [{ required: true }]
|
|
258
278
|
}], modelChange: [{
|
|
259
279
|
type: Output
|
|
280
|
+
}], overlayOrigin: [{
|
|
281
|
+
type: ViewChild,
|
|
282
|
+
args: [CdkOverlayOrigin, { static: true }]
|
|
283
|
+
}], menuTemplate: [{
|
|
284
|
+
type: ViewChild,
|
|
285
|
+
args: ['menuTemplate', { static: true }]
|
|
260
286
|
}], touchUi: [{
|
|
261
287
|
type: Input
|
|
262
288
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jYXNjYWRlL2Nhc2NhZGUtbGlzdC9jYXNjYWRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1saXN0L2Nhc2NhZGUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBR04saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FB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QWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixDQUFDOzRJQU05RSxFQUFFO3NCQUZSLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR3FCLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHcUIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2YsV0FBVztzQkFBcEIsTUFBTTtnQkF1QkgsT0FBTztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldCwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi4vb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDbWF0Q2FzY2FkZUJvdHRvbVNoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2FzY2FkZS1ib3R0b20tc2hlZXQvY2FzY2FkZS1ib3R0b20tc2hlZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQ21hdENhc2NhZGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vY2FzY2FkZS1tZW51L2Nhc2NhZGUtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcblxyXG5sZXQgTkVYVF9JRCA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1jYXNjYWRlLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhc2NhZGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXNjYWRlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGV4cG9ydEFzOiAnY21hdENhc2NhZGVMaXN0JyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBOZ0NsYXNzLCBOZ0lmLCBDbWF0Q2FzY2FkZU1lbnVDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgLyog57uE5Lu2IGlkICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpZCA9IGBjbWF0LWNhc2NhZGUtbGlzdC0ke05FWFRfSUQrK31gO1xyXG5cclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAn6K+36YCJ5oupJztcclxuXHJcbiAgICBASW5wdXQoKSBhcHBlYXJhbmNlOiAnZmlsbCcgfCAnb3V0bGluZScgPSAnZmlsbCc7XHJcblxyXG4gICAgLy8gZGF0YVxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgb3B0aW9uczogQXJyYXk8Q21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlPjtcclxuICAgIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZnVsbExldmVscyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBjaGFuZ2VPblNlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgIC8vIGJpbmQgdmFsdWVcclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG1vZGVsOiBBcnJheTxzdHJpbmc+O1xyXG4gICAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8vIGJvdHRvbVNoZWV0XHJcbiAgICBib3R0b21TaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY7XHJcbiAgICBzdGVwczogQXJyYXk8YW55PiA9IFtdO1xyXG4gICAgbWVudVZpc2libGUgPSBmYWxzZTtcclxuICAgIGlucHV0SG92ZXIgPSBmYWxzZTtcclxuICAgIGN1cnJlbnRMYWJlbHM6IEFycmF5PENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZT4gPSBbXTtcclxuICAgIGlucHV0VmFsdWU/OiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSBfdG91Y2hVaSA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfYm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2hldGhlciB0aGUgY2FzY2FkZSBkcm9wZG93bmxpc3QgVUkgaXMgaW4gdG91Y2ggbW9kZS5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdG91Y2hVaSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hVaTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdG91Y2hVaSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3RvdWNoVWkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG4gICAgY29udHJvbENoYW5nZTogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG4gICAgZ2xvYmFsTGlzdGVuRnVuYzogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxMaXN0ZW5GdW5jKCk7XHJcbiAgICAgICAgLy8gdW5zdWJzY3JpYmVcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tZW51VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuRnVuYygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrSGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCBpc1NlbGZUcmlnZ2VyID0gWydTUEFOJywgJ0knLCAnSU5QVVQnXS5maW5kKHYgPT4gdiA9PT0gZWxlbWVudC50YWdOYW1lKTtcclxuICAgICAgICBpZiAoIWlzU2VsZlRyaWdnZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hVaSkge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbkJvdHRvbVNoZWV0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZW51VmlzaWJsZSA9ICF0aGlzLm1lbnVWaXNpYmxlO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubWVudVZpc2libGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuRnVuYyA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbihcclxuICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQnLCAnY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVudVZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxMaXN0ZW5GdW5jKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlTGFiZWxzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZTogQXJyYXk8Q21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlPiA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnN0ZXBzLmZvckVhY2goKGl0ZW1zOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+ID0gaXRlbXMuZmlsdGVyKChpdGVtOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+IGl0ZW0uYWN0aXZlKTtcclxuICAgICAgICAgICAgbmV4dFZhbHVlLnB1c2goc3RlcHNbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhYmVscyA9IG5leHRWYWx1ZTtcclxuICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKCk7XHJcbiAgICAgICAgY29uc3QgbmV4dCA9IG5leHRWYWx1ZS5tYXAoKGl0ZW06IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSkgPT4gaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG5leHQ7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChuZXh0KTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclZhbHVlKGlzRmlyc3Q6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQpIHsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFpc0ZpcnN0IHx8ICh0aGlzLm1vZGVsICYmICF0aGlzLm1vZGVsLmxlbmd0aCkgfHwgIXRoaXMubW9kZWwpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcDEgPSB0aGlzLm9wdGlvbnMubWFwKChvcHRpb246IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbixcclxuICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2VcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB0aGlzLnN0ZXBzID0gW3N0ZXAxXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWVudVZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGV2ZW50KSB7IHRoaXMubW9kZWxDaGFuZ2UuZW1pdChbXSk7IH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0U3RlcHMoaW5kZXg6IG51bWJlciwgb3B0aW9uczogQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlW10pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzdGVwOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2VbXSA9IFtdO1xyXG4gICAgICAgIG9wdGlvbnMubWFwKChpdGVtOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWxbaW5kZXhdID09PSBpdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGl0ZW0uY2hpbGRyZW4pKVxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBpdGVtLmNoaWxkcmVuO1xyXG5cclxuICAgICAgICAgICAgICAgIHN0ZXAucHVzaCgoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzdGVwLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN0ZXBzLnB1c2goc3RlcCk7XHJcbiAgICAgICAgaW5kZXggKz0gMTtcclxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLm1vZGVsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRTdGVwcyhpbmRleCwgb3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEhhbmRsZShldmVudDogRXZlbnQsIHN0ZXA6IG51bWJlciwgaW5kZXg6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0ZXBzW3N0ZXBdW2luZGV4XS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN0ZXBzW3N0ZXBdID0gdGhpcy5zdGVwc1tzdGVwXS5tYXAoKGl0ZW06IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSwgaTogbnVtYmVyKSA9PlxyXG4gICAgICAgICh7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gaW5kZXhcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgLy8gcmVzZXQgc3RlcHNcclxuICAgICAgICB0aGlzLnN0ZXBzLmxlbmd0aCA9IHN0ZXAgKyAxO1xyXG4gICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLnN0ZXBzW3N0ZXBdW2luZGV4XS5jaGlsZHJlbjtcclxuXHJcbiAgICAgICAgLy8gZ28gbmV4dFxyXG4gICAgICAgIGlmIChuZXh0ICYmIEFycmF5LmlzQXJyYXkobmV4dCkgJiYgbmV4dC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8gY2hhbmdlIG9uIHNlbGVjdCAocHJvcHMpXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYW5nZU9uU2VsZWN0KSB7IHRoaXMuY2hhbmdlTGFiZWxzKCk7IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5hdGl2ZU5leHQgPSBuZXh0Lm1hcCgoaXRlbTogQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2VcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy5wdXNoKG5hdGl2ZU5leHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbGFzdCBzdGVwXHJcbiAgICAgICAgdGhpcy5jaGFuZ2VMYWJlbHMoKTtcclxuICAgICAgICB0aGlzLm1lbnVWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hVaSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvdHRvbVNoZWV0UmVmLmRpc21pc3MoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0NsZWFySWNvbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISEodGhpcy5jbGVhcmFibGUgJiYgdGhpcy5pbnB1dEhvdmVyICYmIHRoaXMuY3VycmVudExhYmVscy5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Cb3R0b21TaGVldCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmJvdHRvbVNoZWV0UmVmID0gdGhpcy5fYm90dG9tU2hlZXQub3BlbihDbWF0Q2FzY2FkZUJvdHRvbVNoZWV0Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xlYXJWYWx1ZSh0cnVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tb2RlbC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5tb2RlbC5tYXAoKHYpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChpOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+IGkudmFsdWUgPT09IHYpWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChpdGVtLmNoaWxkcmVuKSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBpdGVtLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFiZWxzID0gdmFsLmZpbHRlcih2ID0+ICEhdik7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldElucHV0VmFsdWUoKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0U3RlcHMoMCwgdGhpcy5vcHRpb25zKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLkhhbmRzZXQpLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCksXHJcbiAgICAgICAgICAgIG1hcCgobWF0Y2g6IHsgbWF0Y2hlczogYW55IH0pID0+IG1hdGNoLm1hdGNoZXMpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKG1hdGNoZXM6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b3VjaFVpICE9PSBtYXRjaGVzICYmICFtYXRjaGVzICYmIHRoaXMuYm90dG9tU2hlZXRSZWYgJiYgdGhpcy5ib3R0b21TaGVldFJlZi5kaXNtaXNzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0SW5wdXRWYWx1ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mdWxsTGV2ZWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhYmVscy5tYXAoKHZhbHVlLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgKz0gYCR7dmFsdWUubGFiZWx9JHtpIDwgdGhpcy5jdXJyZW50TGFiZWxzLmxlbmd0aCAtIDEgPyAnIC8gJyA6ICcnfWA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuY3VycmVudExhYmVsc1t0aGlzLmN1cnJlbnRMYWJlbHMubGVuZ3RoIC0gMV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxzcGFuIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImNtYXQtY2FzY2FkZS1saXN0XCIgW25nQ2xhc3NdPVwieydvcGVuZWQnOiBtZW51VmlzaWJsZSwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCJcbiAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGUoJGV2ZW50KVwiIChtb3VzZWVudGVyKT1cImlucHV0SG92ZXIgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaW5wdXRIb3ZlciA9IGZhbHNlXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cbiAgICAgICAgPGlucHV0IFt2YWx1ZV09XCJpbnB1dFZhbHVlIHx8ICcnXCIgbWF0SW5wdXQgcmVhZG9ubHkgW3BsYWNlaG9sZGVyXT1cImN1cnJlbnRMYWJlbHMubGVuZ3RoID8gJycgOiBwbGFjZWhvbGRlclwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInNob3dDbGVhckljb24oKVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKGZhbHNlLCRldmVudClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX291dGxpbmU6eC1tYXJrJ1wiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4ICpuZ0lmPVwiIXNob3dDbGVhckljb24oKVwiIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTphcnJvd19kcm9wX2Rvd24nXCI+PC9tYXQtaWNvbj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxjbWF0LWNhc2NhZGUtbWVudT48L2NtYXQtY2FzY2FkZS1tZW51PlxuPC9zcGFuPiJdfQ==
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jYXNjYWRlL2Nhc2NhZGUtbGlzdC9jYXNjYWRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1saXN0L2Nhc2NhZGUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FB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O3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBdUJ2QyxPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0LCBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuLi9vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENtYXRDYXNjYWRlQm90dG9tU2hlZXRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNjYWRlLWJvdHRvbS1zaGVldC9jYXNjYWRlLWJvdHRvbS1zaGVldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDbWF0Q2FzY2FkZU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9jYXNjYWRlLW1lbnUvY2FzY2FkZS1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IENka092ZXJsYXlPcmlnaW4sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlNb2R1bGUsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENka1BvcnRhbCwgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcblxyXG5sZXQgTkVYVF9JRCA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1jYXNjYWRlLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhc2NhZGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXNjYWRlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGV4cG9ydEFzOiAnY21hdENhc2NhZGVMaXN0JyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBOZ0NsYXNzLCBDbWF0Q2FzY2FkZU1lbnVDb21wb25lbnQsIE1hdElucHV0TW9kdWxlLCBPdmVybGF5TW9kdWxlLCBQb3J0YWxNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICAvKiDnu4Tku7YgaWQgKi9cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYGNtYXQtY2FzY2FkZS1saXN0LSR7TkVYVF9JRCsrfWA7XHJcblxyXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICfor7fpgInmi6knO1xyXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgICAvLyBkYXRhXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBvcHRpb25zOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+O1xyXG4gICAgQElucHV0KCkgY2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBmdWxsTGV2ZWxzID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGNoYW5nZU9uU2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgLy8gYmluZCB2YWx1ZVxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbW9kZWw6IEFycmF5PHN0cmluZz47XHJcbiAgICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChDZGtPdmVybGF5T3JpZ2luLCB7IHN0YXRpYzogdHJ1ZSB9KSBvdmVybGF5T3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luO1xyXG4gICAgQFZpZXdDaGlsZCgnbWVudVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgbWVudVRlbXBsYXRlOiBDZGtQb3J0YWw7XHJcbiAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICAgIC8vIGJvdHRvbVNoZWV0XHJcbiAgICBib3R0b21TaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY7XHJcbiAgICBzdGVwczogQXJyYXk8YW55PiA9IFtdO1xyXG4gICAgbWVudVZpc2libGUgPSBmYWxzZTtcclxuICAgIGN1cnJlbnRMYWJlbHM6IEFycmF5PENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZT4gPSBbXTtcclxuICAgIGlucHV0VmFsdWU/OiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSBfdG91Y2hVaSA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICAgICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfYm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0XHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gV2hldGhlciB0aGUgY2FzY2FkZSBkcm9wZG93bmxpc3QgVUkgaXMgaW4gdG91Y2ggbW9kZS5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdG91Y2hVaSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hVaTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdG91Y2hVaSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3RvdWNoVWkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG4gICAgY29udHJvbENoYW5nZTogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcclxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XHJcbiAgICAgICAgICAgICAgICAucG9zaXRpb24oKVxyXG4gICAgICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5T3JpZ2luLmVsZW1lbnRSZWYpXHJcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XHJcblxyXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udHJvbENoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrSGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCBpc1NlbGZUcmlnZ2VyID0gWydTUEFOJywgJ0knLCAnSU5QVVQnXS5maW5kKHYgPT4gdiA9PT0gZWxlbWVudC50YWdOYW1lKTtcclxuICAgICAgICBpZiAoIWlzU2VsZlRyaWdnZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hVaSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5vcGVuQm90dG9tU2hlZXQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMubWVudVRlbXBsYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlTGFiZWxzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZTogQXJyYXk8Q21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlPiA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnN0ZXBzLmZvckVhY2goKGl0ZW1zOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzOiBBcnJheTxDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2U+ID0gaXRlbXMuZmlsdGVyKChpdGVtOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+IGl0ZW0uYWN0aXZlKTtcclxuICAgICAgICAgICAgbmV4dFZhbHVlLnB1c2goc3RlcHNbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhYmVscyA9IG5leHRWYWx1ZTtcclxuICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKCk7XHJcbiAgICAgICAgY29uc3QgbmV4dCA9IG5leHRWYWx1ZS5tYXAoKGl0ZW06IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSkgPT4gaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG5leHQ7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChuZXh0KTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclZhbHVlKGlzRmlyc3Q6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQpIHsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFpc0ZpcnN0IHx8ICh0aGlzLm1vZGVsICYmICF0aGlzLm1vZGVsLmxlbmd0aCkgfHwgIXRoaXMubW9kZWwpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcDEgPSB0aGlzLm9wdGlvbnMubWFwKChvcHRpb246IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbixcclxuICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2VcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB0aGlzLnN0ZXBzID0gW3N0ZXAxXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vdGhpcy5tZW51VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoZXZlbnQpIHsgdGhpcy5tb2RlbENoYW5nZS5lbWl0KFtdKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRTdGVwcyhpbmRleDogbnVtYmVyLCBvcHRpb25zOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2VbXSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN0ZXA6IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZVtdID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5tYXAoKGl0ZW06IENtYXRDYXNjYWRlT3B0aW9uc0ludGVyZmFjZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbFtpbmRleF0gPT09IGl0ZW0udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQoaXRlbS5jaGlsZHJlbikpXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IGl0ZW0uY2hpbGRyZW47XHJcblxyXG4gICAgICAgICAgICAgICAgc3RlcC5wdXNoKCh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWVcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHN0ZXAucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3RlcHMucHVzaChzdGVwKTtcclxuICAgICAgICBpbmRleCArPSAxO1xyXG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMubW9kZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdFN0ZXBzKGluZGV4LCBvcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0SGFuZGxlKGV2ZW50OiBFdmVudCwgc3RlcDogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RlcHNbc3RlcF1baW5kZXhdLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc3RlcHNbc3RlcF0gPSB0aGlzLnN0ZXBzW3N0ZXBdLm1hcCgoaXRlbTogQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlLCBpOiBudW1iZXIpID0+XHJcbiAgICAgICAgKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgYWN0aXZlOiBpID09PSBpbmRleFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICAvLyByZXNldCBzdGVwc1xyXG4gICAgICAgIHRoaXMuc3RlcHMubGVuZ3RoID0gc3RlcCArIDE7XHJcbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuc3RlcHNbc3RlcF1baW5kZXhdLmNoaWxkcmVuO1xyXG5cclxuICAgICAgICAvLyBnbyBuZXh0XHJcbiAgICAgICAgaWYgKG5leHQgJiYgQXJyYXkuaXNBcnJheShuZXh0KSAmJiBuZXh0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvLyBjaGFuZ2Ugb24gc2VsZWN0IChwcm9wcylcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hhbmdlT25TZWxlY3QpIHsgdGhpcy5jaGFuZ2VMYWJlbHMoKTsgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbmF0aXZlTmV4dCA9IG5leHQubWFwKChpdGVtOiBDbWF0Q2FzY2FkZU9wdGlvbnNJbnRlcmZhY2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLnB1c2gobmF0aXZlTmV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsYXN0IHN0ZXBcclxuICAgICAgICB0aGlzLmNoYW5nZUxhYmVscygpO1xyXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgJiYgdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50b3VjaFVpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm90dG9tU2hlZXRSZWYuZGlzbWlzcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Q2xlYXJJY29uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhISh0aGlzLmNsZWFyYWJsZSAmJiB0aGlzLmN1cnJlbnRMYWJlbHMubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuQm90dG9tU2hlZXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ib3R0b21TaGVldFJlZiA9IHRoaXMuX2JvdHRvbVNoZWV0Lm9wZW4oQ21hdENhc2NhZGVCb3R0b21TaGVldENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBkYXRhOiB0aGlzXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsZWFyVmFsdWUodHJ1ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHRoaXMubW9kZWwubWFwKCh2KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5vcHRpb25zLmZpbHRlcigoaTogQ21hdENhc2NhZGVPcHRpb25zSW50ZXJmYWNlKSA9PiBpLnZhbHVlID09PSB2KVswXTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQoaXRlbS5jaGlsZHJlbikpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gaXRlbS5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhYmVscyA9IHZhbC5maWx0ZXIodiA9PiAhIXYpO1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdFN0ZXBzKDAsIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5IYW5kc2V0KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpLFxyXG4gICAgICAgICAgICBtYXAoKG1hdGNoOiB7IG1hdGNoZXM6IGFueSB9KSA9PiBtYXRjaC5tYXRjaGVzKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChtYXRjaGVzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hVaSAhPT0gbWF0Y2hlcyAmJiAhbWF0Y2hlcyAmJiB0aGlzLmJvdHRvbVNoZWV0UmVmICYmIHRoaXMuYm90dG9tU2hlZXRSZWYuZGlzbWlzcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldElucHV0VmFsdWUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZnVsbExldmVscykge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMubWFwKCh2YWx1ZSwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlICs9IGAke3ZhbHVlLmxhYmVsfSR7aSA8IHRoaXMuY3VycmVudExhYmVscy5sZW5ndGggLSAxID8gJyAvICcgOiAnJ31gO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmN1cnJlbnRMYWJlbHNbdGhpcy5jdXJyZW50TGFiZWxzLmxlbmd0aCAtIDFdLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8c3BhbiByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJjbWF0LWNhc2NhZGUtbGlzdFwiIFtuZ0NsYXNzXT1cInsnb3BlbmVkJzogbWVudVZpc2libGUsICdkaXNhYmxlZCc6IGRpc2FibGVkfVwiXG4gIGNkay1vdmVybGF5LW9yaWdpbj5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIEBpZiAobGFiZWwpIHtcbiAgICAgIDxtYXQtbGFiZWw+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxpbnB1dCAoY2xpY2spPVwiY2xpY2tIYW5kbGUoJGV2ZW50KVwiIFt2YWx1ZV09XCJpbnB1dFZhbHVlIHx8ICcnXCIgbWF0SW5wdXQgcmVhZG9ubHlcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjdXJyZW50TGFiZWxzLmxlbmd0aCA/ICcnIDogcGxhY2Vob2xkZXJcIj5cblxuICAgIEBpZiAoc2hvd0NsZWFySWNvbigpKSB7XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKGZhbHNlLCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfb3V0bGluZTp4LW1hcmsnXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgICBAaWYgKCFzaG93Q2xlYXJJY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggW3N2Z0ljb25dPVwiJ21hdF9vdXRsaW5lOmFycm93X2Ryb3BfZG93bidcIj48L21hdC1pY29uPlxuICAgIH1cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlIGNkay1wb3J0YWwgI21lbnVUZW1wbGF0ZT1cImNka1BvcnRhbFwiPlxuICA8Y21hdC1jYXNjYWRlLW1lbnU+PC9jbWF0LWNhc2NhZGUtbWVudT5cbjwvbmctdGVtcGxhdGU+Il19
|