ngx-vflow 1.8.1 → 1.9.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/vflow/components/vflow/vflow.component.mjs +5 -3
- package/esm2022/lib/vflow/directives/lazy-for.directive.mjs +243 -0
- package/esm2022/public-api.mjs +14 -13
- package/esm2022/testing/component-mocks/custom-template-edge-mock.component.mjs +16 -0
- package/esm2022/testing/component-mocks/handle-mock.component.mjs +24 -0
- package/esm2022/{lib/vflow/testing-utils → testing}/component-mocks/minimap-mock.component.mjs +1 -1
- package/esm2022/testing/component-mocks/node-toolbar-mock.component.mjs +23 -0
- package/esm2022/testing/component-mocks/resizable-mock.component.mjs +25 -0
- package/esm2022/testing/component-mocks/vflow-mock.component.mjs +296 -0
- package/esm2022/testing/directive-mocks/connection-controller-mock.directive.mjs +27 -0
- package/esm2022/testing/directive-mocks/drag-handle-mock.directive.mjs +11 -0
- package/esm2022/{lib/vflow/testing-utils → testing}/directive-mocks/selectable-mock.directive.mjs +1 -1
- package/esm2022/{lib/vflow/testing-utils → testing}/directive-mocks/template-mock.directive.mjs +1 -1
- package/esm2022/testing/ngx-vflow-testing.mjs +5 -0
- package/esm2022/testing/provide-custom-node-mocks.mjs +59 -0
- package/esm2022/testing/public-api.mjs +13 -0
- package/esm2022/testing/types.mjs +2 -0
- package/esm2022/testing/vflow-mocks.mjs +28 -0
- package/fesm2022/ngx-vflow-testing.mjs +626 -0
- package/fesm2022/ngx-vflow-testing.mjs.map +1 -0
- package/fesm2022/ngx-vflow.mjs +245 -601
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/directives/lazy-for.directive.d.ts +94 -0
- package/lib/vflow/models/edge.model.d.ts +2 -2
- package/package.json +9 -3
- package/public-api.d.ts +12 -11
- package/testing/component-mocks/custom-template-edge-mock.component.d.ts +7 -0
- package/{lib/vflow/testing-utils → testing}/component-mocks/handle-mock.component.d.ts +2 -3
- package/{lib/vflow/testing-utils → testing}/component-mocks/minimap-mock.component.d.ts +1 -1
- package/{lib/vflow/testing-utils → testing}/component-mocks/node-toolbar-mock.component.d.ts +1 -2
- package/{lib/vflow/testing-utils → testing}/component-mocks/resizable-mock.component.d.ts +1 -1
- package/{lib/vflow/testing-utils → testing}/component-mocks/vflow-mock.component.d.ts +2 -14
- package/{lib/vflow/testing-utils → testing}/directive-mocks/connection-controller-mock.directive.d.ts +2 -3
- package/{lib/vflow/testing-utils → testing}/directive-mocks/drag-handle-mock.directive.d.ts +1 -1
- package/{lib/vflow/testing-utils → testing}/directive-mocks/selectable-mock.directive.d.ts +1 -1
- package/{lib/vflow/testing-utils → testing}/directive-mocks/template-mock.directive.d.ts +1 -1
- package/testing/index.d.ts +5 -0
- package/testing/public-api.d.ts +11 -0
- package/{lib/vflow/testing-utils → testing}/vflow-mocks.d.ts +2 -1
- package/esm2022/lib/vflow/testing-utils/component-mocks/handle-mock.component.mjs +0 -24
- package/esm2022/lib/vflow/testing-utils/component-mocks/node-toolbar-mock.component.mjs +0 -23
- package/esm2022/lib/vflow/testing-utils/component-mocks/resizable-mock.component.mjs +0 -25
- package/esm2022/lib/vflow/testing-utils/component-mocks/vflow-mock.component.mjs +0 -296
- package/esm2022/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.mjs +0 -27
- package/esm2022/lib/vflow/testing-utils/directive-mocks/drag-handle-mock.directive.mjs +0 -11
- package/esm2022/lib/vflow/testing-utils/provide-custom-node-mocks.mjs +0 -68
- package/esm2022/lib/vflow/testing-utils/types.mjs +0 -2
- package/esm2022/lib/vflow/testing-utils/vflow-mocks.mjs +0 -26
- /package/{lib/vflow/testing-utils → testing}/provide-custom-node-mocks.d.ts +0 -0
- /package/{lib/vflow/testing-utils → testing}/types.d.ts +0 -0
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, contentChild, Input, input, output, signal, } from '@angular/core';
|
|
2
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
3
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { ConnectionTemplateMockDirective, EdgeLabelHtmlTemplateMockDirective, EdgeTemplateMockDirective, GroupNodeTemplateMockDirective, NodeHtmlTemplateMockDirective, } from '../directive-mocks/template-mock.directive';
|
|
5
|
-
import { ConnectionModel } from '../../models/connection.model';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class VflowMockComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.view = [400, 400];
|
|
10
|
-
this.minZoom = 0.5;
|
|
11
|
-
this.maxZoom = 3;
|
|
12
|
-
this.background = '#fff';
|
|
13
|
-
this.optimization = input({
|
|
14
|
-
detachedGroupsLayer: false,
|
|
15
|
-
});
|
|
16
|
-
this.entitiesSelectable = true;
|
|
17
|
-
this.keyboardShortcuts = {
|
|
18
|
-
multiSelection: null,
|
|
19
|
-
};
|
|
20
|
-
this.connection = new ConnectionModel({});
|
|
21
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
22
|
-
this.onComponentNodeEvent = output();
|
|
23
|
-
this.nodeTemplateDirective = contentChild(NodeHtmlTemplateMockDirective);
|
|
24
|
-
this.groupNodeTemplateDirective = contentChild(GroupNodeTemplateMockDirective);
|
|
25
|
-
this.edgeTemplateDirective = contentChild(EdgeTemplateMockDirective);
|
|
26
|
-
this.edgeLabelHtmlDirective = contentChild(EdgeLabelHtmlTemplateMockDirective);
|
|
27
|
-
this.connectionTemplateDirective = contentChild(ConnectionTemplateMockDirective);
|
|
28
|
-
this.viewport = signal({
|
|
29
|
-
x: 0,
|
|
30
|
-
y: 0,
|
|
31
|
-
zoom: 1,
|
|
32
|
-
});
|
|
33
|
-
this.nodesChange = signal([]);
|
|
34
|
-
this.edgesChange = signal([]);
|
|
35
|
-
this.viewportChange$ = toObservable(this.viewport);
|
|
36
|
-
this.nodesChange$ = toObservable(this.nodesChange);
|
|
37
|
-
this.edgesChange$ = toObservable(this.edgesChange);
|
|
38
|
-
}
|
|
39
|
-
// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
|
|
40
|
-
ngOnInit() { }
|
|
41
|
-
viewportTo(viewport) {
|
|
42
|
-
this.viewport.set(viewport);
|
|
43
|
-
}
|
|
44
|
-
zoomTo(zoom) {
|
|
45
|
-
this.viewport.update((prev) => ({ ...prev, zoom }));
|
|
46
|
-
}
|
|
47
|
-
panTo(point) {
|
|
48
|
-
this.viewport.update((prev) => ({ ...prev, x: point.x, y: point.y }));
|
|
49
|
-
}
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
-
fitView(options) { }
|
|
52
|
-
documentPointToFlowPoint(point, options) {
|
|
53
|
-
if (options?.spaces) {
|
|
54
|
-
return [
|
|
55
|
-
{
|
|
56
|
-
nodeId: null,
|
|
57
|
-
x: point.x,
|
|
58
|
-
y: point.y,
|
|
59
|
-
},
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
return point;
|
|
63
|
-
}
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
65
|
-
getIntesectingNodes(nodeId, options) {
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
69
|
-
toNodeSpace(nodeId, spaceNodeId) {
|
|
70
|
-
return { x: 0, y: 0 };
|
|
71
|
-
}
|
|
72
|
-
getNode(id) {
|
|
73
|
-
return this.nodes.find((node) => node.id === id);
|
|
74
|
-
}
|
|
75
|
-
getDetachedEdges() {
|
|
76
|
-
return [];
|
|
77
|
-
}
|
|
78
|
-
createSignal(value) {
|
|
79
|
-
return signal(value);
|
|
80
|
-
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VflowMockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: VflowMockComponent, isStandalone: true, selector: "vflow", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: false, isRequired: true, transformFunction: null }, edges: { classPropertyName: "edges", publicName: "edges", isSignal: false, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: false, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: "minZoom", publicName: "minZoom", isSignal: false, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: "maxZoom", publicName: "maxZoom", isSignal: false, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: false, isRequired: false, transformFunction: null }, optimization: { classPropertyName: "optimization", publicName: "optimization", isSignal: true, isRequired: false, transformFunction: null }, entitiesSelectable: { classPropertyName: "entitiesSelectable", publicName: "entitiesSelectable", isSignal: false, isRequired: false, transformFunction: null }, keyboardShortcuts: { classPropertyName: "keyboardShortcuts", publicName: "keyboardShortcuts", isSignal: false, isRequired: false, transformFunction: null }, connection: { classPropertyName: "connection", publicName: "connection", isSignal: false, isRequired: false, transformFunction: (settings) => new ConnectionModel(settings) }, snapGrid: { classPropertyName: "snapGrid", publicName: "snapGrid", isSignal: false, isRequired: false, transformFunction: null }, elevateNodesOnSelect: { classPropertyName: "elevateNodesOnSelect", publicName: "elevateNodesOnSelect", isSignal: false, isRequired: false, transformFunction: null }, elevateEdgesOnSelect: { classPropertyName: "elevateEdgesOnSelect", publicName: "elevateEdgesOnSelect", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onComponentNodeEvent: "onComponentNodeEvent" }, queries: [{ propertyName: "nodeTemplateDirective", first: true, predicate: NodeHtmlTemplateMockDirective, descendants: true, isSignal: true }, { propertyName: "groupNodeTemplateDirective", first: true, predicate: GroupNodeTemplateMockDirective, descendants: true, isSignal: true }, { propertyName: "edgeTemplateDirective", first: true, predicate: EdgeTemplateMockDirective, descendants: true, isSignal: true }, { propertyName: "edgeLabelHtmlDirective", first: true, predicate: EdgeLabelHtmlTemplateMockDirective, descendants: true, isSignal: true }, { propertyName: "connectionTemplateDirective", first: true, predicate: ConnectionTemplateMockDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
83
|
-
<ng-content />
|
|
84
|
-
|
|
85
|
-
@for (node of nodes; track $index) {
|
|
86
|
-
@if (node.type === 'html-template') {
|
|
87
|
-
<ng-component
|
|
88
|
-
[ngTemplateOutlet]="nodeTemplateDirective()?.templateRef ?? null"
|
|
89
|
-
[ngTemplateOutletContext]="{
|
|
90
|
-
$implicit: {
|
|
91
|
-
node: node,
|
|
92
|
-
selected: createSignal(false),
|
|
93
|
-
},
|
|
94
|
-
}" />
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@if (node.type === 'template-group') {
|
|
98
|
-
<ng-component
|
|
99
|
-
[ngTemplateOutlet]="groupNodeTemplateDirective()?.templateRef ?? null"
|
|
100
|
-
[ngTemplateOutletContext]="{
|
|
101
|
-
$implicit: {
|
|
102
|
-
node: node,
|
|
103
|
-
selected: createSignal(false),
|
|
104
|
-
width: createSignal(node.width),
|
|
105
|
-
height: createSignal(node.height),
|
|
106
|
-
},
|
|
107
|
-
}" />
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@for (edge of edges; track $index) {
|
|
112
|
-
@if (edge.type === 'template') {
|
|
113
|
-
<ng-component
|
|
114
|
-
[ngTemplateOutlet]="edgeTemplateDirective()?.templateRef ?? null"
|
|
115
|
-
[ngTemplateOutletContext]="{
|
|
116
|
-
$implicit: {
|
|
117
|
-
edge: edge,
|
|
118
|
-
selected: createSignal(false),
|
|
119
|
-
path: createSignal(''),
|
|
120
|
-
markerStart: createSignal(''),
|
|
121
|
-
markerEnd: createSignal(''),
|
|
122
|
-
},
|
|
123
|
-
}" />
|
|
124
|
-
|
|
125
|
-
@if (edge.edgeLabels?.start) {
|
|
126
|
-
<ng-component
|
|
127
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
128
|
-
[ngTemplateOutletContext]="{
|
|
129
|
-
$implicit: {
|
|
130
|
-
edge: edge,
|
|
131
|
-
},
|
|
132
|
-
}" />
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
@if (edge.edgeLabels?.center) {
|
|
136
|
-
<ng-component
|
|
137
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
138
|
-
[ngTemplateOutletContext]="{
|
|
139
|
-
$implicit: {
|
|
140
|
-
edge: edge,
|
|
141
|
-
label: edge.edgeLabels?.center,
|
|
142
|
-
},
|
|
143
|
-
}" />
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
@if (edge.edgeLabels?.end) {
|
|
147
|
-
<ng-component
|
|
148
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
149
|
-
[ngTemplateOutletContext]="{
|
|
150
|
-
$implicit: {
|
|
151
|
-
edge: edge,
|
|
152
|
-
label: edge.edgeLabels?.end,
|
|
153
|
-
},
|
|
154
|
-
}" />
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
@if (connection.type === 'template') {
|
|
160
|
-
<ng-component
|
|
161
|
-
[ngTemplateOutlet]="connectionTemplateDirective()?.templateRef ?? null"
|
|
162
|
-
[ngTemplateOutletContext]="{
|
|
163
|
-
$implicit: {
|
|
164
|
-
path: createSignal(''),
|
|
165
|
-
marker: createSignal(''),
|
|
166
|
-
},
|
|
167
|
-
}" />
|
|
168
|
-
}
|
|
169
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
170
|
-
}
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VflowMockComponent, decorators: [{
|
|
172
|
-
type: Component,
|
|
173
|
-
args: [{
|
|
174
|
-
selector: 'vflow',
|
|
175
|
-
template: `
|
|
176
|
-
<ng-content />
|
|
177
|
-
|
|
178
|
-
@for (node of nodes; track $index) {
|
|
179
|
-
@if (node.type === 'html-template') {
|
|
180
|
-
<ng-component
|
|
181
|
-
[ngTemplateOutlet]="nodeTemplateDirective()?.templateRef ?? null"
|
|
182
|
-
[ngTemplateOutletContext]="{
|
|
183
|
-
$implicit: {
|
|
184
|
-
node: node,
|
|
185
|
-
selected: createSignal(false),
|
|
186
|
-
},
|
|
187
|
-
}" />
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
@if (node.type === 'template-group') {
|
|
191
|
-
<ng-component
|
|
192
|
-
[ngTemplateOutlet]="groupNodeTemplateDirective()?.templateRef ?? null"
|
|
193
|
-
[ngTemplateOutletContext]="{
|
|
194
|
-
$implicit: {
|
|
195
|
-
node: node,
|
|
196
|
-
selected: createSignal(false),
|
|
197
|
-
width: createSignal(node.width),
|
|
198
|
-
height: createSignal(node.height),
|
|
199
|
-
},
|
|
200
|
-
}" />
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
@for (edge of edges; track $index) {
|
|
205
|
-
@if (edge.type === 'template') {
|
|
206
|
-
<ng-component
|
|
207
|
-
[ngTemplateOutlet]="edgeTemplateDirective()?.templateRef ?? null"
|
|
208
|
-
[ngTemplateOutletContext]="{
|
|
209
|
-
$implicit: {
|
|
210
|
-
edge: edge,
|
|
211
|
-
selected: createSignal(false),
|
|
212
|
-
path: createSignal(''),
|
|
213
|
-
markerStart: createSignal(''),
|
|
214
|
-
markerEnd: createSignal(''),
|
|
215
|
-
},
|
|
216
|
-
}" />
|
|
217
|
-
|
|
218
|
-
@if (edge.edgeLabels?.start) {
|
|
219
|
-
<ng-component
|
|
220
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
221
|
-
[ngTemplateOutletContext]="{
|
|
222
|
-
$implicit: {
|
|
223
|
-
edge: edge,
|
|
224
|
-
},
|
|
225
|
-
}" />
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
@if (edge.edgeLabels?.center) {
|
|
229
|
-
<ng-component
|
|
230
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
231
|
-
[ngTemplateOutletContext]="{
|
|
232
|
-
$implicit: {
|
|
233
|
-
edge: edge,
|
|
234
|
-
label: edge.edgeLabels?.center,
|
|
235
|
-
},
|
|
236
|
-
}" />
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
@if (edge.edgeLabels?.end) {
|
|
240
|
-
<ng-component
|
|
241
|
-
[ngTemplateOutlet]="edgeLabelHtmlDirective()?.templateRef ?? null"
|
|
242
|
-
[ngTemplateOutletContext]="{
|
|
243
|
-
$implicit: {
|
|
244
|
-
edge: edge,
|
|
245
|
-
label: edge.edgeLabels?.end,
|
|
246
|
-
},
|
|
247
|
-
}" />
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
@if (connection.type === 'template') {
|
|
253
|
-
<ng-component
|
|
254
|
-
[ngTemplateOutlet]="connectionTemplateDirective()?.templateRef ?? null"
|
|
255
|
-
[ngTemplateOutletContext]="{
|
|
256
|
-
$implicit: {
|
|
257
|
-
path: createSignal(''),
|
|
258
|
-
marker: createSignal(''),
|
|
259
|
-
},
|
|
260
|
-
}" />
|
|
261
|
-
}
|
|
262
|
-
`,
|
|
263
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
264
|
-
standalone: true,
|
|
265
|
-
imports: [NgTemplateOutlet],
|
|
266
|
-
}]
|
|
267
|
-
}], propDecorators: { nodes: [{
|
|
268
|
-
type: Input,
|
|
269
|
-
args: [{ required: true }]
|
|
270
|
-
}], edges: [{
|
|
271
|
-
type: Input
|
|
272
|
-
}], view: [{
|
|
273
|
-
type: Input
|
|
274
|
-
}], minZoom: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], maxZoom: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], background: [{
|
|
279
|
-
type: Input
|
|
280
|
-
}], entitiesSelectable: [{
|
|
281
|
-
type: Input
|
|
282
|
-
}], keyboardShortcuts: [{
|
|
283
|
-
type: Input
|
|
284
|
-
}], connection: [{
|
|
285
|
-
type: Input,
|
|
286
|
-
args: [{
|
|
287
|
-
transform: (settings) => new ConnectionModel(settings),
|
|
288
|
-
}]
|
|
289
|
-
}], snapGrid: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}], elevateNodesOnSelect: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], elevateEdgesOnSelect: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}] } });
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3ctbW9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdGVzdGluZy11dGlscy9jb21wb25lbnQtbW9ja3MvdmZsb3ctbW9jay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVduRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUNMLCtCQUErQixFQUMvQixrQ0FBa0MsRUFDbEMseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUM5Qiw2QkFBNkIsR0FDOUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBa0doRSxNQUFNLE9BQU8sa0JBQWtCO0lBOUYvQjtRQXNHa0IsU0FBSSxHQUE4QixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUc3QyxZQUFPLEdBQUcsR0FBRyxDQUFDO1FBR2QsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUdaLGVBQVUsR0FBd0IsTUFBTSxDQUFDO1FBRXpDLGlCQUFZLEdBQUcsS0FBSyxDQUFlO1lBQ2pELG1CQUFtQixFQUFFLEtBQUs7U0FDM0IsQ0FBQyxDQUFDO1FBR2EsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRzFCLHNCQUFpQixHQUFzQjtZQUNyRCxjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO1FBS2MsZUFBVSxHQUFvQixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQVd0RSwrREFB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Y2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb250ZW50Q2hpbGQsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOb2RlLCBEeW5hbWljTm9kZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWRnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3BhY2VQb2ludCwgUG9pbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vLi4vdHlwZXMvYmFja2dyb3VuZC50eXBlJztcbmltcG9ydCB7IE9wdGltaXphdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW1pemF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0cyB9IGZyb20gJy4uLy4uL3R5cGVzL2tleWJvYXJkLWFjdGlvbi50eXBlJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29ubmVjdGlvbi1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmlld3BvcnRTdGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdmlld3BvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vZGVDaGFuZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcbmltcG9ydCB7IEVkZ2VDaGFuZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9lZGdlLWNoYW5nZS50eXBlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZpdFZpZXdPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9maXQtdmlldy1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBFZGdlTGFiZWxIdG1sVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBFZGdlVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBHcm91cE5vZGVUZW1wbGF0ZU1vY2tEaXJlY3RpdmUsXG4gIE5vZGVIdG1sVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxufSBmcm9tICcuLi9kaXJlY3RpdmUtbW9ja3MvdGVtcGxhdGUtbW9jay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVmZsb3dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3ZmbG93L3ZmbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBc0ludGVyZmFjZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEludGVyc2VjdGluZ05vZGVzT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW50ZXJzZWN0aW5nLW5vZGVzLW9wdGlvbnMuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmZsb3cnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IC8+XG5cbiAgICBAZm9yIChub2RlIG9mIG5vZGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIEBpZiAobm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZScpIHtcbiAgICAgICAgPG5nLWNvbXBvbmVudFxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVUZW1wbGF0ZURpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZiA/PyBudWxsXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBjcmVhdGVTaWduYWwoZmFsc2UpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XCIgLz5cbiAgICAgIH1cblxuICAgICAgQGlmIChub2RlLnR5cGUgPT09ICd0ZW1wbGF0ZS1ncm91cCcpIHtcbiAgICAgICAgPG5nLWNvbXBvbmVudFxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdyb3VwTm9kZVRlbXBsYXRlRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmID8/IG51bGxcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGNyZWF0ZVNpZ25hbChmYWxzZSksXG4gICAgICAgICAgICAgIHdpZHRoOiBjcmVhdGVTaWduYWwobm9kZS53aWR0aCksXG4gICAgICAgICAgICAgIGhlaWdodDogY3JlYXRlU2lnbmFsKG5vZGUuaGVpZ2h0KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAoZWRnZSBvZiBlZGdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICBAaWYgKGVkZ2UudHlwZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgICA8bmctY29tcG9uZW50XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRnZVRlbXBsYXRlRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmID8/IG51bGxcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgZWRnZTogZWRnZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGNyZWF0ZVNpZ25hbChmYWxzZSksXG4gICAgICAgICAgICAgIHBhdGg6IGNyZWF0ZVNpZ25hbCgnJyksXG4gICAgICAgICAgICAgIG1hcmtlclN0YXJ0OiBjcmVhdGVTaWduYWwoJycpLFxuICAgICAgICAgICAgICBtYXJrZXJFbmQ6IGNyZWF0ZVNpZ25hbCgnJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cIiAvPlxuXG4gICAgICAgIEBpZiAoZWRnZS5lZGdlTGFiZWxzPy5zdGFydCkge1xuICAgICAgICAgIDxuZy1jb21wb25lbnRcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkZ2VMYWJlbEh0bWxEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYgPz8gbnVsbFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICBlZGdlOiBlZGdlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGVkZ2UuZWRnZUxhYmVscz8uY2VudGVyKSB7XG4gICAgICAgICAgPG5nLWNvbXBvbmVudFxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRnZUxhYmVsSHRtbERpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZiA/PyBudWxsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgIGVkZ2U6IGVkZ2UsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGVkZ2UuZWRnZUxhYmVscz8uY2VudGVyLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGVkZ2UuZWRnZUxhYmVscz8uZW5kKSB7XG4gICAgICAgICAgPG5nLWNvbXBvbmVudFxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRnZUxhYmVsSHRtbERpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZiA/PyBudWxsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgIGVkZ2U6IGVkZ2UsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGVkZ2UuZWRnZUxhYmVscz8uZW5kLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGNvbm5lY3Rpb24udHlwZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgPG5nLWNvbXBvbmVudFxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb25uZWN0aW9uVGVtcGxhdGVEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYgPz8gbnVsbFwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICBwYXRoOiBjcmVhdGVTaWduYWwoJycpLFxuICAgICAgICAgICAgbWFya2VyOiBjcmVhdGVTaWduYWwoJycpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cIiAvPlxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgVmZsb3dNb2NrQ29tcG9uZW50IGltcGxlbWVudHMgQXNJbnRlcmZhY2U8VmZsb3dDb21wb25lbnQ+LCBPbkluaXQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXMhOiBOb2RlW10gfCBEeW5hbWljTm9kZVtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlZGdlcyE6IEVkZ2VbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgdmlldzogW251bWJlciwgbnVtYmVyXSB8ICdhdXRvJyA9IFs0MDAsIDQwMF07XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG1pblpvb20gPSAwLjU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG1heFpvb20gPSAzO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBiYWNrZ3JvdW5kOiBCYWNrZ3JvdW5kIHwgc3RyaW5nID0gJyNmZmYnO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcHRpbWl6YXRpb24gPSBpbnB1dDxPcHRpbWl6YXRpb24+KHtcbiAgICBkZXRhY2hlZEdyb3Vwc0xheWVyOiBmYWxzZSxcbiAgfSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzU2VsZWN0YWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGtleWJvYXJkU2hvcnRjdXRzOiBLZXlib2FyZFNob3J0Y3V0cyA9IHtcbiAgICBtdWx0aVNlbGVjdGlvbjogbnVsbCxcbiAgfTtcblxuICBASW5wdXQoe1xuICAgIHRyYW5zZm9ybTogKHNldHRpbmdzOiBDb25uZWN0aW9uU2V0dGluZ3MpID0+IG5ldyBDb25uZWN0aW9uTW9kZWwoc2V0dGluZ3MpLFxuICB9KVxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbjogQ29ubmVjdGlvbk1vZGVsID0gbmV3IENvbm5lY3Rpb25Nb2RlbCh7fSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5IHNuYXBHcmlkITogW251bWJlciwgbnVtYmVyXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZWxldmF0ZU5vZGVzT25TZWxlY3QhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbGV2YXRlRWRnZXNPblNlbGVjdCE6IGJvb2xlYW47XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIHB1YmxpYyByZWFkb25seSBvbkNvbXBvbmVudE5vZGVFdmVudCA9IG91dHB1dDxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIG5vZGVUZW1wbGF0ZURpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChOb2RlSHRtbFRlbXBsYXRlTW9ja0RpcmVjdGl2ZSk7XG5cbiAgcHJvdGVjdGVkIGdyb3VwTm9kZVRlbXBsYXRlRGlyZWN0aXZlID0gY29udGVudENoaWxkKEdyb3VwTm9kZVRlbXBsYXRlTW9ja0RpcmVjdGl2ZSk7XG5cbiAgcHJvdGVjdGVkIGVkZ2VUZW1wbGF0ZURpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChFZGdlVGVtcGxhdGVNb2NrRGlyZWN0aXZlKTtcblxuICBwcm90ZWN0ZWQgZWRnZUxhYmVsSHRtbERpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChFZGdlTGFiZWxIdG1sVGVtcGxhdGVNb2NrRGlyZWN0aXZlKTtcblxuICBwcm90ZWN0ZWQgY29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlID0gY29udGVudENoaWxkKENvbm5lY3Rpb25UZW1wbGF0ZU1vY2tEaXJlY3RpdmUpO1xuXG4gIHB1YmxpYyB2aWV3cG9ydCA9IHNpZ25hbDxWaWV3cG9ydFN0YXRlPih7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIHpvb206IDEsXG4gIH0pO1xuXG4gIHB1YmxpYyBub2Rlc0NoYW5nZSA9IHNpZ25hbDxOb2RlQ2hhbmdlW10+KFtdKTtcbiAgcHVibGljIGVkZ2VzQ2hhbmdlID0gc2lnbmFsPEVkZ2VDaGFuZ2VbXT4oW10pO1xuXG4gIHB1YmxpYyB2aWV3cG9ydENoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy52aWV3cG9ydCk7XG5cbiAgcHVibGljIG5vZGVzQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLm5vZGVzQ2hhbmdlKTtcbiAgcHVibGljIGVkZ2VzQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVkZ2VzQ2hhbmdlKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWVtcHR5LWxpZmVjeWNsZS1tZXRob2RcbiAgcHVibGljIG5nT25Jbml0KCkge31cblxuICBwdWJsaWMgdmlld3BvcnRUbyh2aWV3cG9ydDogVmlld3BvcnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudmlld3BvcnQuc2V0KHZpZXdwb3J0KTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tVG8oem9vbTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy52aWV3cG9ydC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIHpvb20gfSkpO1xuICB9XG5cbiAgcHVibGljIHBhblRvKHBvaW50OiBQb2ludCk6IHZvaWQge1xuICAgIHRoaXMudmlld3BvcnQudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCB4OiBwb2ludC54LCB5OiBwb2ludC55IH0pKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIGZpdFZpZXcob3B0aW9ucz86IEZpdFZpZXdPcHRpb25zKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBkb2N1bWVudFBvaW50VG9GbG93UG9pbnQocG9pbnQ6IFBvaW50LCBvcHRpb25zPzogeyBzcGFjZXM6IGZhbHNlIH0pOiBQb2ludDtcbiAgcHVibGljIGRvY3VtZW50UG9pbnRUb0Zsb3dQb2ludChwb2ludDogUG9pbnQsIG9wdGlvbnM6IHsgc3BhY2VzOiB0cnVlIH0pOiBTcGFjZVBvaW50W107XG4gIHB1YmxpYyBkb2N1bWVudFBvaW50VG9GbG93UG9pbnQocG9pbnQ6IFBvaW50LCBvcHRpb25zPzogeyBzcGFjZXM6IGJvb2xlYW4gfSk6IHVua25vd24ge1xuICAgIGlmIChvcHRpb25zPy5zcGFjZXMpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBub2RlSWQ6IG51bGwsXG4gICAgICAgICAgeDogcG9pbnQueCxcbiAgICAgICAgICB5OiBwb2ludC55LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9pbnQ7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHB1YmxpYyBnZXRJbnRlc2VjdGluZ05vZGVzKG5vZGVJZDogc3RyaW5nLCBvcHRpb25zPzogSW50ZXJzZWN0aW5nTm9kZXNPcHRpb25zKTogTm9kZVtdIHwgRHluYW1pY05vZGVbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgdG9Ob2RlU3BhY2Uobm9kZUlkOiBzdHJpbmcsIHNwYWNlTm9kZUlkOiBzdHJpbmcpOiBQb2ludCB7XG4gICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICB9XG5cbiAgcHVibGljIGdldE5vZGU8VCA9IHVua25vd24+KGlkOiBzdHJpbmcpOiBOb2RlPFQ+IHwgRHluYW1pY05vZGU8VD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREZXRhY2hlZEVkZ2VzKCk6IEVkZ2VbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVNpZ25hbDxUPih2YWx1ZTogVCk6IFdyaXRhYmxlU2lnbmFsPFQ+IHtcbiAgICByZXR1cm4gc2lnbmFsKHZhbHVlKTtcbiAgfVxufVxuIl19
|
package/esm2022/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Directive, output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ConnectionControllerMockDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
6
|
-
this.onConnect = output();
|
|
7
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
8
|
-
this.onReconnect = output();
|
|
9
|
-
}
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
-
startConnection(handle) { }
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
-
startReconnection(handle) { }
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
-
validateConnection(handle) { }
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
-
resetValidateConnection(targetHandle) { }
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
|
-
endConnection() { }
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerMockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ConnectionControllerMockDirective, isStandalone: true, selector: "[onConnect]", outputs: { onConnect: "onConnect", onReconnect: "onReconnect" }, ngImport: i0 }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerMockDirective, decorators: [{
|
|
24
|
-
type: Directive,
|
|
25
|
-
args: [{ selector: '[onConnect]', standalone: true }]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1jb250cm9sbGVyLW1vY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3Rlc3RpbmctdXRpbHMvZGlyZWN0aXZlLW1vY2tzL2Nvbm5lY3Rpb24tY29udHJvbGxlci1tb2NrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGlDQUFpQztJQUQ5QztRQUVFLCtEQUErRDtRQUMvQyxjQUFTLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFakQsK0RBQStEO1FBQy9DLGdCQUFXLEdBQUcsTUFBTSxFQUFxQixDQUFDO0tBZ0IzRDtJQWRDLDZEQUE2RDtJQUN0RCxlQUFlLENBQUMsTUFBbUIsSUFBUyxDQUFDO0lBRXBELDZEQUE2RDtJQUN0RCxpQkFBaUIsQ0FBQyxNQUFtQixJQUFTLENBQUM7SUFFdEQsNkRBQTZEO0lBQ3RELGtCQUFrQixDQUFDLE1BQW1CLElBQVMsQ0FBQztJQUV2RCw2REFBNkQ7SUFDdEQsdUJBQXVCLENBQUMsWUFBeUIsSUFBUyxDQUFDO0lBRWxFLDZEQUE2RDtJQUN0RCxhQUFhLEtBQVUsQ0FBQzsrR0FwQnBCLGlDQUFpQzttR0FBakMsaUNBQWlDOzs0RkFBakMsaUNBQWlDO2tCQUQ3QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb24sIFJlY29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBc0ludGVyZmFjZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENvbm5lY3Rpb25Db250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb25uZWN0aW9uLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tvbkNvbm5lY3RdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Db250cm9sbGVyTW9ja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFzSW50ZXJmYWNlPENvbm5lY3Rpb25Db250cm9sbGVyRGlyZWN0aXZlPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICBwdWJsaWMgcmVhZG9ubHkgb25Db25uZWN0ID0gb3V0cHV0PENvbm5lY3Rpb24+KCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIHB1YmxpYyByZWFkb25seSBvblJlY29ubmVjdCA9IG91dHB1dDxSZWNvbm5lY3Rpb25FdmVudD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHB1YmxpYyBzdGFydENvbm5lY3Rpb24oaGFuZGxlOiBIYW5kbGVNb2RlbCk6IHZvaWQge31cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHB1YmxpYyBzdGFydFJlY29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsKTogdm9pZCB7fVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHZhbGlkYXRlQ29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsKTogdm9pZCB7fVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHJlc2V0VmFsaWRhdGVDb25uZWN0aW9uKHRhcmdldEhhbmRsZTogSGFuZGxlTW9kZWwpOiB2b2lkIHt9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgZW5kQ29ubmVjdGlvbigpOiB2b2lkIHt9XG59XG4iXX0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class DragHandleMockDirective {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DragHandleMockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DragHandleMockDirective, isStandalone: true, selector: "[dragHandle]", ngImport: i0 }); }
|
|
6
|
-
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DragHandleMockDirective, decorators: [{
|
|
8
|
-
type: Directive,
|
|
9
|
-
args: [{ selector: '[dragHandle]', standalone: true }]
|
|
10
|
-
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1oYW5kbGUtbW9jay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdGVzdGluZy11dGlscy9kaXJlY3RpdmUtbW9ja3MvZHJhZy1oYW5kbGUtbW9jay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzSW50ZXJmYWNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgRHJhZ0hhbmRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHJhZy1oYW5kbGUuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2RyYWdIYW5kbGVdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIERyYWdIYW5kbGVNb2NrRGlyZWN0aXZlIGltcGxlbWVudHMgQXNJbnRlcmZhY2U8RHJhZ0hhbmRsZURpcmVjdGl2ZT4ge31cbiJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { signal } from '@angular/core';
|
|
2
|
-
import { ComponentEventBusService } from '../services/component-event-bus.service';
|
|
3
|
-
import { HandleService } from '../services/handle.service';
|
|
4
|
-
import { NodeModel } from '../models/node.model';
|
|
5
|
-
import { FlowSettingsService } from '../services/flow-settings.service';
|
|
6
|
-
import { FlowEntitiesService } from '../services/flow-entities.service';
|
|
7
|
-
import { NodeAccessorService } from '../services/node-accessor.service';
|
|
8
|
-
import { RootPointerDirective } from '../directives/root-pointer.directive';
|
|
9
|
-
import { of } from 'rxjs';
|
|
10
|
-
import { ViewportService } from '../services/viewport.service';
|
|
11
|
-
import { SpacePointContextDirective } from '../directives/space-point-context.directive';
|
|
12
|
-
import { SelectionService } from '../services/selection.service';
|
|
13
|
-
const mockModel = () => new NodeModel({ id: 'mock', type: 'default', point: { x: 0, y: 0 } });
|
|
14
|
-
export function provideCustomNodeMocks() {
|
|
15
|
-
return [
|
|
16
|
-
{
|
|
17
|
-
provide: ComponentEventBusService,
|
|
18
|
-
useValue: {
|
|
19
|
-
pushEvent: () => { },
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
provide: NodeAccessorService,
|
|
24
|
-
useFactory: () => ({
|
|
25
|
-
model: signal(mockModel()),
|
|
26
|
-
}),
|
|
27
|
-
},
|
|
28
|
-
FlowEntitiesService,
|
|
29
|
-
// TODO: mocks below should be removed after the major release
|
|
30
|
-
{
|
|
31
|
-
provide: HandleService,
|
|
32
|
-
useFactory: () => ({
|
|
33
|
-
node: signal(mockModel()),
|
|
34
|
-
createHandle: () => { },
|
|
35
|
-
destroyHandle: () => { },
|
|
36
|
-
}),
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
provide: RootPointerDirective,
|
|
40
|
-
useValue: {
|
|
41
|
-
pointerMovement$: of({
|
|
42
|
-
x: 0,
|
|
43
|
-
y: 0,
|
|
44
|
-
movementX: 0,
|
|
45
|
-
movementY: 0,
|
|
46
|
-
target: null,
|
|
47
|
-
originalEvent: null,
|
|
48
|
-
}),
|
|
49
|
-
documentPointerEnd$: of(null),
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
provide: SpacePointContextDirective,
|
|
54
|
-
useValue: {
|
|
55
|
-
documentPointToFlowPoint: (point) => point,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
provide: SelectionService,
|
|
60
|
-
useValue: {
|
|
61
|
-
select: () => { },
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
FlowSettingsService,
|
|
65
|
-
ViewportService,
|
|
66
|
-
];
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jdXN0b20tbm9kZS1tb2Nrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy90ZXN0aW5nLXV0aWxzL3Byb3ZpZGUtY3VzdG9tLW5vZGUtbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUU5RixNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsUUFBUSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2FBQ3BCO1NBQ0Y7UUFDRDtZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDM0IsQ0FBQztTQUNIO1FBQ0QsbUJBQW1CO1FBRW5CLDhEQUE4RDtRQUM5RDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixZQUFZLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztnQkFDdEIsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7YUFDeEIsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLFFBQVEsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxFQUFFLENBQUM7b0JBQ25CLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLFNBQVMsRUFBRSxDQUFDO29CQUNaLFNBQVMsRUFBRSxDQUFDO29CQUNaLE1BQU0sRUFBRSxJQUFJO29CQUNaLGFBQWEsRUFBRSxJQUFJO2lCQUNwQixDQUFDO2dCQUNGLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDOUI7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxRQUFRLEVBQUU7Z0JBQ1Isd0JBQXdCLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUs7YUFDbEQ7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7YUFDakI7U0FDRjtRQUNELG1CQUFtQjtRQUNuQixlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXZlbnRCdXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tcG9uZW50LWV2ZW50LWJ1cy5zZXJ2aWNlJztcbmltcG9ydCB7IEhhbmRsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9oYW5kbGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZUFjY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtYWNjZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBSb290UG9pbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvcm9vdC1wb2ludGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmlld3BvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc3BhY2UtcG9pbnQtY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UnO1xuXG5jb25zdCBtb2NrTW9kZWwgPSAoKSA9PiBuZXcgTm9kZU1vZGVsKHsgaWQ6ICdtb2NrJywgdHlwZTogJ2RlZmF1bHQnLCBwb2ludDogeyB4OiAwLCB5OiAwIH0gfSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ3VzdG9tTm9kZU1vY2tzKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbXBvbmVudEV2ZW50QnVzU2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIHB1c2hFdmVudDogKCkgPT4ge30sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTm9kZUFjY2Vzc29yU2VydmljZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+ICh7XG4gICAgICAgIG1vZGVsOiBzaWduYWwobW9ja01vZGVsKCkpLFxuICAgICAgfSksXG4gICAgfSxcbiAgICBGbG93RW50aXRpZXNTZXJ2aWNlLFxuXG4gICAgLy8gVE9ETzogbW9ja3MgYmVsb3cgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIG1ham9yIHJlbGVhc2VcbiAgICB7XG4gICAgICBwcm92aWRlOiBIYW5kbGVTZXJ2aWNlLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKHtcbiAgICAgICAgbm9kZTogc2lnbmFsKG1vY2tNb2RlbCgpKSxcbiAgICAgICAgY3JlYXRlSGFuZGxlOiAoKSA9PiB7fSxcbiAgICAgICAgZGVzdHJveUhhbmRsZTogKCkgPT4ge30sXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJvb3RQb2ludGVyRGlyZWN0aXZlLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgcG9pbnRlck1vdmVtZW50JDogb2Yoe1xuICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgeTogMCxcbiAgICAgICAgICBtb3ZlbWVudFg6IDAsXG4gICAgICAgICAgbW92ZW1lbnRZOiAwLFxuICAgICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBudWxsLFxuICAgICAgICB9KSxcbiAgICAgICAgZG9jdW1lbnRQb2ludGVyRW5kJDogb2YobnVsbCksXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU3BhY2VQb2ludENvbnRleHREaXJlY3RpdmUsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBkb2N1bWVudFBvaW50VG9GbG93UG9pbnQ6IChwb2ludDogUG9pbnQpID0+IHBvaW50LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBzZWxlY3Q6ICgpID0+IHt9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIEZsb3dTZXR0aW5nc1NlcnZpY2UsXG4gICAgVmlld3BvcnRTZXJ2aWNlLFxuICBdO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdGVzdGluZy11dGlscy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQXNJbnRlcmZhY2U8VD4gPSBQaWNrPFQsIGtleW9mIFQ+O1xuIl19
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { HandleMockComponent } from './component-mocks/handle-mock.component';
|
|
2
|
-
import { MiniMapMockComponent } from './component-mocks/minimap-mock.component';
|
|
3
|
-
import { NodeToolbarMockComponent } from './component-mocks/node-toolbar-mock.component';
|
|
4
|
-
import { ResizableMockComponent } from './component-mocks/resizable-mock.component';
|
|
5
|
-
import { VflowMockComponent } from './component-mocks/vflow-mock.component';
|
|
6
|
-
import { ConnectionControllerMockDirective } from './directive-mocks/connection-controller-mock.directive';
|
|
7
|
-
import { DragHandleMockDirective } from './directive-mocks/drag-handle-mock.directive';
|
|
8
|
-
import { SelectableMockDirective } from './directive-mocks/selectable-mock.directive';
|
|
9
|
-
import { ConnectionTemplateMockDirective, EdgeLabelHtmlTemplateMockDirective, EdgeTemplateMockDirective, GroupNodeTemplateMockDirective, HandleTemplateMockDirective, NodeHtmlTemplateMockDirective, } from './directive-mocks/template-mock.directive';
|
|
10
|
-
export const VflowMocks = [
|
|
11
|
-
VflowMockComponent,
|
|
12
|
-
HandleMockComponent,
|
|
13
|
-
ResizableMockComponent,
|
|
14
|
-
SelectableMockDirective,
|
|
15
|
-
MiniMapMockComponent,
|
|
16
|
-
NodeToolbarMockComponent,
|
|
17
|
-
DragHandleMockDirective,
|
|
18
|
-
ConnectionControllerMockDirective,
|
|
19
|
-
NodeHtmlTemplateMockDirective,
|
|
20
|
-
GroupNodeTemplateMockDirective,
|
|
21
|
-
EdgeLabelHtmlTemplateMockDirective,
|
|
22
|
-
EdgeTemplateMockDirective,
|
|
23
|
-
ConnectionTemplateMockDirective,
|
|
24
|
-
HandleTemplateMockDirective,
|
|
25
|
-
];
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3ctbW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdGVzdGluZy11dGlscy92Zmxvdy1tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQiw2QkFBNkIsR0FDOUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlDQUFpQztJQUVqQyw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx5QkFBeUI7SUFDekIsK0JBQStCO0lBQy9CLDJCQUEyQjtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFuZGxlTW9ja0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50LW1vY2tzL2hhbmRsZS1tb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5pTWFwTW9ja0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50LW1vY2tzL21pbmltYXAtbW9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZVRvb2xiYXJNb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQtbW9ja3Mvbm9kZS10b29sYmFyLW1vY2suY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2l6YWJsZU1vY2tDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC1tb2Nrcy9yZXNpemFibGUtbW9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmZsb3dNb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQtbW9ja3MvdmZsb3ctbW9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkNvbnRyb2xsZXJNb2NrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUtbW9ja3MvY29ubmVjdGlvbi1jb250cm9sbGVyLW1vY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IERyYWdIYW5kbGVNb2NrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUtbW9ja3MvZHJhZy1oYW5kbGUtbW9jay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZU1vY2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS1tb2Nrcy9zZWxlY3RhYmxlLW1vY2suZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25UZW1wbGF0ZU1vY2tEaXJlY3RpdmUsXG4gIEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZU1vY2tEaXJlY3RpdmUsXG4gIEVkZ2VUZW1wbGF0ZU1vY2tEaXJlY3RpdmUsXG4gIEdyb3VwTm9kZVRlbXBsYXRlTW9ja0RpcmVjdGl2ZSxcbiAgSGFuZGxlVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBOb2RlSHRtbFRlbXBsYXRlTW9ja0RpcmVjdGl2ZSxcbn0gZnJvbSAnLi9kaXJlY3RpdmUtbW9ja3MvdGVtcGxhdGUtbW9jay5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgVmZsb3dNb2NrcyA9IFtcbiAgVmZsb3dNb2NrQ29tcG9uZW50LFxuICBIYW5kbGVNb2NrQ29tcG9uZW50LFxuICBSZXNpemFibGVNb2NrQ29tcG9uZW50LFxuICBTZWxlY3RhYmxlTW9ja0RpcmVjdGl2ZSxcbiAgTWluaU1hcE1vY2tDb21wb25lbnQsXG4gIE5vZGVUb29sYmFyTW9ja0NvbXBvbmVudCxcbiAgRHJhZ0hhbmRsZU1vY2tEaXJlY3RpdmUsXG4gIENvbm5lY3Rpb25Db250cm9sbGVyTW9ja0RpcmVjdGl2ZSxcblxuICBOb2RlSHRtbFRlbXBsYXRlTW9ja0RpcmVjdGl2ZSxcbiAgR3JvdXBOb2RlVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBFZGdlTGFiZWxIdG1sVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBFZGdlVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBDb25uZWN0aW9uVGVtcGxhdGVNb2NrRGlyZWN0aXZlLFxuICBIYW5kbGVUZW1wbGF0ZU1vY2tEaXJlY3RpdmUsXG5dIGFzIGNvbnN0O1xuIl19
|
|
File without changes
|
|
File without changes
|