@progressio_resources/gravity-design-system 2.1.8 → 2.2.0
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-dialog/gravity-dialog.component.mjs +3 -3
- package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +3 -3
- package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +62 -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 +350 -0
- package/esm2022/lib/gravity-design-system.module.mjs +22 -5
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/progressio_resources-gravity-design-system.mjs +485 -9
- package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
- package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +19 -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 +57 -0
- package/lib/gravity-design-system.module.d.ts +14 -9
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,350 @@
|
|
|
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.filterChangeSubject = new BehaviorSubject('');
|
|
9
|
+
this.selectedItems = [];
|
|
10
|
+
this.selectedItemsSubject = new BehaviorSubject(this.selectedItems);
|
|
11
|
+
this.selectedStates = [];
|
|
12
|
+
this.filterChangeSubjectSubscription = this.filterChangeSubject.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
|
|
13
|
+
this.filterTraverse(this.treeState, '');
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
ngOnDestroy() {
|
|
17
|
+
this.filterChangeSubjectSubscription.unsubscribe();
|
|
18
|
+
}
|
|
19
|
+
connect() {
|
|
20
|
+
return this.selectedItemsSubject.asObservable();
|
|
21
|
+
}
|
|
22
|
+
setInitialState() {
|
|
23
|
+
this.setInitialSelectedState(this.treeState);
|
|
24
|
+
}
|
|
25
|
+
setInitialSelectedState(nodeStates) {
|
|
26
|
+
for (const state of nodeStates) {
|
|
27
|
+
if (state.nodeItem.selected && (!state.children || state.children.length === 0)) {
|
|
28
|
+
this.toggleSelectedState(state, true);
|
|
29
|
+
}
|
|
30
|
+
this.setInitialSelectedState(state.children);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
clear() {
|
|
34
|
+
for (let state of this.selectedStates) {
|
|
35
|
+
state.selected = false;
|
|
36
|
+
state.selectedState = NodeSelectedState.unChecked;
|
|
37
|
+
}
|
|
38
|
+
this.selectedItems.length = 0;
|
|
39
|
+
this.selectedStates.length = 0;
|
|
40
|
+
}
|
|
41
|
+
filterTraverse(states, filter) {
|
|
42
|
+
let results = [];
|
|
43
|
+
for (let state of states) {
|
|
44
|
+
if (state.children.length > 0) {
|
|
45
|
+
state.hasFilteredChildren = false;
|
|
46
|
+
state.hasFilteredChildren = this.filterTraverse(state.children, filter);
|
|
47
|
+
if (this.applyFilter(state, filter)) {
|
|
48
|
+
state.hasFilteredChildren = true;
|
|
49
|
+
}
|
|
50
|
+
results.push(state.hasFilteredChildren);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return results.some((item) => item);
|
|
54
|
+
}
|
|
55
|
+
applyFilter(state, filter) {
|
|
56
|
+
state.filteredChildren = this.filter(state.children, filter);
|
|
57
|
+
return state.filteredChildren.length > 0;
|
|
58
|
+
}
|
|
59
|
+
filter(states, value) {
|
|
60
|
+
return states.filter((nodeState) => nodeState.hasFilteredChildren || value === '' || nodeState.nodeItem.name.toLowerCase().indexOf(value) !== -1);
|
|
61
|
+
}
|
|
62
|
+
checkboxClick(state) {
|
|
63
|
+
this.toggleSelectedState(state, false);
|
|
64
|
+
if (this.callbacks?.toggle) {
|
|
65
|
+
this.callbacks.toggle(state.nodeItem);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
toggleSelectedState(state, ignoreDisabled) {
|
|
69
|
+
if (state.disabled && !ignoreDisabled) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (state.selectedState === NodeSelectedState.unChecked) {
|
|
73
|
+
this.setChecked(state, true, ignoreDisabled);
|
|
74
|
+
}
|
|
75
|
+
else if (state.selectedState === NodeSelectedState.checked) {
|
|
76
|
+
this.setUnchecked(state, true, ignoreDisabled);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if (this.anyActiveSelected(state) && !state.selected) {
|
|
80
|
+
this.setUnchecked(state, true, ignoreDisabled);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.setChecked(state, true, ignoreDisabled);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (state.parent) {
|
|
87
|
+
this.childStateChanged(state.parent);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
setChecked(state, propagate, ignoreDisabled) {
|
|
91
|
+
if (state.disabled && !ignoreDisabled) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
state.selectedState = NodeSelectedState.checked;
|
|
95
|
+
state.selected = true;
|
|
96
|
+
if (TreeService.hasNoChildren(state)) {
|
|
97
|
+
this.addSelected(state);
|
|
98
|
+
}
|
|
99
|
+
else if (propagate) {
|
|
100
|
+
for (const child of state.children) {
|
|
101
|
+
this.setChecked(child, propagate, ignoreDisabled);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
setUnchecked(state, propagate, ignoreDisabled) {
|
|
106
|
+
if (state.disabled && !ignoreDisabled) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
state.selectedState = NodeSelectedState.unChecked;
|
|
110
|
+
state.selected = false;
|
|
111
|
+
if (TreeService.hasNoChildren(state)) {
|
|
112
|
+
this.removeSelected(state.nodeItem.item);
|
|
113
|
+
if (this.callbacks?.unSelect) {
|
|
114
|
+
this.callbacks.unSelect(state.nodeItem);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (propagate) {
|
|
118
|
+
for (const child of state.children) {
|
|
119
|
+
this.setUnchecked(child, propagate, ignoreDisabled);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (!this.anyChildSelected(state)) {
|
|
123
|
+
this.removeSelected(state.nodeItem.item);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
removeSelected(item) {
|
|
127
|
+
let index = this.selectedItems.indexOf(item);
|
|
128
|
+
if (index !== -1) {
|
|
129
|
+
this.selectedItems.splice(index, 1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
static hasNoChildren(state) {
|
|
133
|
+
return !state.children || state.children.length === 0;
|
|
134
|
+
}
|
|
135
|
+
addSelected(state) {
|
|
136
|
+
this.selectedItems.push(state.nodeItem.item);
|
|
137
|
+
this.selectedStates.push(state);
|
|
138
|
+
if (this.callbacks?.select) {
|
|
139
|
+
this.callbacks.select(state.nodeItem);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
reEvaluateSelectedState(state) {
|
|
143
|
+
if (!TreeService.hasNoChildren(state)) {
|
|
144
|
+
this.childStateChanged(state);
|
|
145
|
+
for (const child of state.children) {
|
|
146
|
+
this.reEvaluateSelectedState(child);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
childStateChanged(state) {
|
|
151
|
+
if (this.anyChildSelected(state)) {
|
|
152
|
+
if (state.nodeItem.id != '0') {
|
|
153
|
+
let itemIndex = this.selectedItems.indexOf(state.nodeItem.item);
|
|
154
|
+
if (itemIndex === -1) {
|
|
155
|
+
this.selectedItems.push(state.nodeItem.item);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (this.allChildrenSelected(state)) {
|
|
159
|
+
this.setChecked(state, false);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
state.selectedState = NodeSelectedState.indeterminate;
|
|
163
|
+
state.selected = false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.setUnchecked(state, false);
|
|
168
|
+
}
|
|
169
|
+
if (state.parent) {
|
|
170
|
+
this.childStateChanged(state.parent);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
anyChildSelected(state) {
|
|
174
|
+
return state.children.find((item) => item.selectedState === NodeSelectedState.checked || item.selectedState === NodeSelectedState.indeterminate) != null;
|
|
175
|
+
}
|
|
176
|
+
static initState(parent, nodeItem) {
|
|
177
|
+
return {
|
|
178
|
+
parent: parent,
|
|
179
|
+
children: [],
|
|
180
|
+
filteredChildren: [],
|
|
181
|
+
hasFilteredChildren: false,
|
|
182
|
+
nodeItem: nodeItem,
|
|
183
|
+
expanded: nodeItem.expanded !== false,
|
|
184
|
+
disabled: nodeItem.disabled === true,
|
|
185
|
+
selectedState: NodeSelectedState.unChecked,
|
|
186
|
+
selected: false
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
deleteById(id) {
|
|
190
|
+
let result = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
191
|
+
if (result) {
|
|
192
|
+
this.deleteByState(result);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
deleteByState(state) {
|
|
196
|
+
this.delete(state);
|
|
197
|
+
this.childStateChanged(state);
|
|
198
|
+
this.filterTraverse(this.treeState, '');
|
|
199
|
+
}
|
|
200
|
+
delete(state) {
|
|
201
|
+
while (state.children.length > 0) {
|
|
202
|
+
let result = state.children.pop();
|
|
203
|
+
if (result) {
|
|
204
|
+
this.delete(result);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
this.removeSelected(state.nodeItem.item);
|
|
208
|
+
TreeService.remove(state);
|
|
209
|
+
if (!state.parent) {
|
|
210
|
+
TreeService.deleteRoot(state, this.treeState, this.nodeItems);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
toggleExpandedTraverse(nodeStates, value) {
|
|
214
|
+
for (let state of nodeStates) {
|
|
215
|
+
state.expanded = value;
|
|
216
|
+
this.toggleExpandedTraverse(state.children, value);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
static deleteRoot(state, nodeStates, nodeItems) {
|
|
220
|
+
let itemIndex = nodeItems.indexOf(state.nodeItem);
|
|
221
|
+
if (itemIndex !== -1) {
|
|
222
|
+
nodeItems.splice(itemIndex, 1);
|
|
223
|
+
}
|
|
224
|
+
let index = nodeStates.indexOf(state);
|
|
225
|
+
if (index !== -1) {
|
|
226
|
+
nodeStates.splice(index, 1);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
addNewNode(nodeState, parent) {
|
|
230
|
+
nodeState.parent = parent;
|
|
231
|
+
parent.children.push(nodeState);
|
|
232
|
+
if (parent.nodeItem.children) {
|
|
233
|
+
parent.nodeItem.children.push(nodeState.nodeItem);
|
|
234
|
+
}
|
|
235
|
+
this.childStateChanged(parent);
|
|
236
|
+
this.filterTraverse(this.treeState, '');
|
|
237
|
+
}
|
|
238
|
+
static remove(state) {
|
|
239
|
+
if (state.parent) {
|
|
240
|
+
state.parent.hasFilteredChildren = false;
|
|
241
|
+
if (state.parent.nodeItem.children) {
|
|
242
|
+
let itemIndex = state.parent.nodeItem.children.indexOf(state.nodeItem);
|
|
243
|
+
if (itemIndex !== -1) {
|
|
244
|
+
state.parent.nodeItem.children.splice(itemIndex, 1);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
let index = state.parent.children.indexOf(state);
|
|
248
|
+
if (index !== -1) {
|
|
249
|
+
state.parent.children.splice(index, 1);
|
|
250
|
+
}
|
|
251
|
+
let filteredIndex = state.parent.filteredChildren.indexOf(state);
|
|
252
|
+
if (filteredIndex !== -1) {
|
|
253
|
+
state.parent.filteredChildren.splice(filteredIndex, 1);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
allChildrenSelected(state) {
|
|
258
|
+
if (state.nodeItem.children) {
|
|
259
|
+
return state.children.every(it => it.selectedState === NodeSelectedState.checked) && state.children.length === state.nodeItem.children.length;
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
return state.children.every(it => it.selectedState === NodeSelectedState.checked);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
toggleExpandedTraverseAsc(nodeState, value) {
|
|
266
|
+
nodeState.expanded = value;
|
|
267
|
+
if (nodeState.parent) {
|
|
268
|
+
this.toggleExpandedTraverseAsc(nodeState.parent, value);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
anyActiveSelected(state) {
|
|
272
|
+
let result = state.children.filter(it => !it.disabled && it.selected).length > 0;
|
|
273
|
+
for (const child of state.children) {
|
|
274
|
+
if (!TreeService.hasNoChildren(child) && this.anyActiveSelected(child)) {
|
|
275
|
+
result = true;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return result;
|
|
279
|
+
}
|
|
280
|
+
static findById(state, arg) {
|
|
281
|
+
return state.nodeItem.id === arg;
|
|
282
|
+
}
|
|
283
|
+
getNodeState(nodeStates, arg, compare) {
|
|
284
|
+
let nodeState = nodeStates.find((it) => compare(it, arg));
|
|
285
|
+
if (nodeState) {
|
|
286
|
+
return nodeState;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
for (let state of nodeStates) {
|
|
290
|
+
let children = this.getNodeState(state.children, arg, compare);
|
|
291
|
+
if (children) {
|
|
292
|
+
return children;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
toggleExpanded(value) {
|
|
298
|
+
this.toggleExpandedTraverse(this.treeState, value);
|
|
299
|
+
}
|
|
300
|
+
addNodeById(nodeState, id) {
|
|
301
|
+
let result = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
302
|
+
if (result) {
|
|
303
|
+
if (!result.children) {
|
|
304
|
+
result.children = [];
|
|
305
|
+
}
|
|
306
|
+
this.addNewNode(nodeState, result);
|
|
307
|
+
if (result.nodeItem.item) {
|
|
308
|
+
this.removeSelected(result.nodeItem.item);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
editItemById(id, item) {
|
|
313
|
+
const nodeState = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
314
|
+
if (nodeState && nodeState.nodeItem) {
|
|
315
|
+
if (this.selectedItems.includes(nodeState.nodeItem.item)) {
|
|
316
|
+
this.removeSelected(nodeState.nodeItem.item);
|
|
317
|
+
this.selectedItems.push(item);
|
|
318
|
+
this.selectedItemsSubject.next(this.selectedItems);
|
|
319
|
+
}
|
|
320
|
+
nodeState.nodeItem.item = item;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
expandById(id) {
|
|
324
|
+
const result = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
325
|
+
if (result) {
|
|
326
|
+
this.toggleExpandedTraverseAsc(result, true);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
collapseById(id) {
|
|
330
|
+
const result = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
331
|
+
if (result) {
|
|
332
|
+
result.expanded = false;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
getParentById(id) {
|
|
336
|
+
const result = this.getNodeState(this.treeState, id, TreeService.findById);
|
|
337
|
+
if (result) {
|
|
338
|
+
return result.parent.nodeItem;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
forceFilterTraverse() {
|
|
342
|
+
this.filterTraverse(this.treeState, '');
|
|
343
|
+
}
|
|
344
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
345
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService }); }
|
|
346
|
+
}
|
|
347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, decorators: [{
|
|
348
|
+
type: Injectable
|
|
349
|
+
}], ctorParameters: function () { return []; } });
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9zZXJ2aWNlL3RyZWUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJaEUsTUFBTSxPQUFPLFdBQVc7SUFZdEI7UUFMUSx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0QsbUJBQWMsR0FBZ0IsRUFBRSxDQUFDO1FBR3ZDLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3SCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlB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LFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLEVBQVU7UUFDN0IsTUFBTSxNQUFNLEdBQWMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEYsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQzsrR0EvWlUsV0FBVzttSEFBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Tm9kZUl0ZW19IGZyb20gJy4uL21vZGVscy9ub2RlLWl0ZW0nO1xuaW1wb3J0IHtOb2RlU3RhdGV9IGZyb20gJy4uL21vZGVscy9ub2RlLXN0YXRlJztcbmltcG9ydCB7Tm9kZVNlbGVjdGVkU3RhdGV9IGZyb20gJy4uL21vZGVscy9ub2RlLXNlbGVjdGVkLXN0YXRlJztcbmltcG9ydCB7VHJlZUNhbGxiYWNrc30gZnJvbSAnLi4vbW9kZWxzL3RyZWUtY2FsbGJhY2tzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJDaGFuZ2VTdWJqZWN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGNhbGxiYWNrczogVHJlZUNhbGxiYWNrcztcbiAgcHVibGljIG5vZGVJdGVtczogTm9kZUl0ZW08YW55PltdO1xuICBwdWJsaWMgdHJlZVN0YXRlOiBOb2RlU3RhdGVbXTtcblxuICBwcml2YXRlIGZpbHRlckNoYW5nZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkSXRlbXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICBwcml2YXRlIHNlbGVjdGVkU3RhdGVzOiBOb2RlU3RhdGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdFN1YnNjcmlwdGlvbiA9IHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgzMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJUcmF2ZXJzZSh0aGlzLnRyZWVTdGF0ZSwgJycpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgY29ubmVjdCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SW5pdGlhbFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SW5pdGlhbFNlbGVjdGVkU3RhdGUodGhpcy50cmVlU3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsU2VsZWN0ZWRTdGF0ZShub2RlU3RhdGVzOiBOb2RlU3RhdGVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3RhdGUgb2Ygbm9kZVN0YXRlcykge1xuICAgICAgaWYgKHN0YXRlLm5vZGVJdGVtLnNlbGVjdGVkICYmICghc3RhdGUuY2hpbGRyZW4gfHwgc3RhdGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSkge1xuICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdGVkU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEluaXRpYWxTZWxlY3RlZFN0YXRlKHN0YXRlLmNoaWxkcmVuKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgZm9yIChsZXQgc3RhdGUgb2YgdGhpcy5zZWxlY3RlZFN0YXRlcykge1xuICAgICAgc3RhdGUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHN0YXRlLnNlbGVjdGVkU3RhdGUgPSBOb2RlU2VsZWN0ZWRTdGF0ZS51bkNoZWNrZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5zZWxlY3RlZFN0YXRlcy5sZW5ndGggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJUcmF2ZXJzZShzdGF0ZXM6IE5vZGVTdGF0ZVtdLCBmaWx0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHRzOiBib29sZWFuW10gPSBbXTtcblxuICAgIGZvciAobGV0IHN0YXRlIG9mIHN0YXRlcykge1xuICAgICAgaWYgKHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3RhdGUuaGFzRmlsdGVyZWRDaGlsZHJlbiA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXJUcmF2ZXJzZShzdGF0ZS5jaGlsZHJlbiwgZmlsdGVyKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBseUZpbHRlcihzdGF0ZSwgZmlsdGVyKSkge1xuICAgICAgICAgIHN0YXRlLmhhc0ZpbHRlcmVkQ2hpbGRyZW4gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0cy5wdXNoKHN0YXRlLmhhc0ZpbHRlcmVkQ2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzLnNvbWUoKGl0ZW06IGJvb2xlYW4pID0+IGl0ZW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlcihzdGF0ZTogTm9kZVN0YXRlLCBmaWx0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHN0YXRlLmZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmZpbHRlcihzdGF0ZS5jaGlsZHJlbiwgZmlsdGVyKTtcbiAgICByZXR1cm4gc3RhdGUuZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXIoc3RhdGVzOiBOb2RlU3RhdGVbXSwgdmFsdWU6IHN0cmluZyk6IE5vZGVTdGF0ZVtdIHtcbiAgICByZXR1cm4gc3RhdGVzLmZpbHRlcigobm9kZVN0YXRlOiBOb2RlU3RhdGUpID0+IG5vZGVTdGF0ZS5oYXNGaWx0ZXJlZENoaWxkcmVuIHx8IHZhbHVlID09PSAnJyB8fCBub2RlU3RhdGUubm9kZUl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUpICE9PSAtMSk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tib3hDbGljayhzdGF0ZTogTm9kZVN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3RlZFN0YXRlKHN0YXRlLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5jYWxsYmFja3M/LnRvZ2dsZSkge1xuICAgICAgdGhpcy5jYWxsYmFja3MudG9nZ2xlKHN0YXRlLm5vZGVJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVNlbGVjdGVkU3RhdGUoc3RhdGU6IE5vZGVTdGF0ZSwgaWdub3JlRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoc3RhdGUuZGlzYWJsZWQgJiYgIWlnbm9yZURpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLnVuQ2hlY2tlZCkge1xuICAgICAgdGhpcy5zZXRDaGVja2VkKHN0YXRlLCB0cnVlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNldFVuY2hlY2tlZChzdGF0ZSwgdHJ1ZSwgaWdub3JlRGlzYWJsZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hbnlBY3RpdmVTZWxlY3RlZChzdGF0ZSkgJiYgIXN0YXRlLnNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2V0VW5jaGVja2VkKHN0YXRlLCB0cnVlLCBpZ25vcmVEaXNhYmxlZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldENoZWNrZWQoc3RhdGUsIHRydWUsIGlnbm9yZURpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGUucGFyZW50KSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlLnBhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGVja2VkKHN0YXRlOiBOb2RlU3RhdGUsIHByb3BhZ2F0ZTogYm9vbGVhbiwgaWdub3JlRGlzYWJsZWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLmRpc2FibGVkICYmICFpZ25vcmVEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0YXRlLnNlbGVjdGVkU3RhdGUgPSBOb2RlU2VsZWN0ZWRTdGF0ZS5jaGVja2VkO1xuICAgIHN0YXRlLnNlbGVjdGVkID0gdHJ1ZTtcblxuICAgIGlmIChUcmVlU2VydmljZS5oYXNOb0NoaWxkcmVuKHN0YXRlKSkge1xuICAgICAgdGhpcy5hZGRTZWxlY3RlZChzdGF0ZSk7XG4gICAgfSBlbHNlIGlmIChwcm9wYWdhdGUpIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygc3RhdGUuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKGNoaWxkLCBwcm9wYWdhdGUsIGlnbm9yZURpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFVuY2hlY2tlZChzdGF0ZTogTm9kZVN0YXRlLCBwcm9wYWdhdGU6IGJvb2xlYW4sIGlnbm9yZURpc2FibGVkPzogYm9vbGVhbikge1xuICAgIGlmIChzdGF0ZS5kaXNhYmxlZCAmJiAhaWdub3JlRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUudW5DaGVja2VkO1xuICAgIHN0YXRlLnNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBpZiAoVHJlZVNlcnZpY2UuaGFzTm9DaGlsZHJlbihzdGF0ZSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWQoc3RhdGUubm9kZUl0ZW0uaXRlbSk7XG5cbiAgICAgIGlmICh0aGlzLmNhbGxiYWNrcz8udW5TZWxlY3QpIHtcbiAgICAgICAgdGhpcy5jYWxsYmFja3MudW5TZWxlY3Qoc3RhdGUubm9kZUl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcGFnYXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuc2V0VW5jaGVja2VkKGNoaWxkLCBwcm9wYWdhdGUsIGlnbm9yZURpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYW55Q2hpbGRTZWxlY3RlZChzdGF0ZSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWQoc3RhdGUubm9kZUl0ZW0uaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBoYXNOb0NoaWxkcmVuKHN0YXRlOiBOb2RlU3RhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXN0YXRlLmNoaWxkcmVuIHx8IHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGF0ZXMucHVzaChzdGF0ZSk7XG5cbiAgICBpZiAodGhpcy5jYWxsYmFja3M/LnNlbGVjdCkge1xuICAgICAgdGhpcy5jYWxsYmFja3Muc2VsZWN0KHN0YXRlLm5vZGVJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVFdmFsdWF0ZVNlbGVjdGVkU3RhdGUoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghVHJlZVNlcnZpY2UuaGFzTm9DaGlsZHJlbihzdGF0ZSkpIHtcbiAgICAgIHRoaXMuY2hpbGRTdGF0ZUNoYW5nZWQoc3RhdGUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMucmVFdmFsdWF0ZVNlbGVjdGVkU3RhdGUoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGlsZFN0YXRlQ2hhbmdlZChzdGF0ZTogTm9kZVN0YXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW55Q2hpbGRTZWxlY3RlZChzdGF0ZSkpIHtcbiAgICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5pZCAhPSAnMCcpIHtcbiAgICAgICAgbGV0IGl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKHN0YXRlLm5vZGVJdGVtLml0ZW0pO1xuXG4gICAgICAgIGlmIChpdGVtSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goc3RhdGUubm9kZUl0ZW0uaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWxsQ2hpbGRyZW5TZWxlY3RlZChzdGF0ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKHN0YXRlLCBmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5zZWxlY3RlZFN0YXRlID0gTm9kZVNlbGVjdGVkU3RhdGUuaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRVbmNoZWNrZWQoc3RhdGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUucGFyZW50KSB7XG4gICAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlLnBhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhbnlDaGlsZFNlbGVjdGVkKHN0YXRlOiBOb2RlU3RhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW4uZmluZCgoaXRlbTogTm9kZVN0YXRlKSA9PiBpdGVtLnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQgfHwgaXRlbS5zZWxlY3RlZFN0YXRlID09PSBOb2RlU2VsZWN0ZWRTdGF0ZS5pbmRldGVybWluYXRlKSAhPSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpbml0U3RhdGUocGFyZW50OiBOb2RlU3RhdGUsIG5vZGVJdGVtOiBOb2RlSXRlbTxhbnk+KTogTm9kZVN0YXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBmaWx0ZXJlZENoaWxkcmVuOiBbXSxcbiAgICAgIGhhc0ZpbHRlcmVkQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgbm9kZUl0ZW06IG5vZGVJdGVtLFxuICAgICAgZXhwYW5kZWQ6IG5vZGVJdGVtLmV4cGFuZGVkICE9PSBmYWxzZSxcbiAgICAgIGRpc2FibGVkOiBub2RlSXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSxcbiAgICAgIHNlbGVjdGVkU3RhdGU6IE5vZGVTZWxlY3RlZFN0YXRlLnVuQ2hlY2tlZCxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQnlJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJlc3VsdDogTm9kZVN0YXRlID0gdGhpcy5nZXROb2RlU3RhdGUodGhpcy50cmVlU3RhdGUsIGlkLCBUcmVlU2VydmljZS5maW5kQnlJZCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgdGhpcy5kZWxldGVCeVN0YXRlKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUJ5U3RhdGUoc3RhdGU6IE5vZGVTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlKHN0YXRlKTtcbiAgICB0aGlzLmNoaWxkU3RhdGVDaGFuZ2VkKHN0YXRlKTtcbiAgICB0aGlzLmZpbHRlclRyYXZlcnNlKHRoaXMudHJlZVN0YXRlLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZShzdGF0ZTogTm9kZVN0YXRlKTogdm9pZCB7XG4gICAgd2hpbGUgKHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCByZXN1bHQ6IE5vZGVTdGF0ZSA9IHN0YXRlLmNoaWxkcmVuLnBvcCgpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMuZGVsZXRlKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVTZWxlY3RlZChzdGF0ZS5ub2RlSXRlbS5pdGVtKTtcbiAgICBUcmVlU2VydmljZS5yZW1vdmUoc3RhdGUpO1xuXG4gICAgaWYgKCFzdGF0ZS5wYXJlbnQpIHtcbiAgICAgIFRyZWVTZXJ2aWNlLmRlbGV0ZVJvb3Qoc3RhdGUsIHRoaXMudHJlZVN0YXRlLCB0aGlzLm5vZGVJdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVFeHBhbmRlZFRyYXZlcnNlKG5vZGVTdGF0ZXM6IE5vZGVTdGF0ZVtdLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGZvciAobGV0IHN0YXRlIG9mIG5vZGVTdGF0ZXMpIHtcbiAgICAgIHN0YXRlLmV4cGFuZGVkID0gdmFsdWU7XG4gICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkVHJhdmVyc2Uoc3RhdGUuY2hpbGRyZW4sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBkZWxldGVSb290KHN0YXRlOiBOb2RlU3RhdGUsIG5vZGVTdGF0ZXM6IE5vZGVTdGF0ZVtdLCBub2RlSXRlbXM6IE5vZGVJdGVtPGFueT5bXSk6IHZvaWQge1xuICAgIGxldCBpdGVtSW5kZXg6IG51bWJlciA9IG5vZGVJdGVtcy5pbmRleE9mKHN0YXRlLm5vZGVJdGVtKTtcblxuICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XG4gICAgICBub2RlSXRlbXMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gbm9kZVN0YXRlcy5pbmRleE9mKHN0YXRlKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIG5vZGVTdGF0ZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZE5ld05vZGUobm9kZVN0YXRlOiBOb2RlU3RhdGUsIHBhcmVudDogTm9kZVN0YXRlKTogdm9pZCB7XG4gICAgbm9kZVN0YXRlLnBhcmVudCA9IHBhcmVudDtcbiAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlU3RhdGUpO1xuICAgIGlmIChwYXJlbnQubm9kZUl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIHBhcmVudC5ub2RlSXRlbS5jaGlsZHJlbi5wdXNoKG5vZGVTdGF0ZS5ub2RlSXRlbSk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGlsZFN0YXRlQ2hhbmdlZChwYXJlbnQpO1xuICAgIHRoaXMuZmlsdGVyVHJhdmVyc2UodGhpcy50cmVlU3RhdGUsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlbW92ZShzdGF0ZTogTm9kZVN0YXRlKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlLnBhcmVudCkge1xuICAgICAgc3RhdGUucGFyZW50Lmhhc0ZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlLnBhcmVudC5ub2RlSXRlbS5jaGlsZHJlbikge1xuICAgICAgICBsZXQgaXRlbUluZGV4ID0gc3RhdGUucGFyZW50Lm5vZGVJdGVtLmNoaWxkcmVuLmluZGV4T2Yoc3RhdGUubm9kZUl0ZW0pO1xuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHN0YXRlLnBhcmVudC5ub2RlSXRlbS5jaGlsZHJlbi5zcGxpY2UoaXRlbUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgaW5kZXggPSBzdGF0ZS5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihzdGF0ZSk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHN0YXRlLnBhcmVudC5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICBsZXQgZmlsdGVyZWRJbmRleCA9IHN0YXRlLnBhcmVudC5maWx0ZXJlZENoaWxkcmVuLmluZGV4T2Yoc3RhdGUpO1xuICAgICAgaWYgKGZpbHRlcmVkSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHN0YXRlLnBhcmVudC5maWx0ZXJlZENoaWxkcmVuLnNwbGljZShmaWx0ZXJlZEluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFsbENoaWxkcmVuU2VsZWN0ZWQoc3RhdGU6IE5vZGVTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5ub2RlSXRlbS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuLmV2ZXJ5KGl0ID0+IGl0LnNlbGVjdGVkU3RhdGUgPT09IE5vZGVTZWxlY3RlZFN0YXRlLmNoZWNrZWQpICYmIHN0YXRlLmNoaWxkcmVuLmxlbmd0aCA9PT0gc3RhdGUubm9kZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW4uZXZlcnkoaXQgPT4gaXQuc2VsZWN0ZWRTdGF0ZSA9PT0gTm9kZVNlbGVjdGVkU3RhdGUuY2hlY2tlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVFeHBhbmRlZFRyYXZlcnNlQXNjKG5vZGVTdGF0ZTogTm9kZVN0YXRlLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIG5vZGVTdGF0ZS5leHBhbmRlZCA9IHZhbHVlO1xuXG4gICAgaWYgKG5vZGVTdGF0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRUcmF2ZXJzZUFzYyhub2RlU3RhdGUucGFyZW50LCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhbnlBY3RpdmVTZWxlY3RlZChzdGF0ZTogTm9kZVN0YXRlKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdCA9IHN0YXRlLmNoaWxkcmVuLmZpbHRlcihpdCA9PiAhaXQuZGlzYWJsZWQgJiYgaXQuc2VsZWN0ZWQpLmxlbmd0aCA+IDA7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoIVRyZWVTZXJ2aWNlLmhhc05vQ2hpbGRyZW4oY2hpbGQpICYmIHRoaXMuYW55QWN0aXZlU2VsZWN0ZWQoY2hpbGQpKSB7XG4gICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRCeUlkKHN0YXRlOiBOb2RlU3RhdGUsIGFyZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLm5vZGVJdGVtLmlkID09PSBhcmc7XG4gIH1cblxuICBwcml2YXRlIGdldE5vZGVTdGF0ZShub2RlU3RhdGVzOiBOb2RlU3RhdGVbXSwgYXJnOiBhbnksIGNvbXBhcmU6IChzdGF0ZTogTm9kZVN0YXRlLCBmaW5kOiBhbnkpID0+IGJvb2xlYW4pOiBOb2RlU3RhdGUge1xuICAgIGxldCBub2RlU3RhdGU6IE5vZGVTdGF0ZSA9IG5vZGVTdGF0ZXMuZmluZCgoaXQ6IE5vZGVTdGF0ZSkgPT4gY29tcGFyZShpdCwgYXJnKSk7XG5cbiAgICBpZiAobm9kZVN0YXRlKSB7XG4gICAgICByZXR1cm4gbm9kZVN0YXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBzdGF0ZSBvZiBub2RlU3RhdGVzKSB7XG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMuZ2V0Tm9kZVN0YXRlKHN0YXRlLmNoaWxkcmVuLCBhcmcsIGNvbXBhcmUpO1xuICAgICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkVHJhdmVyc2UodGhpcy50cmVlU3RhdGUsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGROb2RlQnlJZChub2RlU3RhdGU6IE5vZGVTdGF0ZSwgaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCByZXN1bHQ6IE5vZGVTdGF0ZSA9IHRoaXMuZ2V0Tm9kZVN0YXRlKHRoaXMudHJlZVN0YXRlLCBpZCwgVHJlZVNlcnZpY2UuZmluZEJ5SWQpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgaWYgKCFyZXN1bHQuY2hpbGRyZW4pIHtcbiAgICAgICAgcmVzdWx0LmNoaWxkcmVuID0gW107XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWRkTmV3Tm9kZShub2RlU3RhdGUsIHJlc3VsdCk7XG5cbiAgICAgIGlmIChyZXN1bHQubm9kZUl0ZW0uaXRlbSkge1xuICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkKHJlc3VsdC5ub2RlSXRlbS5pdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZWRpdEl0ZW1CeUlkKGlkOiBzdHJpbmcsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTdGF0ZTogTm9kZVN0YXRlID0gdGhpcy5nZXROb2RlU3RhdGUodGhpcy50cmVlU3RhdGUsIGlkLCBUcmVlU2VydmljZS5maW5kQnlJZCk7XG5cbiAgICBpZiAobm9kZVN0YXRlICYmIG5vZGVTdGF0ZS5ub2RlSXRlbSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlU3RhdGUubm9kZUl0ZW0uaXRlbSkpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZChub2RlU3RhdGUubm9kZUl0ZW0uaXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNTdWJqZWN0Lm5leHQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgIH1cblxuICAgICAgbm9kZVN0YXRlLm5vZGVJdGVtLml0ZW0gPSBpdGVtO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBleHBhbmRCeUlkKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHQ6IE5vZGVTdGF0ZSA9IHRoaXMuZ2V0Tm9kZVN0YXRlKHRoaXMudHJlZVN0YXRlLCBpZCwgVHJlZVNlcnZpY2UuZmluZEJ5SWQpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZFRyYXZlcnNlQXNjKHJlc3VsdCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbGxhcHNlQnlJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcmVzdWx0OiBOb2RlU3RhdGUgPSB0aGlzLmdldE5vZGVTdGF0ZSh0aGlzLnRyZWVTdGF0ZSwgaWQsIFRyZWVTZXJ2aWNlLmZpbmRCeUlkKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJlc3VsdC5leHBhbmRlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRQYXJlbnRCeUlkKGlkOiBzdHJpbmcpOiBOb2RlSXRlbTxhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IE5vZGVTdGF0ZSA9IHRoaXMuZ2V0Tm9kZVN0YXRlKHRoaXMudHJlZVN0YXRlLCBpZCwgVHJlZVNlcnZpY2UuZmluZEJ5SWQpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmV0dXJuIHJlc3VsdC5wYXJlbnQubm9kZUl0ZW07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcmNlRmlsdGVyVHJhdmVyc2UoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJUcmF2ZXJzZSh0aGlzLnRyZWVTdGF0ZSwgJycpO1xuICB9XG59XG4iXX0=
|
|
@@ -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
|
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=
|