@progressio_resources/gravity-design-system 2.1.9 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +50 -60
- package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +69 -0
- package/esm2022/lib/components/gravity-tree-view/models/node-item.mjs +2 -0
- package/esm2022/lib/components/gravity-tree-view/models/node-selected-state.mjs +7 -0
- package/esm2022/lib/components/gravity-tree-view/models/node-state.mjs +2 -0
- package/esm2022/lib/components/gravity-tree-view/models/tree-callbacks.mjs +2 -0
- package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +26 -0
- package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +13 -0
- package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +15 -0
- package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +17 -0
- package/esm2022/lib/components/gravity-tree-view/service/tree-service.mjs +217 -0
- package/esm2022/lib/gravity-design-system.module.mjs +22 -5
- package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +1 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/progressio_resources-gravity-design-system.mjs +403 -66
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/lib/components/gravity-table/gravity-table.component.d.ts +3 -4
- package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +21 -0
- package/lib/components/gravity-tree-view/models/node-item.d.ts +9 -0
- package/lib/components/gravity-tree-view/models/node-selected-state.d.ts +5 -0
- package/lib/components/gravity-tree-view/models/node-state.d.ts +13 -0
- package/lib/components/gravity-tree-view/models/tree-callbacks.d.ts +9 -0
- package/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.d.ts +11 -0
- package/lib/components/gravity-tree-view/node/node-name/node-name.component.d.ts +7 -0
- package/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.d.ts +7 -0
- package/lib/components/gravity-tree-view/node/node.component.d.ts +7 -0
- package/lib/components/gravity-tree-view/service/tree-service.d.ts +42 -0
- package/lib/gravity-design-system.module.d.ts +14 -9
- package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +0 -1
- package/package.json +2 -3
- package/public-api.d.ts +1 -0
- package/src/lib/styles/components/_tables.scss +9 -9
- package/src/lib/styles/overwrite/pretty-checkbox/_core.scss +0 -1
- package/src/lib/styles/overwrite/pretty-checkbox/elements/switch/_general.scss +2 -2
- package/src/lib/styles/overwrite/pretty-checkbox/elements/switch/_mixin.scss +1 -1
- package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +0 -3
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
+
import { NodeSelectedState } from '../models/node-selected-state';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TreeService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.filterValue = '';
|
|
9
|
+
this.selectedItems = [];
|
|
10
|
+
this.filterChangeSubject = new BehaviorSubject(this.filterValue);
|
|
11
|
+
this.selectedItemsSubject = new BehaviorSubject(this.selectedItems);
|
|
12
|
+
this.selectedStates = [];
|
|
13
|
+
this.filterChangeSubjectSubscription = this.filterChangeSubject.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
|
|
14
|
+
this.filterTraverse(this.treeState, this.filterValue);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this.filterChangeSubjectSubscription.unsubscribe();
|
|
19
|
+
}
|
|
20
|
+
connect() {
|
|
21
|
+
return this.selectedItemsSubject.asObservable();
|
|
22
|
+
}
|
|
23
|
+
setInitialState() {
|
|
24
|
+
this.setInitialSelectedState(this.treeState);
|
|
25
|
+
}
|
|
26
|
+
setInitialSelectedState(nodeStates) {
|
|
27
|
+
for (const state of nodeStates) {
|
|
28
|
+
if (state.nodeItem.selected && (!state.children || state.children.length === 0)) {
|
|
29
|
+
this.toggleSelectedState(state, true);
|
|
30
|
+
}
|
|
31
|
+
this.setInitialSelectedState(state.children);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
clear() {
|
|
35
|
+
for (let state of this.selectedStates) {
|
|
36
|
+
state.selected = false;
|
|
37
|
+
state.selectedState = NodeSelectedState.unChecked;
|
|
38
|
+
}
|
|
39
|
+
this.selectedItems.length = 0;
|
|
40
|
+
this.selectedStates.length = 0;
|
|
41
|
+
}
|
|
42
|
+
filterTraverse(states, filter) {
|
|
43
|
+
let results = [];
|
|
44
|
+
for (let state of states) {
|
|
45
|
+
if (state.children.length > 0) {
|
|
46
|
+
state.hasFilteredChildren = false;
|
|
47
|
+
state.hasFilteredChildren = this.filterTraverse(state.children, filter);
|
|
48
|
+
if (this.applyFilter(state, filter)) {
|
|
49
|
+
state.hasFilteredChildren = true;
|
|
50
|
+
}
|
|
51
|
+
results.push(state.hasFilteredChildren);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return results.some((item) => item);
|
|
55
|
+
}
|
|
56
|
+
applyFilter(state, filter) {
|
|
57
|
+
state.filteredChildren = this.filter(state.children, filter);
|
|
58
|
+
return state.filteredChildren.length > 0;
|
|
59
|
+
}
|
|
60
|
+
filter(states, value) {
|
|
61
|
+
return states.filter((nodeState) => nodeState.hasFilteredChildren || value === '' || nodeState.nodeItem.name.toLowerCase().indexOf(value) !== -1);
|
|
62
|
+
}
|
|
63
|
+
checkboxClick(state) {
|
|
64
|
+
this.toggleSelectedState(state, false);
|
|
65
|
+
if (this.callbacks?.toggle) {
|
|
66
|
+
this.callbacks.toggle(state.nodeItem);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
toggleSelectedState(state, ignoreDisabled) {
|
|
70
|
+
if (state.disabled && !ignoreDisabled) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (state.selectedState === NodeSelectedState.unChecked) {
|
|
74
|
+
this.setChecked(state, true, ignoreDisabled);
|
|
75
|
+
}
|
|
76
|
+
else if (state.selectedState === NodeSelectedState.checked) {
|
|
77
|
+
this.setUnchecked(state, true, ignoreDisabled);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
if (this.anyActiveSelected(state) && !state.selected) {
|
|
81
|
+
this.setUnchecked(state, true, ignoreDisabled);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.setChecked(state, true, ignoreDisabled);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (state.parent) {
|
|
88
|
+
this.childStateChanged(state.parent);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
setChecked(state, propagate, ignoreDisabled) {
|
|
92
|
+
if (state.disabled && !ignoreDisabled) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
state.selectedState = NodeSelectedState.checked;
|
|
96
|
+
state.selected = true;
|
|
97
|
+
if (TreeService.hasNoChildren(state)) {
|
|
98
|
+
this.addSelected(state);
|
|
99
|
+
}
|
|
100
|
+
else if (propagate) {
|
|
101
|
+
for (const child of state.children) {
|
|
102
|
+
this.setChecked(child, propagate, ignoreDisabled);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
setUnchecked(state, propagate, ignoreDisabled) {
|
|
107
|
+
if (state.disabled && !ignoreDisabled) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
state.selectedState = NodeSelectedState.unChecked;
|
|
111
|
+
state.selected = false;
|
|
112
|
+
if (TreeService.hasNoChildren(state)) {
|
|
113
|
+
this.removeSelected(state.nodeItem.item);
|
|
114
|
+
if (this.callbacks?.unSelect) {
|
|
115
|
+
this.callbacks.unSelect(state.nodeItem);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else if (propagate) {
|
|
119
|
+
for (const child of state.children) {
|
|
120
|
+
this.setUnchecked(child, propagate, ignoreDisabled);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (!this.anyChildSelected(state)) {
|
|
124
|
+
this.removeSelected(state.nodeItem.item);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
removeSelected(item) {
|
|
128
|
+
let index = this.selectedItems.indexOf(item);
|
|
129
|
+
if (index !== -1) {
|
|
130
|
+
this.selectedItems.splice(index, 1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
static hasNoChildren(state) {
|
|
134
|
+
return !state.children || state.children.length === 0;
|
|
135
|
+
}
|
|
136
|
+
addSelected(state) {
|
|
137
|
+
this.selectedItems.push(state.nodeItem.item);
|
|
138
|
+
this.selectedStates.push(state);
|
|
139
|
+
if (this.callbacks?.select) {
|
|
140
|
+
this.callbacks.select(state.nodeItem);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
reEvaluateSelectedState(state) {
|
|
144
|
+
if (!TreeService.hasNoChildren(state)) {
|
|
145
|
+
this.childStateChanged(state);
|
|
146
|
+
for (const child of state.children) {
|
|
147
|
+
this.reEvaluateSelectedState(child);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
childStateChanged(state) {
|
|
152
|
+
if (this.anyChildSelected(state)) {
|
|
153
|
+
if (state.nodeItem.id != '0') {
|
|
154
|
+
let itemIndex = this.selectedItems.indexOf(state.nodeItem.item);
|
|
155
|
+
if (itemIndex === -1) {
|
|
156
|
+
this.selectedItems.push(state.nodeItem.item);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (this.allChildrenSelected(state)) {
|
|
160
|
+
this.setChecked(state, false);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
state.selectedState = NodeSelectedState.indeterminate;
|
|
164
|
+
state.selected = false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.setUnchecked(state, false);
|
|
169
|
+
}
|
|
170
|
+
if (state.parent) {
|
|
171
|
+
this.childStateChanged(state.parent);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
anyChildSelected(state) {
|
|
175
|
+
return state.children.find((item) => item.selectedState === NodeSelectedState.checked || item.selectedState === NodeSelectedState.indeterminate) != null;
|
|
176
|
+
}
|
|
177
|
+
static initState(parent, nodeItem) {
|
|
178
|
+
return {
|
|
179
|
+
parent: parent,
|
|
180
|
+
children: [],
|
|
181
|
+
filteredChildren: [],
|
|
182
|
+
hasFilteredChildren: false,
|
|
183
|
+
nodeItem: nodeItem,
|
|
184
|
+
expanded: nodeItem.expanded !== false,
|
|
185
|
+
disabled: nodeItem.disabled === true,
|
|
186
|
+
selectedState: NodeSelectedState.unChecked,
|
|
187
|
+
selected: false
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
allChildrenSelected(state) {
|
|
191
|
+
if (state.nodeItem.children) {
|
|
192
|
+
return state.children.every(it => it.selectedState === NodeSelectedState.checked) && state.children.length === state.nodeItem.children.length;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
return state.children.every(it => it.selectedState === NodeSelectedState.checked);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
anyActiveSelected(state) {
|
|
199
|
+
let result = state.children.filter(it => !it.disabled && it.selected).length > 0;
|
|
200
|
+
for (const child of state.children) {
|
|
201
|
+
if (!TreeService.hasNoChildren(child) && this.anyActiveSelected(child)) {
|
|
202
|
+
result = true;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
filterChanged(value) {
|
|
208
|
+
this.filterValue = value;
|
|
209
|
+
this.filterChangeSubject.next(value);
|
|
210
|
+
}
|
|
211
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
212
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService }); }
|
|
213
|
+
}
|
|
214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, decorators: [{
|
|
215
|
+
type: Injectable
|
|
216
|
+
}], ctorParameters: function () { return []; } });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9zZXJ2aWNlL3RyZWUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJaEUsTUFBTSxPQUFPLFdBQVc7SUFhdEI7UUFUTyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUd6Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUd2QyxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsVUFBdUI7UUFDckQsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU0sS0FBSztRQUNWLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFtQixFQUFFLE1BQWM7UUFDeEQsSUFBSSxPQUFPLEdBQWMsRUFBRSxDQUFDO1FBRTVCLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixLQUFLLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4RSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2lCQUNsQztnQkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBZ0IsRUFBRSxNQUFjO1FBQ2xELEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sTUFBTSxDQUFDLE1BQW1CLEVBQUUsS0FBYTtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWdCO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxjQUF1QjtRQUNuRSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDOUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssaUJBQWlCLENBQUMsT0FBTyxFQUFFO1lBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxTQUFrQixFQUFFLGNBQXdCO1FBQy9FLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUNoRCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjthQUFNLElBQUksU0FBUyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCLEVBQUUsU0FBa0IsRUFBRSxjQUF3QjtRQUNqRixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDbEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDekM7U0FDRjthQUFNLElBQUksU0FBUyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBUztRQUM5QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFnQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFnQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQWdCO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU5QixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWdCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO2dCQUM1QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVoRSxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUM7YUFDRjtZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxLQUFLLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDeEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUN2QyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN0SyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFpQixFQUFFLFFBQXVCO1FBQ2hFLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxLQUFLLEtBQUs7WUFDckMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUNwQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsU0FBUztZQUMxQyxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWdCO1FBQzFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEtBQUssaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQy9JO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFnQjtRQUN4QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVqRixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0RSxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBdlBVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05vZGVJdGVtfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1pdGVtJztcbmltcG9ydCB7Tm9kZVN0YXRlfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1zdGF0ZSc7XG5pbXBvcnQge05vZGVTZWxlY3RlZFN0YXRlfSBmcm9tICcuLi9tb2RlbHMvbm9kZS1zZWxlY3RlZC1zdGF0ZSc7XG5pbXBvcnQge1RyZWVDYWxsYmFja3N9IGZyb20gJy4uL21vZGVscy90cmVlLWNhbGxiYWNrcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjYWxsYmFja3M6IFRyZWVDYWxsYmFja3M7XG4gIHB1YmxpYyBmaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBub2RlSXRlbXM6IE5vZGVJdGVtPGFueT5bXTtcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0cmVlU3RhdGU6IE5vZGVTdGF0ZVtdO1xuXG4gIHByaXZhdGUgZmlsdGVyQ2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5maWx0ZXJWYWx1ZSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRJdGVtc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIHByaXZhdGUgc2VsZWN0ZWRTdGF0ZXM6IE5vZGVTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0U3Vic2NyaXB0aW9uID0gdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDMwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlclRyYXZlcnNlKHRoaXMudHJlZVN0YXRlLCB0aGlzLmZpbHRlclZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEluaXRpYWxTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxTZWxlY3RlZFN0YXRlKHRoaXMudHJlZVN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbFNlbGVjdGVkU3RhdGUobm9kZVN0YXRlczogTm9kZVN0YXRlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIG5vZGVTdGF0ZXMpIHtcbiAgICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5zZWxlY3RlZCAmJiAoIXN0YXRlLmNoaWxkcmVuIHx8IHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRJbml0aWFsU2VsZWN0ZWRTdGF0ZShzdGF0ZS5jaGlsZHJlbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGZvciAobGV0IHN0YXRlIG9mIHRoaXMuc2VsZWN0ZWRTdGF0ZXMpIHtcbiAgICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUudW5DaGVja2VkO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGF0ZXMubGVuZ3RoID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyVHJhdmVyc2Uoc3RhdGVzOiBOb2RlU3RhdGVbXSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0czogYm9vbGVhbltdID0gW107XG5cbiAgICBmb3IgKGxldCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICAgIGlmIChzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0YXRlLmhhc0ZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyVHJhdmVyc2Uoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwbHlGaWx0ZXIoc3RhdGUsIGZpbHRlcikpIHtcbiAgICAgICAgICBzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdHMucHVzaChzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cy5zb21lKChpdGVtOiBib29sZWFuKSA9PiBpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIoc3RhdGU6IE5vZGVTdGF0ZSwgZmlsdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBzdGF0ZS5maWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXIoc3RhdGUuY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgcmV0dXJuIHN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyKHN0YXRlczogTm9kZVN0YXRlW10sIHZhbHVlOiBzdHJpbmcpOiBOb2RlU3RhdGVbXSB7XG4gICAgcmV0dXJuIHN0YXRlcy5maWx0ZXIoKG5vZGVTdGF0ZTogTm9kZVN0YXRlKSA9PiBub2RlU3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiB8fCB2YWx1ZSA9PT0gJycgfHwgbm9kZVN0YXRlLm5vZGVJdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrYm94Q2xpY2soc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU2VsZWN0ZWRTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzPy50b2dnbGUpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tzLnRvZ2dsZShzdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlOiBOb2RlU3RhdGUsIGlnbm9yZURpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLmRpc2FibGVkICYmICFpZ25vcmVEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZChzdGF0ZSwgdHJ1ZSwgaWdub3JlRGlzYWJsZWQpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZXRVbmNoZWNrZWQoc3RhdGUsIHRydWUsIGlnbm9yZURpc2FibGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuYW55QWN0aXZlU2VsZWN0ZWQoc3RhdGUpICYmICFzdGF0ZS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNldFVuY2hlY2tlZChzdGF0ZSwgdHJ1ZSwgaWdub3JlRGlzYWJsZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKHN0YXRlLCB0cnVlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnBhcmVudCkge1xuICAgICAgdGhpcy5jaGlsZFN0YXRlQ2hhbmdlZChzdGF0ZS5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hlY2tlZChzdGF0ZTogTm9kZVN0YXRlLCBwcm9wYWdhdGU6IGJvb2xlYW4sIGlnbm9yZURpc2FibGVkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGF0ZS5kaXNhYmxlZCAmJiAhaWdub3JlRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZDtcbiAgICBzdGF0ZS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICBpZiAoVHJlZVNlcnZpY2UuaGFzTm9DaGlsZHJlbihzdGF0ZSkpIHtcbiAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoc3RhdGUpO1xuICAgIH0gZWxzZSBpZiAocHJvcGFnYXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChjaGlsZCwgcHJvcGFnYXRlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRVbmNoZWNrZWQoc3RhdGU6IE5vZGVTdGF0ZSwgcHJvcGFnYXRlOiBib29sZWFuLCBpZ25vcmVEaXNhYmxlZD86IGJvb2xlYW4pIHtcbiAgICBpZiAoc3RhdGUuZGlzYWJsZWQgJiYgIWlnbm9yZURpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLnVuQ2hlY2tlZDtcbiAgICBzdGF0ZS5zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgaWYgKFRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oc3RhdGUpKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuXG4gICAgICBpZiAodGhpcy5jYWxsYmFja3M/LnVuU2VsZWN0KSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tzLnVuU2VsZWN0KHN0YXRlLm5vZGVJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BhZ2F0ZSkge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGF0ZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnNldFVuY2hlY2tlZChjaGlsZCwgcHJvcGFnYXRlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFueUNoaWxkU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWQoaXRlbTogYW55KTogdm9pZCB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaGFzTm9DaGlsZHJlbihzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFzdGF0ZS5jaGlsZHJlbiB8fCBzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlbGVjdGVkKHN0YXRlOiBOb2RlU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChzdGF0ZS5ub2RlSXRlbS5pdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkU3RhdGVzLnB1c2goc3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzPy5zZWxlY3QpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tzLnNlbGVjdChzdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlRXZhbHVhdGVTZWxlY3RlZFN0YXRlKHN0YXRlOiBOb2RlU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoIVRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oc3RhdGUpKSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlKTtcblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGF0ZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnJlRXZhbHVhdGVTZWxlY3RlZFN0YXRlKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFueUNoaWxkU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICBpZiAoc3RhdGUubm9kZUl0ZW0uaWQgIT0gJzAnKSB7XG4gICAgICAgIGxldCBpdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihzdGF0ZS5ub2RlSXRlbS5pdGVtKTtcblxuICAgICAgICBpZiAoaXRlbUluZGV4ID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFsbENoaWxkcmVuU2VsZWN0ZWQoc3RhdGUpKSB7XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChzdGF0ZSwgZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRTdGF0ZSA9IE5vZGVTZWxlY3RlZFN0YXRlLmluZGV0ZXJtaW5hdGU7XG4gICAgICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VW5jaGVja2VkKHN0YXRlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnBhcmVudCkge1xuICAgICAgdGhpcy5jaGlsZFN0YXRlQ2hhbmdlZChzdGF0ZS5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYW55Q2hpbGRTZWxlY3RlZChzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuLmZpbmQoKGl0ZW06IE5vZGVTdGF0ZSkgPT4gaXRlbS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkIHx8IGl0ZW0uc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuaW5kZXRlcm1pbmF0ZSkgIT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdFN0YXRlKHBhcmVudDogTm9kZVN0YXRlLCBub2RlSXRlbTogTm9kZUl0ZW08YW55Pik6IE5vZGVTdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmVudDogcGFyZW50LFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgZmlsdGVyZWRDaGlsZHJlbjogW10sXG4gICAgICBoYXNGaWx0ZXJlZENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIG5vZGVJdGVtOiBub2RlSXRlbSxcbiAgICAgIGV4cGFuZGVkOiBub2RlSXRlbS5leHBhbmRlZCAhPT0gZmFsc2UsXG4gICAgICBkaXNhYmxlZDogbm9kZUl0ZW0uZGlzYWJsZWQgPT09IHRydWUsXG4gICAgICBzZWxlY3RlZFN0YXRlOiBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQsXG4gICAgICBzZWxlY3RlZDogZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxDaGlsZHJlblNlbGVjdGVkKHN0YXRlOiBOb2RlU3RhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoc3RhdGUubm9kZUl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBzdGF0ZS5jaGlsZHJlbi5ldmVyeShpdCA9PiBpdC5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkKSAmJiBzdGF0ZS5jaGlsZHJlbi5sZW5ndGggPT09IHN0YXRlLm5vZGVJdGVtLmNoaWxkcmVuLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuLmV2ZXJ5KGl0ID0+IGl0LnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYW55QWN0aXZlU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHQgPSBzdGF0ZS5jaGlsZHJlbi5maWx0ZXIoaXQgPT4gIWl0LmRpc2FibGVkICYmIGl0LnNlbGVjdGVkKS5sZW5ndGggPiAwO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBzdGF0ZS5jaGlsZHJlbikge1xuICAgICAgaWYgKCFUcmVlU2VydmljZS5oYXNOb0NoaWxkcmVuKGNoaWxkKSAmJiB0aGlzLmFueUFjdGl2ZVNlbGVjdGVkKGNoaWxkKSkge1xuICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQ2hhbmdlZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -21,6 +21,11 @@ import { GravityNotificationInstantContainerComponent } from "./components/gravi
|
|
|
21
21
|
import { GravityAttachFileComponent } from "./components/gravity-attach-file/gravity-attach-file.component";
|
|
22
22
|
import { GravityMonthPickerComponent } from "./components/gravity-calendar/gravity-month-picker/gravity-month-picker.component";
|
|
23
23
|
import { GravityTableComponent } from "./components/gravity-table/gravity-table.component";
|
|
24
|
+
import { GravityTreeViewComponent } from "./components/gravity-tree-view/gravity-tree-view.component";
|
|
25
|
+
import { NodeComponent } from "./components/gravity-tree-view/node/node.component";
|
|
26
|
+
import { NodeToggleComponent } from "./components/gravity-tree-view/node/node-toggle/node-toggle.component";
|
|
27
|
+
import { NodeCheckboxComponent } from "./components/gravity-tree-view/node/node-checkbox/node-checkbox.component";
|
|
28
|
+
import { NodeNameComponent } from "./components/gravity-tree-view/node/node-name/node-name.component";
|
|
24
29
|
import * as i0 from "@angular/core";
|
|
25
30
|
import * as i1 from "angular-svg-icon";
|
|
26
31
|
import * as i2 from "angular-svg-icon-preloader";
|
|
@@ -40,7 +45,12 @@ export class GravityDesignSystemModule {
|
|
|
40
45
|
GravityRadioButtonComponent,
|
|
41
46
|
GravitySwitchComponent,
|
|
42
47
|
GravityTableComponent,
|
|
43
|
-
GravityTextFieldComponent
|
|
48
|
+
GravityTextFieldComponent,
|
|
49
|
+
GravityTreeViewComponent,
|
|
50
|
+
NodeComponent,
|
|
51
|
+
NodeToggleComponent,
|
|
52
|
+
NodeCheckboxComponent,
|
|
53
|
+
NodeNameComponent], imports: [i1.AngularSvgIconModule, i2.AngularSvgIconPreloaderModule, CommonModule,
|
|
44
54
|
FormsModule, i3.GravityTooltipModule, NgbDatepickerModule,
|
|
45
55
|
NgbProgressbarModule,
|
|
46
56
|
NgbToastModule,
|
|
@@ -58,7 +68,8 @@ export class GravityDesignSystemModule {
|
|
|
58
68
|
GravitySwitchComponent,
|
|
59
69
|
GravityTableComponent,
|
|
60
70
|
GravityTextFieldComponent,
|
|
61
|
-
GravityTooltipModule
|
|
71
|
+
GravityTooltipModule,
|
|
72
|
+
GravityTreeViewComponent] }); }
|
|
62
73
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDesignSystemModule, imports: [AngularSvgIconModule.forRoot(),
|
|
63
74
|
AngularSvgIconPreloaderModule.forRoot({
|
|
64
75
|
configUrl: './assets/gravity/json/icons.json',
|
|
@@ -90,7 +101,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
90
101
|
GravityRadioButtonComponent,
|
|
91
102
|
GravitySwitchComponent,
|
|
92
103
|
GravityTableComponent,
|
|
93
|
-
GravityTextFieldComponent
|
|
104
|
+
GravityTextFieldComponent,
|
|
105
|
+
GravityTreeViewComponent,
|
|
106
|
+
NodeComponent,
|
|
107
|
+
NodeToggleComponent,
|
|
108
|
+
NodeCheckboxComponent,
|
|
109
|
+
NodeNameComponent
|
|
94
110
|
],
|
|
95
111
|
imports: [
|
|
96
112
|
AngularSvgIconModule.forRoot(),
|
|
@@ -120,8 +136,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
120
136
|
GravitySwitchComponent,
|
|
121
137
|
GravityTableComponent,
|
|
122
138
|
GravityTextFieldComponent,
|
|
123
|
-
GravityTooltipModule
|
|
139
|
+
GravityTooltipModule,
|
|
140
|
+
GravityTreeViewComponent
|
|
124
141
|
]
|
|
125
142
|
}]
|
|
126
143
|
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1kZXNpZ24tc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2dyYXZpdHktZGVzaWduLXN5c3RlbS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUNsRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDckcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxF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LEVBQUUsa0NBQWtDO3lCQUM5QyxDQUFDO3dCQUNGLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNoQyxtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQiw0Q0FBNEM7d0JBQzVDLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQ3pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0dyYXZpdHlCdXR0b25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9ncmF2aXR5LWJ1dHRvbi9ncmF2aXR5LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2dyYXZpdHktZHJvcGRvd24tbGlzdC9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQge0dyYXZpdHlUZXh0RmllbGRDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkL2dyYXZpdHktdGV4dC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7TmdTZWxlY3RNb2R1bGV9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xuaW1wb3J0IHtHcmF2aXR5VG9vbHRpcE1vZHVsZX0gZnJvbSBcIi4vdmVuZG9yL2dyYXZpdHktdG9vbHRpcFwiO1xuaW1wb3J0IHtBbmd1bGFyU3ZnSWNvblByZWxvYWRlck1vZHVsZX0gZnJvbSBcImFuZ3VsYXItc3ZnLWljb24tcHJlbG9hZGVyXCI7XG5pbXBvcnQge0FuZ3VsYXJTdmdJY29uTW9kdWxlfSBmcm9tIFwiYW5ndWxhci1zdmctaWNvblwiO1xuaW1wb3J0IHtHcmF2aXR5Q2FsZW5kYXJDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci9ncmF2aXR5LWNhbGVuZGFyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtOZ2JEYXRlcGlja2VyTW9kdWxlLCBOZ2JQcm9ncmVzc2Jhck1vZHVsZSwgTmdiVG9hc3RNb2R1bGV9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xuaW1wb3J0IHtHcmF2aXR5UmFkaW9CdXR0b25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9ncmF2aXR5LXJhZGlvLWJ1dHRvbi9ncmF2aXR5LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ3hQcmV0dHlDaGVja2JveE1vZHVsZX0gZnJvbSBcIm5neC1wcmV0dHktY2hlY2tib3hcIjtcbmltcG9ydCB7R3Jhdml0eVN3aXRjaENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2dyYXZpdHktc3dpdGNoL2dyYXZpdHktc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyYXZpdHlDaGVja2JveENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2dyYXZpdHktY2hlY2tib3gvZ3Jhdml0eS1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmF2aXR5RGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2dyYXZpdHktZGlhbG9nL2dyYXZpdHktZGlhbG9nLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5SWNvbkNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmF2aXR5LWljb24vZ3Jhdml0eS1pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5Tm90aWZpY2F0aW9uQ29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uL2dyYXZpdHktbm90aWZpY2F0aW9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgR3Jhdml0eU5vdGlmaWNhdGlvbkluc3RhbnRDb250YWluZXJDb21wb25lbnRcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmF2aXR5LW5vdGlmaWNhdGlvbi1pbnN0YW50L2dyYXZpdHktbm90aWZpY2F0aW9uLWluc3RhbnQtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5QXR0YWNoRmlsZUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmF2aXR5LWF0dGFjaC1maWxlL2dyYXZpdHktYXR0YWNoLWZpbGUuY29tcG9uZW50XCI7XG5pbXBvcnQge1xuICBHcmF2aXR5TW9udGhQaWNrZXJDb21wb25lbnRcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyL2dyYXZpdHktbW9udGgtcGlja2VyL2dyYXZpdHktbW9udGgtcGlja2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5VGFibGVDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS10YWJsZS9ncmF2aXR5LXRhYmxlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcmF2aXR5VHJlZVZpZXdDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS10cmVlLXZpZXcvZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQge05vZGVDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS10cmVlLXZpZXcvbm9kZS9ub2RlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtOb2RlVG9nZ2xlQ29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2dyYXZpdHktdHJlZS12aWV3L25vZGUvbm9kZS10b2dnbGUvbm9kZS10b2dnbGUuY29tcG9uZW50XCI7XG5pbXBvcnQge05vZGVDaGVja2JveENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9ub2RlL25vZGUtY2hlY2tib3gvbm9kZS1jaGVja2JveC5jb21wb25lbnRcIjtcbmltcG9ydCB7Tm9kZU5hbWVDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZ3Jhdml0eS10cmVlLXZpZXcvbm9kZS9ub2RlLW5hbWUvbm9kZS1uYW1lLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBHcmF2aXR5QXR0YWNoRmlsZUNvbXBvbmVudCxcbiAgICBHcmF2aXR5QnV0dG9uQ29tcG9uZW50LFxuICAgIEdyYXZpdHlDYWxlbmRhckNvbXBvbmVudCxcbiAgICBHcmF2aXR5Q2hlY2tib3hDb21wb25lbnQsXG4gICAgR3Jhdml0eURpYWxvZ0NvbXBvbmVudCxcbiAgICBHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50LFxuICAgIEdyYXZpdHlJY29uQ29tcG9uZW50LFxuICAgIEdyYXZpdHlNb250aFBpY2tlckNvbXBvbmVudCxcbiAgICBHcmF2aXR5Tm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIEdyYXZpdHlOb3RpZmljYXRpb25JbnN0YW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEdyYXZpdHlSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICBHcmF2aXR5U3dpdGNoQ29tcG9uZW50LFxuICAgIEdyYXZpdHlUYWJsZUNvbXBvbmVudCxcbiAgICBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50LFxuICAgIEdyYXZpdHlUcmVlVmlld0NvbXBvbmVudCxcblxuICAgIE5vZGVDb21wb25lbnQsXG4gICAgTm9kZVRvZ2dsZUNvbXBvbmVudCxcbiAgICBOb2RlQ2hlY2tib3hDb21wb25lbnQsXG4gICAgTm9kZU5hbWVDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLmZvclJvb3QoKSxcbiAgICBBbmd1bGFyU3ZnSWNvblByZWxvYWRlck1vZHVsZS5mb3JSb290KHtcbiAgICAgIGNvbmZpZ1VybDogJy4vYXNzZXRzL2dyYXZpdHkvanNvbi9pY29ucy5qc29uJyxcbiAgICB9KSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgR3Jhdml0eVRvb2x0aXBNb2R1bGUuZm9yUm9vdCh7fSksXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBOZ2JQcm9ncmVzc2Jhck1vZHVsZSxcbiAgICBOZ2JUb2FzdE1vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBOZ3hQcmV0dHlDaGVja2JveE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBHcmF2aXR5QXR0YWNoRmlsZUNvbXBvbmVudCxcbiAgICBHcmF2aXR5QnV0dG9uQ29tcG9uZW50LFxuICAgIEdyYXZpdHlDYWxlbmRhckNvbXBvbmVudCxcbiAgICBHcmF2aXR5Q2hlY2tib3hDb21wb25lbnQsXG4gICAgR3Jhdml0eURpYWxvZ0NvbXBvbmVudCxcbiAgICBHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50LFxuICAgIEdyYXZpdHlJY29uQ29tcG9uZW50LFxuICAgIEdyYXZpdHlOb3RpZmljYXRpb25JbnN0YW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEdyYXZpdHlSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICBHcmF2aXR5U3dpdGNoQ29tcG9uZW50LFxuICAgIEdyYXZpdHlUYWJsZUNvbXBvbmVudCxcbiAgICBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50LFxuICAgIEdyYXZpdHlUb29sdGlwTW9kdWxlLFxuICAgIEdyYXZpdHlUcmVlVmlld0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlEZXNpZ25TeXN0ZW1Nb2R1bGUge1xufVxuIl19
|
|
@@ -162,8 +162,6 @@ export class GravityTooltipDirective {
|
|
|
162
162
|
this.destroyTooltip();
|
|
163
163
|
}, this.options['hideDelayAfterClick']);
|
|
164
164
|
}
|
|
165
|
-
ngOnInit() {
|
|
166
|
-
}
|
|
167
165
|
ngOnChanges(changes) {
|
|
168
166
|
this.initOptions = this.renameProperties(this.initOptions);
|
|
169
167
|
let changedOptions = this.getProperties(changes);
|
|
@@ -477,4 +475,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
477
475
|
type: HostListener,
|
|
478
476
|
args: ['click']
|
|
479
477
|
}] } });
|
|
480
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZXZFLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLElBQXNCLE9BQU8sQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxlQUFlO0lBQ2YsSUFBMkIsZ0NBQWdDLENBQUMsS0FBcUM7UUFDL0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUEwQixXQUFXLENBQUMsS0FBcUM7UUFDekUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENB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LG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ0osYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUNILFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkEwQlAsTUFBTTtzQkFBZixNQUFNO2dCQVlQLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxTQUFTOztzQkFDdEIsWUFBWTt1QkFBQyxZQUFZO2dCQVcxQixZQUFZO3NCQUZYLFlBQVk7dUJBQUMsVUFBVTs7c0JBQ3ZCLFlBQVk7dUJBQUMsWUFBWTtnQkFRMUIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHcmF2aXR5VG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi9ncmF2aXR5LXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge2JhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnMsIGRlZmF1bHRPcHRpb25zfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi9vcHRpb25zLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRDb21wb25lbnQge1xuICBkYXRhOiBhbnk7XG4gIHNob3c6IGJvb2xlYW47XG4gIGNsb3NlOiBib29sZWFuO1xuICBldmVudHM6IGFueTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Rvb2x0aXBdJyxcbiAgZXhwb3J0QXM6ICd0b29sdGlwJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBHcmF2aXR5VG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgaGlkZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgZGVzdHJveVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNyZWF0ZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgc2hvd1RpbWVvdXRJZCE6IG51bWJlcjtcbiAgY29tcG9uZW50UmVmOiBhbnk7XG4gIGVsZW1lbnRQb3NpdGlvbjogYW55O1xuICBfaWQ6IGFueTtcbiAgX29wdGlvbnM6IGFueSA9IHt9O1xuICBfZGVmYXVsdE9wdGlvbnM6IGFueTtcbiAgX2Rlc3Ryb3lEZWxheSE6IG51bWJlcjtcbiAgY29tcG9uZW50U3Vic2NyaWJlOiBhbnk7XG4gIF9jb250ZW50VHlwZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiID0gXCJzdHJpbmdcIjtcbiAgX3Nob3dEZWxheSE6IG51bWJlcjtcbiAgX2hpZGVEZWxheSE6IG51bWJlcjtcbiAgX3pJbmRleCE6IG51bWJlcjtcbiAgX3Rvb2x0aXBDbGFzcyE6IHN0cmluZztcbiAgX2FuaW1hdGlvbkR1cmF0aW9uITogbnVtYmVyO1xuICBfbWF4V2lkdGghOiBzdHJpbmc7XG5cbiAgQElucHV0KCdvcHRpb25zJykgc2V0IG9wdGlvbnModmFsdWU6IFRvb2x0aXBPcHRpb25zKSB7XG4gICAgaWYgKHZhbHVlICYmIGRlZmF1bHRPcHRpb25zKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoJ3Rvb2x0aXAnKSB0b29sdGlwVmFsdWUhOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoJ3BsYWNlbWVudCcpIHBsYWNlbWVudCE6IHN0cmluZztcbiAgQElucHV0KCdhdXRvUGxhY2VtZW50JykgYXV0b1BsYWNlbWVudCE6IGJvb2xlYW47XG5cbiAgLy8gQ29udGVudCB0eXBlXG4gIEBJbnB1dCgnY29udGVudC10eXBlJykgc2V0IGNvbnRlbnRUeXBlQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBcInN0cmluZ1wiIHwgXCJodG1sXCIgfCBcInRlbXBsYXRlXCIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdjb250ZW50VHlwZScpIHNldCBjb250ZW50VHlwZSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb250ZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFR5cGU7XG4gIH1cblxuICBASW5wdXQoJ2hpZGUtZGVsYXktbW9iaWxlJykgaGlkZURlbGF5TW9iaWxlITogbnVtYmVyO1xuICBASW5wdXQoJ2hpZGVEZWxheVRvdWNoc2NyZWVuJykgaGlkZURlbGF5VG91Y2hzY3JlZW4hOiBudW1iZXI7XG5cbiAgLy8gei1pbmRleFxuICBASW5wdXQoJ3otaW5kZXgnKSBzZXQgekluZGV4QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3pJbmRleCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnekluZGV4Jykgc2V0IHpJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgekluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl96SW5kZXg7XG4gIH1cblxuICAvLyBBbmltYXRpb24gZHVyYXRpb25cbiAgQElucHV0KCdhbmltYXRpb24tZHVyYXRpb24nKSBzZXQgYW5pbWF0aW9uRHVyYXRpb25CYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uRHVyYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2FuaW1hdGlvbkR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRpb25EdXJhdGlvbjtcbiAgfVxuXG5cbiAgQElucHV0KCd0cmlnZ2VyJykgdHJpZ2dlciE6IHN0cmluZztcblxuICAvLyBUb29sdGlwIGNsYXNzXG4gIEBJbnB1dCgndG9vbHRpcC1jbGFzcycpIHNldCB0b29sdGlwQ2xhc3NCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fdG9vbHRpcENsYXNzID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCd0b29sdGlwQ2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b29sdGlwQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBDbGFzcztcbiAgfVxuXG4gIEBJbnB1dCgnZGlzcGxheScpIGRpc3BsYXkhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXktbW9iaWxlJykgZGlzcGxheU1vYmlsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgnZGlzcGxheVRvdWNoc2NyZWVuJykgZGlzcGxheVRvdWNoc2NyZWVuITogYm9vbGVhbjtcbiAgQElucHV0KCdzaGFkb3cnKSBzaGFkb3chOiBib29sZWFuO1xuICBASW5wdXQoJ3RoZW1lJykgdGhlbWUhOiBcImRhcmtcIiB8IFwibGlnaHRcIjtcbiAgQElucHV0KCdvZmZzZXQnKSBvZmZzZXQhOiBudW1iZXI7XG4gIEBJbnB1dCgnd2lkdGgnKSB3aWR0aCE6IHN0cmluZztcblxuICAvLyBNYXggd2lkdGhcbiAgQElucHV0KCdtYXgtd2lkdGgnKSBzZXQgbWF4V2lkdGhCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fbWF4V2lkdGggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ21heFdpZHRoJykgc2V0IG1heFdpZHRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1heFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhXaWR0aDtcbiAgfVxuXG5cbiAgQElucHV0KCdpZCcpIGlkOiBhbnk7XG5cbiAgLy8gU2hvdyBkZWxheVxuICBASW5wdXQoJ3Nob3ctZGVsYXknKSBzZXQgc2hvd0RlbGF5QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Nob3dEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2hvd0RlbGF5Jykgc2V0IHNob3dEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zaG93RGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0RlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsYXk7XG4gIH1cblxuICAvLyBIaWRlIGRlbGF5XG4gIEBJbnB1dCgnaGlkZS1kZWxheScpIHNldCBoaWRlRGVsYXlCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5faGlkZURlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdoaWRlRGVsYXknKSBzZXQgaGlkZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2hpZGVEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoaWRlRGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVEZWxheTtcbiAgfVxuXG4gIEBJbnB1dCgnaGlkZURlbGF5QWZ0ZXJDbGljaycpIGhpZGVEZWxheUFmdGVyQ2xpY2shOiBudW1iZXI7XG4gIEBJbnB1dCgncG9pbnRlckV2ZW50cycpIHBvaW50ZXJFdmVudHMhOiAnYXV0bycgfCAnbm9uZSc7XG4gIEBJbnB1dCgncG9zaXRpb24nKSBwb3NpdGlvbiE6IHsgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciB9O1xuXG4gIGdldCBpc1Rvb2x0aXBEZXN0cm95ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3LmRlc3Ryb3llZDtcbiAgfVxuXG4gIGdldCBkZXN0cm95RGVsYXkoKSB7XG4gICAgaWYgKHRoaXMuX2Rlc3Ryb3lEZWxheSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3lEZWxheTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmdldEhpZGVEZWxheSgpKSArIE51bWJlcih0aGlzLm9wdGlvbnNbJ2FuaW1hdGlvbkR1cmF0aW9uJ10pO1xuICAgIH1cbiAgfVxuXG4gIHNldCBkZXN0cm95RGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Rlc3Ryb3lEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydwb3NpdGlvbiddKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydwb3NpdGlvbiddO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50UG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGV2ZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRvb2x0aXBPcHRpb25zU2VydmljZSkgcHJpdmF0ZSBpbml0T3B0aW9uczogYW55LFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25Ib3ZlciA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5pc0Rpc3BsYXlPbkNsaWNrID09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG4gICAgdGhpcy5oaWRlQWZ0ZXJDbGlja1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9LCB0aGlzLm9wdGlvbnNbJ2hpZGVEZWxheUFmdGVyQ2xpY2snXSlcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHRoaXMuaW5pdE9wdGlvbnMgPSB0aGlzLnJlbmFtZVByb3BlcnRpZXModGhpcy5pbml0T3B0aW9ucyk7XG4gICAgbGV0IGNoYW5nZWRPcHRpb25zID0gdGhpcy5nZXRQcm9wZXJ0aWVzKGNoYW5nZXMpO1xuICAgIGNoYW5nZWRPcHRpb25zID0gdGhpcy5yZW5hbWVQcm9wZXJ0aWVzKGNoYW5nZWRPcHRpb25zKTtcblxuICAgIHRoaXMuYXBwbHlPcHRpb25zRGVmYXVsdChkZWZhdWx0T3B0aW9ucywgY2hhbmdlZE9wdGlvbnMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcCh7XG4gICAgICBmYXN0OiB0cnVlXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb21wb25lbnRTdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2hvd0RlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ3Nob3dEZWxheSddO1xuICB9XG5cbiAgZ2V0SGlkZURlbGF5KCkge1xuICAgIGNvbnN0IGhpZGVEZWxheSA9IHRoaXMub3B0aW9uc1snaGlkZURlbGF5J107XG4gICAgY29uc3QgaGlkZURlbGF5VG91Y2hzY3JlZW4gPSB0aGlzLm9wdGlvbnNbJ2hpZGVEZWxheVRvdWNoc2NyZWVuJ107XG5cbiAgICByZXR1cm4gdGhpcy5pc1RvdWNoU2NyZWVuID8gaGlkZURlbGF5VG91Y2hzY3JlZW4gOiBoaWRlRGVsYXk7XG4gIH1cblxuICBnZXRQcm9wZXJ0aWVzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBsZXQgZGlyZWN0aXZlUHJvcGVydGllczogYW55ID0ge307XG4gICAgbGV0IGN1c3RvbVByb3BlcnRpZXM6IGFueSA9IHt9O1xuICAgIGxldCBhbGxQcm9wZXJ0aWVzOiBhbnk7XG5cbiAgICBmb3IgKHZhciBwcm9wIGluIGNoYW5nZXMpIHtcbiAgICAgIGlmIChwcm9wICE9PSAnb3B0aW9ucycgJiYgcHJvcCAhPT0gJ3Rvb2x0aXBWYWx1ZScpIHtcbiAgICAgICAgZGlyZWN0aXZlUHJvcGVydGllc1twcm9wXSA9IGNoYW5nZXNbcHJvcF0uY3VycmVudFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3AgPT09ICdvcHRpb25zJykge1xuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWxsUHJvcGVydGllcyA9IE9iamVjdC5hc3NpZ24oe30sIGN1c3RvbVByb3BlcnRpZXMsIGRpcmVjdGl2ZVByb3BlcnRpZXMpO1xuICAgIHJldHVybiBhbGxQcm9wZXJ0aWVzO1xuICB9XG5cbiAgcmVuYW1lUHJvcGVydGllcyhvcHRpb25zOiBhbnkpIHtcbiAgICBmb3IgKHZhciBwcm9wIGluIG9wdGlvbnMpIHtcbiAgICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zW3Byb3BdKSB7XG4gICAgICAgIG9wdGlvbnNbYmFja3dhcmRDb21wYXRpYmlsaXR5T3B0aW9uc1twcm9wXV0gPSBvcHRpb25zW3Byb3BdO1xuICAgICAgICBkZWxldGUgb3B0aW9uc1twcm9wXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGdldEVsZW1lbnRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICB0aGlzLmdldEVsZW1lbnRQb3NpdGlvbigpO1xuXG4gICAgdGhpcy5jcmVhdGVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFwcGVuZENvbXBvbmVudFRvQm9keShHcmF2aXR5VG9vbHRpcENvbXBvbmVudCk7XG4gICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG5cbiAgICB0aGlzLnNob3dUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRWxlbSgpO1xuICAgIH0sIHRoaXMuZ2V0U2hvd0RlbGF5KCkpO1xuICB9XG5cbiAgZGVzdHJveVRvb2x0aXAob3B0aW9ucyA9IHtcbiAgICBmYXN0OiBmYWxzZVxuICB9KTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG5cbiAgICBpZiAodGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQgPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgICAgfSwgb3B0aW9ucy5mYXN0ID8gMCA6IHRoaXMuZ2V0SGlkZURlbGF5KCkpO1xuXG4gICAgICB0aGlzLmRlc3Ryb3lUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYgfHwgdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgICAgICB0eXBlOiAnaGlkZGVuJyxcbiAgICAgICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICAgICAgfSk7XG4gICAgICB9LCBvcHRpb25zLmZhc3QgPyAwIDogdGhpcy5kZXN0cm95RGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dUb29sdGlwRWxlbSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5zaG93ID0gdHJ1ZTtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgIHR5cGU6ICdzaG93JyxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgaGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICB0eXBlOiAnaGlkZScsXG4gICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGVuZENvbXBvbmVudFRvQm9keShjb21wb25lbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXG4gICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZGF0YSA9IHtcbiAgICAgIHZhbHVlOiB0aGlzLnRvb2x0aXBWYWx1ZSxcbiAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgZWxlbWVudFBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvbixcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9uc1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVFdmVudHMoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJUaW1lb3V0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jcmVhdGVUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNyZWF0ZVRpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1RpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVzdHJveVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVzdHJveVRpbWVvdXRJZCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzRGlzcGxheU9uSG92ZXIoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheSddID09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheVRvdWNoc2NyZWVuJ10gPT0gZmFsc2UgJiYgdGhpcy5pc1RvdWNoU2NyZWVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1sndHJpZ2dlciddID09PSAnaG92ZXInO1xuICB9XG5cbiAgZ2V0IGlzRGlzcGxheU9uQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheSddID09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheVRvdWNoc2NyZWVuJ10gPT0gZmFsc2UgJiYgdGhpcy5pc1RvdWNoU2NyZWVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1sndHJpZ2dlciddID09ICdjbGljayc7XG5cblxuICB9XG5cbiAgZ2V0IGlzVG91Y2hTY3JlZW4oKSB7XG4gICAgdmFyIHByZWZpeGVzID0gJyAtd2Via2l0LSAtbW96LSAtby0gLW1zLSAnLnNwbGl0KCcgJyk7XG4gICAgdmFyIG1xID0gZnVuY3Rpb24gKHF1ZXJ5OiBhbnkpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBpZiAoKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGluY2x1ZGUgdGhlICdoZWFydHonIGFzIGEgd2F5IHRvIGhhdmUgYSBub24gbWF0Y2hpbmcgTVEgdG8gaGVscCB0ZXJtaW5hdGUgdGhlIGpvaW5cbiAgICAvLyBodHRwczovL2dpdC5pby92em5GSFxuICAgIHZhciBxdWVyeSA9IFsnKCcsIHByZWZpeGVzLmpvaW4oJ3RvdWNoLWVuYWJsZWQpLCgnKSwgJ2hlYXJ0eicsICcpJ10uam9pbignJyk7XG4gICAgcmV0dXJuIG1xKHF1ZXJ5KTtcbiAgfVxuXG4gIGFwcGx5T3B0aW9uc0RlZmF1bHQoZGVmYXVsdE9wdGlvbnM6IGFueSwgb3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIHRoaXMuaW5pdE9wdGlvbnMgfHwge30sIHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICBoYW5kbGVFdmVudHMoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnc2hvd24nKSB7XG4gICAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgICAgdHlwZTogJ3Nob3duJyxcbiAgICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdygpIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGUoKSB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICB9XG59XG4iXX0=
|
|
478
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZXZFLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLElBQXNCLE9BQU8sQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxlQUFlO0lBQ2YsSUFBMkIsZ0NBQWdDLENBQUMsS0FBcUM7UUFDL0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUEwQixXQUFXLENBQUMsS0FBcUM7UUFDekUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENB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dUJBQUMscUJBQXFCO2dCQUNKLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDSCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBMEJQLE1BQU07c0JBQWYsTUFBTTtnQkFZUCxZQUFZO3NCQUZYLFlBQVk7dUJBQUMsU0FBUzs7c0JBQ3RCLFlBQVk7dUJBQUMsWUFBWTtnQkFXMUIsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFVBQVU7O3NCQUN2QixZQUFZO3VCQUFDLFlBQVk7Z0JBUTFCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3Jhdml0eVRvb2x0aXBDb21wb25lbnR9IGZyb20gJy4vZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQge1Rvb2x0aXBPcHRpb25zU2VydmljZX0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zLCBkZWZhdWx0T3B0aW9uc30gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnN9IGZyb20gJy4vb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkQ29tcG9uZW50IHtcbiAgZGF0YTogYW55O1xuICBzaG93OiBib29sZWFuO1xuICBjbG9zZTogYm9vbGVhbjtcbiAgZXZlbnRzOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b29sdGlwXScsXG4gIGV4cG9ydEFzOiAndG9vbHRpcCcsXG59KVxuXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIGhpZGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGRlc3Ryb3lUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGhpZGVBZnRlckNsaWNrVGltZW91dElkITogbnVtYmVyO1xuICBjcmVhdGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIHNob3dUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNvbXBvbmVudFJlZjogYW55O1xuICBlbGVtZW50UG9zaXRpb246IGFueTtcbiAgX2lkOiBhbnk7XG4gIF9vcHRpb25zOiBhbnkgPSB7fTtcbiAgX2RlZmF1bHRPcHRpb25zOiBhbnk7XG4gIF9kZXN0cm95RGVsYXkhOiBudW1iZXI7XG4gIGNvbXBvbmVudFN1YnNjcmliZTogYW55O1xuICBfY29udGVudFR5cGU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIiA9IFwic3RyaW5nXCI7XG4gIF9zaG93RGVsYXkhOiBudW1iZXI7XG4gIF9oaWRlRGVsYXkhOiBudW1iZXI7XG4gIF96SW5kZXghOiBudW1iZXI7XG4gIF90b29sdGlwQ2xhc3MhOiBzdHJpbmc7XG4gIF9hbmltYXRpb25EdXJhdGlvbiE6IG51bWJlcjtcbiAgX21heFdpZHRoITogc3RyaW5nO1xuXG4gIEBJbnB1dCgnb3B0aW9ucycpIHNldCBvcHRpb25zKHZhbHVlOiBUb29sdGlwT3B0aW9ucykge1xuICAgIGlmICh2YWx1ZSAmJiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgQElucHV0KCd0b29sdGlwJykgdG9vbHRpcFZhbHVlITogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCdwbGFjZW1lbnQnKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXV0b1BsYWNlbWVudCcpIGF1dG9QbGFjZW1lbnQhOiBib29sZWFuO1xuXG4gIC8vIENvbnRlbnQgdHlwZVxuICBASW5wdXQoJ2NvbnRlbnQtdHlwZScpIHNldCBjb250ZW50VHlwZUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY29udGVudFR5cGUnKSBzZXQgY29udGVudFR5cGUodmFsdWU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fY29udGVudFR5cGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29udGVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRUeXBlO1xuICB9XG5cbiAgQElucHV0KCdoaWRlLWRlbGF5LW1vYmlsZScpIGhpZGVEZWxheU1vYmlsZSE6IG51bWJlcjtcbiAgQElucHV0KCdoaWRlRGVsYXlUb3VjaHNjcmVlbicpIGhpZGVEZWxheVRvdWNoc2NyZWVuITogbnVtYmVyO1xuXG4gIC8vIHotaW5kZXhcbiAgQElucHV0KCd6LWluZGV4Jykgc2V0IHpJbmRleEJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3pJbmRleCcpIHNldCB6SW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fekluZGV4ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHpJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fekluZGV4O1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIGR1cmF0aW9uXG4gIEBJbnB1dCgnYW5pbWF0aW9uLWR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdhbmltYXRpb25EdXJhdGlvbicpIHNldCBhbmltYXRpb25EdXJhdGlvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9hbmltYXRpb25EdXJhdGlvbiA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb247XG4gIH1cblxuXG4gIEBJbnB1dCgndHJpZ2dlcicpIHRyaWdnZXIhOiBzdHJpbmc7XG5cbiAgLy8gVG9vbHRpcCBjbGFzc1xuICBASW5wdXQoJ3Rvb2x0aXAtY2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgndG9vbHRpcENsYXNzJykgc2V0IHRvb2x0aXBDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl90b29sdGlwQ2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgdG9vbHRpcENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwQ2xhc3M7XG4gIH1cblxuICBASW5wdXQoJ2Rpc3BsYXknKSBkaXNwbGF5ITogYm9vbGVhbjtcbiAgQElucHV0KCdkaXNwbGF5LW1vYmlsZScpIGRpc3BsYXlNb2JpbGUhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXlUb3VjaHNjcmVlbicpIGRpc3BsYXlUb3VjaHNjcmVlbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgnc2hhZG93Jykgc2hhZG93ITogYm9vbGVhbjtcbiAgQElucHV0KCd0aGVtZScpIHRoZW1lITogXCJkYXJrXCIgfCBcImxpZ2h0XCI7XG4gIEBJbnB1dCgnb2Zmc2V0Jykgb2Zmc2V0ITogbnVtYmVyO1xuICBASW5wdXQoJ3dpZHRoJykgd2lkdGghOiBzdHJpbmc7XG5cbiAgLy8gTWF4IHdpZHRoXG4gIEBJbnB1dCgnbWF4LXdpZHRoJykgc2V0IG1heFdpZHRoQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdtYXhXaWR0aCcpIHNldCBtYXhXaWR0aCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhXaWR0aCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gIH1cblxuXG4gIEBJbnB1dCgnaWQnKSBpZDogYW55O1xuXG4gIC8vIFNob3cgZGVsYXlcbiAgQElucHV0KCdzaG93LWRlbGF5Jykgc2V0IHNob3dEZWxheUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zaG93RGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3Nob3dEZWxheScpIHNldCBzaG93RGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc2hvd0RlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RlbGF5O1xuICB9XG5cbiAgLy8gSGlkZSBkZWxheVxuICBASW5wdXQoJ2hpZGUtZGVsYXknKSBzZXQgaGlkZURlbGF5QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2hpZGVEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnaGlkZURlbGF5Jykgc2V0IGhpZGVEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9oaWRlRGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgaGlkZURlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlRGVsYXk7XG4gIH1cblxuICBASW5wdXQoJ2hpZGVEZWxheUFmdGVyQ2xpY2snKSBoaWRlRGVsYXlBZnRlckNsaWNrITogbnVtYmVyO1xuICBASW5wdXQoJ3BvaW50ZXJFdmVudHMnKSBwb2ludGVyRXZlbnRzITogJ2F1dG8nIHwgJ25vbmUnO1xuICBASW5wdXQoJ3Bvc2l0aW9uJykgcG9zaXRpb24hOiB7IHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIgfTtcblxuICBnZXQgaXNUb29sdGlwRGVzdHJveWVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZiAmJiB0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldy5kZXN0cm95ZWQ7XG4gIH1cblxuICBnZXQgZGVzdHJveURlbGF5KCkge1xuICAgIGlmICh0aGlzLl9kZXN0cm95RGVsYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95RGVsYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOdW1iZXIodGhpcy5nZXRIaWRlRGVsYXkoKSkgKyBOdW1iZXIodGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddKTtcbiAgICB9XG4gIH1cblxuICBzZXQgZGVzdHJveURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9kZXN0cm95RGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0b29sdGlwUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1sncG9zaXRpb24nXSkge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1sncG9zaXRpb24nXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBldmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUb29sdGlwT3B0aW9uc1NlcnZpY2UpIHByaXZhdGUgaW5pdE9wdGlvbnM6IGFueSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICh0aGlzLmlzRGlzcGxheU9uSG92ZXIgPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25DbGljayA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICAgIHRoaXMuaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgfSwgdGhpcy5vcHRpb25zWydoaWRlRGVsYXlBZnRlckNsaWNrJ10pXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucyA9IHRoaXMucmVuYW1lUHJvcGVydGllcyh0aGlzLmluaXRPcHRpb25zKTtcbiAgICBsZXQgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLmdldFByb3BlcnRpZXMoY2hhbmdlcyk7XG4gICAgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLnJlbmFtZVByb3BlcnRpZXMoY2hhbmdlZE9wdGlvbnMpO1xuXG4gICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zLCBjaGFuZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKHtcbiAgICAgIGZhc3Q6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudFN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTaG93RGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1snc2hvd0RlbGF5J107XG4gIH1cblxuICBnZXRIaWRlRGVsYXkoKSB7XG4gICAgY29uc3QgaGlkZURlbGF5ID0gdGhpcy5vcHRpb25zWydoaWRlRGVsYXknXTtcbiAgICBjb25zdCBoaWRlRGVsYXlUb3VjaHNjcmVlbiA9IHRoaXMub3B0aW9uc1snaGlkZURlbGF5VG91Y2hzY3JlZW4nXTtcblxuICAgIHJldHVybiB0aGlzLmlzVG91Y2hTY3JlZW4gPyBoaWRlRGVsYXlUb3VjaHNjcmVlbiA6IGhpZGVEZWxheTtcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBkaXJlY3RpdmVQcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllczogYW55ID0ge307XG4gICAgbGV0IGFsbFByb3BlcnRpZXM6IGFueTtcblxuICAgIGZvciAodmFyIHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICBkaXJlY3RpdmVQcm9wZXJ0aWVzW3Byb3BdID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcCA9PT0gJ29wdGlvbnMnKSB7XG4gICAgICAgIGN1c3RvbVByb3BlcnRpZXMgPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhbGxQcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tUHJvcGVydGllcywgZGlyZWN0aXZlUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIGFsbFByb3BlcnRpZXM7XG4gIH1cblxuICByZW5hbWVQcm9wZXJ0aWVzKG9wdGlvbnM6IGFueSkge1xuICAgIGZvciAodmFyIHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgaWYgKGJhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgb3B0aW9uc1tiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zW3Byb3BdXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zW3Byb3BdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBjcmVhdGVUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgIHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLmNyZWF0ZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwZW5kQ29tcG9uZW50VG9Cb2R5KEdyYXZpdHlUb29sdGlwQ29tcG9uZW50KTtcbiAgICB9LCB0aGlzLmdldFNob3dEZWxheSgpKTtcblxuICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcChvcHRpb25zID0ge1xuICAgIGZhc3Q6IGZhbHNlXG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcblxuICAgIGlmICh0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICB9LCBvcHRpb25zLmZhc3QgPyAwIDogdGhpcy5nZXRIaWRlRGVsYXkoKSk7XG5cbiAgICAgIHRoaXMuZGVzdHJveVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgIHR5cGU6ICdoaWRkZW4nLFxuICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgICAgICB9KTtcbiAgICAgIH0sIG9wdGlvbnMuZmFzdCA/IDAgOiB0aGlzLmRlc3Ryb3lEZWxheSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSB0cnVlO1xuICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgdHlwZTogJ3Nob3cnLFxuICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICBoaWRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgIHR5cGU6ICdoaWRlJyxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgYXBwZW5kQ29tcG9uZW50VG9Cb2R5KGNvbXBvbmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5kYXRhID0ge1xuICAgICAgdmFsdWU6IHRoaXMudG9vbHRpcFZhbHVlLFxuICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBlbGVtZW50UG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgfVxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUgPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUV2ZW50cyhldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhclRpbWVvdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNyZWF0ZVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3JlYXRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG93VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0cm95VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZW91dElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25Ib3ZlcigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3Zlcic7XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25DbGljaygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT0gJ2NsaWNrJztcblxuXG4gIH1cblxuICBnZXQgaXNUb3VjaFNjcmVlbigpIHtcbiAgICB2YXIgcHJlZml4ZXMgPSAnIC13ZWJraXQtIC1tb3otIC1vLSAtbXMtICcuc3BsaXQoJyAnKTtcbiAgICB2YXIgbXEgPSBmdW5jdGlvbiAocXVlcnk6IGFueSkge1xuICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cblxuICAgIGlmICgoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaW5jbHVkZSB0aGUgJ2hlYXJ0eicgYXMgYSB3YXkgdG8gaGF2ZSBhIG5vbiBtYXRjaGluZyBNUSB0byBoZWxwIHRlcm1pbmF0ZSB0aGUgam9pblxuICAgIC8vIGh0dHBzOi8vZ2l0LmlvL3Z6bkZIXG4gICAgdmFyIHF1ZXJ5ID0gWycoJywgcHJlZml4ZXMuam9pbigndG91Y2gtZW5hYmxlZCksKCcpLCAnaGVhcnR6JywgJyknXS5qb2luKCcnKTtcbiAgICByZXR1cm4gbXEocXVlcnkpO1xuICB9XG5cbiAgYXBwbHlPcHRpb25zRGVmYXVsdChkZWZhdWx0T3B0aW9uczogYW55LCBvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgdGhpcy5pbml0T3B0aW9ucyB8fCB7fSwgdGhpcy5vcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIGhhbmRsZUV2ZW50cyhldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdzaG93bicpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICB0eXBlOiAnc2hvd24nLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93KCkge1xuICAgIGlmICghdGhpcy50b29sdGlwVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -15,10 +15,11 @@ export * from './lib/components/gravity-radio-button/gravity-radio-button.compon
|
|
|
15
15
|
export * from './lib/components/gravity-switch/gravity-switch.component';
|
|
16
16
|
export * from './lib/components/gravity-table/gravity-table.component';
|
|
17
17
|
export * from './lib/components/gravity-text-field/gravity-text-field.component';
|
|
18
|
+
export * from './lib/components/gravity-tree-view/gravity-tree-view.component';
|
|
18
19
|
//Services
|
|
19
20
|
export * from './lib/services/gravity-dialog-manager.service';
|
|
20
21
|
//Vendor
|
|
21
22
|
export * from './lib/vendor/gravity-tooltip';
|
|
22
23
|
//Models and interfaces
|
|
23
24
|
export * from './lib/components/gravity-notification/gravity-notification-content.interface';
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsWUFBWTtBQUNaLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0VBQWdFLENBQUM7QUFFL0UsVUFBVTtBQUNWLGNBQWMsK0NBQStDLENBQUM7QUFFOUQsUUFBUTtBQUNSLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsdUJBQXVCO0FBQ3ZCLGNBQWMsOEVBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGdyYXZpdHktZGVzaWduLXN5c3RlbVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyYXZpdHktZGVzaWduLXN5c3RlbS5tb2R1bGUnO1xuXG4vL0NvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1hdHRhY2gtZmlsZS9ncmF2aXR5LWF0dGFjaC1maWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktYnV0dG9uL2dyYXZpdHktYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXIvZ3Jhdml0eS1jYWxlbmRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNoZWNrYm94L2dyYXZpdHktY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kaWFsb2cvZ3Jhdml0eS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0L2dyYXZpdHktZHJvcGRvd24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWljb24vZ3Jhdml0eS1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uLWluc3RhbnQvZ3Jhdml0eS1ub3RpZmljYXRpb24taW5zdGFudC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1yYWRpby1idXR0b24vZ3Jhdml0eS1yYWRpby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1zd2l0Y2gvZ3Jhdml0eS1zd2l0Y2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10YWJsZS9ncmF2aXR5LXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10cmVlLXZpZXcvZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50JztcblxuLy9TZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZ3Jhdml0eS1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcblxuLy9WZW5kb3JcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAnO1xuXG4vL01vZGVscyBhbmQgaW50ZXJmYWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LW5vdGlmaWNhdGlvbi9ncmF2aXR5LW5vdGlmaWNhdGlvbi1jb250ZW50LmludGVyZmFjZSc7XG4iXX0=
|