@ngutil/layout 0.0.3-dev.8 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docking/docking-content.component.d.ts +1 -1
- package/docking/docking-layout.component.d.ts +1 -3
- package/docking/docking-panel.component.d.ts +10 -4
- package/esm2022/docking/docking-content.component.mjs +3 -3
- package/esm2022/docking/docking-layout.component.mjs +16 -140
- package/esm2022/docking/docking-panel.component.mjs +70 -15
- package/esm2022/index.mjs +2 -2
- package/esm2022/l9/state.mjs +1 -9
- package/esm2022/services/slots.service.mjs +240 -0
- package/fesm2022/ngutil-layout.mjs +322 -269
- package/fesm2022/ngutil-layout.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/l9/state.d.ts +1 -3
- package/package.json +4 -2
- package/services/slots.service.d.ts +69 -0
- package/esm2022/util/dimension-watcher.mjs +0 -84
- package/esm2022/util/dimension.mjs +0 -2
- package/esm2022/util/index.mjs +0 -3
- package/esm2022/util/media-watcher.mjs +0 -29
- package/esm2022/util/rect.mjs +0 -2
- package/util/dimension-watcher.d.ts +0 -4
- package/util/dimension.d.ts +0 -5
- package/util/index.d.ts +0 -4
- package/util/media-watcher.d.ts +0 -5
- package/util/rect.d.ts +0 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class DockingContentComponent {
|
|
3
3
|
static ɵfac: i0.ɵɵFactoryDeclaration<DockingContentComponent, never>;
|
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DockingContentComponent, "nu-docking-content",
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DockingContentComponent, "nu-docking-content", ["nuDockingContent"], {}, {}, never, ["*"], true, never>;
|
|
5
5
|
}
|
|
@@ -8,17 +8,15 @@ type DockingVerticalPosition = "top" | "middle" | "bottom";
|
|
|
8
8
|
type DockingHorizontalPositon = "left" | "center" | "right";
|
|
9
9
|
type DockingPosition = `${DockingVerticalPosition}:${DockingHorizontalPositon}`;
|
|
10
10
|
export type DockingRange = DockingVerticalPosition | DockingHorizontalPositon | DockingPosition | `${DockingPosition}-${DockingPosition}`;
|
|
11
|
-
export type DockingPositionMode = "absolute" | "fixed";
|
|
12
11
|
export declare class DockingLayoutComponent extends Destructible implements AfterViewInit, OnChanges {
|
|
13
12
|
#private;
|
|
14
13
|
contentOnly: boolean;
|
|
15
|
-
positionMode: DockingPositionMode;
|
|
16
14
|
contentComponent?: DockingContentComponent;
|
|
17
15
|
dockingPanels: QueryList<DockingPanelComponent>;
|
|
18
16
|
readonly panels: Observable<Array<DockingPanelComponent>>;
|
|
19
17
|
ngAfterViewInit(): void;
|
|
20
18
|
ngOnChanges(changes: SimpleChanges): void;
|
|
21
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<DockingLayoutComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DockingLayoutComponent, "nu-docking", never, { "contentOnly": { "alias": "contentOnly"; "required": false; };
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DockingLayoutComponent, "nu-docking", never, { "contentOnly": { "alias": "contentOnly"; "required": false; }; }, {}, ["contentComponent", "dockingPanels"], ["nu-docking-panel", "*", "nu-docking-content"], true, never>;
|
|
23
21
|
}
|
|
24
22
|
export {};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { ElementRef } from "@angular/core";
|
|
1
|
+
import { AfterViewInit, ElementRef } from "@angular/core";
|
|
2
2
|
import { BehaviorSubject, Observable } from "rxjs";
|
|
3
3
|
import { BooleanInput, Destructible, NumberWithUnit, NumberWithUnitInput } from "@ngutil/common";
|
|
4
4
|
import { L9Range, L9RangeName } from "../l9/range";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export type DockingPanelState = "full" | "mini" | "
|
|
7
|
-
export type DockingPanelMode = "
|
|
8
|
-
export declare class DockingPanelComponent extends Destructible {
|
|
6
|
+
export type DockingPanelState = "full" | "mini" | "hidden";
|
|
7
|
+
export type DockingPanelMode = "over" | "push" | "rigid";
|
|
8
|
+
export declare class DockingPanelComponent extends Destructible implements AfterViewInit {
|
|
9
9
|
#private;
|
|
10
10
|
readonly el: ElementRef<any>;
|
|
11
|
+
readonly content: ElementRef<HTMLElement>;
|
|
11
12
|
set positionInput(val: L9Range | L9RangeName);
|
|
12
13
|
readonly position: BehaviorSubject<L9Range>;
|
|
13
14
|
set stateInput(val: DockingPanelState);
|
|
@@ -26,8 +27,13 @@ export declare class DockingPanelComponent extends Destructible {
|
|
|
26
27
|
mode: DockingPanelMode;
|
|
27
28
|
fullSize: NumberWithUnit;
|
|
28
29
|
miniSize: NumberWithUnit;
|
|
30
|
+
contentSize: {
|
|
31
|
+
width: NumberWithUnit;
|
|
32
|
+
height: NumberWithUnit;
|
|
33
|
+
};
|
|
29
34
|
}>;
|
|
30
35
|
constructor();
|
|
36
|
+
ngAfterViewInit(): void;
|
|
31
37
|
open(): void;
|
|
32
38
|
close(): void;
|
|
33
39
|
minimize(): void;
|
|
@@ -2,10 +2,10 @@ import { Component } from "@angular/core";
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DockingContentComponent {
|
|
4
4
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DockingContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: DockingContentComponent, isStandalone: true, selector: "nu-docking-content", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:flex;flex-flow:column nowrap;align-items:stretch;box-sizing:border-box;flex:1
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: DockingContentComponent, isStandalone: true, selector: "nu-docking-content", exportAs: ["nuDockingContent"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:flex;flex-flow:column nowrap;align-items:stretch;box-sizing:border-box;flex:1}\n"] }); }
|
|
6
6
|
}
|
|
7
7
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DockingContentComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
|
-
args: [{ standalone: true, selector: "nu-docking-content", template: `<ng-content></ng-content>`, styles: [":host{display:flex;flex-flow:column nowrap;align-items:stretch;box-sizing:border-box;flex:1
|
|
9
|
+
args: [{ standalone: true, selector: "nu-docking-content", exportAs: "nuDockingContent", template: `<ng-content></ng-content>`, styles: [":host{display:flex;flex-flow:column nowrap;align-items:stretch;box-sizing:border-box;flex:1}\n"] }]
|
|
10
10
|
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2luZy1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xheW91dC9zcmMvZG9ja2luZy9kb2NraW5nLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBU3pDLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDhHQUZ0QiwyQkFBMkI7OzJGQUU1Qix1QkFBdUI7a0JBUG5DLFNBQVM7aUNBQ00sSUFBSSxZQUNOLG9CQUFvQixZQUNwQixrQkFBa0IsWUFFbEIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBcIm51LWRvY2tpbmctY29udGVudFwiLFxuICAgIGV4cG9ydEFzOiBcIm51RG9ja2luZ0NvbnRlbnRcIixcbiAgICBzdHlsZVVybDogXCIuL2RvY2tpbmctY29udGVudC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRG9ja2luZ0NvbnRlbnRDb21wb25lbnQge31cbiJdfQ==
|
|
@@ -1,32 +1,16 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, inject, Input, QueryList } from "@angular/core";
|
|
2
2
|
import { combineLatest, map, shareReplay, startWith, Subject, switchMap } from "rxjs";
|
|
3
|
-
import { Destructible, FastDOM
|
|
3
|
+
import { Destructible, FastDOM } from "@ngutil/common";
|
|
4
4
|
import { DockingContentComponent } from "./docking-content.component";
|
|
5
5
|
import { DockingPanelComponent } from "./docking-panel.component";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
// interface PanelRefChanges {
|
|
10
|
-
// ref: PanelRef
|
|
11
|
-
// changes: DockingPanelChanges
|
|
12
|
-
// }
|
|
13
|
-
// class PanelRef {
|
|
14
|
-
// style: Partial<CSSStyleDeclaration> = {}
|
|
15
|
-
// readonly changes: Observable<PanelRefChanges>
|
|
16
|
-
// constructor(public readonly panel: DockingPanelDirective) {
|
|
17
|
-
// this.changes = panel.changes.pipe(
|
|
18
|
-
// map(changes => {
|
|
19
|
-
// return { ref: this, changes }
|
|
20
|
-
// })
|
|
21
|
-
// )
|
|
22
|
-
// }
|
|
23
|
-
// }
|
|
7
|
+
const RIGID_ZINDEX = 20;
|
|
8
|
+
const OVER_ZINDEX = RIGID_ZINDEX * 2;
|
|
24
9
|
export class DockingLayoutComponent extends Destructible {
|
|
25
10
|
constructor() {
|
|
26
11
|
super(...arguments);
|
|
27
12
|
this.#el = inject((ElementRef));
|
|
28
13
|
this.contentOnly = false;
|
|
29
|
-
this.positionMode = "absolute";
|
|
30
14
|
this.#reflow = new Subject();
|
|
31
15
|
}
|
|
32
16
|
#el;
|
|
@@ -34,25 +18,12 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
34
18
|
ngAfterViewInit() {
|
|
35
19
|
// eslint-disable-next-line prettier/prettier
|
|
36
20
|
this.panels = this.dockingPanels.changes.pipe(startWith(null), map(() => this.dockingPanels.toArray()), shareReplay(1));
|
|
37
|
-
// this.panels.subscribe(panels => console.log({ panels }))
|
|
38
21
|
this.d
|
|
39
22
|
.sub(combineLatest({ panels: this.panels, reflow: this.#reflow.pipe(startWith(null)) }))
|
|
40
23
|
.pipe(switchMap(({ panels }) => combineLatest(panels.map(panel => panel.changes.pipe(map(changes => {
|
|
41
24
|
return { panel, changes };
|
|
42
25
|
}))))))
|
|
43
26
|
.subscribe(this.#layout.bind(this));
|
|
44
|
-
// this.d
|
|
45
|
-
// .sub(merge(this.dockingPanels.changes, this.#reflow))
|
|
46
|
-
// .pipe(
|
|
47
|
-
// startWith(null),
|
|
48
|
-
// map(() => this.dockingPanels.map(panel => new PanelRef(panel))),
|
|
49
|
-
// switchMap(refs => combineLatest(refs.map(ref => ref.changes))),
|
|
50
|
-
// map(changes => {
|
|
51
|
-
// this.#layout(changes)
|
|
52
|
-
// return changes.map(c => c.ref)
|
|
53
|
-
// })
|
|
54
|
-
// )
|
|
55
|
-
// .subscribe(this.panels)
|
|
56
27
|
}
|
|
57
28
|
ngOnChanges(changes) {
|
|
58
29
|
if ("contentOnly" in changes || "positionMode" in changes) {
|
|
@@ -60,13 +31,12 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
60
31
|
}
|
|
61
32
|
}
|
|
62
33
|
#layout(entries) {
|
|
63
|
-
console.log("layout", entries);
|
|
64
34
|
let paddingTop = 0;
|
|
65
35
|
let paddingRight = 0;
|
|
66
36
|
let paddingBottom = 0;
|
|
67
37
|
let paddingLeft = 0;
|
|
68
|
-
let
|
|
69
|
-
let
|
|
38
|
+
let rigidZIndex = RIGID_ZINDEX;
|
|
39
|
+
let overZIndex = OVER_ZINDEX;
|
|
70
40
|
if (this.contentOnly) {
|
|
71
41
|
// TODO:...
|
|
72
42
|
}
|
|
@@ -79,7 +49,7 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
79
49
|
? panelState.miniSize.value
|
|
80
50
|
: 0;
|
|
81
51
|
const isHorizontal = panelState.position.orient === "horizontal";
|
|
82
|
-
const
|
|
52
|
+
const isRigid = panelState.mode === "rigid";
|
|
83
53
|
let panelTop = null;
|
|
84
54
|
let panelRight = null;
|
|
85
55
|
let panelBottom = null;
|
|
@@ -88,13 +58,13 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
88
58
|
panelLeft = 0;
|
|
89
59
|
panelRight = 0;
|
|
90
60
|
if (panelState.position.cells[0].v === "top") {
|
|
91
|
-
if (
|
|
61
|
+
if (isRigid) {
|
|
92
62
|
paddingTop = Math.max(paddingTop, panelSize);
|
|
93
63
|
}
|
|
94
64
|
panelTop = 0;
|
|
95
65
|
}
|
|
96
66
|
else if (panelState.position.cells[0].v === "bottom") {
|
|
97
|
-
if (
|
|
67
|
+
if (isRigid) {
|
|
98
68
|
paddingBottom = Math.max(paddingBottom, panelSize);
|
|
99
69
|
}
|
|
100
70
|
panelBottom = 0;
|
|
@@ -104,40 +74,26 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
104
74
|
panelTop = 0;
|
|
105
75
|
panelBottom = 0;
|
|
106
76
|
if (panelState.position.cells[0].h === "left") {
|
|
107
|
-
if (
|
|
77
|
+
if (isRigid) {
|
|
108
78
|
paddingLeft = Math.max(paddingLeft, panelSize);
|
|
109
79
|
}
|
|
110
80
|
panelLeft = 0;
|
|
111
81
|
}
|
|
112
82
|
else if (panelState.position.cells[0].h === "right") {
|
|
113
|
-
if (
|
|
83
|
+
if (isRigid) {
|
|
114
84
|
paddingRight = Math.max(paddingRight, panelSize);
|
|
115
85
|
}
|
|
116
86
|
panelRight = 0;
|
|
117
87
|
}
|
|
118
88
|
}
|
|
119
|
-
const panelGivenSize = panelState.state === "full"
|
|
120
|
-
? panelState.fullSize
|
|
121
|
-
: panelState.state === "mini"
|
|
122
|
-
? panelState.miniSize
|
|
123
|
-
: new NumberWithUnit(0, "px");
|
|
124
89
|
FastDOM.setStyle(entry.panel.el.nativeElement, {
|
|
125
|
-
"z-index": `${
|
|
90
|
+
"z-index": `${isRigid ? rigidZIndex++ : overZIndex++}`,
|
|
126
91
|
"--docking-panel-t": panelTop != null ? `${panelTop}px` : null,
|
|
127
92
|
"--docking-panel-r": panelRight != null ? `${panelRight}px` : null,
|
|
128
93
|
"--docking-panel-b": panelBottom != null ? `${panelBottom}px` : null,
|
|
129
|
-
"--docking-panel-l": panelLeft != null ? `${panelLeft}px` : null
|
|
130
|
-
"--docking-panel-w": !isHorizontal
|
|
131
|
-
? `${panelGivenSize.unit === "auto" ? "auto" : panelGivenSize}`
|
|
132
|
-
: null,
|
|
133
|
-
"--docking-panel-h": isHorizontal
|
|
134
|
-
? `${panelGivenSize.unit === "auto" ? "auto" : panelGivenSize}`
|
|
135
|
-
: null,
|
|
136
|
-
"--docking-panel-real-w": !isHorizontal ? `${panelSize}px` : null,
|
|
137
|
-
"--docking-panel-real-h": isHorizontal ? `${panelSize}px` : null
|
|
94
|
+
"--docking-panel-l": panelLeft != null ? `${panelLeft}px` : null
|
|
138
95
|
});
|
|
139
96
|
}
|
|
140
|
-
console.log({ paddingTop, paddingRight, paddingBottom, paddingLeft });
|
|
141
97
|
FastDOM.setStyle(this.#el.nativeElement, {
|
|
142
98
|
"--docking-layout-top": `${paddingTop}px`,
|
|
143
99
|
"--docking-layout-right": `${paddingRight}px`,
|
|
@@ -146,86 +102,8 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
146
102
|
});
|
|
147
103
|
}
|
|
148
104
|
}
|
|
149
|
-
#layoutOld(entries) {
|
|
150
|
-
// let paddingTop = 0
|
|
151
|
-
// let paddingRight = 0
|
|
152
|
-
// let paddingBottom = 0
|
|
153
|
-
// let paddingLeft = 0
|
|
154
|
-
// if (!this.contentOnly) {
|
|
155
|
-
// let embeddedZIndex = EMBEDDED_ZINDEX
|
|
156
|
-
// let overlayZIndex = OVERLAY_ZINDEX
|
|
157
|
-
// const leftRight: PanelRefChanges[] = entries.filter(v =>
|
|
158
|
-
// ["left", "right"].includes(v.changes.position.side)
|
|
159
|
-
// )
|
|
160
|
-
// const topBottom: PanelRefChanges[] = entries.filter(v =>
|
|
161
|
-
// ["top", "bottom"].includes(v.changes.position.side)
|
|
162
|
-
// )
|
|
163
|
-
// for (const entry of entries) {
|
|
164
|
-
// const changes = entry.changes
|
|
165
|
-
// const ref = entry.ref
|
|
166
|
-
// if (changes.mode === "embedded") {
|
|
167
|
-
// ref.style.zIndex = `${embeddedZIndex++}`
|
|
168
|
-
// } else if (changes.mode === "overlay") {
|
|
169
|
-
// ref.style.zIndex = `${overlayZIndex++}`
|
|
170
|
-
// }
|
|
171
|
-
// }
|
|
172
|
-
// for (const entry of leftRight) {
|
|
173
|
-
// const changes = entry.changes
|
|
174
|
-
// const ref = entry.ref
|
|
175
|
-
// const padding =
|
|
176
|
-
// changes.mode === "embedded"
|
|
177
|
-
// ? changes.state === "full"
|
|
178
|
-
// ? changes.fullSize
|
|
179
|
-
// : changes.state === "mini"
|
|
180
|
-
// ? changes.miniSize
|
|
181
|
-
// : 0
|
|
182
|
-
// : 0
|
|
183
|
-
// ref.style.top = "0"
|
|
184
|
-
// ref.style.bottom = "0"
|
|
185
|
-
// if (changes.position.side === "left") {
|
|
186
|
-
// paddingLeft = Math.max(paddingLeft, padding)
|
|
187
|
-
// ref.style.left = "0"
|
|
188
|
-
// ref.style.right = ""
|
|
189
|
-
// } else {
|
|
190
|
-
// paddingRight = Math.max(paddingRight, padding)
|
|
191
|
-
// ref.style.right = "0"
|
|
192
|
-
// ref.style.left = ""
|
|
193
|
-
// }
|
|
194
|
-
// }
|
|
195
|
-
// for (const entry of topBottom) {
|
|
196
|
-
// const changes = entry.changes
|
|
197
|
-
// const ref = entry.ref
|
|
198
|
-
// const padding =
|
|
199
|
-
// changes.mode === "embedded"
|
|
200
|
-
// ? changes.state === "full"
|
|
201
|
-
// ? changes.fullSize
|
|
202
|
-
// : changes.state === "mini"
|
|
203
|
-
// ? changes.miniSize
|
|
204
|
-
// : 0
|
|
205
|
-
// : 0
|
|
206
|
-
// if (changes.mode === "embedded") {
|
|
207
|
-
// ref.style.left = `${paddingLeft}px`
|
|
208
|
-
// ref.style.right = `${paddingRight}px`
|
|
209
|
-
// } else {
|
|
210
|
-
// ref.style.left = "0"
|
|
211
|
-
// ref.style.right = "0"
|
|
212
|
-
// }
|
|
213
|
-
// if (changes.position?.cells[0].v === "top") {
|
|
214
|
-
// paddingTop = Math.max(paddingTop, padding)
|
|
215
|
-
// ref.style.top = "0"
|
|
216
|
-
// ref.style.bottom = ""
|
|
217
|
-
// } else {
|
|
218
|
-
// paddingBottom = Math.max(paddingBottom, padding)
|
|
219
|
-
// ref.style.bottom = `0`
|
|
220
|
-
// ref.style.top = ""
|
|
221
|
-
// }
|
|
222
|
-
// }
|
|
223
|
-
// }
|
|
224
|
-
// const cel = this.contentEl.nativeElement
|
|
225
|
-
// cel.style.padding = `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`
|
|
226
|
-
}
|
|
227
105
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DockingLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
228
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DockingLayoutComponent, isStandalone: true, selector: "nu-docking", inputs: { contentOnly: "contentOnly"
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DockingLayoutComponent, isStandalone: true, selector: "nu-docking", inputs: { contentOnly: "contentOnly" }, queries: [{ propertyName: "contentComponent", first: true, predicate: DockingContentComponent, descendants: true }, { propertyName: "dockingPanels", predicate: DockingPanelComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
229
107
|
<ng-content select="nu-docking-panel"></ng-content>
|
|
230
108
|
|
|
231
109
|
@if (!contentComponent) {
|
|
@@ -235,7 +113,7 @@ export class DockingLayoutComponent extends Destructible {
|
|
|
235
113
|
} @else {
|
|
236
114
|
<ng-content select="nu-docking-content"></ng-content>
|
|
237
115
|
}
|
|
238
|
-
`, isInline: true, styles: [":host{---docking-layout-top: var(--docking-layout-top, 0px);---docking-layout-right: var(--docking-layout-right, 0px);---docking-layout-bottom: var(--docking-layout-bottom, 0px);---docking-layout-left: var(--docking-layout-left, 0px);---docking-layout-anim-duration: var(--docking-layout-anim-duration, .
|
|
116
|
+
`, isInline: true, styles: [":host{---docking-layout-top: var(--docking-layout-top, 0px);---docking-layout-right: var(--docking-layout-right, 0px);---docking-layout-bottom: var(--docking-layout-bottom, 0px);---docking-layout-left: var(--docking-layout-left, 0px);---docking-layout-anim-duration: var(--docking-layout-anim-duration, .3s);---docking-layout-anim-ease: var(--docking-layout-anim-ease, cubic-bezier(.4, 0, .2, 1));display:flex;flex-flow:column nowrap;align-items:stretch;position:relative;overflow:hidden;box-sizing:border-box;z-index:0;padding:var(---docking-layout-top) var(---docking-layout-right) var(---docking-layout-bottom) var(---docking-layout-left);transition:padding var(---docking-layout-anim-duration) var(---docking-layout-anim-ease)}\n"], dependencies: [{ kind: "component", type: DockingContentComponent, selector: "nu-docking-content", exportAs: ["nuDockingContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
239
117
|
}
|
|
240
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DockingLayoutComponent, decorators: [{
|
|
241
119
|
type: Component,
|
|
@@ -249,11 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
249
127
|
} @else {
|
|
250
128
|
<ng-content select="nu-docking-content"></ng-content>
|
|
251
129
|
}
|
|
252
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{---docking-layout-top: var(--docking-layout-top, 0px);---docking-layout-right: var(--docking-layout-right, 0px);---docking-layout-bottom: var(--docking-layout-bottom, 0px);---docking-layout-left: var(--docking-layout-left, 0px);---docking-layout-anim-duration: var(--docking-layout-anim-duration, .
|
|
130
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{---docking-layout-top: var(--docking-layout-top, 0px);---docking-layout-right: var(--docking-layout-right, 0px);---docking-layout-bottom: var(--docking-layout-bottom, 0px);---docking-layout-left: var(--docking-layout-left, 0px);---docking-layout-anim-duration: var(--docking-layout-anim-duration, .3s);---docking-layout-anim-ease: var(--docking-layout-anim-ease, cubic-bezier(.4, 0, .2, 1));display:flex;flex-flow:column nowrap;align-items:stretch;position:relative;overflow:hidden;box-sizing:border-box;z-index:0;padding:var(---docking-layout-top) var(---docking-layout-right) var(---docking-layout-bottom) var(---docking-layout-left);transition:padding var(---docking-layout-anim-duration) var(---docking-layout-anim-ease)}\n"] }]
|
|
253
131
|
}], propDecorators: { contentOnly: [{
|
|
254
132
|
type: Input
|
|
255
|
-
}], positionMode: [{
|
|
256
|
-
type: Input
|
|
257
133
|
}], contentComponent: [{
|
|
258
134
|
type: ContentChild,
|
|
259
135
|
args: [DockingContentComponent]
|
|
@@ -261,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
261
137
|
type: ContentChildren,
|
|
262
138
|
args: [DockingPanelComponent]
|
|
263
139
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2luZy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF5b3V0L3NyYy9kb2NraW5nL2RvY2tpbmctbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDckUsT0FBTyxFQUE0QixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQWEzRixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUE7QUFDMUIsTUFBTSxjQUFjLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQTtBQUkxQyw4QkFBOEI7QUFDOUIsb0JBQW9CO0FBQ3BCLG1DQUFtQztBQUNuQyxJQUFJO0FBRUosbUJBQW1CO0FBQ25CLCtDQUErQztBQUMvQyxvREFBb0Q7QUFDcEQsa0VBQWtFO0FBQ2xFLDZDQUE2QztBQUM3QywrQkFBK0I7QUFDL0IsZ0RBQWdEO0FBQ2hELGlCQUFpQjtBQUNqQixZQUFZO0FBQ1osUUFBUTtBQUNSLElBQUk7QUFvQkosTUFBTSxPQUFPLHNCQUF1QixTQUFRLFlBQVk7SUFsQnhEOztRQW1CYSxRQUFHLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUE7UUFFckMsZ0JBQVcsR0FBRyxL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O1FBQ1IsSUFBSTtRQUNKLDJDQUEyQztRQUMzQyw4RkFBOEY7SUFDbEcsQ0FBQzs4R0F6T1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsMExBTWpCLHVCQUF1QixtRUFDcEIscUJBQXFCLHlFQXJCNUI7Ozs7Ozs7Ozs7S0FVVCxxeEJBWFMsdUJBQXVCOzsyRkFleEIsc0JBQXNCO2tCQWxCbEMsU0FBUzsrQkFDSSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsdUJBQXVCLENBQUMsWUFDeEI7Ozs7Ozs7Ozs7S0FVVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFLdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVpQyxnQkFBZ0I7c0JBQXRELFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNHLGFBQWE7c0JBQXBELGVBQWU7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBEZXN0cnVjdGlibGUsIEZhc3RET00sIE51bWJlcldpdGhVbml0IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgRG9ja2luZ0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kb2NraW5nLWNvbnRlbnQuY29tcG9uZW50XCJcbmltcG9ydCB7IHR5cGUgRG9ja2luZ1BhbmVsQ2hhbmdlcywgRG9ja2luZ1BhbmVsQ29tcG9uZW50IH0gZnJvbSBcIi4vZG9ja2luZy1wYW5lbC5jb21wb25lbnRcIlxuXG50eXBlIERvY2tpbmdWZXJ0aWNhbFBvc2l0aW9uID0gXCJ0b3BcIiB8IFwibWlkZGxlXCIgfCBcImJvdHRvbVwiXG50eXBlIERvY2tpbmdIb3Jpem9udGFsUG9zaXRvbiA9IFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIlxudHlwZSBEb2NraW5nUG9zaXRpb24gPSBgJHtEb2NraW5nVmVydGljYWxQb3NpdGlvbn06JHtEb2NraW5nSG9yaXpvbnRhbFBvc2l0b259YFxuZXhwb3J0IHR5cGUgRG9ja2luZ1JhbmdlID1cbiAgICB8IERvY2tpbmdWZXJ0aWNhbFBvc2l0aW9uXG4gICAgfCBEb2NraW5nSG9yaXpvbnRhbFBvc2l0b25cbiAgICB8IERvY2tpbmdQb3NpdGlvblxuICAgIHwgYCR7RG9ja2luZ1Bvc2l0aW9ufS0ke0RvY2tpbmdQb3NpdGlvbn1gXG5cbmV4cG9ydCB0eXBlIERvY2tpbmdQb3NpdGlvbk1vZGUgPSBcImFic29sdXRlXCIgfCBcImZpeGVkXCJcblxuY29uc3QgRU1CRURERURfWklOREVYID0gMjBcbmNvbnN0IE9WRVJMQVlfWklOREVYID0gRU1CRURERURfWklOREVYICogMlxuXG50eXBlIFBhbmVsc0NoYW5nZXMgPSBBcnJheTx7IHBhbmVsOiBEb2NraW5nUGFuZWxDb21wb25lbnQ7IGNoYW5nZXM6IERvY2tpbmdQYW5lbENoYW5nZXMgfT5cblxuLy8gaW50ZXJmYWNlIFBhbmVsUmVmQ2hhbmdlcyB7XG4vLyAgICAgcmVmOiBQYW5lbFJlZlxuLy8gICAgIGNoYW5nZXM6IERvY2tpbmdQYW5lbENoYW5nZXNcbi8vIH1cblxuLy8gY2xhc3MgUGFuZWxSZWYge1xuLy8gICAgIHN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge31cbi8vICAgICByZWFkb25seSBjaGFuZ2VzOiBPYnNlcnZhYmxlPFBhbmVsUmVmQ2hhbmdlcz5cbi8vICAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGFuZWw6IERvY2tpbmdQYW5lbERpcmVjdGl2ZSkge1xuLy8gICAgICAgICB0aGlzLmNoYW5nZXMgPSBwYW5lbC5jaGFuZ2VzLnBpcGUoXG4vLyAgICAgICAgICAgICBtYXAoY2hhbmdlcyA9PiB7XG4vLyAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcmVmOiB0aGlzLCBjaGFuZ2VzIH1cbi8vICAgICAgICAgICAgIH0pXG4vLyAgICAgICAgIClcbi8vICAgICB9XG4vLyB9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51LWRvY2tpbmdcIixcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtEb2NraW5nQ29udGVudENvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnUtZG9ja2luZy1wYW5lbFwiPjwvbmctY29udGVudD5cblxuICAgICAgICBAaWYgKCFjb250ZW50Q29tcG9uZW50KSB7XG4gICAgICAgICAgICA8bnUtZG9ja2luZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbnUtZG9ja2luZy1jb250ZW50PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm51LWRvY2tpbmctY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgc3R5bGVVcmw6IFwiLi9kb2NraW5nLWxheW91dC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERvY2tpbmdMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBEZXN0cnVjdGlibGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIHJlYWRvbmx5ICNlbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PilcblxuICAgIEBJbnB1dCgpIGNvbnRlbnRPbmx5ID0gZmFsc2VcbiAgICBASW5wdXQoKSBwb3NpdGlvbk1vZGU6IERvY2tpbmdQb3NpdGlvbk1vZGUgPSBcImFic29sdXRlXCJcblxuICAgIEBDb250ZW50Q2hpbGQoRG9ja2luZ0NvbnRlbnRDb21wb25lbnQpIGNvbnRlbnRDb21wb25lbnQ/OiBEb2NraW5nQ29udGVudENvbXBvbmVudFxuICAgIEBDb250ZW50Q2hpbGRyZW4oRG9ja2luZ1BhbmVsQ29tcG9uZW50KSBkb2NraW5nUGFuZWxzITogUXVlcnlMaXN0PERvY2tpbmdQYW5lbENvbXBvbmVudD5cblxuICAgIC8vIHJlYWRvbmx5IHBhbmVscyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFuZWxSZWZbXT4oW10pXG4gICAgcmVhZG9ubHkgcGFuZWxzITogT2JzZXJ2YWJsZTxBcnJheTxEb2NraW5nUGFuZWxDb21wb25lbnQ+PlxuXG4gICAgI3JlZmxvdyA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICh0aGlzIGFzIHsgcGFuZWxzOiBPYnNlcnZhYmxlPEFycmF5PERvY2tpbmdQYW5lbENvbXBvbmVudD4+IH0pLnBhbmVscyA9IHRoaXMuZG9ja2luZ1BhbmVscy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5kb2NraW5nUGFuZWxzLnRvQXJyYXkoKSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApXG5cbiAgICAgICAgLy8gdGhpcy5wYW5lbHMuc3Vic2NyaWJlKHBhbmVscyA9PiBjb25zb2xlLmxvZyh7IHBhbmVscyB9KSlcblxuICAgICAgICB0aGlzLmRcbiAgICAgICAgICAgIC5zdWIoY29tYmluZUxhdGVzdCh7IHBhbmVsczogdGhpcy5wYW5lbHMsIHJlZmxvdzogdGhpcy4jcmVmbG93LnBpcGUoc3RhcnRXaXRoKG51bGwpKSB9KSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBwYW5lbHMgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVscy5tYXAocGFuZWwgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbC5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChjaGFuZ2VzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhbmVsLCBjaGFuZ2VzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuI2xheW91dC5iaW5kKHRoaXMpKVxuXG4gICAgICAgIC8vIHRoaXMuZFxuICAgICAgICAvLyAgICAgLnN1YihtZXJnZSh0aGlzLmRvY2tpbmdQYW5lbHMuY2hhbmdlcywgdGhpcy4jcmVmbG93KSlcbiAgICAgICAgLy8gICAgIC5waXBlKFxuICAgICAgICAvLyAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgLy8gICAgICAgICBtYXAoKCkgPT4gdGhpcy5kb2NraW5nUGFuZWxzLm1hcChwYW5lbCA9PiBuZXcgUGFuZWxSZWYocGFuZWwpKSksXG4gICAgICAgIC8vICAgICAgICAgc3dpdGNoTWFwKHJlZnMgPT4gY29tYmluZUxhdGVzdChyZWZzLm1hcChyZWYgPT4gcmVmLmNoYW5nZXMpKSksXG4gICAgICAgIC8vICAgICAgICAgbWFwKGNoYW5nZXMgPT4ge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLiNsYXlvdXQoY2hhbmdlcylcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuIGNoYW5nZXMubWFwKGMgPT4gYy5yZWYpXG4gICAgICAgIC8vICAgICAgICAgfSlcbiAgICAgICAgLy8gICAgIClcbiAgICAgICAgLy8gICAgIC5zdWJzY3JpYmUodGhpcy5wYW5lbHMpXG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXCJjb250ZW50T25seVwiIGluIGNoYW5nZXMgfHwgXCJwb3NpdGlvbk1vZGVcIiBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLiNyZWZsb3cubmV4dCgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbGF5b3V0KGVudHJpZXM6IFBhbmVsc0NoYW5nZXMpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJsYXlvdXRcIiwgZW50cmllcylcbiAgICAgICAgbGV0IHBhZGRpbmdUb3AgPSAwXG4gICAgICAgIGxldCBwYWRkaW5nUmlnaHQgPSAwXG4gICAgICAgIGxldCBwYWRkaW5nQm90dG9tID0gMFxuICAgICAgICBsZXQgcGFkZGluZ0xlZnQgPSAwXG4gICAgICAgIGxldCBlbWJlZGRlZFpJbmRleCA9IEVNQkVEREVEX1pJTkRFWFxuICAgICAgICBsZXQgb3ZlcmxheVpJbmRleCA9IE9WRVJMQVlfWklOREVYXG5cbiAgICAgICAgaWYgKHRoaXMuY29udGVudE9ubHkpIHtcbiAgICAgICAgICAgIC8vIFRPRE86Li4uXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbFN0YXRlID0gZW50cnkuY2hhbmdlc1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsU2l6ZSA9XG4gICAgICAgICAgICAgICAgICAgIHBhbmVsU3RhdGUuc3RhdGUgPT09IFwiZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHBhbmVsU3RhdGUuZnVsbFNpemUudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGFuZWxTdGF0ZS5zdGF0ZSA9PT0gXCJtaW5pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwYW5lbFN0YXRlLm1pbmlTaXplLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogMFxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gcGFuZWxTdGF0ZS5wb3NpdGlvbi5vcmllbnQgPT09IFwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAgICAgY29uc3QgaXNFbWJlZGRlZCA9IHBhbmVsU3RhdGUubW9kZSA9PT0gXCJlbWJlZGRlZFwiXG5cbiAgICAgICAgICAgICAgICBsZXQgcGFuZWxUb3AgPSBudWxsXG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsUmlnaHQgPSBudWxsXG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsQm90dG9tID0gbnVsbFxuICAgICAgICAgICAgICAgIGxldCBwYW5lbExlZnQgPSBudWxsXG5cbiAgICAgICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhbmVsTGVmdCA9IDBcbiAgICAgICAgICAgICAgICAgICAgcGFuZWxSaWdodCA9IDBcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhbmVsU3RhdGUucG9zaXRpb24uY2VsbHNbMF0udiA9PT0gXCJ0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRW1iZWRkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wID0gTWF0aC5tYXgocGFkZGluZ1RvcCwgcGFuZWxTaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxUb3AgPSAwXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFuZWxTdGF0ZS5wb3NpdGlvbi5jZWxsc1swXS52ID09PSBcImJvdHRvbVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbWJlZGRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b20gPSBNYXRoLm1heChwYWRkaW5nQm90dG9tLCBwYW5lbFNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbEJvdHRvbSA9IDBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhbmVsVG9wID0gMFxuICAgICAgICAgICAgICAgICAgICBwYW5lbEJvdHRvbSA9IDBcblxuICAgICAgICAgICAgICAgICAgICBpZiAocGFuZWxTdGF0ZS5wb3NpdGlvbi5jZWxsc1swXS5oID09PSBcImxlZnRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRW1iZWRkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdCA9IE1hdGgubWF4KHBhZGRpbmdMZWZ0LCBwYW5lbFNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbExlZnQgPSAwXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFuZWxTdGF0ZS5wb3NpdGlvbi5jZWxsc1swXS5oID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0VtYmVkZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gTWF0aC5tYXgocGFkZGluZ1JpZ2h0LCBwYW5lbFNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbFJpZ2h0ID0gMFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxHaXZlblNpemUgPVxuICAgICAgICAgICAgICAgICAgICBwYW5lbFN0YXRlLnN0YXRlID09PSBcImZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwYW5lbFN0YXRlLmZ1bGxTaXplXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHBhbmVsU3RhdGUuc3RhdGUgPT09IFwibWluaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFuZWxTdGF0ZS5taW5pU2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBOdW1iZXJXaXRoVW5pdCgwLCBcInB4XCIpXG5cbiAgICAgICAgICAgICAgICBGYXN0RE9NLnNldFN0eWxlKGVudHJ5LnBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ6LWluZGV4XCI6IGAke2lzRW1iZWRkZWQgPyBlbWJlZGRlZFpJbmRleCsrIDogb3ZlcmxheVpJbmRleCsrfWAsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLXBhbmVsLXRcIjogcGFuZWxUb3AgIT0gbnVsbCA/IGAke3BhbmVsVG9wfXB4YCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLXBhbmVsLXJcIjogcGFuZWxSaWdodCAhPSBudWxsID8gYCR7cGFuZWxSaWdodH1weGAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1wYW5lbC1iXCI6IHBhbmVsQm90dG9tICE9IG51bGwgPyBgJHtwYW5lbEJvdHRvbX1weGAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1wYW5lbC1sXCI6IHBhbmVsTGVmdCAhPSBudWxsID8gYCR7cGFuZWxMZWZ0fXB4YCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLXBhbmVsLXdcIjogIWlzSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtwYW5lbEdpdmVuU2l6ZS51bml0ID09PSBcImF1dG9cIiA/IFwiYXV0b1wiIDogcGFuZWxHaXZlblNpemV9YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1wYW5lbC1oXCI6IGlzSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtwYW5lbEdpdmVuU2l6ZS51bml0ID09PSBcImF1dG9cIiA/IFwiYXV0b1wiIDogcGFuZWxHaXZlblNpemV9YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1wYW5lbC1yZWFsLXdcIjogIWlzSG9yaXpvbnRhbCA/IGAke3BhbmVsU2l6ZX1weGAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1wYW5lbC1yZWFsLWhcIjogaXNIb3Jpem9udGFsID8gYCR7cGFuZWxTaXplfXB4YCA6IG51bGxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh7IHBhZGRpbmdUb3AsIHBhZGRpbmdSaWdodCwgcGFkZGluZ0JvdHRvbSwgcGFkZGluZ0xlZnQgfSlcblxuICAgICAgICAgICAgRmFzdERPTS5zZXRTdHlsZSh0aGlzLiNlbC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgXCItLWRvY2tpbmctbGF5b3V0LXRvcFwiOiBgJHtwYWRkaW5nVG9wfXB4YCxcbiAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1sYXlvdXQtcmlnaHRcIjogYCR7cGFkZGluZ1JpZ2h0fXB4YCxcbiAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1sYXlvdXQtYm90dG9tXCI6IGAke3BhZGRpbmdCb3R0b219cHhgLFxuICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLWxheW91dC1sZWZ0XCI6IGAke3BhZGRpbmdMZWZ0fXB4YFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNsYXlvdXRPbGQoZW50cmllczogUGFuZWxzQ2hhbmdlcykge1xuICAgICAgICAvLyBsZXQgcGFkZGluZ1RvcCA9IDBcbiAgICAgICAgLy8gbGV0IHBhZGRpbmdSaWdodCA9IDBcbiAgICAgICAgLy8gbGV0IHBhZGRpbmdCb3R0b20gPSAwXG4gICAgICAgIC8vIGxldCBwYWRkaW5nTGVmdCA9IDBcbiAgICAgICAgLy8gaWYgKCF0aGlzLmNvbnRlbnRPbmx5KSB7XG4gICAgICAgIC8vICAgICBsZXQgZW1iZWRkZWRaSW5kZXggPSBFTUJFRERFRF9aSU5ERVhcbiAgICAgICAgLy8gICAgIGxldCBvdmVybGF5WkluZGV4ID0gT1ZFUkxBWV9aSU5ERVhcbiAgICAgICAgLy8gICAgIGNvbnN0IGxlZnRSaWdodDogUGFuZWxSZWZDaGFuZ2VzW10gPSBlbnRyaWVzLmZpbHRlcih2ID0+XG4gICAgICAgIC8vICAgICAgICAgW1wibGVmdFwiLCBcInJpZ2h0XCJdLmluY2x1ZGVzKHYuY2hhbmdlcy5wb3NpdGlvbi5zaWRlKVxuICAgICAgICAvLyAgICAgKVxuICAgICAgICAvLyAgICAgY29uc3QgdG9wQm90dG9tOiBQYW5lbFJlZkNoYW5nZXNbXSA9IGVudHJpZXMuZmlsdGVyKHYgPT5cbiAgICAgICAgLy8gICAgICAgICBbXCJ0b3BcIiwgXCJib3R0b21cIl0uaW5jbHVkZXModi5jaGFuZ2VzLnBvc2l0aW9uLnNpZGUpXG4gICAgICAgIC8vICAgICApXG4gICAgICAgIC8vICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBjaGFuZ2VzID0gZW50cnkuY2hhbmdlc1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IHJlZiA9IGVudHJ5LnJlZlxuICAgICAgICAvLyAgICAgICAgIGlmIChjaGFuZ2VzLm1vZGUgPT09IFwiZW1iZWRkZWRcIikge1xuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUuekluZGV4ID0gYCR7ZW1iZWRkZWRaSW5kZXgrK31gXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzLm1vZGUgPT09IFwib3ZlcmxheVwiKSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIHJlZi5zdHlsZS56SW5kZXggPSBgJHtvdmVybGF5WkluZGV4Kyt9YFxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICAgIGZvciAoY29uc3QgZW50cnkgb2YgbGVmdFJpZ2h0KSB7XG4gICAgICAgIC8vICAgICAgICAgY29uc3QgY2hhbmdlcyA9IGVudHJ5LmNoYW5nZXNcbiAgICAgICAgLy8gICAgICAgICBjb25zdCByZWYgPSBlbnRyeS5yZWZcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBwYWRkaW5nID1cbiAgICAgICAgLy8gICAgICAgICAgICAgY2hhbmdlcy5tb2RlID09PSBcImVtYmVkZGVkXCJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgID8gY2hhbmdlcy5zdGF0ZSA9PT0gXCJmdWxsXCJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICA/IGNoYW5nZXMuZnVsbFNpemVcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICA6IGNoYW5nZXMuc3RhdGUgPT09IFwibWluaVwiXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICA/IGNoYW5nZXMubWluaVNpemVcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIDogMFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgIC8vICAgICAgICAgcmVmLnN0eWxlLnRvcCA9IFwiMFwiXG4gICAgICAgIC8vICAgICAgICAgcmVmLnN0eWxlLmJvdHRvbSA9IFwiMFwiXG4gICAgICAgIC8vICAgICAgICAgaWYgKGNoYW5nZXMucG9zaXRpb24uc2lkZSA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgcGFkZGluZ0xlZnQgPSBNYXRoLm1heChwYWRkaW5nTGVmdCwgcGFkZGluZylcbiAgICAgICAgLy8gICAgICAgICAgICAgcmVmLnN0eWxlLmxlZnQgPSBcIjBcIlxuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUucmlnaHQgPSBcIlwiXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gTWF0aC5tYXgocGFkZGluZ1JpZ2h0LCBwYWRkaW5nKVxuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUucmlnaHQgPSBcIjBcIlxuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUubGVmdCA9IFwiXCJcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRvcEJvdHRvbSkge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGNoYW5nZXMgPSBlbnRyeS5jaGFuZ2VzXG4gICAgICAgIC8vICAgICAgICAgY29uc3QgcmVmID0gZW50cnkucmVmXG4gICAgICAgIC8vICAgICAgICAgY29uc3QgcGFkZGluZyA9XG4gICAgICAgIC8vICAgICAgICAgICAgIGNoYW5nZXMubW9kZSA9PT0gXCJlbWJlZGRlZFwiXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICA/IGNoYW5nZXMuc3RhdGUgPT09IFwiZnVsbFwiXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgPyBjaGFuZ2VzLmZ1bGxTaXplXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgOiBjaGFuZ2VzLnN0YXRlID09PSBcIm1pbmlcIlxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgPyBjaGFuZ2VzLm1pbmlTaXplXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIDogMFxuICAgICAgICAvLyAgICAgICAgIGlmIChjaGFuZ2VzLm1vZGUgPT09IFwiZW1iZWRkZWRcIikge1xuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUubGVmdCA9IGAke3BhZGRpbmdMZWZ0fXB4YFxuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUucmlnaHQgPSBgJHtwYWRkaW5nUmlnaHR9cHhgXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgcmVmLnN0eWxlLmxlZnQgPSBcIjBcIlxuICAgICAgICAvLyAgICAgICAgICAgICByZWYuc3R5bGUucmlnaHQgPSBcIjBcIlxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgICAgICBpZiAoY2hhbmdlcy5wb3NpdGlvbj8uY2VsbHNbMF0udiA9PT0gXCJ0b3BcIikge1xuICAgICAgICAvLyAgICAgICAgICAgICBwYWRkaW5nVG9wID0gTWF0aC5tYXgocGFkZGluZ1RvcCwgcGFkZGluZylcbiAgICAgICAgLy8gICAgICAgICAgICAgcmVmLnN0eWxlLnRvcCA9IFwiMFwiXG4gICAgICAgIC8vICAgICAgICAgICAgIHJlZi5zdHlsZS5ib3R0b20gPSBcIlwiXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IE1hdGgubWF4KHBhZGRpbmdCb3R0b20sIHBhZGRpbmcpXG4gICAgICAgIC8vICAgICAgICAgICAgIHJlZi5zdHlsZS5ib3R0b20gPSBgMGBcbiAgICAgICAgLy8gICAgICAgICAgICAgcmVmLnN0eWxlLnRvcCA9IFwiXCJcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gY29uc3QgY2VsID0gdGhpcy5jb250ZW50RWwubmF0aXZlRWxlbWVudFxuICAgICAgICAvLyBjZWwuc3R5bGUucGFkZGluZyA9IGAke3BhZGRpbmdUb3B9cHggJHtwYWRkaW5nUmlnaHR9cHggJHtwYWRkaW5nQm90dG9tfXB4ICR7cGFkZGluZ0xlZnR9cHhgXG4gICAgfVxufVxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2luZy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF5b3V0L3NyYy9kb2NraW5nL2RvY2tpbmctbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRSxPQUFPLEVBQTRCLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7O0FBVzNGLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQTtBQUN2QixNQUFNLFdBQVcsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFBO0FBc0JwQyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQWxCeEQ7O1FBbUJhLFFBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQTtRQUVyQyxnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQVE1QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtLQThHaEM7SUF4SFksR0FBRyxDQUFrQztJQVU5QyxPQUFPLENBQXNCO0lBRTdCLGVBQWU7UUFDWCw2Q0FBNkM7UUFDNUMsSUFBNkQsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNuRyxTQUFTLENBQUMsSUFBSSxD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QUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBEZXN0cnVjdGlibGUsIEZhc3RET00gfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBEb2NraW5nQ29udGVudENvbXBvbmVudCB9IGZyb20gXCIuL2RvY2tpbmctY29udGVudC5jb21wb25lbnRcIlxuaW1wb3J0IHsgdHlwZSBEb2NraW5nUGFuZWxDaGFuZ2VzLCBEb2NraW5nUGFuZWxDb21wb25lbnQgfSBmcm9tIFwiLi9kb2NraW5nLXBhbmVsLmNvbXBvbmVudFwiXG5cbnR5cGUgRG9ja2luZ1ZlcnRpY2FsUG9zaXRpb24gPSBcInRvcFwiIHwgXCJtaWRkbGVcIiB8IFwiYm90dG9tXCJcbnR5cGUgRG9ja2luZ0hvcml6b250YWxQb3NpdG9uID0gXCJsZWZ0XCIgfCBcImNlbnRlclwiIHwgXCJyaWdodFwiXG50eXBlIERvY2tpbmdQb3NpdGlvbiA9IGAke0RvY2tpbmdWZXJ0aWNhbFBvc2l0aW9ufToke0RvY2tpbmdIb3Jpem9udGFsUG9zaXRvbn1gXG5leHBvcnQgdHlwZSBEb2NraW5nUmFuZ2UgPVxuICAgIHwgRG9ja2luZ1ZlcnRpY2FsUG9zaXRpb25cbiAgICB8IERvY2tpbmdIb3Jpem9udGFsUG9zaXRvblxuICAgIHwgRG9ja2luZ1Bvc2l0aW9uXG4gICAgfCBgJHtEb2NraW5nUG9zaXRpb259LSR7RG9ja2luZ1Bvc2l0aW9ufWBcblxuY29uc3QgUklHSURfWklOREVYID0gMjBcbmNvbnN0IE9WRVJfWklOREVYID0gUklHSURfWklOREVYICogMlxuXG50eXBlIFBhbmVsc0NoYW5nZXMgPSBBcnJheTx7IHBhbmVsOiBEb2NraW5nUGFuZWxDb21wb25lbnQ7IGNoYW5nZXM6IERvY2tpbmdQYW5lbENoYW5nZXMgfT5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnUtZG9ja2luZ1wiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0RvY2tpbmdDb250ZW50Q29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJudS1kb2NraW5nLXBhbmVsXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBpZiAoIWNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIDxudS1kb2NraW5nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9udS1kb2NraW5nLWNvbnRlbnQ+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnUtZG9ja2luZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybDogXCIuL2RvY2tpbmctbGF5b3V0LmNvbXBvbmVudC5zY3NzXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG9ja2luZ0xheW91dENvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgcmVhZG9ubHkgI2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KVxuXG4gICAgQElucHV0KCkgY29udGVudE9ubHkgPSBmYWxzZVxuXG4gICAgQENvbnRlbnRDaGlsZChEb2NraW5nQ29udGVudENvbXBvbmVudCkgY29udGVudENvbXBvbmVudD86IERvY2tpbmdDb250ZW50Q29tcG9uZW50XG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NraW5nUGFuZWxDb21wb25lbnQpIGRvY2tpbmdQYW5lbHMhOiBRdWVyeUxpc3Q8RG9ja2luZ1BhbmVsQ29tcG9uZW50PlxuXG4gICAgLy8gcmVhZG9ubHkgcGFuZWxzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYW5lbFJlZltdPihbXSlcbiAgICByZWFkb25seSBwYW5lbHMhOiBPYnNlcnZhYmxlPEFycmF5PERvY2tpbmdQYW5lbENvbXBvbmVudD4+XG5cbiAgICAjcmVmbG93ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgKHRoaXMgYXMgeyBwYW5lbHM6IE9ic2VydmFibGU8QXJyYXk8RG9ja2luZ1BhbmVsQ29tcG9uZW50Pj4gfSkucGFuZWxzID0gdGhpcy5kb2NraW5nUGFuZWxzLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmRvY2tpbmdQYW5lbHMudG9BcnJheSgpKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgIClcblxuICAgICAgICB0aGlzLmRcbiAgICAgICAgICAgIC5zdWIoY29tYmluZUxhdGVzdCh7IHBhbmVsczogdGhpcy5wYW5lbHMsIHJlZmxvdzogdGhpcy4jcmVmbG93LnBpcGUoc3RhcnRXaXRoKG51bGwpKSB9KSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBwYW5lbHMgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVscy5tYXAocGFuZWwgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbC5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChjaGFuZ2VzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhbmVsLCBjaGFuZ2VzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuI2xheW91dC5iaW5kKHRoaXMpKVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFwiY29udGVudE9ubHlcIiBpbiBjaGFuZ2VzIHx8IFwicG9zaXRpb25Nb2RlXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy4jcmVmbG93Lm5leHQoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2xheW91dChlbnRyaWVzOiBQYW5lbHNDaGFuZ2VzKSB7XG4gICAgICAgIGxldCBwYWRkaW5nVG9wID0gMFxuICAgICAgICBsZXQgcGFkZGluZ1JpZ2h0ID0gMFxuICAgICAgICBsZXQgcGFkZGluZ0JvdHRvbSA9IDBcbiAgICAgICAgbGV0IHBhZGRpbmdMZWZ0ID0gMFxuICAgICAgICBsZXQgcmlnaWRaSW5kZXggPSBSSUdJRF9aSU5ERVhcbiAgICAgICAgbGV0IG92ZXJaSW5kZXggPSBPVkVSX1pJTkRFWFxuXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRPbmx5KSB7XG4gICAgICAgICAgICAvLyBUT0RPOi4uLlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxTdGF0ZSA9IGVudHJ5LmNoYW5nZXNcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbFNpemUgPVxuICAgICAgICAgICAgICAgICAgICBwYW5lbFN0YXRlLnN0YXRlID09PSBcImZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwYW5lbFN0YXRlLmZ1bGxTaXplLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHBhbmVsU3RhdGUuc3RhdGUgPT09IFwibWluaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFuZWxTdGF0ZS5taW5pU2l6ZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IDBcblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IHBhbmVsU3RhdGUucG9zaXRpb24ub3JpZW50ID09PSBcImhvcml6b250YWxcIlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmlnaWQgPSBwYW5lbFN0YXRlLm1vZGUgPT09IFwicmlnaWRcIlxuXG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsVG9wID0gbnVsbFxuICAgICAgICAgICAgICAgIGxldCBwYW5lbFJpZ2h0ID0gbnVsbFxuICAgICAgICAgICAgICAgIGxldCBwYW5lbEJvdHRvbSA9IG51bGxcbiAgICAgICAgICAgICAgICBsZXQgcGFuZWxMZWZ0ID0gbnVsbFxuXG4gICAgICAgICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgICAgICBwYW5lbExlZnQgPSAwXG4gICAgICAgICAgICAgICAgICAgIHBhbmVsUmlnaHQgPSAwXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYW5lbFN0YXRlLnBvc2l0aW9uLmNlbGxzWzBdLnYgPT09IFwidG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1JpZ2lkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1RvcCA9IE1hdGgubWF4KHBhZGRpbmdUb3AsIHBhbmVsU2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsVG9wID0gMFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbmVsU3RhdGUucG9zaXRpb24uY2VsbHNbMF0udiA9PT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUmlnaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tID0gTWF0aC5tYXgocGFkZGluZ0JvdHRvbSwgcGFuZWxTaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxCb3R0b20gPSAwXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYW5lbFRvcCA9IDBcbiAgICAgICAgICAgICAgICAgICAgcGFuZWxCb3R0b20gPSAwXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhbmVsU3RhdGUucG9zaXRpb24uY2VsbHNbMF0uaCA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1JpZ2lkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQgPSBNYXRoLm1heChwYWRkaW5nTGVmdCwgcGFuZWxTaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxMZWZ0ID0gMFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbmVsU3RhdGUucG9zaXRpb24uY2VsbHNbMF0uaCA9PT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNSaWdpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodCA9IE1hdGgubWF4KHBhZGRpbmdSaWdodCwgcGFuZWxTaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxSaWdodCA9IDBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEZhc3RET00uc2V0U3R5bGUoZW50cnkucGFuZWwuZWwubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBcInotaW5kZXhcIjogYCR7aXNSaWdpZCA/IHJpZ2lkWkluZGV4KysgOiBvdmVyWkluZGV4Kyt9YCxcbiAgICAgICAgICAgICAgICAgICAgXCItLWRvY2tpbmctcGFuZWwtdFwiOiBwYW5lbFRvcCAhPSBudWxsID8gYCR7cGFuZWxUb3B9cHhgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgXCItLWRvY2tpbmctcGFuZWwtclwiOiBwYW5lbFJpZ2h0ICE9IG51bGwgPyBgJHtwYW5lbFJpZ2h0fXB4YCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLXBhbmVsLWJcIjogcGFuZWxCb3R0b20gIT0gbnVsbCA/IGAke3BhbmVsQm90dG9tfXB4YCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLXBhbmVsLWxcIjogcGFuZWxMZWZ0ICE9IG51bGwgPyBgJHtwYW5lbExlZnR9cHhgIDogbnVsbFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEZhc3RET00uc2V0U3R5bGUodGhpcy4jZWwubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgICAgIFwiLS1kb2NraW5nLWxheW91dC10b3BcIjogYCR7cGFkZGluZ1RvcH1weGAsXG4gICAgICAgICAgICAgICAgXCItLWRvY2tpbmctbGF5b3V0LXJpZ2h0XCI6IGAke3BhZGRpbmdSaWdodH1weGAsXG4gICAgICAgICAgICAgICAgXCItLWRvY2tpbmctbGF5b3V0LWJvdHRvbVwiOiBgJHtwYWRkaW5nQm90dG9tfXB4YCxcbiAgICAgICAgICAgICAgICBcIi0tZG9ja2luZy1sYXlvdXQtbGVmdFwiOiBgJHtwYWRkaW5nTGVmdH1weGBcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|