slate-angular 16.1.0-next.2 → 16.1.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/children/children-outlet.component.d.ts +9 -0
- package/components/editable/editable.component.d.ts +1 -1
- package/components/string/default-string.component.d.ts +1 -1
- package/components/text/void-text.component.d.ts +0 -1
- package/esm2022/components/block-card/block-card.component.mjs +2 -2
- package/esm2022/components/children/children-outlet.component.mjs +22 -0
- package/esm2022/components/children/children.component.mjs +2 -4
- package/esm2022/components/editable/editable.component.mjs +36 -20
- package/esm2022/components/leaf/token.mjs +1 -1
- package/esm2022/components/string/default-string.component.mjs +1 -1
- package/esm2022/components/string/string.component.mjs +1 -1
- package/esm2022/components/text/token.mjs +1 -1
- package/esm2022/components/text/void-text.component.mjs +2 -6
- package/esm2022/module.mjs +7 -16
- package/esm2022/plugins/angular-editor.mjs +61 -17
- package/esm2022/plugins/with-angular.mjs +5 -4
- package/esm2022/public-api.mjs +3 -2
- package/esm2022/utils/constants.mjs +2 -0
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/throttle.mjs +1 -1
- package/esm2022/view/base.mjs +59 -22
- package/esm2022/view/container.mjs +1 -1
- package/esm2022/view/context-change.mjs +13 -0
- package/esm2022/view/context.mjs +1 -1
- package/esm2022/view/render/leaves-render.mjs +8 -6
- package/esm2022/view/render/list-render.mjs +57 -15
- package/esm2022/view/render/utils.mjs +25 -14
- package/fesm2022/slate-angular.mjs +294 -111
- package/fesm2022/slate-angular.mjs.map +1 -1
- package/module.d.ts +2 -1
- package/package.json +7 -7
- package/plugins/angular-editor.d.ts +17 -6
- package/public-api.d.ts +2 -1
- package/utils/constants.d.ts +1 -0
- package/utils/index.d.ts +1 -0
- package/view/base.d.ts +11 -7
- package/view/{before-context-change.d.ts → context-change.d.ts} +4 -0
- package/view/context.d.ts +2 -3
- package/view/render/leaves-render.d.ts +2 -1
- package/view/render/list-render.d.ts +7 -3
- package/view/render/utils.d.ts +3 -3
- package/esm2022/view/before-context-change.mjs +0 -7
|
@@ -5,21 +5,25 @@ import { SlateErrorCode } from '../../types/error';
|
|
|
5
5
|
import { NODE_TO_INDEX, NODE_TO_PARENT } from '../../utils/weak-maps';
|
|
6
6
|
import { isDecoratorRangeListEqual } from '../../utils/range-list';
|
|
7
7
|
import { SlateBlockCard } from '../../components/block-card/block-card.component';
|
|
8
|
-
import { createEmbeddedViewOrComponent, getRootNodes, mount, mountOnItemChange, updateContext } from './utils';
|
|
8
|
+
import { createEmbeddedViewOrComponent, executeAfterViewInit, getRootNodes, mount, mountOnItemChange, updateContext } from './utils';
|
|
9
9
|
export class ListRender {
|
|
10
|
-
constructor(viewContext, viewContainerRef, getOutletElement) {
|
|
10
|
+
constructor(viewContext, viewContainerRef, getOutletParent, getOutletElement) {
|
|
11
11
|
this.viewContext = viewContext;
|
|
12
12
|
this.viewContainerRef = viewContainerRef;
|
|
13
|
+
this.getOutletParent = getOutletParent;
|
|
13
14
|
this.getOutletElement = getOutletElement;
|
|
14
15
|
this.views = [];
|
|
16
|
+
this.addedViews = [];
|
|
15
17
|
this.blockCards = [];
|
|
16
18
|
this.contexts = [];
|
|
17
19
|
this.viewTypes = [];
|
|
20
|
+
this.differ = null;
|
|
18
21
|
this.initialized = false;
|
|
19
22
|
}
|
|
20
|
-
initialize(children, parent,
|
|
23
|
+
initialize(children, parent, childrenContext) {
|
|
21
24
|
this.initialized = true;
|
|
22
25
|
this.children = children;
|
|
26
|
+
const parentPath = AngularEditor.findPath(this.viewContext.editor, parent);
|
|
23
27
|
children.forEach((descendant, index) => {
|
|
24
28
|
NODE_TO_INDEX.set(descendant, index);
|
|
25
29
|
NODE_TO_PARENT.set(descendant, parent);
|
|
@@ -28,23 +32,32 @@ export class ListRender {
|
|
|
28
32
|
const view = createEmbeddedViewOrComponent(viewType, context, this.viewContext, this.viewContainerRef);
|
|
29
33
|
const blockCard = createBlockCard(descendant, view, this.viewContainerRef, this.viewContext);
|
|
30
34
|
this.views.push(view);
|
|
35
|
+
this.addedViews.push(view);
|
|
31
36
|
this.contexts.push(context);
|
|
32
37
|
this.viewTypes.push(viewType);
|
|
33
38
|
this.blockCards.push(blockCard);
|
|
34
39
|
});
|
|
35
|
-
mount(this.views, this.blockCards, this.getOutletElement());
|
|
40
|
+
mount(this.views, this.blockCards, this.getOutletParent(), this.getOutletElement());
|
|
36
41
|
const newDiffers = this.viewContainerRef.injector.get(IterableDiffers);
|
|
37
42
|
this.differ = newDiffers.find(children).create(trackBy(this.viewContext));
|
|
38
43
|
this.differ.diff(children);
|
|
44
|
+
if (parent === this.viewContext.editor) {
|
|
45
|
+
this.afterViewInit();
|
|
46
|
+
}
|
|
39
47
|
}
|
|
40
|
-
update(children, parent,
|
|
41
|
-
if (!this.initialized) {
|
|
42
|
-
this.initialize(children, parent,
|
|
48
|
+
update(children, parent, childrenContext) {
|
|
49
|
+
if (!this.initialized || this.children.length === 0) {
|
|
50
|
+
this.initialize(children, parent, childrenContext);
|
|
43
51
|
return;
|
|
44
52
|
}
|
|
45
|
-
|
|
53
|
+
if (!this.differ) {
|
|
54
|
+
throw new Error('Exception: Can not find differ ');
|
|
55
|
+
}
|
|
56
|
+
const outletParent = this.getOutletParent();
|
|
46
57
|
const diffResult = this.differ.diff(children);
|
|
58
|
+
const parentPath = AngularEditor.findPath(this.viewContext.editor, parent);
|
|
47
59
|
if (diffResult) {
|
|
60
|
+
let firstRootNode = getRootNodes(this.views[0], this.blockCards[0])[0];
|
|
48
61
|
const newContexts = [];
|
|
49
62
|
const newViewTypes = [];
|
|
50
63
|
const newViews = [];
|
|
@@ -62,8 +75,9 @@ export class ListRender {
|
|
|
62
75
|
blockCard = createBlockCard(record.item, view, this.viewContainerRef, this.viewContext);
|
|
63
76
|
newContexts.push(context);
|
|
64
77
|
newViews.push(view);
|
|
78
|
+
this.addedViews.push(view);
|
|
65
79
|
newBlockCards.push(blockCard);
|
|
66
|
-
mountOnItemChange(record.currentIndex, record.item, newViews, newBlockCards,
|
|
80
|
+
mountOnItemChange(record.currentIndex, record.item, newViews, newBlockCards, outletParent, firstRootNode, this.viewContext);
|
|
67
81
|
}
|
|
68
82
|
else {
|
|
69
83
|
const previousView = this.views[record.previousIndex];
|
|
@@ -72,6 +86,7 @@ export class ListRender {
|
|
|
72
86
|
const previousBlockCard = this.blockCards[record.previousIndex];
|
|
73
87
|
if (previousViewType !== viewType) {
|
|
74
88
|
view = createEmbeddedViewOrComponent(viewType, context, this.viewContext, this.viewContainerRef);
|
|
89
|
+
this.addedViews.push(view);
|
|
75
90
|
blockCard = createBlockCard(record.item, view, this.viewContainerRef, this.viewContext);
|
|
76
91
|
const firstRootNode = getRootNodes(previousView, previousBlockCard)[0];
|
|
77
92
|
const newRootNodes = getRootNodes(view, blockCard);
|
|
@@ -94,7 +109,7 @@ export class ListRender {
|
|
|
94
109
|
newBlockCards.push(blockCard);
|
|
95
110
|
}
|
|
96
111
|
});
|
|
97
|
-
diffResult.forEachOperation(
|
|
112
|
+
diffResult.forEachOperation(record => {
|
|
98
113
|
// removed
|
|
99
114
|
if (record.currentIndex === null) {
|
|
100
115
|
const view = this.views[record.previousIndex];
|
|
@@ -104,7 +119,7 @@ export class ListRender {
|
|
|
104
119
|
}
|
|
105
120
|
// moved
|
|
106
121
|
if (record.previousIndex !== null && record.currentIndex !== null) {
|
|
107
|
-
mountOnItemChange(record.currentIndex, record.item, newViews, newBlockCards,
|
|
122
|
+
mountOnItemChange(record.currentIndex, record.item, newViews, newBlockCards, outletParent, firstRootNode, this.viewContext);
|
|
108
123
|
// Solve the block-card DOMElement loss when moving nodes
|
|
109
124
|
newBlockCards[record.currentIndex]?.instance.append();
|
|
110
125
|
}
|
|
@@ -114,10 +129,15 @@ export class ListRender {
|
|
|
114
129
|
this.contexts = newContexts;
|
|
115
130
|
this.children = children;
|
|
116
131
|
this.blockCards = newBlockCards;
|
|
132
|
+
if (parent === this.viewContext.editor) {
|
|
133
|
+
this.afterViewInit();
|
|
134
|
+
}
|
|
117
135
|
}
|
|
118
136
|
else {
|
|
119
137
|
const newContexts = [];
|
|
120
138
|
this.children.forEach((child, index) => {
|
|
139
|
+
NODE_TO_INDEX.set(child, index);
|
|
140
|
+
NODE_TO_PARENT.set(child, parent);
|
|
121
141
|
let context = getContext(index, child, parentPath, childrenContext, this.viewContext);
|
|
122
142
|
const previousContext = this.contexts[index];
|
|
123
143
|
if (memoizedContext(this.viewContext, child, previousContext, context)) {
|
|
@@ -131,6 +151,28 @@ export class ListRender {
|
|
|
131
151
|
this.contexts = newContexts;
|
|
132
152
|
}
|
|
133
153
|
}
|
|
154
|
+
afterViewInit() {
|
|
155
|
+
this.addedViews.forEach(view => {
|
|
156
|
+
executeAfterViewInit(view);
|
|
157
|
+
});
|
|
158
|
+
this.addedViews = [];
|
|
159
|
+
}
|
|
160
|
+
destroy() {
|
|
161
|
+
this.children.forEach((element, index) => {
|
|
162
|
+
if (this.views[index]) {
|
|
163
|
+
this.views[index].destroy();
|
|
164
|
+
}
|
|
165
|
+
if (this.blockCards[index]) {
|
|
166
|
+
this.blockCards[index].destroy();
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
this.views = [];
|
|
170
|
+
this.blockCards = [];
|
|
171
|
+
this.contexts = [];
|
|
172
|
+
this.viewTypes = [];
|
|
173
|
+
this.initialized = false;
|
|
174
|
+
this.differ = null;
|
|
175
|
+
}
|
|
134
176
|
}
|
|
135
177
|
export function getContext(index, item, parentPath, childrenContext, viewContext) {
|
|
136
178
|
if (Element.isElement(item)) {
|
|
@@ -140,7 +182,6 @@ export function getContext(index, item, parentPath, childrenContext, viewContext
|
|
|
140
182
|
const isVoid = viewContext.editor.isVoid(item);
|
|
141
183
|
const elementContext = {
|
|
142
184
|
element: item,
|
|
143
|
-
path: parentPath.concat(index),
|
|
144
185
|
...computedContext,
|
|
145
186
|
attributes: {
|
|
146
187
|
'data-slate-node': 'element',
|
|
@@ -154,7 +195,7 @@ export function getContext(index, item, parentPath, childrenContext, viewContext
|
|
|
154
195
|
}
|
|
155
196
|
if (isVoid) {
|
|
156
197
|
elementContext.attributes['data-slate-void'] = true;
|
|
157
|
-
elementContext.
|
|
198
|
+
elementContext.contentEditable = false;
|
|
158
199
|
}
|
|
159
200
|
return elementContext;
|
|
160
201
|
}
|
|
@@ -191,7 +232,7 @@ export function getCommonContext(index, item, parentPath, viewContext, childrenC
|
|
|
191
232
|
}
|
|
192
233
|
}
|
|
193
234
|
catch (error) {
|
|
194
|
-
|
|
235
|
+
viewContext.editor.onError({
|
|
195
236
|
code: SlateErrorCode.GetStartPointError,
|
|
196
237
|
nativeError: error
|
|
197
238
|
});
|
|
@@ -215,6 +256,7 @@ export function createBlockCard(item, view, viewContainerRef, viewContext) {
|
|
|
215
256
|
injector: viewContainerRef.injector
|
|
216
257
|
});
|
|
217
258
|
blockCardComponentRef.instance.initializeCenter(rootNodes);
|
|
259
|
+
blockCardComponentRef.changeDetectorRef.detectChanges();
|
|
218
260
|
return blockCardComponentRef;
|
|
219
261
|
}
|
|
220
262
|
else {
|
|
@@ -247,4 +289,4 @@ export function memoizedTextContext(prev, next) {
|
|
|
247
289
|
next.text === prev.text &&
|
|
248
290
|
isDecoratorRangeListEqual(next.decorations, prev.decorations));
|
|
249
291
|
}
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvbGlzdC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMzRSxPQUFPLEVBQWlELGVBQWUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBYyxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFM0gsTUFBTSxPQUFPLFVBQVU7SUFTbkIsWUFDWSxXQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsZ0JBQW1DO1FBRm5DLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFWdkMsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsZUFBVSxHQUE0QyxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUErQyxFQUFFLENBQUM7UUFDMUQsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUU1QixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQU14QixDQUFDO0lBRUcsVUFBVSxDQUFDLFFBQXNCLEVBQUUsTUFBZ0IsRUFBRSxVQUFn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Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0QsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDaEksQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUM5RSxPQUFPLENBQ0gsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTTtRQUMzQixJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7UUFDdkIseUJBQXlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ2hFLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jZXN0b3IsIERlc2NlbmRhbnQsIFJhbmdlLCBFZGl0b3IsIEVsZW1lbnQsIFBhdGggfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgSXRlcmFibGVEaWZmZXIsIEl0ZXJhYmxlRGlmZmVycywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcy92aWV3JztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW5Db250ZXh0LCBTbGF0ZUVsZW1lbnRDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBTbGF0ZUVycm9yQ29kZSB9IGZyb20gJy4uLy4uL3R5cGVzL2Vycm9yJztcbmltcG9ydCB7IE5PREVfVE9fSU5ERVgsIE5PREVfVE9fUEFSRU5UIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IGlzRGVjb3JhdG9yUmFuZ2VMaXN0RXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy9yYW5nZS1saXN0JztcbmltcG9ydCB7IFNsYXRlQmxvY2tDYXJkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50LCBnZXRSb290Tm9kZXMsIG1vdW50LCBtb3VudE9uSXRlbUNoYW5nZSwgcmVuZGVyVmlldywgdXBkYXRlQ29udGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFJlbmRlciB7XG4gICAgcHJpdmF0ZSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuICAgIHByaXZhdGUgdmlld3M6IChFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KVtdID0gW107XG4gICAgcHJpdmF0ZSBibG9ja0NhcmRzOiAoQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGwpW10gPSBbXTtcbiAgICBwcml2YXRlIGNvbnRleHRzOiAoU2xhdGVUZXh0Q29udGV4dCB8IFNsYXRlRWxlbWVudENvbnRleHQpW10gPSBbXTtcbiAgICBwcml2YXRlIHZpZXdUeXBlczogVmlld1R5cGVbXSA9IFtdO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+O1xuICAgIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBnZXRPdXRsZXRFbGVtZW50OiAoKSA9PiBIVE1MRWxlbWVudFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGNoaWxkcmVuOiBEZXNjZW5kYW50W10sIHBhcmVudDogQW5jZXN0b3IsIHBhcmVudFBhdGg6IFBhdGgsIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoZGVzY2VuZGFudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KGRlc2NlbmRhbnQsIGluZGV4KTtcbiAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChkZXNjZW5kYW50LCBwYXJlbnQpO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldENvbnRleHQoaW5kZXgsIGRlc2NlbmRhbnQsIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3VHlwZSA9IGdldFZpZXdUeXBlKGRlc2NlbmRhbnQsIHBhcmVudCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQodmlld1R5cGUsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NhcmQgPSBjcmVhdGVCbG9ja0NhcmQoZGVzY2VuZGFudCwgdmlldywgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMudmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMudmlld1R5cGVzLnB1c2godmlld1R5cGUpO1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRzLnB1c2goYmxvY2tDYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1vdW50KHRoaXMudmlld3MsIHRoaXMuYmxvY2tDYXJkcywgdGhpcy5nZXRPdXRsZXRFbGVtZW50KCkpO1xuICAgICAgICBjb25zdCBuZXdEaWZmZXJzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChJdGVyYWJsZURpZmZlcnMpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG5ld0RpZmZlcnMuZmluZChjaGlsZHJlbikuY3JlYXRlKHRyYWNrQnkodGhpcy52aWV3Q29udGV4dCkpO1xuICAgICAgICB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKGNoaWxkcmVuOiBEZXNjZW5kYW50W10sIHBhcmVudDogQW5jZXN0b3IsIHBhcmVudFBhdGg6IFBhdGgsIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemUoY2hpbGRyZW4sIHBhcmVudCwgcGFyZW50UGF0aCwgY2hpbGRyZW5Db250ZXh0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdXRsZXRFbGVtZW50ID0gdGhpcy5nZXRPdXRsZXRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGRpZmZSZXN1bHQgPSB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKGRpZmZSZXN1bHQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRleHRzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3VHlwZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZpZXdzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdCbG9ja0NhcmRzOiAoQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGwpW10gPSBbXTtcbiAgICAgICAgICAgIGRpZmZSZXN1bHQuZm9yRWFjaEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgICAgICAgICAgICBOT0RFX1RPX0lOREVYLnNldChyZWNvcmQuaXRlbSwgcmVjb3JkLmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19QQVJFTlQuc2V0KHJlY29yZC5pdGVtLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChyZWNvcmQuY3VycmVudEluZGV4LCByZWNvcmQuaXRlbSwgcGFyZW50UGF0aCwgY2hpbGRyZW5Db250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWV3VHlwZSA9IGdldFZpZXdUeXBlKHJlY29yZC5pdGVtLCBwYXJlbnQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgIG5ld1ZpZXdUeXBlcy5wdXNoKHZpZXdUeXBlKTtcbiAgICAgICAgICAgICAgICBsZXQgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2tDYXJkOiBDb21wb25lbnRSZWY8U2xhdGVCbG9ja0NhcmQ+IHwgbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLnByZXZpb3VzSW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgICAgICAgICBibG9ja0NhcmQgPSBjcmVhdGVCbG9ja0NhcmQocmVjb3JkLml0ZW0sIHZpZXcsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHMucHVzaChibG9ja0NhcmQpO1xuICAgICAgICAgICAgICAgICAgICBtb3VudE9uSXRlbUNoYW5nZShyZWNvcmQuY3VycmVudEluZGV4LCByZWNvcmQuaXRlbSwgbmV3Vmlld3MsIG5ld0Jsb2NrQ2FyZHMsIG91dGxldEVsZW1lbnQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmlldyA9IHRoaXMudmlld3NbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXdUeXBlID0gdGhpcy52aWV3VHlwZXNbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRleHQgPSB0aGlzLmNvbnRleHRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNCbG9ja0NhcmQgPSB0aGlzLmJsb2NrQ2FyZHNbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWaWV3VHlwZSAhPT0gdmlld1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IGNyZWF0ZUJsb2NrQ2FyZChyZWNvcmQuaXRlbSwgdmlldywgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBwcmV2aW91c0Jsb2NrQ2FyZClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldywgYmxvY2tDYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4ubmV3Um9vdE5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0Jsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzVmlldztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IHByZXZpb3VzQmxvY2tDYXJkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCByZWNvcmQuaXRlbSwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dChwcmV2aW91c1ZpZXcsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHMucHVzaChibG9ja0NhcmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoT3BlcmF0aW9uKChyZWNvcmQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmVkXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5jdXJyZW50SW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmlld3NbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja0NhcmQgPSB0aGlzLmJsb2NrQ2FyZHNbcmVjb3JkLnByZXZpb3VzSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICB2aWV3LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tDYXJkPy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIG1vdmVkXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ICE9PSBudWxsICYmIHJlY29yZC5jdXJyZW50SW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbW91bnRPbkl0ZW1DaGFuZ2UocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIG5ld1ZpZXdzLCBuZXdCbG9ja0NhcmRzLCBvdXRsZXRFbGVtZW50LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHNbcmVjb3JkLmN1cnJlbnRJbmRleF0/Lmluc3RhbmNlLmFwcGVuZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBuZXdWaWV3VHlwZXM7XG4gICAgICAgICAgICB0aGlzLnZpZXdzID0gbmV3Vmlld3M7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRzID0gbmV3Q29udGV4dHM7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHMgPSBuZXdCbG9ja0NhcmRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udGV4dHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBnZXRDb250ZXh0KGluZGV4LCBjaGlsZCwgcGFyZW50UGF0aCwgY2hpbGRyZW5Db250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRleHQgPSB0aGlzLmNvbnRleHRzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAobWVtb2l6ZWRDb250ZXh0KHRoaXMudmlld0NvbnRleHQsIGNoaWxkLCBwcmV2aW91c0NvbnRleHQgYXMgYW55LCBjb250ZXh0IGFzIGFueSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb250ZXh0KHRoaXMudmlld3NbaW5kZXhdLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3Q29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0cyA9IG5ld0NvbnRleHRzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGV4dChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgcGFyZW50UGF0aDogUGF0aCxcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pOiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGl0ZW0pKSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBpdGVtKTtcbiAgICAgICAgY29uc3QgaXNJbmxpbmUgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNJbmxpbmUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQoaXRlbSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0ID0ge1xuICAgICAgICAgICAgZWxlbWVudDogaXRlbSxcbiAgICAgICAgICAgIHBhdGg6IHBhcmVudFBhdGguY29uY2F0KGluZGV4KSxcbiAgICAgICAgICAgIC4uLmNvbXB1dGVkQ29udGV4dCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICAgICdkYXRhLXNsYXRlLWtleSc6IGtleS5pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlY29yYXRlOiBjaGlsZHJlbkNvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogY2hpbGRyZW5Db250ZXh0LnJlYWRvbmx5XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc0lubGluZSkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS1pbmxpbmUnXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS12b2lkJ10gPSB0cnVlO1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlcy5jb250ZW50ZWRpdGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudENvbnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRDb250ZXh0ID0gZ2V0Q29tbW9uQ29udGV4dChpbmRleCwgaXRlbSwgcGFyZW50UGF0aCwgdmlld0NvbnRleHQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlzTGVhZkJsb2NrID0gQW5ndWxhckVkaXRvci5pc0xlYWZCbG9jayh2aWV3Q29udGV4dC5lZGl0b3IsIGNoaWxkcmVuQ29udGV4dC5wYXJlbnQpO1xuICAgICAgICBjb25zdCB0ZXh0Q29udGV4dDogU2xhdGVUZXh0Q29udGV4dCA9IHtcbiAgICAgICAgICAgIGRlY29yYXRpb25zOiBjb21wdXRlZENvbnRleHQuZGVjb3JhdGlvbnMsXG4gICAgICAgICAgICBpc0xhc3Q6IGlzTGVhZkJsb2NrICYmIGluZGV4ID09PSBjaGlsZHJlbkNvbnRleHQucGFyZW50LmNoaWxkcmVuLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICBwYXJlbnQ6IGNoaWxkcmVuQ29udGV4dC5wYXJlbnQgYXMgRWxlbWVudCxcbiAgICAgICAgICAgIHRleHQ6IGl0ZW1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRleHRDb250ZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbkNvbnRleHQoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBpdGVtOiBEZXNjZW5kYW50LFxuICAgIHBhcmVudFBhdGg6IFBhdGgsXG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgY2hpbGRyZW5Db250ZXh0OiBTbGF0ZUNoaWxkcmVuQ29udGV4dFxuKTogeyBzZWxlY3Rpb246IFJhbmdlOyBkZWNvcmF0aW9uczogUmFuZ2VbXSB9IHtcbiAgICBjb25zdCBwID0gcGFyZW50UGF0aC5jb25jYXQoaW5kZXgpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRzID0gY2hpbGRyZW5Db250ZXh0LmRlY29yYXRlKFtpdGVtLCBwXSk7XG4gICAgICAgIC8vIFtsaXN0LXJlbmRlcl0gcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiByZWR1Y2UgdGhlIG51bWJlciBvZiBjYWxscyB0byB0aGUgYEVkaXRvci5yYW5nZSh2aWV3Q29udGV4dC5lZGl0b3IsIHApYCBtZXRob2RcbiAgICAgICAgaWYgKGNoaWxkcmVuQ29udGV4dC5zZWxlY3Rpb24gfHwgY2hpbGRyZW5Db250ZXh0LmRlY29yYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gRWRpdG9yLnJhbmdlKHZpZXdDb250ZXh0LmVkaXRvciwgcCk7XG4gICAgICAgICAgICBjb25zdCBzZWwgPSBjaGlsZHJlbkNvbnRleHQuc2VsZWN0aW9uICYmIFJhbmdlLmludGVyc2VjdGlvbihyYW5nZSwgY2hpbGRyZW5Db250ZXh0LnNlbGVjdGlvbik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlYyBvZiBjaGlsZHJlbkNvbnRleHQuZGVjb3JhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gUmFuZ2UuaW50ZXJzZWN0aW9uKGRlYywgcmFuZ2UpO1xuICAgICAgICAgICAgICAgIGlmIChkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRzLnB1c2goZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgc2VsZWN0aW9uOiBzZWwsIGRlY29yYXRpb25zOiBkcyB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHsgc2VsZWN0aW9uOiBudWxsLCBkZWNvcmF0aW9uczogZHMgfTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy52aWV3Q29udGV4dC5lZGl0b3Iub25FcnJvcih7XG4gICAgICAgICAgICBjb2RlOiBTbGF0ZUVycm9yQ29kZS5HZXRTdGFydFBvaW50RXJyb3IsXG4gICAgICAgICAgICBuYXRpdmVFcnJvcjogZXJyb3JcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IFtdIH07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld1R5cGUoaXRlbTogRGVzY2VuZGFudCwgcGFyZW50OiBBbmNlc3Rvciwgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuICh2aWV3Q29udGV4dC5yZW5kZXJFbGVtZW50ICYmIHZpZXdDb250ZXh0LnJlbmRlckVsZW1lbnQoaXRlbSkpIHx8IHZpZXdDb250ZXh0LmRlZmF1bHRFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQocGFyZW50IGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNWb2lkID8gdmlld0NvbnRleHQuZGVmYXVsdFZvaWRUZXh0IDogKHZpZXdDb250ZXh0LnJlbmRlclRleHQgJiYgdmlld0NvbnRleHQucmVuZGVyVGV4dChpdGVtKSkgfHwgdmlld0NvbnRleHQuZGVmYXVsdFRleHQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmxvY2tDYXJkKGl0ZW06IERlc2NlbmRhbnQsIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT4sIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0KSB7XG4gICAgY29uc3QgaXNCbG9ja0NhcmQgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNCbG9ja0NhcmQoaXRlbSk7XG4gICAgaWYgKGlzQmxvY2tDYXJkKSB7XG4gICAgICAgIGNvbnN0IHJvb3ROb2RlcyA9IGdldFJvb3ROb2Rlcyh2aWV3KTtcbiAgICAgICAgY29uc3QgYmxvY2tDYXJkQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8U2xhdGVCbG9ja0NhcmQ+KFNsYXRlQmxvY2tDYXJkLCB7XG4gICAgICAgICAgICBpbmplY3Rvcjogdmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICAgICAgYmxvY2tDYXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmluaXRpYWxpemVDZW50ZXIocm9vdE5vZGVzKTtcbiAgICAgICAgcmV0dXJuIGJsb2NrQ2FyZENvbXBvbmVudFJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0J5KHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0KSB7XG4gICAgcmV0dXJuIChpbmRleCwgbm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gdmlld0NvbnRleHQudHJhY2tCeShub2RlKSB8fCBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBub2RlKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVtb2l6ZWRDb250ZXh0KFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIGRlc2NlbmRhbnQ6IERlc2NlbmRhbnQsXG4gICAgcHJldjogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQsXG4gICAgbmV4dDogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHRcbik6IGJvb2xlYW4ge1xuICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChkZXNjZW5kYW50KSkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRFbGVtZW50Q29udGV4dCh2aWV3Q29udGV4dCwgcHJldiBhcyBTbGF0ZUVsZW1lbnRDb250ZXh0LCBuZXh0IGFzIFNsYXRlRWxlbWVudENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZFRleHRDb250ZXh0KHByZXYgYXMgU2xhdGVUZXh0Q29udGV4dCwgbmV4dCBhcyBTbGF0ZVRleHRDb250ZXh0KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZEVsZW1lbnRDb250ZXh0KHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LCBwcmV2OiBTbGF0ZUVsZW1lbnRDb250ZXh0LCBuZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgcHJldi5lbGVtZW50ID09PSBuZXh0LmVsZW1lbnQgJiZcbiAgICAgICAgKCF2aWV3Q29udGV4dC5pc1N0cmljdERlY29yYXRlIHx8IHByZXYuZGVjb3JhdGUgPT09IG5leHQuZGVjb3JhdGUpICYmXG4gICAgICAgIHByZXYucmVhZG9ubHkgPT09IG5leHQucmVhZG9ubHkgJiZcbiAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChwcmV2LmRlY29yYXRpb25zLCBuZXh0LmRlY29yYXRpb25zKSAmJlxuICAgICAgICAocHJldi5zZWxlY3Rpb24gPT09IG5leHQuc2VsZWN0aW9uIHx8ICghIXByZXYuc2VsZWN0aW9uICYmICEhbmV4dC5zZWxlY3Rpb24gJiYgUmFuZ2UuZXF1YWxzKHByZXYuc2VsZWN0aW9uLCBuZXh0LnNlbGVjdGlvbikpKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZFRleHRDb250ZXh0KHByZXY6IFNsYXRlVGV4dENvbnRleHQsIG5leHQ6IFNsYXRlVGV4dENvbnRleHQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBuZXh0LnBhcmVudCA9PT0gcHJldi5wYXJlbnQgJiZcbiAgICAgICAgbmV4dC5pc0xhc3QgPT09IHByZXYuaXNMYXN0ICYmXG4gICAgICAgIG5leHQudGV4dCA9PT0gcHJldi50ZXh0ICYmXG4gICAgICAgIGlzRGVjb3JhdG9yUmFuZ2VMaXN0RXF1YWwobmV4dC5kZWNvcmF0aW9ucywgcHJldi5kZWNvcmF0aW9ucylcbiAgICApO1xufVxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvbGlzdC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMzRSxPQUFPLEVBQWlELGVBQWUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckksTUFBTSxPQUFPLFVBQVU7SUFVbkIsWUFDWSxXQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsZUFBa0MsRUFDbEMsZ0JBQTBDO1FBSDFDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBWjlDLFVBQUssR0FBaUQsRUFBRSxDQUFDO1FBQ3pELGVBQVUsR0FBaUQsRUFBRSxDQUFDO1FBQzlELGVBQVUsR0FBNEMsRUFBRSxDQUFDO1FBQ3pELGFBQVEsR0FBK0MsRUFBRSxDQUFDO1FBQzFELGNBQVMsR0FBZSxFQUFFLENBQUM7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UyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNoSSxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQzlFLE9BQU8sQ0FDSCxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU07UUFDM0IsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSTtRQUN2Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDaEUsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRGVzY2VuZGFudCwgUmFuZ2UsIEVkaXRvciwgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL2FuZ3VsYXItZWRpdG9yJztcbmltcG9ydCB7IFNsYXRlRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXJyb3InO1xuaW1wb3J0IHsgTk9ERV9UT19JTkRFWCwgTk9ERV9UT19QQVJFTlQgfSBmcm9tICcuLi8uLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL3JhbmdlLWxpc3QnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Jsb2NrLWNhcmQvYmxvY2stY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQsIGV4ZWN1dGVBZnRlclZpZXdJbml0LCBnZXRSb290Tm9kZXMsIG1vdW50LCBtb3VudE9uSXRlbUNoYW5nZSwgdXBkYXRlQ29udGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFJlbmRlciB7XG4gICAgcHJpdmF0ZSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuICAgIHByaXZhdGUgdmlld3M6IChFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KVtdID0gW107XG4gICAgcHJpdmF0ZSBhZGRlZFZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSA9IFtdO1xuICAgIHByaXZhdGUgYmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgcHJpdmF0ZSBjb250ZXh0czogKFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUVsZW1lbnRDb250ZXh0KVtdID0gW107XG4gICAgcHJpdmF0ZSB2aWV3VHlwZXM6IFZpZXdUeXBlW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBnZXRPdXRsZXRQYXJlbnQ6ICgpID0+IEhUTUxFbGVtZW50LFxuICAgICAgICBwcml2YXRlIGdldE91dGxldEVsZW1lbnQ6ICgpID0+IEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGNoaWxkcmVuOiBEZXNjZW5kYW50W10sIHBhcmVudDogQW5jZXN0b3IsIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHBhcmVudCk7XG4gICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGRlc2NlbmRhbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBOT0RFX1RPX0lOREVYLnNldChkZXNjZW5kYW50LCBpbmRleCk7XG4gICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQoZGVzY2VuZGFudCwgcGFyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KGluZGV4LCBkZXNjZW5kYW50LCBwYXJlbnRQYXRoLCBjaGlsZHJlbkNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShkZXNjZW5kYW50LCBwYXJlbnQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKGRlc2NlbmRhbnQsIHZpZXcsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMudmlld1R5cGVzLnB1c2godmlld1R5cGUpO1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRzLnB1c2goYmxvY2tDYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1vdW50KHRoaXMudmlld3MsIHRoaXMuYmxvY2tDYXJkcywgdGhpcy5nZXRPdXRsZXRQYXJlbnQoKSwgdGhpcy5nZXRPdXRsZXRFbGVtZW50KCkpO1xuICAgICAgICBjb25zdCBuZXdEaWZmZXJzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChJdGVyYWJsZURpZmZlcnMpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG5ld0RpZmZlcnMuZmluZChjaGlsZHJlbikuY3JlYXRlKHRyYWNrQnkodGhpcy52aWV3Q29udGV4dCkpO1xuICAgICAgICB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShjaGlsZHJlbjogRGVzY2VuZGFudFtdLCBwYXJlbnQ6IEFuY2VzdG9yLCBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCB8fCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKGNoaWxkcmVuLCBwYXJlbnQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlcHRpb246IENhbiBub3QgZmluZCBkaWZmZXIgJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0bGV0UGFyZW50ID0gdGhpcy5nZXRPdXRsZXRQYXJlbnQoKTtcbiAgICAgICAgY29uc3QgZGlmZlJlc3VsdCA9IHRoaXMuZGlmZmVyLmRpZmYoY2hpbGRyZW4pO1xuICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLnZpZXdDb250ZXh0LmVkaXRvciwgcGFyZW50KTtcbiAgICAgICAgaWYgKGRpZmZSZXN1bHQpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFJvb3ROb2RlID0gZ2V0Um9vdE5vZGVzKHRoaXMudmlld3NbMF0sIHRoaXMuYmxvY2tDYXJkc1swXSlbMF07XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3Vmlld1R5cGVzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3QmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgICAgICAgICBkaWZmUmVzdWx0LmZvckVhY2hJdGVtKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19JTkRFWC5zZXQocmVjb3JkLml0ZW0sIHJlY29yZC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChyZWNvcmQuaXRlbSwgcGFyZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IGdldENvbnRleHQocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShyZWNvcmQuaXRlbSwgcGFyZW50LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBuZXdWaWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrQ2FyZDogQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKHJlY29yZC5pdGVtLCB2aWV3LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdDb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdWaWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3QmxvY2tDYXJkcy5wdXNoKGJsb2NrQ2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaWV3VHlwZSA9IHRoaXMudmlld1R5cGVzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1R5cGUgIT09IHZpZXdUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQodmlld1R5cGUsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IGNyZWF0ZUJsb2NrQ2FyZChyZWNvcmQuaXRlbSwgdmlldywgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBwcmV2aW91c0Jsb2NrQ2FyZClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldywgYmxvY2tDYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4ubmV3Um9vdE5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0Jsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzVmlldztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IHByZXZpb3VzQmxvY2tDYXJkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCByZWNvcmQuaXRlbSwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dChwcmV2aW91c1ZpZXcsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHMucHVzaChibG9ja0NhcmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoT3BlcmF0aW9uKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuY3VycmVudEluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCAhPT0gbnVsbCAmJiByZWNvcmQuY3VycmVudEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHNbcmVjb3JkLmN1cnJlbnRJbmRleF0/Lmluc3RhbmNlLmFwcGVuZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBuZXdWaWV3VHlwZXM7XG4gICAgICAgICAgICB0aGlzLnZpZXdzID0gbmV3Vmlld3M7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRzID0gbmV3Q29udGV4dHM7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHMgPSBuZXdCbG9ja0NhcmRzO1xuICAgICAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyVmlld0luaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRleHRzID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KGNoaWxkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19QQVJFTlQuc2V0KGNoaWxkLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChpbmRleCwgY2hpbGQsIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tpbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCBjaGlsZCwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBwcmV2aW91c0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dCh0aGlzLnZpZXdzW2luZGV4XSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMgPSBuZXdDb250ZXh0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmFkZGVkVmlld3MuZm9yRWFjaCh2aWV3ID0+IHtcbiAgICAgICAgICAgIGV4ZWN1dGVBZnRlclZpZXdJbml0KHZpZXcpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRlZFZpZXdzID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoZWxlbWVudDogRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlld3NbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3c1tpbmRleF0uZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tDYXJkc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHNbaW5kZXhdLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudmlld3MgPSBbXTtcbiAgICAgICAgdGhpcy5ibG9ja0NhcmRzID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dHMgPSBbXTtcbiAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGV4dChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgcGFyZW50UGF0aDogUGF0aCxcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pOiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGl0ZW0pKSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBpdGVtKTtcbiAgICAgICAgY29uc3QgaXNJbmxpbmUgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNJbmxpbmUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQoaXRlbSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0ID0ge1xuICAgICAgICAgICAgZWxlbWVudDogaXRlbSxcbiAgICAgICAgICAgIC4uLmNvbXB1dGVkQ29udGV4dCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICAgICdkYXRhLXNsYXRlLWtleSc6IGtleS5pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlY29yYXRlOiBjaGlsZHJlbkNvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogY2hpbGRyZW5Db250ZXh0LnJlYWRvbmx5XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc0lubGluZSkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS1pbmxpbmUnXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS12b2lkJ10gPSB0cnVlO1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuY29udGVudEVkaXRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRDb250ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBpc0xlYWZCbG9jayA9IEFuZ3VsYXJFZGl0b3IuaXNMZWFmQmxvY2sodmlld0NvbnRleHQuZWRpdG9yLCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dENvbnRleHQ6IFNsYXRlVGV4dENvbnRleHQgPSB7XG4gICAgICAgICAgICBkZWNvcmF0aW9uczogY29tcHV0ZWRDb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgaXNMYXN0OiBpc0xlYWZCbG9jayAmJiBpbmRleCA9PT0gY2hpbGRyZW5Db250ZXh0LnBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxLFxuICAgICAgICAgICAgcGFyZW50OiBjaGlsZHJlbkNvbnRleHQucGFyZW50IGFzIEVsZW1lbnQsXG4gICAgICAgICAgICB0ZXh0OiBpdGVtXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0ZXh0Q29udGV4dDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21tb25Db250ZXh0KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgaXRlbTogRGVzY2VuZGFudCxcbiAgICBwYXJlbnRQYXRoOiBQYXRoLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHRcbik6IHsgc2VsZWN0aW9uOiBSYW5nZTsgZGVjb3JhdGlvbnM6IFJhbmdlW10gfSB7XG4gICAgY29uc3QgcCA9IHBhcmVudFBhdGguY29uY2F0KGluZGV4KTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBkcyA9IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0ZShbaXRlbSwgcF0pO1xuICAgICAgICAvLyBbbGlzdC1yZW5kZXJdIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhlIGBFZGl0b3IucmFuZ2Uodmlld0NvbnRleHQuZWRpdG9yLCBwKWAgbWV0aG9kXG4gICAgICAgIGlmIChjaGlsZHJlbkNvbnRleHQuc2VsZWN0aW9uIHx8IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IEVkaXRvci5yYW5nZSh2aWV3Q29udGV4dC5lZGl0b3IsIHApO1xuICAgICAgICAgICAgY29uc3Qgc2VsID0gY2hpbGRyZW5Db250ZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5pbnRlcnNlY3Rpb24ocmFuZ2UsIGNoaWxkcmVuQ29udGV4dC5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWMgb2YgY2hpbGRyZW5Db250ZXh0LmRlY29yYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IFJhbmdlLmludGVyc2VjdGlvbihkZWMsIHJhbmdlKTtcbiAgICAgICAgICAgICAgICBpZiAoZCkge1xuICAgICAgICAgICAgICAgICAgICBkcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogc2VsLCBkZWNvcmF0aW9uczogZHMgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IGRzIH07XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB2aWV3Q29udGV4dC5lZGl0b3Iub25FcnJvcih7XG4gICAgICAgICAgICBjb2RlOiBTbGF0ZUVycm9yQ29kZS5HZXRTdGFydFBvaW50RXJyb3IsXG4gICAgICAgICAgICBuYXRpdmVFcnJvcjogZXJyb3JcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IFtdIH07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld1R5cGUoaXRlbTogRGVzY2VuZGFudCwgcGFyZW50OiBBbmNlc3Rvciwgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuICh2aWV3Q29udGV4dC5yZW5kZXJFbGVtZW50ICYmIHZpZXdDb250ZXh0LnJlbmRlckVsZW1lbnQoaXRlbSkpIHx8IHZpZXdDb250ZXh0LmRlZmF1bHRFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQocGFyZW50IGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNWb2lkID8gdmlld0NvbnRleHQuZGVmYXVsdFZvaWRUZXh0IDogKHZpZXdDb250ZXh0LnJlbmRlclRleHQgJiYgdmlld0NvbnRleHQucmVuZGVyVGV4dChpdGVtKSkgfHwgdmlld0NvbnRleHQuZGVmYXVsdFRleHQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmxvY2tDYXJkKFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PixcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pIHtcbiAgICBjb25zdCBpc0Jsb2NrQ2FyZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc0Jsb2NrQ2FyZChpdGVtKTtcbiAgICBpZiAoaXNCbG9ja0NhcmQpIHtcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gZ2V0Um9vdE5vZGVzKHZpZXcpO1xuICAgICAgICBjb25zdCBibG9ja0NhcmRDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxTbGF0ZUJsb2NrQ2FyZD4oU2xhdGVCbG9ja0NhcmQsIHtcbiAgICAgICAgICAgIGluamVjdG9yOiB2aWV3Q29udGFpbmVyUmVmLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgICAgICBibG9ja0NhcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuaW5pdGlhbGl6ZUNlbnRlcihyb290Tm9kZXMpO1xuICAgICAgICBibG9ja0NhcmRDb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm4gYmxvY2tDYXJkQ29tcG9uZW50UmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQnkodmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICByZXR1cm4gKGluZGV4LCBub2RlKSA9PiB7XG4gICAgICAgIHJldHVybiB2aWV3Q29udGV4dC50cmFja0J5KG5vZGUpIHx8IEFuZ3VsYXJFZGl0b3IuZmluZEtleSh2aWV3Q29udGV4dC5lZGl0b3IsIG5vZGUpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZENvbnRleHQoXG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgZGVzY2VuZGFudDogRGVzY2VuZGFudCxcbiAgICBwcmV2OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCxcbiAgICBuZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dFxuKTogYm9vbGVhbiB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGRlc2NlbmRhbnQpKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEVsZW1lbnRDb250ZXh0KHZpZXdDb250ZXh0LCBwcmV2IGFzIFNsYXRlRWxlbWVudENvbnRleHQsIG5leHQgYXMgU2xhdGVFbGVtZW50Q29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1lbW9pemVkVGV4dENvbnRleHQocHJldiBhcyBTbGF0ZVRleHRDb250ZXh0LCBuZXh0IGFzIFNsYXRlVGV4dENvbnRleHQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkRWxlbWVudENvbnRleHQodmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsIHByZXY6IFNsYXRlRWxlbWVudENvbnRleHQsIG5leHQ6IFNsYXRlRWxlbWVudENvbnRleHQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBwcmV2LmVsZW1lbnQgPT09IG5leHQuZWxlbWVudCAmJlxuICAgICAgICAoIXZpZXdDb250ZXh0LmlzU3RyaWN0RGVjb3JhdGUgfHwgcHJldi5kZWNvcmF0ZSA9PT0gbmV4dC5kZWNvcmF0ZSkgJiZcbiAgICAgICAgcHJldi5yZWFkb25seSA9PT0gbmV4dC5yZWFkb25seSAmJlxuICAgICAgICBpc0RlY29yYXRvclJhbmdlTGlzdEVxdWFsKHByZXYuZGVjb3JhdGlvbnMsIG5leHQuZGVjb3JhdGlvbnMpICYmXG4gICAgICAgIChwcmV2LnNlbGVjdGlvbiA9PT0gbmV4dC5zZWxlY3Rpb24gfHwgKCEhcHJldi5zZWxlY3Rpb24gJiYgISFuZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5lcXVhbHMocHJldi5zZWxlY3Rpb24sIG5leHQuc2VsZWN0aW9uKSkpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkVGV4dENvbnRleHQocHJldjogU2xhdGVUZXh0Q29udGV4dCwgbmV4dDogU2xhdGVUZXh0Q29udGV4dCkge1xuICAgIHJldHVybiAoXG4gICAgICAgIG5leHQucGFyZW50ID09PSBwcmV2LnBhcmVudCAmJlxuICAgICAgICBuZXh0LmlzTGFzdCA9PT0gcHJldi5pc0xhc3QgJiZcbiAgICAgICAgbmV4dC50ZXh0ID09PSBwcmV2LnRleHQgJiZcbiAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChuZXh0LmRlY29yYXRpb25zLCBwcmV2LmRlY29yYXRpb25zKVxuICAgICk7XG59XG4iXX0=
|
|
@@ -20,12 +20,9 @@ export function createEmbeddedViewOrComponent(viewType, context, viewContext, vi
|
|
|
20
20
|
return componentRef;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
export function
|
|
24
|
-
if (view instanceof ComponentRef) {
|
|
25
|
-
view.
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
view.detectChanges();
|
|
23
|
+
export function executeAfterViewInit(view) {
|
|
24
|
+
if (view instanceof ComponentRef && view.instance.afterViewInit) {
|
|
25
|
+
view.instance.afterViewInit();
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
export function updateContext(view, newContext, viewContext) {
|
|
@@ -41,14 +38,20 @@ export function updateContext(view, newContext, viewContext) {
|
|
|
41
38
|
view.detectChanges();
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
|
-
export function mount(views, blockCards, outletElement) {
|
|
41
|
+
export function mount(views, blockCards, outletParent, outletElement) {
|
|
45
42
|
if (views.length > 0) {
|
|
46
|
-
const
|
|
43
|
+
const fragment = document.createDocumentFragment();
|
|
47
44
|
views.forEach((view, index) => {
|
|
48
45
|
const blockCard = blockCards ? blockCards[index] : undefined;
|
|
49
|
-
|
|
46
|
+
fragment.append(...getRootNodes(view, blockCard));
|
|
50
47
|
});
|
|
51
|
-
outletElement
|
|
48
|
+
if (outletElement) {
|
|
49
|
+
outletElement.parentElement.insertBefore(fragment, outletElement);
|
|
50
|
+
outletElement.remove();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
outletParent.prepend(fragment);
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
export function getRootNodes(ref, blockCard) {
|
|
@@ -67,7 +70,8 @@ export function getRootNodes(ref, blockCard) {
|
|
|
67
70
|
const result = [];
|
|
68
71
|
ref.rootNodes.forEach(rootNode => {
|
|
69
72
|
const isHTMLElement = rootNode instanceof HTMLElement;
|
|
70
|
-
|
|
73
|
+
const isSlateNodeOfLeaf = isHTMLElement && (rootNode.hasAttribute('data-slate-node') || rootNode.hasAttribute('data-slate-leaf'));
|
|
74
|
+
if (isSlateNodeOfLeaf && result.every(item => !item.contains(rootNode))) {
|
|
71
75
|
result.push(rootNode);
|
|
72
76
|
}
|
|
73
77
|
if (!isHTMLElement) {
|
|
@@ -77,7 +81,7 @@ export function getRootNodes(ref, blockCard) {
|
|
|
77
81
|
return result;
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
|
-
export function mountOnItemChange(index, item, views, blockCards,
|
|
84
|
+
export function mountOnItemChange(index, item, views, blockCards, outletParent, firstRootNode, viewContext) {
|
|
81
85
|
const view = views[index];
|
|
82
86
|
let rootNodes = getRootNodes(view);
|
|
83
87
|
if (blockCards) {
|
|
@@ -88,7 +92,14 @@ export function mountOnItemChange(index, item, views, blockCards, outletElement,
|
|
|
88
92
|
}
|
|
89
93
|
}
|
|
90
94
|
if (index === 0) {
|
|
91
|
-
|
|
95
|
+
if (firstRootNode) {
|
|
96
|
+
rootNodes.forEach(rootNode => {
|
|
97
|
+
firstRootNode.insertAdjacentElement('beforebegin', rootNode);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
outletParent.prepend(...rootNodes);
|
|
102
|
+
}
|
|
92
103
|
}
|
|
93
104
|
else {
|
|
94
105
|
const previousView = views[index - 1];
|
|
@@ -101,4 +112,4 @@ export function mountOnItemChange(index, item, views, blockCards, outletElement,
|
|
|
101
112
|
});
|
|
102
113
|
}
|
|
103
114
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRSxNQUFNLFVBQVUsNkJBQTZCLENBQ3pDLFFBQWtCLEVBQ2xCLE9BQVksRUFDWixXQUE2QixFQUM3QixnQkFBa0M7SUFFbEMsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDekIsTUFBTSxtQkFBbUIsR0FBRztZQUN4QixPQUFPO1lBQ1AsV0FBVztTQUNkLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBTSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNoRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxlQUFlLENBQUM7S0FDMUI7SUFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzVELFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1NBQ3RDLENBQXNCLENBQUM7UUFDeEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0MsT0FBTyxZQUFZLENBQUM7S0FDdkI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUE4QztJQUNyRSxJQUFJLElBQUksWUFBWSxZQUFZLEVBQUU7UUFDOUIsSUFBSSxDQUFD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QVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksV0FBVyxFQUFFO1lBQ2IsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbEQ7S0FDSjtJQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtRQUNiLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztLQUN2QztTQUFNO1FBQ0gsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6QixnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0tBQ047QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY2VuZGFudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgaXNDb21wb25lbnRUeXBlLCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmlldyc7XG5pbXBvcnQgeyBTbGF0ZUVsZW1lbnRDb250ZXh0LCBTbGF0ZUxlYWZDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBTbGF0ZUJsb2NrQ2FyZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudChcbiAgICB2aWV3VHlwZTogVmlld1R5cGUsXG4gICAgY29udGV4dDogYW55LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbikge1xuICAgIGlmIChpc1RlbXBsYXRlUmVmKHZpZXdUeXBlKSkge1xuICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdDb250ZXh0ID0ge1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHZpZXdDb250ZXh0XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVtYmVkZGVkVmlld1JlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3PGFueT4odmlld1R5cGUsIGVtYmVkZGVkVmlld0NvbnRleHQpO1xuICAgICAgICBlbWJlZGRlZFZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm4gZW1iZWRkZWRWaWV3UmVmO1xuICAgIH1cbiAgICBpZiAoaXNDb21wb25lbnRUeXBlKHZpZXdUeXBlKSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh2aWV3VHlwZSwge1xuICAgICAgICAgICAgaW5qZWN0b3I6IHZpZXdDb250YWluZXJSZWYuaW5qZWN0b3JcbiAgICAgICAgfSkgYXMgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52aWV3Q29udGV4dCA9IHZpZXdDb250ZXh0O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVmlldyh2aWV3OiBFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgICAgdmlldy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmlldy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ29udGV4dChcbiAgICB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+LFxuICAgIG5ld0NvbnRleHQ6IFNsYXRlRWxlbWVudENvbnRleHQgfCBTbGF0ZVRleHRDb250ZXh0IHwgU2xhdGVMZWFmQ29udGV4dCxcbiAgICB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dFxuKSB7XG4gICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgICAgdmlldy5pbnN0YW5jZS5jb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdDb250ZXh0ID0ge1xuICAgICAgICAgICAgY29udGV4dDogbmV3Q29udGV4dCxcbiAgICAgICAgICAgIHZpZXdDb250ZXh0XG4gICAgICAgIH07XG4gICAgICAgIHZpZXcuY29udGV4dCA9IGVtYmVkZGVkVmlld0NvbnRleHQ7XG4gICAgICAgIHZpZXcuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdW50KFxuICAgIHZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSxcbiAgICBibG9ja0NhcmRzOiAoQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGwpW10gfCBudWxsLFxuICAgIG91dGxldEVsZW1lbnQ6IEhUTUxFbGVtZW50XG4pIHtcbiAgICBpZiAodmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgdmlld3MuZm9yRWFjaCgodmlldywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrQ2FyZCA9IGJsb2NrQ2FyZHMgPyBibG9ja0NhcmRzW2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmdldFJvb3ROb2Rlcyh2aWV3LCBibG9ja0NhcmQpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG91dGxldEVsZW1lbnQucHJlcGVuZCguLi5yZXN1bHQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3ROb2RlcyhyZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT4sIGJsb2NrQ2FyZD86IENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4pOiBIVE1MRWxlbWVudFtdIHtcbiAgICBpZiAoYmxvY2tDYXJkKSB7XG4gICAgICAgIHJldHVybiBbYmxvY2tDYXJkLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnRdO1xuICAgIH1cbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICgocmVmLmhvc3RWaWV3IGFzIGFueSkucm9vdE5vZGVzIGFzIChIVE1MRWxlbWVudCB8IGFueSlbXSkuZm9yRWFjaChlbGUgPT4ge1xuICAgICAgICAgICAgaWYgKCEoZWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZWxlLnJlbW92ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtyZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBIVE1MRWxlbWVudFtdID0gW107XG4gICAgICAgIHJlZi5yb290Tm9kZXMuZm9yRWFjaChyb290Tm9kZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0hUTUxFbGVtZW50ID0gcm9vdE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChpc0hUTUxFbGVtZW50ICYmIHJlc3VsdC5ldmVyeShpdGVtID0+ICFpdGVtLmNvbnRhaW5zKHJvb3ROb2RlKSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyb290Tm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByb290Tm9kZS5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnRPbkl0ZW1DaGFuZ2UoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBpdGVtOiBEZXNjZW5kYW50LFxuICAgIHZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSxcbiAgICBibG9ja0NhcmRzOiAoQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGwpW10gfCBudWxsLFxuICAgIG91dGxldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pIHtcbiAgICBjb25zdCB2aWV3ID0gdmlld3NbaW5kZXhdO1xuICAgIGxldCByb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldyk7XG4gICAgaWYgKGJsb2NrQ2FyZHMpIHtcbiAgICAgICAgY29uc3QgaXNCbG9ja0NhcmQgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNCbG9ja0NhcmQoaXRlbSk7XG4gICAgICAgIGlmIChpc0Jsb2NrQ2FyZCkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gYmxvY2tDYXJkc1tpbmRleF07XG4gICAgICAgICAgICByb290Tm9kZXMgPSBbYmxvY2tDYXJkLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICBvdXRsZXRFbGVtZW50LnByZXBlbmQoLi4ucm9vdE5vZGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXcgPSB2aWV3c1tpbmRleCAtIDFdO1xuICAgICAgICBjb25zdCBibG9ja0NhcmQgPSBibG9ja0NhcmRzID8gYmxvY2tDYXJkc1tpbmRleCAtIDFdIDogbnVsbDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSb290Tm9kZXMgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBibG9ja0NhcmQpO1xuICAgICAgICBsZXQgcHJldmlvdXNSb290Tm9kZSA9IHByZXZpb3VzUm9vdE5vZGVzW3ByZXZpb3VzUm9vdE5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICByb290Tm9kZXMuZm9yRWFjaChyb290Tm9kZSA9PiB7XG4gICAgICAgICAgICBwcmV2aW91c1Jvb3ROb2RlLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCByb290Tm9kZSk7XG4gICAgICAgICAgICBwcmV2aW91c1Jvb3ROb2RlID0gcm9vdE5vZGU7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRSxNQUFNLFVBQVUsNkJBQTZCLENBQ3pDLFFBQWtCLEVBQ2xCLE9BQVksRUFDWixXQUE2QixFQUM3QixnQkFBa0M7SUFFbEMsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDekIsTUFBTSxtQkFBbUIsR0FBRztZQUN4QixPQUFPO1lBQ1AsV0FBVztTQUNkLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBTSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNoRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxlQUFlLENBQUM7S0FDMUI7SUFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzVELFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1NBQ3RDLENBQXNCLENBQUM7UUFDeEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0MsT0FBTyxZQUFZLENBQUM7S0FDdkI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQThDO0lBQy9FLElBQUksSUFBSSxZQUFZLFlBQVksSUFBSSxJQUFJLENBQUMsUUFB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QUFJLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RSxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3RCxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7S0FDTjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjZW5kYW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmlldyc7XG5pbXBvcnQgeyBpc0NvbXBvbmVudFR5cGUsIGlzVGVtcGxhdGVSZWYgfSBmcm9tICcuLi8uLi91dGlscy92aWV3JztcbmltcG9ydCB7IFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlTGVhZkNvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IFNsYXRlQmxvY2tDYXJkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KFxuICAgIHZpZXdUeXBlOiBWaWV3VHlwZSxcbiAgICBjb250ZXh0OiBhbnksXG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuKSB7XG4gICAgaWYgKGlzVGVtcGxhdGVSZWYodmlld1R5cGUpKSB7XG4gICAgICAgIGNvbnN0IGVtYmVkZGVkVmlld0NvbnRleHQgPSB7XG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgdmlld0NvbnRleHRcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZW1iZWRkZWRWaWV3UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXc8YW55Pih2aWV3VHlwZSwgZW1iZWRkZWRWaWV3Q29udGV4dCk7XG4gICAgICAgIGVtYmVkZGVkVmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHJldHVybiBlbWJlZGRlZFZpZXdSZWY7XG4gICAgfVxuICAgIGlmIChpc0NvbXBvbmVudFR5cGUodmlld1R5cGUpKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHZpZXdUeXBlLCB7XG4gICAgICAgICAgICBpbmplY3Rvcjogdmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgICAgICB9KSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZpZXdDb250ZXh0ID0gdmlld0NvbnRleHQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlQWZ0ZXJWaWV3SW5pdCh2aWV3OiBFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYgJiYgdmlldy5pbnN0YW5jZS5hZnRlclZpZXdJbml0KSB7XG4gICAgICAgIHZpZXcuaW5zdGFuY2UuYWZ0ZXJWaWV3SW5pdCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHQoXG4gICAgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PixcbiAgICBuZXdDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCB8IFNsYXRlTGVhZkNvbnRleHQsXG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHRcbikge1xuICAgIGlmICh2aWV3IGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgIHZpZXcuaW5zdGFuY2UuY29udGV4dCA9IG5ld0NvbnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZW1iZWRkZWRWaWV3Q29udGV4dCA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IG5ld0NvbnRleHQsXG4gICAgICAgICAgICB2aWV3Q29udGV4dFxuICAgICAgICB9O1xuICAgICAgICB2aWV3LmNvbnRleHQgPSBlbWJlZGRlZFZpZXdDb250ZXh0O1xuICAgICAgICB2aWV3LmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudChcbiAgICB2aWV3czogKEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT4pW10sXG4gICAgYmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdIHwgbnVsbCxcbiAgICBvdXRsZXRQYXJlbnQ6IEhUTUxFbGVtZW50LFxuICAgIG91dGxldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbFxuKSB7XG4gICAgaWYgKHZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIHZpZXdzLmZvckVhY2goKHZpZXcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NhcmQgPSBibG9ja0NhcmRzID8gYmxvY2tDYXJkc1tpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoLi4uZ2V0Um9vdE5vZGVzKHZpZXcsIGJsb2NrQ2FyZCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG91dGxldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIG91dGxldEVsZW1lbnQucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoZnJhZ21lbnQsIG91dGxldEVsZW1lbnQpO1xuICAgICAgICAgICAgb3V0bGV0RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dGxldFBhcmVudC5wcmVwZW5kKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3ROb2RlcyhyZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT4sIGJsb2NrQ2FyZD86IENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4pOiBIVE1MRWxlbWVudFtdIHtcbiAgICBpZiAoYmxvY2tDYXJkKSB7XG4gICAgICAgIHJldHVybiBbYmxvY2tDYXJkLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnRdO1xuICAgIH1cbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICgocmVmLmhvc3RWaWV3IGFzIGFueSkucm9vdE5vZGVzIGFzIChIVE1MRWxlbWVudCB8IGFueSlbXSkuZm9yRWFjaChlbGUgPT4ge1xuICAgICAgICAgICAgaWYgKCEoZWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZWxlLnJlbW92ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtyZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBIVE1MRWxlbWVudFtdID0gW107XG4gICAgICAgIHJlZi5yb290Tm9kZXMuZm9yRWFjaChyb290Tm9kZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0hUTUxFbGVtZW50ID0gcm9vdE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGlzU2xhdGVOb2RlT2ZMZWFmID1cbiAgICAgICAgICAgICAgICBpc0hUTUxFbGVtZW50ICYmIChyb290Tm9kZS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2xhdGUtbm9kZScpIHx8IHJvb3ROb2RlLmhhc0F0dHJpYnV0ZSgnZGF0YS1zbGF0ZS1sZWFmJykpO1xuICAgICAgICAgICAgaWYgKGlzU2xhdGVOb2RlT2ZMZWFmICYmIHJlc3VsdC5ldmVyeShpdGVtID0+ICFpdGVtLmNvbnRhaW5zKHJvb3ROb2RlKSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyb290Tm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByb290Tm9kZS5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnRPbkl0ZW1DaGFuZ2UoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBpdGVtOiBEZXNjZW5kYW50LFxuICAgIHZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSxcbiAgICBibG9ja0NhcmRzOiAoQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGwpW10gfCBudWxsLFxuICAgIG91dGxldFBhcmVudDogSFRNTEVsZW1lbnQsXG4gICAgZmlyc3RSb290Tm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pIHtcbiAgICBjb25zdCB2aWV3ID0gdmlld3NbaW5kZXhdO1xuICAgIGxldCByb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldyk7XG4gICAgaWYgKGJsb2NrQ2FyZHMpIHtcbiAgICAgICAgY29uc3QgaXNCbG9ja0NhcmQgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNCbG9ja0NhcmQoaXRlbSk7XG4gICAgICAgIGlmIChpc0Jsb2NrQ2FyZCkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gYmxvY2tDYXJkc1tpbmRleF07XG4gICAgICAgICAgICByb290Tm9kZXMgPSBbYmxvY2tDYXJkLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICBpZiAoZmlyc3RSb290Tm9kZSkge1xuICAgICAgICAgICAgcm9vdE5vZGVzLmZvckVhY2gocm9vdE5vZGUgPT4ge1xuICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdiZWZvcmViZWdpbicsIHJvb3ROb2RlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0bGV0UGFyZW50LnByZXBlbmQoLi4ucm9vdE5vZGVzKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmlldyA9IHZpZXdzW2luZGV4IC0gMV07XG4gICAgICAgIGNvbnN0IGJsb2NrQ2FyZCA9IGJsb2NrQ2FyZHMgPyBibG9ja0NhcmRzW2luZGV4IC0gMV0gOiBudWxsO1xuICAgICAgICBjb25zdCBwcmV2aW91c1Jvb3ROb2RlcyA9IGdldFJvb3ROb2RlcyhwcmV2aW91c1ZpZXcsIGJsb2NrQ2FyZCk7XG4gICAgICAgIGxldCBwcmV2aW91c1Jvb3ROb2RlID0gcHJldmlvdXNSb290Tm9kZXNbcHJldmlvdXNSb290Tm9kZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHJvb3ROb2Rlcy5mb3JFYWNoKHJvb3ROb2RlID0+IHtcbiAgICAgICAgICAgIHByZXZpb3VzUm9vdE5vZGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIHJvb3ROb2RlKTtcbiAgICAgICAgICAgIHByZXZpb3VzUm9vdE5vZGUgPSByb290Tm9kZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|