@seniorsistemas/angular-components 17.30.1 → 17.31.1
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/bundles/seniorsistemas-angular-components.umd.js +84 -77
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/accordion/accordion.component.d.ts +13 -11
- package/components/object-card/object-card.component.d.ts +5 -6
- package/components/utils/breakpoints.d.ts +7 -7
- package/esm2015/components/accordion/accordion.component.js +41 -31
- package/esm2015/components/object-card/object-card.component.js +33 -37
- package/esm2015/components/utils/breakpoints.js +1 -1
- package/esm5/components/accordion/accordion.component.js +55 -33
- package/esm5/components/object-card/object-card.component.js +34 -49
- package/esm5/components/utils/breakpoints.js +1 -1
- package/fesm2015/seniorsistemas-angular-components.js +71 -65
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +85 -78
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import { AfterContentInit, OnChanges, QueryList, SimpleChanges, OnDestroy } from "@angular/core";
|
|
1
|
+
import { AfterContentInit, OnChanges, QueryList, SimpleChanges, OnDestroy, OnInit } from "@angular/core";
|
|
2
2
|
import { AccordionPanelComponent } from "./components/accordion-panel/accordion-panel.component";
|
|
3
|
-
export declare class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {
|
|
4
|
-
activeIndex: number;
|
|
3
|
+
export declare class AccordionComponent implements AfterContentInit, OnInit, OnChanges, OnDestroy {
|
|
4
|
+
activeIndex: number | number[];
|
|
5
5
|
multiple: boolean;
|
|
6
6
|
panelsComponents: QueryList<AccordionPanelComponent>;
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
7
|
+
private unsubscribe$;
|
|
8
|
+
private panels;
|
|
9
|
+
private openSubs;
|
|
10
|
+
ngOnInit(): void;
|
|
10
11
|
ngAfterContentInit(): void;
|
|
11
12
|
ngOnChanges(changes: SimpleChanges): void;
|
|
12
13
|
ngOnDestroy(): void;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
private
|
|
14
|
+
private validateInputs;
|
|
15
|
+
private setupTabs;
|
|
16
|
+
private closeOtherTabs;
|
|
17
|
+
private setBehavior;
|
|
18
|
+
private enableSinglePanelBehavior;
|
|
19
|
+
private enableMultiplePanelBehavior;
|
|
18
20
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { AfterContentChecked,
|
|
1
|
+
import { AfterContentChecked, EventEmitter, QueryList } from "@angular/core";
|
|
2
2
|
import { BorderButtonOptions } from "../shared/models/border-button-options";
|
|
3
3
|
import { EnumSeverity } from "../shared/models/enum-severity";
|
|
4
4
|
import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
|
|
5
5
|
import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
|
|
6
|
-
export declare class ObjectCardComponent implements
|
|
7
|
-
private elementRef;
|
|
6
|
+
export declare class ObjectCardComponent implements AfterContentChecked {
|
|
8
7
|
static nextId: number;
|
|
9
8
|
id: string;
|
|
10
9
|
expanded: boolean;
|
|
@@ -18,12 +17,12 @@ export declare class ObjectCardComponent implements AfterViewInit, AfterContentC
|
|
|
18
17
|
severity: EnumSeverity;
|
|
19
18
|
borderButtonOptions: BorderButtonOptions;
|
|
20
19
|
readonly EnumSeverity: typeof EnumSeverity;
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
private readonly container;
|
|
21
|
+
private readonly cardMainContainer;
|
|
22
|
+
private readonly iconContainer;
|
|
23
23
|
ngAfterContentChecked(): void;
|
|
24
24
|
private update;
|
|
25
25
|
toggle(): void;
|
|
26
26
|
expand(): void;
|
|
27
27
|
collapse(): void;
|
|
28
|
-
getExpandedFieldWidth(): number;
|
|
29
28
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const Breakpoints: {
|
|
2
|
-
SM_MIN:
|
|
3
|
-
SM_MAX:
|
|
4
|
-
MD_MIN:
|
|
5
|
-
MD_MAX:
|
|
6
|
-
LG_MIN:
|
|
7
|
-
LG_MAX:
|
|
8
|
-
XL_MIN:
|
|
2
|
+
SM_MIN: 0;
|
|
3
|
+
SM_MAX: 767;
|
|
4
|
+
MD_MIN: 768;
|
|
5
|
+
MD_MAX: 991;
|
|
6
|
+
LG_MIN: 992;
|
|
7
|
+
LG_MAX: 1199;
|
|
8
|
+
XL_MIN: 1200;
|
|
9
9
|
XL_MAX: number;
|
|
10
10
|
};
|
|
@@ -6,66 +6,76 @@ import { takeUntil } from "rxjs/operators";
|
|
|
6
6
|
let AccordionComponent = class AccordionComponent {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.multiple = false;
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
9
|
+
this.unsubscribe$ = new Subject();
|
|
10
|
+
this.panels = [];
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.validateInputs();
|
|
11
14
|
}
|
|
12
15
|
ngAfterContentInit() {
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
16
|
+
this.panels = this.panelsComponents.toArray();
|
|
17
|
+
this.openSubs = new Array(this.panels.length);
|
|
18
|
+
this.setBehavior(this.multiple);
|
|
19
|
+
this.setupTabs();
|
|
17
20
|
}
|
|
18
21
|
ngOnChanges(changes) {
|
|
19
22
|
if (changes.multiple) {
|
|
20
|
-
this.
|
|
23
|
+
this.setBehavior(changes.multiple.currentValue);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
ngOnDestroy() {
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
27
|
+
this.unsubscribe$.next();
|
|
28
|
+
this.unsubscribe$.complete();
|
|
29
|
+
}
|
|
30
|
+
validateInputs() {
|
|
31
|
+
if (!this.multiple && Array.isArray(this.activeIndex)) {
|
|
32
|
+
throw new Error("The activeIndex should not be an array when multiple is set to false.");
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
|
-
|
|
35
|
+
setupTabs() {
|
|
28
36
|
var _a;
|
|
29
|
-
if ((_a = this.
|
|
37
|
+
if ((_a = this.panels) === null || _a === void 0 ? void 0 : _a.length) {
|
|
30
38
|
if (this.activeIndex !== undefined && this.activeIndex !== null) {
|
|
31
|
-
const
|
|
32
|
-
|
|
39
|
+
const activeTabs = Array.isArray(this.activeIndex)
|
|
40
|
+
? this.panels.filter((_, index) => this.activeIndex.includes(index))
|
|
41
|
+
: [this.panels[this.activeIndex]];
|
|
42
|
+
if (activeTabs.length === 0) {
|
|
33
43
|
throw new Error("activeIndex does not represent any panel.");
|
|
34
44
|
}
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
for (const activeTab of activeTabs) {
|
|
46
|
+
if (!activeTab.disabled) {
|
|
47
|
+
activeTab.isOpen = true;
|
|
48
|
+
}
|
|
37
49
|
}
|
|
38
50
|
}
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
|
-
|
|
42
|
-
this.
|
|
53
|
+
closeOtherTabs(exception) {
|
|
54
|
+
this.panels.forEach((panel, index) => {
|
|
43
55
|
if (index !== exception) {
|
|
44
56
|
panel.isOpen = false;
|
|
45
57
|
}
|
|
46
58
|
});
|
|
47
59
|
}
|
|
48
|
-
|
|
60
|
+
setBehavior(multiple) {
|
|
49
61
|
if (multiple) {
|
|
50
|
-
this.
|
|
62
|
+
this.enableMultiplePanelBehavior();
|
|
51
63
|
}
|
|
52
64
|
else {
|
|
53
|
-
this.
|
|
65
|
+
this.enableSinglePanelBehavior();
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
|
-
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
59
|
-
.
|
|
60
|
-
.subscribe(() => {
|
|
61
|
-
this._closeOtherTabs(index);
|
|
68
|
+
enableSinglePanelBehavior() {
|
|
69
|
+
this.panels.forEach((panel, index) => {
|
|
70
|
+
this.openSubs[index] = panel.panelOpened.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
|
|
71
|
+
this.closeOtherTabs(index);
|
|
62
72
|
});
|
|
63
73
|
});
|
|
64
74
|
}
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
if (this.
|
|
68
|
-
this.
|
|
75
|
+
enableMultiplePanelBehavior() {
|
|
76
|
+
this.panels.forEach((_, index) => {
|
|
77
|
+
if (this.openSubs[index]) {
|
|
78
|
+
this.openSubs[index].unsubscribe();
|
|
69
79
|
}
|
|
70
80
|
});
|
|
71
81
|
}
|
|
@@ -87,4 +97,4 @@ AccordionComponent = __decorate([
|
|
|
87
97
|
})
|
|
88
98
|
], AccordionComponent);
|
|
89
99
|
export { AccordionComponent };
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPM0MsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFBL0I7UUFLVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS2hCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxXQUFNLEdBQThCLEVBQUUsQ0FBQztJQW1GbkQsQ0FBQztJQWhGRyxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FB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dEM7SUFEQyxLQUFLLEVBQUU7b0RBQ2dCO0FBR3hCO0lBREMsZUFBZSxDQUFDLHVCQUF1QixDQUFDOzREQUNtQjtBQVJuRCxrQkFBa0I7SUFMOUIsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGFBQWE7UUFDdkIsNEVBQXlDOztLQUU1QyxDQUFDO0dBQ1csa0JBQWtCLENBOEY5QjtTQTlGWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEFjY29yZGlvblBhbmVsQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWFjY29yZGlvblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2FjY29yZGlvbi5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlciB8IG51bWJlcltdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHVibGljIHBhbmVsc0NvbXBvbmVudHM6IFF1ZXJ5TGlzdDxBY2NvcmRpb25QYW5lbENvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBwYW5lbHM6IEFjY29yZGlvblBhbmVsQ29tcG9uZW50W10gPSBbXTtcbiAgICBwcml2YXRlIG9wZW5TdWJzOiBTdWJzY3JpcHRpb25bXTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlSW5wdXRzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYW5lbHMgPSB0aGlzLnBhbmVsc0NvbXBvbmVudHMudG9BcnJheSgpO1xuICAgICAgICB0aGlzLm9wZW5TdWJzID0gbmV3IEFycmF5KHRoaXMucGFuZWxzLmxlbmd0aCk7XG5cbiAgICAgICAgdGhpcy5zZXRCZWhhdmlvcih0aGlzLm11bHRpcGxlKTtcbiAgICAgICAgdGhpcy5zZXR1cFRhYnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRCZWhhdmlvcihjaGFuZ2VzLm11bHRpcGxlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmFjdGl2ZUluZGV4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGFjdGl2ZUluZGV4IHNob3VsZCBub3QgYmUgYW4gYXJyYXkgd2hlbiBtdWx0aXBsZSBpcyBzZXQgdG8gZmFsc2UuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cFRhYnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhbmVscz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWN0aXZlSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVUYWJzID0gQXJyYXkuaXNBcnJheSh0aGlzLmFjdGl2ZUluZGV4KVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucGFuZWxzLmZpbHRlcigoXywgaW5kZXgpID0+ICh0aGlzLmFjdGl2ZUluZGV4IGFzIG51bWJlcltdKS5pbmNsdWRlcyhpbmRleCkpXG4gICAgICAgICAgICAgICAgICAgIDogW3RoaXMucGFuZWxzW3RoaXMuYWN0aXZlSW5kZXhdXTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhY3RpdmVJbmRleCBkb2VzIG5vdCByZXByZXNlbnQgYW55IHBhbmVsLlwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFjdGl2ZVRhYiBvZiBhY3RpdmVUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWN0aXZlVGFiLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUYWIuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VPdGhlclRhYnMoZXhjZXB0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IGV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAgIHBhbmVsLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEJlaGF2aW9yKG11bHRpcGxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVNdWx0aXBsZVBhbmVsQmVoYXZpb3IoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlU2luZ2xlUGFuZWxCZWhhdmlvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTaW5nbGVQYW5lbEJlaGF2aW9yKCkge1xuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKChwYW5lbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlblN1YnNbaW5kZXhdID0gcGFuZWwucGFuZWxPcGVuZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VPdGhlclRhYnMoaW5kZXgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlTXVsdGlwbGVQYW5lbEJlaGF2aW9yKCkge1xuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlblN1YnNbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuU3Vic1tpbmRleF0udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
var ObjectCardComponent_1;
|
|
2
2
|
import { __decorate } from "tslib";
|
|
3
3
|
import { animate, state, style, transition, trigger } from "@angular/animations";
|
|
4
|
-
import {
|
|
4
|
+
import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild } from "@angular/core";
|
|
5
5
|
import { EnumSeverity } from "../shared/models/enum-severity";
|
|
6
6
|
import { Breakpoints } from "../utils/breakpoints";
|
|
7
7
|
import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
|
|
8
8
|
import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
|
|
9
9
|
let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
|
|
10
|
-
constructor(
|
|
11
|
-
this.elementRef = elementRef;
|
|
10
|
+
constructor() {
|
|
12
11
|
this.id = `s-object-card-${ObjectCardComponent_1.nextId++}`;
|
|
13
12
|
this.expanded = false;
|
|
14
13
|
this.expandTooltip = "Abrir painel";
|
|
@@ -19,32 +18,36 @@ let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
|
|
|
19
18
|
this.severity = EnumSeverity.Default;
|
|
20
19
|
this.EnumSeverity = EnumSeverity;
|
|
21
20
|
}
|
|
22
|
-
ngAfterViewInit() {
|
|
23
|
-
}
|
|
24
21
|
ngAfterContentChecked() {
|
|
25
22
|
this.update();
|
|
26
23
|
}
|
|
27
24
|
update() {
|
|
28
25
|
const windowWidth = window.innerWidth;
|
|
29
|
-
const containerWidth = this.
|
|
30
|
-
const mainFieldWidth =
|
|
26
|
+
const containerWidth = this.container.nativeElement.getBoundingClientRect().width;
|
|
27
|
+
const mainFieldWidth = this.cardMainContainer.nativeElement.getBoundingClientRect().width;
|
|
28
|
+
let remainingSpace = containerWidth - mainFieldWidth;
|
|
31
29
|
const fieldsMinWidth = this.fieldsMinWidth;
|
|
32
|
-
const expandIconWidth =
|
|
33
|
-
const fieldElementList = this.elementRef.nativeElement.getElementsByClassName("s-object-card-field");
|
|
34
|
-
for (const element of fieldElementList) {
|
|
35
|
-
element.style.minWidth = `${this.fieldsMinWidth}px`;
|
|
36
|
-
}
|
|
30
|
+
const expandIconWidth = this.iconContainer.nativeElement.getBoundingClientRect().width;
|
|
37
31
|
let maxFieldQtd;
|
|
38
|
-
if (windowWidth <= Breakpoints.SM_MAX)
|
|
32
|
+
if (windowWidth <= Breakpoints.SM_MAX) {
|
|
39
33
|
maxFieldQtd = 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
|
|
37
|
+
}
|
|
38
|
+
const hasExpandIcon = maxFieldQtd && maxFieldQtd < this.fields.length;
|
|
39
|
+
if (hasExpandIcon) {
|
|
40
|
+
this.iconContainer.nativeElement.style.display = 'flex';
|
|
41
|
+
remainingSpace = remainingSpace - expandIconWidth;
|
|
42
|
+
maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.iconContainer.nativeElement.style.display = 'none';
|
|
44
46
|
}
|
|
45
47
|
this.maxVisibleFields = maxFieldQtd;
|
|
46
|
-
if (maxFieldQtd >= this.fields.length && this.expanded)
|
|
48
|
+
if (maxFieldQtd >= this.fields.length && this.expanded) {
|
|
47
49
|
this.collapse();
|
|
50
|
+
}
|
|
48
51
|
}
|
|
49
52
|
toggle() {
|
|
50
53
|
this.expanded ? this.collapse() : this.expand();
|
|
@@ -57,24 +60,8 @@ let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
|
|
|
57
60
|
this.expanded = false;
|
|
58
61
|
this.expandedChange.emit(this.expanded);
|
|
59
62
|
}
|
|
60
|
-
getExpandedFieldWidth() {
|
|
61
|
-
const containerWidth = this.elementRef.nativeElement.offsetWidth;
|
|
62
|
-
let fieldsPerRow;
|
|
63
|
-
if (containerWidth <= Breakpoints.SM_MAX)
|
|
64
|
-
fieldsPerRow = 1;
|
|
65
|
-
else if (containerWidth <= Breakpoints.MD_MAX)
|
|
66
|
-
fieldsPerRow = 2;
|
|
67
|
-
else if (containerWidth <= Breakpoints.LG_MAX)
|
|
68
|
-
fieldsPerRow = 4;
|
|
69
|
-
else
|
|
70
|
-
fieldsPerRow = 6;
|
|
71
|
-
return 12 / fieldsPerRow;
|
|
72
|
-
}
|
|
73
63
|
};
|
|
74
64
|
ObjectCardComponent.nextId = 0;
|
|
75
|
-
ObjectCardComponent.ctorParameters = () => [
|
|
76
|
-
{ type: ElementRef }
|
|
77
|
-
];
|
|
78
65
|
__decorate([
|
|
79
66
|
Input()
|
|
80
67
|
], ObjectCardComponent.prototype, "id", void 0);
|
|
@@ -105,10 +92,19 @@ __decorate([
|
|
|
105
92
|
__decorate([
|
|
106
93
|
Input()
|
|
107
94
|
], ObjectCardComponent.prototype, "borderButtonOptions", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
ViewChild('contentContainer', { static: true })
|
|
97
|
+
], ObjectCardComponent.prototype, "container", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
ViewChild('cardMainContainer', { static: true })
|
|
100
|
+
], ObjectCardComponent.prototype, "cardMainContainer", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
ViewChild('iconContainer', { static: true })
|
|
103
|
+
], ObjectCardComponent.prototype, "iconContainer", void 0);
|
|
108
104
|
ObjectCardComponent = ObjectCardComponent_1 = __decorate([
|
|
109
105
|
Component({
|
|
110
106
|
selector: "s-object-card",
|
|
111
|
-
template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\"
|
|
107
|
+
template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\" #cardMainContainer [style.min-width.px]=\"fieldsMinWidth\">\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\" class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n \n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <div\n #iconContainer\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n >\n <span [id]=\"id + '-expand-icon'\" class=\"expand-icon fa\" [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"childlist\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
|
|
112
108
|
animations: [
|
|
113
109
|
trigger("expandableContent", [
|
|
114
110
|
state("*", style({
|
|
@@ -134,8 +130,8 @@ ObjectCardComponent = ObjectCardComponent_1 = __decorate([
|
|
|
134
130
|
]),
|
|
135
131
|
]),
|
|
136
132
|
],
|
|
137
|
-
styles: [":host{display:block}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:
|
|
133
|
+
styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:-ms-flexbox;display:flex;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1em;gap:1em}"]
|
|
138
134
|
})
|
|
139
135
|
], ObjectCardComponent);
|
|
140
136
|
export { ObjectCardComponent };
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUF5Q3JGLElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQXNDNUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWxDbkMsT0FBRSxHQUFHLGlCQUFpQixxQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBR3JELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFHL0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHbEMsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFHckIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUTdDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUc1Qixh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akIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkUsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RSxDQUFDO2FBQ0wsQ0FBQztTQUNMOztLQUNKLENBQUM7R0FDVyxtQkFBbUIsQ0FpRy9CO1NBakdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEJvcmRlckJ1dHRvbk9wdGlvbnMgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9ib3JkZXItYnV0dG9uLW9wdGlvbnNcIjtcbmltcG9ydCB7IEVudW1TZXZlcml0eSB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2VudW0tc2V2ZXJpdHlcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzL2JyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE9iamVjdENhcmRNYWluQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLW9iamVjdC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJleHBhbmRhYmxlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIipcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPT4gdHJ1ZVwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcImZhbHNlIDw9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKFwiQm9yZGVyQnV0dG9uQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjpsZWF2ZVwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLW9iamVjdC1jYXJkLSR7T2JqZWN0Q2FyZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZFRvb2x0aXAgPSBcIkFicmlyIHBhaW5lbFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sbGFwc2VUb29sdGlwID0gXCJGZWNoYXIgcGFpbmVsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWVsZHNNaW5XaWR0aCA9IDIwMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoT2JqZWN0Q2FyZE1haW5Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwdWJsaWMgZmllbGRzPzogUXVlcnlMaXN0PE9iamVjdENhcmRGaWVsZENvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldmVyaXR5ID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGJvcmRlckJ1dHRvbk9wdGlvbnM6IEJvcmRlckJ1dHRvbk9wdGlvbnM7XG5cbiAgICByZWFkb25seSBFbnVtU2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHk7XG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IG1haW5GaWVsZFdpZHRoID0gY29udGFpbmVyV2lkdGggKiAwLjMgPiAyNjAgPyBjb250YWluZXJXaWR0aCAqIDAuMyA6IDI2MDtcbiAgICAgICAgY29uc3QgZmllbGRzTWluV2lkdGggPSB0aGlzLmZpZWxkc01pbldpZHRoO1xuICAgICAgICBjb25zdCBleHBhbmRJY29uV2lkdGggPSA1MDtcbiAgICAgICAgY29uc3QgZmllbGRFbGVtZW50TGlzdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzLW9iamVjdC1jYXJkLWZpZWxkXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZmllbGRFbGVtZW50TGlzdCkge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5taW5XaWR0aCA9IGAke3RoaXMuZmllbGRzTWluV2lkdGh9cHhgO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmICh3aW5kb3dXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIG1heEZpZWxkUXRkID0gMDtcbiAgICAgICAgZWxzZSBtYXhGaWVsZFF0ZCA9IE1hdGguZmxvb3IoKGNvbnRhaW5lcldpZHRoIC0gbWFpbkZpZWxkV2lkdGgpIC8gZmllbGRzTWluV2lkdGgpO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCAmJiBtYXhGaWVsZFF0ZCA8IHRoaXMuZmllbGRzLmxlbmd0aCkge1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChjb250YWluZXJXaWR0aCAtIG1haW5GaWVsZFdpZHRoIC0gZXhwYW5kSWNvbldpZHRoKSAvIGZpZWxkc01pbldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWF4VmlzaWJsZUZpZWxkcyA9IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCA+PSB0aGlzLmZpZWxkcy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZCkgdGhpcy5jb2xsYXBzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwYW5kZWRGaWVsZFdpZHRoKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIGxldCBmaWVsZHNQZXJSb3c7XG4gICAgICAgIGlmIChjb250YWluZXJXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIGZpZWxkc1BlclJvdyA9IDE7XG4gICAgICAgIGVsc2UgaWYgKGNvbnRhaW5lcldpZHRoIDw9IEJyZWFrcG9pbnRzLk1EX01BWCkgZmllbGRzUGVyUm93ID0gMjtcbiAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyV2lkdGggPD0gQnJlYWtwb2ludHMuTEdfTUFYKSBmaWVsZHNQZXJSb3cgPSA0O1xuICAgICAgICBlbHNlIGZpZWxkc1BlclJvdyA9IDY7XG5cbiAgICAgICAgcmV0dXJuIDEyIC8gZmllbGRzUGVyUm93O1xuICAgIH1cbn1cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUF5Q3JGLElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUlXLE9BQUUsR0FBRyxpQkFBaUIscUJBQW1CLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUdyRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBRy9CLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBR2xDLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBR3JCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVE3QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFHNUIsYUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFLdkIsaUJBQVksR0FBRyxZQUFZLENBQUM7SUE2RHpDLENBQUM7SUFsRFUs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Q0FBQyxDQUFDO2lCQUN2RSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUM3QyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZFLENBQUM7YUFDTCxDQUFDO1NBQ0w7O0tBQ0osQ0FBQztHQUNXLG1CQUFtQixDQWdHL0I7U0FoR1ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBCb3JkZXJCdXR0b25PcHRpb25zIH0gZnJvbSBcIi4uL3NoYXJlZC9tb2RlbHMvYm9yZGVyLWJ1dHRvbi1vcHRpb25zXCI7XG5pbXBvcnQgeyBFbnVtU2V2ZXJpdHkgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9lbnVtLXNldmVyaXR5XCI7XG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi91dGlscy9icmVha3BvaW50c1wiO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvZmllbGQvb2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkTWFpbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL21haW4vb2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1vYmplY3QtY2FyZFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vb2JqZWN0LWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vb2JqZWN0LWNhcmQuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiZXhwYW5kYWJsZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCIqXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJmYWxzZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjBcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIipcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqID0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCJmYWxzZSA8PT4gdHJ1ZVwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcihcIkJvcmRlckJ1dHRvbkFuaW1hdGlvblwiLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMClcIiwgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZVwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMSB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6bGVhdmVcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1vYmplY3QtY2FyZC0ke09iamVjdENhcmRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHBhbmRUb29sdGlwID0gXCJBYnJpciBwYWluZWxcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbGxhcHNlVG9vbHRpcCA9IFwiRmVjaGFyIHBhaW5lbFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmllbGRzTWluV2lkdGggPSAyMDA7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKE9iamVjdENhcmRNYWluQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBtYWluOiBPYmplY3RDYXJkTWFpbkNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oT2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIGZpZWxkcz86IFF1ZXJ5TGlzdDxPYmplY3RDYXJkRmllbGRDb21wb25lbnQ+O1xuXG4gICAgcHVibGljIG1heFZpc2libGVGaWVsZHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBzZXZlcml0eSA9IEVudW1TZXZlcml0eS5EZWZhdWx0O1xuXG4gICAgQElucHV0KClcbiAgICBib3JkZXJCdXR0b25PcHRpb25zOiBCb3JkZXJCdXR0b25PcHRpb25zO1xuXG4gICAgcmVhZG9ubHkgRW51bVNldmVyaXR5ID0gRW51bVNldmVyaXR5O1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2FyZE1haW5Db250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FyZE1haW5Db250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgICBAVmlld0NoaWxkKCdpY29uQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25Db250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IG1haW5GaWVsZFdpZHRoID0gdGhpcy5jYXJkTWFpbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBsZXQgcmVtYWluaW5nU3BhY2UgPSAgY29udGFpbmVyV2lkdGggLSBtYWluRmllbGRXaWR0aDtcbiAgICAgICAgY29uc3QgZmllbGRzTWluV2lkdGggPSB0aGlzLmZpZWxkc01pbldpZHRoO1xuICAgICAgICBjb25zdCBleHBhbmRJY29uV2lkdGggPSB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICBsZXQgbWF4RmllbGRRdGQ6IG51bWJlcjtcblxuICAgICAgICBpZiAod2luZG93V2lkdGggPD0gQnJlYWtwb2ludHMuU01fTUFYKSB7XG4gICAgICAgICAgICBtYXhGaWVsZFF0ZCA9IDBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1heEZpZWxkUXRkID0gTWF0aC5mbG9vcigocmVtYWluaW5nU3BhY2UpIC8gZmllbGRzTWluV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGFzRXhwYW5kSWNvbiA9IG1heEZpZWxkUXRkICYmIG1heEZpZWxkUXRkIDwgdGhpcy5maWVsZHMubGVuZ3RoXG5cbiAgICAgICAgaWYgKGhhc0V4cGFuZEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgICAgICByZW1haW5pbmdTcGFjZSA9IHJlbWFpbmluZ1NwYWNlIC0gZXhwYW5kSWNvbldpZHRoO1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChyZW1haW5pbmdTcGFjZSkgLyBmaWVsZHNNaW5XaWR0aCk7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1heFZpc2libGVGaWVsZHMgPSBtYXhGaWVsZFF0ZDtcblxuICAgICAgICBpZiAobWF4RmllbGRRdGQgPj0gdGhpcy5maWVsZHMubGVuZ3RoICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -8,4 +8,4 @@ export const Breakpoints = {
|
|
|
8
8
|
XL_MIN: 1200,
|
|
9
9
|
XL_MAX: Infinity,
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9icmVha3BvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLENBQVU7SUFDbEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLFFBQVE7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCcmVha3BvaW50cyA9IHtcbiAgICBTTV9NSU46IDAgYXMgY29uc3QsXG4gICAgU01fTUFYOiA3NjcgYXMgY29uc3QsXG4gICAgTURfTUlOOiA3NjggYXMgY29uc3QsXG4gICAgTURfTUFYOiA5OTEgYXMgY29uc3QsXG4gICAgTEdfTUlOOiA5OTIgYXMgY29uc3QsXG4gICAgTEdfTUFYOiAxMTk5IGFzIGNvbnN0LFxuICAgIFhMX01JTjogMTIwMCBhcyBjb25zdCxcbiAgICBYTF9NQVg6IEluZmluaXR5LFxufTtcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
1
|
+
import { __decorate, __values } from "tslib";
|
|
2
2
|
import { Component, ContentChildren, Input } from "@angular/core";
|
|
3
3
|
import { AccordionPanelComponent } from "./components/accordion-panel/accordion-panel.component";
|
|
4
4
|
import { Subject } from "rxjs";
|
|
@@ -6,68 +6,90 @@ import { takeUntil } from "rxjs/operators";
|
|
|
6
6
|
var AccordionComponent = /** @class */ (function () {
|
|
7
7
|
function AccordionComponent() {
|
|
8
8
|
this.multiple = false;
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
9
|
+
this.unsubscribe$ = new Subject();
|
|
10
|
+
this.panels = [];
|
|
11
11
|
}
|
|
12
|
+
AccordionComponent.prototype.ngOnInit = function () {
|
|
13
|
+
this.validateInputs();
|
|
14
|
+
};
|
|
12
15
|
AccordionComponent.prototype.ngAfterContentInit = function () {
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
16
|
+
this.panels = this.panelsComponents.toArray();
|
|
17
|
+
this.openSubs = new Array(this.panels.length);
|
|
18
|
+
this.setBehavior(this.multiple);
|
|
19
|
+
this.setupTabs();
|
|
17
20
|
};
|
|
18
21
|
AccordionComponent.prototype.ngOnChanges = function (changes) {
|
|
19
22
|
if (changes.multiple) {
|
|
20
|
-
this.
|
|
23
|
+
this.setBehavior(changes.multiple.currentValue);
|
|
21
24
|
}
|
|
22
25
|
};
|
|
23
26
|
AccordionComponent.prototype.ngOnDestroy = function () {
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
27
|
+
this.unsubscribe$.next();
|
|
28
|
+
this.unsubscribe$.complete();
|
|
29
|
+
};
|
|
30
|
+
AccordionComponent.prototype.validateInputs = function () {
|
|
31
|
+
if (!this.multiple && Array.isArray(this.activeIndex)) {
|
|
32
|
+
throw new Error("The activeIndex should not be an array when multiple is set to false.");
|
|
33
|
+
}
|
|
26
34
|
};
|
|
27
|
-
AccordionComponent.prototype.
|
|
28
|
-
var _a;
|
|
29
|
-
|
|
35
|
+
AccordionComponent.prototype.setupTabs = function () {
|
|
36
|
+
var e_1, _a;
|
|
37
|
+
var _this = this;
|
|
38
|
+
var _b;
|
|
39
|
+
if ((_b = this.panels) === null || _b === void 0 ? void 0 : _b.length) {
|
|
30
40
|
if (this.activeIndex !== undefined && this.activeIndex !== null) {
|
|
31
|
-
var
|
|
32
|
-
|
|
41
|
+
var activeTabs = Array.isArray(this.activeIndex)
|
|
42
|
+
? this.panels.filter(function (_, index) { return _this.activeIndex.includes(index); })
|
|
43
|
+
: [this.panels[this.activeIndex]];
|
|
44
|
+
if (activeTabs.length === 0) {
|
|
33
45
|
throw new Error("activeIndex does not represent any panel.");
|
|
34
46
|
}
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
try {
|
|
48
|
+
for (var activeTabs_1 = __values(activeTabs), activeTabs_1_1 = activeTabs_1.next(); !activeTabs_1_1.done; activeTabs_1_1 = activeTabs_1.next()) {
|
|
49
|
+
var activeTab = activeTabs_1_1.value;
|
|
50
|
+
if (!activeTab.disabled) {
|
|
51
|
+
activeTab.isOpen = true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
56
|
+
finally {
|
|
57
|
+
try {
|
|
58
|
+
if (activeTabs_1_1 && !activeTabs_1_1.done && (_a = activeTabs_1.return)) _a.call(activeTabs_1);
|
|
59
|
+
}
|
|
60
|
+
finally { if (e_1) throw e_1.error; }
|
|
37
61
|
}
|
|
38
62
|
}
|
|
39
63
|
}
|
|
40
64
|
};
|
|
41
|
-
AccordionComponent.prototype.
|
|
42
|
-
this.
|
|
65
|
+
AccordionComponent.prototype.closeOtherTabs = function (exception) {
|
|
66
|
+
this.panels.forEach(function (panel, index) {
|
|
43
67
|
if (index !== exception) {
|
|
44
68
|
panel.isOpen = false;
|
|
45
69
|
}
|
|
46
70
|
});
|
|
47
71
|
};
|
|
48
|
-
AccordionComponent.prototype.
|
|
72
|
+
AccordionComponent.prototype.setBehavior = function (multiple) {
|
|
49
73
|
if (multiple) {
|
|
50
|
-
this.
|
|
74
|
+
this.enableMultiplePanelBehavior();
|
|
51
75
|
}
|
|
52
76
|
else {
|
|
53
|
-
this.
|
|
77
|
+
this.enableSinglePanelBehavior();
|
|
54
78
|
}
|
|
55
79
|
};
|
|
56
|
-
AccordionComponent.prototype.
|
|
80
|
+
AccordionComponent.prototype.enableSinglePanelBehavior = function () {
|
|
57
81
|
var _this = this;
|
|
58
|
-
this.
|
|
59
|
-
_this.
|
|
60
|
-
.
|
|
61
|
-
.subscribe(function () {
|
|
62
|
-
_this._closeOtherTabs(index);
|
|
82
|
+
this.panels.forEach(function (panel, index) {
|
|
83
|
+
_this.openSubs[index] = panel.panelOpened.pipe(takeUntil(_this.unsubscribe$)).subscribe(function () {
|
|
84
|
+
_this.closeOtherTabs(index);
|
|
63
85
|
});
|
|
64
86
|
});
|
|
65
87
|
};
|
|
66
|
-
AccordionComponent.prototype.
|
|
88
|
+
AccordionComponent.prototype.enableMultiplePanelBehavior = function () {
|
|
67
89
|
var _this = this;
|
|
68
|
-
this.
|
|
69
|
-
if (_this.
|
|
70
|
-
_this.
|
|
90
|
+
this.panels.forEach(function (_, index) {
|
|
91
|
+
if (_this.openSubs[index]) {
|
|
92
|
+
_this.openSubs[index].unsubscribe();
|
|
71
93
|
}
|
|
72
94
|
});
|
|
73
95
|
};
|
|
@@ -90,4 +112,4 @@ var AccordionComponent = /** @class */ (function () {
|
|
|
90
112
|
return AccordionComponent;
|
|
91
113
|
}());
|
|
92
114
|
export { AccordionComponent };
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPM0M7SUFBQTtRQUtXLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLaEIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ25DLFdBQU0sR0FBOEIsRUFBRSxDQUFDO0lBbUZuRCxDQUFDO0lBaEZHLHFDQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLCtDQUFrQixHQUF6QjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLHdDQUFXLEdBQWxCLFVBQW1CLE9BQXNCO1FBQ3JDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMs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Q0FBQzthQUN0QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQTNGRDtRQURDLEtBQUssRUFBRTsyREFDOEI7SUFHdEM7UUFEQyxLQUFLLEVBQUU7d0RBQ2dCO0lBR3hCO1FBREMsZUFBZSxDQUFDLHVCQUF1QixDQUFDO2dFQUNtQjtJQVJuRCxrQkFBa0I7UUFMOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGFBQWE7WUFDdkIsNEVBQXlDOztTQUU1QyxDQUFDO09BQ1csa0JBQWtCLENBOEY5QjtJQUFELHlCQUFDO0NBQUEsQUE5RkQsSUE4RkM7U0E5Rlksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBBY2NvcmRpb25QYW5lbENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvYWNjb3JkaW9uLXBhbmVsL2FjY29yZGlvbi1wYW5lbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1hY2NvcmRpb25cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9hY2NvcmRpb24uY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjdGl2ZUluZGV4OiBudW1iZXIgfCBudW1iZXJbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvblBhbmVsQ29tcG9uZW50KVxuICAgIHB1YmxpYyBwYW5lbHNDb21wb25lbnRzOiBRdWVyeUxpc3Q8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgcGFuZWxzOiBBY2NvcmRpb25QYW5lbENvbXBvbmVudFtdID0gW107XG4gICAgcHJpdmF0ZSBvcGVuU3ViczogU3Vic2NyaXB0aW9uW107XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUlucHV0cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFuZWxzID0gdGhpcy5wYW5lbHNDb21wb25lbnRzLnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5vcGVuU3VicyA9IG5ldyBBcnJheSh0aGlzLnBhbmVscy5sZW5ndGgpO1xuXG4gICAgICAgIHRoaXMuc2V0QmVoYXZpb3IodGhpcy5tdWx0aXBsZSk7XG4gICAgICAgIHRoaXMuc2V0dXBUYWJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QmVoYXZpb3IoY2hhbmdlcy5tdWx0aXBsZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUlucHV0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy5hY3RpdmVJbmRleCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBhY3RpdmVJbmRleCBzaG91bGQgbm90IGJlIGFuIGFycmF5IHdoZW4gbXVsdGlwbGUgaXMgc2V0IHRvIGZhbHNlLlwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBUYWJzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYW5lbHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjdGl2ZUluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFicyA9IEFycmF5LmlzQXJyYXkodGhpcy5hY3RpdmVJbmRleClcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnBhbmVscy5maWx0ZXIoKF8sIGluZGV4KSA9PiAodGhpcy5hY3RpdmVJbmRleCBhcyBudW1iZXJbXSkuaW5jbHVkZXMoaW5kZXgpKVxuICAgICAgICAgICAgICAgICAgICA6IFt0aGlzLnBhbmVsc1t0aGlzLmFjdGl2ZUluZGV4XV07XG5cbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGFicy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYWN0aXZlSW5kZXggZG9lcyBub3QgcmVwcmVzZW50IGFueSBwYW5lbC5cIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3RpdmVUYWIgb2YgYWN0aXZlVGFicykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZVRhYi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVGFiLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlT3RoZXJUYWJzKGV4Y2VwdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFuZWxzLmZvckVhY2goKHBhbmVsLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSBleGNlcHRpb24pIHtcbiAgICAgICAgICAgICAgICBwYW5lbC5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRCZWhhdmlvcihtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlTXVsdGlwbGVQYW5lbEJlaGF2aW9yKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNpbmdsZVBhbmVsQmVoYXZpb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlU2luZ2xlUGFuZWxCZWhhdmlvcigpIHtcbiAgICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5TdWJzW2luZGV4XSA9IHBhbmVsLnBhbmVsT3BlbmVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlT3RoZXJUYWJzKGluZGV4KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVuYWJsZU11bHRpcGxlUGFuZWxCZWhhdmlvcigpIHtcbiAgICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5TdWJzW2luZGV4XSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblN1YnNbaW5kZXhdLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|