ngx-vflow 1.12.0 → 1.13.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/node/node.component.mjs +3 -3
- package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +3 -3
- package/esm2022/lib/vflow/interfaces/edge.interface.mjs +1 -1
- package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +60 -4
- package/esm2022/lib/vflow/models/edge.model.mjs +68 -19
- package/esm2022/lib/vflow/models/handle.model.mjs +9 -9
- package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +6 -2
- package/esm2022/lib/vflow/services/handle.service.mjs +1 -1
- package/esm2022/testing/component-mocks/handle-mock.component.mjs +4 -2
- package/fesm2022/ngx-vflow-testing.mjs +3 -1
- package/fesm2022/ngx-vflow-testing.mjs.map +1 -1
- package/fesm2022/ngx-vflow.mjs +142 -33
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/interfaces/edge.interface.d.ts +1 -0
- package/lib/vflow/models/edge.model.d.ts +5 -0
- package/lib/vflow/models/handle.model.d.ts +1 -1
- package/lib/vflow/public-components/handle/handle.component.d.ts +4 -2
- package/lib/vflow/services/handle.service.d.ts +3 -1
- package/package.json +1 -1
- package/testing/component-mocks/handle-mock.component.d.ts +4 -2
|
@@ -69,17 +69,22 @@ export class EdgeModel {
|
|
|
69
69
|
});
|
|
70
70
|
this.sourceHandle = extendedComputed((previousHandle) => {
|
|
71
71
|
let handle = null;
|
|
72
|
-
if (this.
|
|
73
|
-
handle =
|
|
74
|
-
this.source()
|
|
75
|
-
?.handles()
|
|
76
|
-
.find((handle) => handle.rawHandle.id === this.edge.sourceHandle) ?? null;
|
|
72
|
+
if (this.floating) {
|
|
73
|
+
handle = this.closestHandles().sourceHandle;
|
|
77
74
|
}
|
|
78
75
|
else {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
if (this.edge.sourceHandle) {
|
|
77
|
+
handle =
|
|
78
|
+
this.source()
|
|
79
|
+
?.handles()
|
|
80
|
+
.find((handle) => handle.rawHandle.id === this.edge.sourceHandle) ?? null;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
handle =
|
|
84
|
+
this.source()
|
|
85
|
+
?.handles()
|
|
86
|
+
.find((handle) => handle.rawHandle.type === 'source') ?? null;
|
|
87
|
+
}
|
|
83
88
|
}
|
|
84
89
|
// In case of virtual scrolling, if the node is scrolled out of view the handle may disappear
|
|
85
90
|
// which could lead to the edge not being rendered
|
|
@@ -92,17 +97,22 @@ export class EdgeModel {
|
|
|
92
97
|
});
|
|
93
98
|
this.targetHandle = extendedComputed((previousHandle) => {
|
|
94
99
|
let handle = null;
|
|
95
|
-
if (this.
|
|
96
|
-
handle =
|
|
97
|
-
this.target()
|
|
98
|
-
?.handles()
|
|
99
|
-
.find((handle) => handle.rawHandle.id === this.edge.targetHandle) ?? null;
|
|
100
|
+
if (this.floating) {
|
|
101
|
+
handle = this.closestHandles().targetHandle;
|
|
100
102
|
}
|
|
101
103
|
else {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
if (this.edge.targetHandle) {
|
|
105
|
+
handle =
|
|
106
|
+
this.target()
|
|
107
|
+
?.handles()
|
|
108
|
+
.find((handle) => handle.rawHandle.id === this.edge.targetHandle) ?? null;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
handle =
|
|
112
|
+
this.target()
|
|
113
|
+
?.handles()
|
|
114
|
+
.find((handle) => handle.rawHandle.type === 'target') ?? null;
|
|
115
|
+
}
|
|
106
116
|
}
|
|
107
117
|
// In case of virtual scrolling, if the node is scrolled out of view the handle may disappear
|
|
108
118
|
// which could lead to the edge not being rendered
|
|
@@ -113,6 +123,44 @@ export class EdgeModel {
|
|
|
113
123
|
}
|
|
114
124
|
return handle;
|
|
115
125
|
});
|
|
126
|
+
this.closestHandles = computed(() => {
|
|
127
|
+
const source = this.source();
|
|
128
|
+
const target = this.target();
|
|
129
|
+
if (!source || !target) {
|
|
130
|
+
return { sourceHandle: null, targetHandle: null };
|
|
131
|
+
}
|
|
132
|
+
// Get all source handles from source node
|
|
133
|
+
const sourceHandles = this.flowEntitiesService.connection().mode === 'strict'
|
|
134
|
+
? source.handles().filter((h) => h.rawHandle.type === 'source')
|
|
135
|
+
: source.handles();
|
|
136
|
+
// Get all target handles from target node
|
|
137
|
+
const targetHandles = this.flowEntitiesService.connection().mode === 'strict'
|
|
138
|
+
? target.handles().filter((h) => h.rawHandle.type === 'target')
|
|
139
|
+
: target.handles();
|
|
140
|
+
if (sourceHandles.length === 0 || targetHandles.length === 0) {
|
|
141
|
+
return { sourceHandle: null, targetHandle: null };
|
|
142
|
+
}
|
|
143
|
+
let minDistance = Infinity;
|
|
144
|
+
let closestSourceHandle = null;
|
|
145
|
+
let closestTargetHandle = null;
|
|
146
|
+
// Check all combinations of source and target handles
|
|
147
|
+
for (const sourceHandle of sourceHandles) {
|
|
148
|
+
for (const targetHandle of targetHandles) {
|
|
149
|
+
const sourcePoint = sourceHandle.pointAbsolute();
|
|
150
|
+
const targetPoint = targetHandle.pointAbsolute();
|
|
151
|
+
const distance = Math.sqrt(Math.pow(sourcePoint.x - targetPoint.x, 2) + Math.pow(sourcePoint.y - targetPoint.y, 2));
|
|
152
|
+
if (distance < minDistance) {
|
|
153
|
+
minDistance = distance;
|
|
154
|
+
closestSourceHandle = sourceHandle;
|
|
155
|
+
closestTargetHandle = targetHandle;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
sourceHandle: closestSourceHandle,
|
|
161
|
+
targetHandle: closestTargetHandle,
|
|
162
|
+
};
|
|
163
|
+
});
|
|
116
164
|
/**
|
|
117
165
|
* TODO: not reactive
|
|
118
166
|
*/
|
|
@@ -141,6 +189,7 @@ export class EdgeModel {
|
|
|
141
189
|
this.type = edge.type ?? 'default';
|
|
142
190
|
this.curve = edge.curve ?? 'bezier';
|
|
143
191
|
this.reconnectable = edge.reconnectable ?? false;
|
|
192
|
+
this.floating = edge.floating ?? false;
|
|
144
193
|
if (edge.edgeLabels?.start)
|
|
145
194
|
this.edgeLabels.start = new EdgeLabelModel(edge.edgeLabels.start);
|
|
146
195
|
if (edge.edgeLabels?.center)
|
|
@@ -161,4 +210,4 @@ export class EdgeModel {
|
|
|
161
210
|
};
|
|
162
211
|
}
|
|
163
212
|
}
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRFLE1BQU0sT0FBTyxTQUFTO0lBNkpwQixZQUFtQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQTVKWix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU1RCxXQUFNLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUNsRCxXQUFNLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUtsRCxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FB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QUFHO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBbUIsRUFBRSxNQUFtQjtRQUNuRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3pDLGNBQWMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7WUFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7U0FDOUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRnZUxhYmVsUG9zaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VkZ2UtbGFiZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVkZ2UsIEN1cnZlLCBFZGdlVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZUxhYmVsTW9kZWwgfSBmcm9tICcuL2VkZ2UtbGFiZWwubW9kZWwnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi9ub2RlLm1vZGVsJztcbmltcG9ydCB7IHN0cmFpZ2h0UGF0aCB9IGZyb20gJy4uL21hdGgvZWRnZS1wYXRoL3N0cmFpZ2gtcGF0aCc7XG5pbXBvcnQgeyBiZXppZXJQYXRoIH0gZnJvbSAnLi4vbWF0aC9lZGdlLXBhdGgvYmV6aWVyLXBhdGgnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJztcbmltcG9ydCB7IHNtb290aFN0ZXBQYXRoIH0gZnJvbSAnLi4vbWF0aC9lZGdlLXBhdGgvc21vb3RoLXN0ZXAtcGF0aCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgQ29udGV4dGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbnRleHRhYmxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlQ29udGV4dCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGVtcGxhdGUtY29udGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuL2hhbmRsZS5tb2RlbCc7XG5pbXBvcnQgeyBDdXJ2ZUZhY3RvcnlQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2N1cnZlLWZhY3RvcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZXh0ZW5kZWRDb21wdXRlZCB9IGZyb20gJy4uL3V0aWxzL3NpZ25hbHMvZXh0ZW5kZWQtY29tcHV0ZWQnO1xuXG5leHBvcnQgY2xhc3MgRWRnZU1vZGVsIGltcGxlbWVudHMgRmxvd0VudGl0eSwgQ29udGV4dGFibGU8RWRnZUNvbnRleHQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmbG93RW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBzb3VyY2UgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgdGFyZ2V0ID0gc2lnbmFsPE5vZGVNb2RlbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHVibGljIGN1cnZlOiBDdXJ2ZTtcbiAgcHVibGljIHR5cGU6IEVkZ2VUeXBlO1xuICBwdWJsaWMgcmVjb25uZWN0YWJsZTogYm9vbGVhbiB8ICdzb3VyY2UnIHwgJ3RhcmdldCc7XG5cbiAgcHVibGljIHNlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKTtcblxuICBwdWJsaWMgcmVuZGVyT3JkZXIgPSBzaWduYWwoMCk7XG5cbiAgcHVibGljIGRldGFjaGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQoKTtcblxuICAgIGlmICghc291cmNlIHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCBleGlzdHNTb3VyY2VIYW5kbGUgPSBmYWxzZTtcbiAgICBsZXQgZXhpc3RzVGFyZ2V0SGFuZGxlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISFzb3VyY2UuaGFuZGxlcygpLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnNvdXJjZUhhbmRsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0c1NvdXJjZUhhbmRsZSA9ICEhc291cmNlLmhhbmRsZXMoKS5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3NvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICBleGlzdHNUYXJnZXRIYW5kbGUgPSAhIXRhcmdldC5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLmlkID09PSB0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzVGFyZ2V0SGFuZGxlID0gISF0YXJnZXQuaGFuZGxlcygpLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAndGFyZ2V0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICFleGlzdHNTb3VyY2VIYW5kbGUgfHwgIWV4aXN0c1RhcmdldEhhbmRsZTtcbiAgfSk7XG5cbiAgcHVibGljIGRldGFjaGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRldGFjaGVkKTtcblxuICBwdWJsaWMgcGF0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZUhhbmRsZSgpO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0SGFuZGxlKCk7XG5cbiAgICAvLyBUT0RPOiBkb24ndCBsaWtlIHRoaXNcbiAgICBpZiAoIXNvdXJjZSB8fCAhdGFyZ2V0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgbGFiZWxQb2ludHM6IHtcbiAgICAgICAgICBzdGFydDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgY2VudGVyOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgICBlbmQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFBhdGhGYWN0b3J5UGFyYW1zKHNvdXJjZSwgdGFyZ2V0KTtcblxuICAgIHN3aXRjaCAodGhpcy5jdXJ2ZSkge1xuICAgICAgY2FzZSAnc3RyYWlnaHQnOlxuICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHBhcmFtcyk7XG4gICAgICBjYXNlICdiZXppZXInOlxuICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChwYXJhbXMpO1xuICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICByZXR1cm4gc21vb3RoU3RlcFBhdGgocGFyYW1zKTtcbiAgICAgIGNhc2UgJ3N0ZXAnOlxuICAgICAgICByZXR1cm4gc21vb3RoU3RlcFBhdGgocGFyYW1zLCAwKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnZlKHBhcmFtcyk7XG4gICAgfVxuICB9KTtcblxuICBwdWJsaWMgc291cmNlSGFuZGxlID0gZXh0ZW5kZWRDb21wdXRlZDxIYW5kbGVNb2RlbCB8IG51bGw+KChwcmV2aW91c0hhbmRsZSkgPT4ge1xuICAgIGxldCBoYW5kbGU6IEhhbmRsZU1vZGVsIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgaGFuZGxlID1cbiAgICAgICAgdGhpcy5zb3VyY2UoKVxuICAgICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgICAgLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkgPz8gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlID1cbiAgICAgICAgdGhpcy5zb3VyY2UoKVxuICAgICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgICAgLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJykgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJbiBjYXNlIG9mIHZpcnR1YWwgc2Nyb2xsaW5nLCBpZiB0aGUgbm9kZSBpcyBzY3JvbGxlZCBvdXQgb2YgdmlldyB0aGUgaGFuZGxlIG1heSBkaXNhcHBlYXJcbiAgICAvLyB3aGljaCBjb3VsZCBsZWFkIHRvIHRoZSBlZGdlIG5vdCBiZWluZyByZW5kZXJlZFxuICAgIC8vIHNvIHdlIHJldHVybiB0aGUgcHJldmlvdXMgaGFuZGxlIGlmIHRoZSBjdXJyZW50IG9uZSBpcyBudWxsXG4gICAgLy8gVE9ETzogY2hlY2sgaWYgdGhpcyBicmVha3MgYW55dGhpbmdcbiAgICBpZiAoaGFuZGxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gcHJldmlvdXNIYW5kbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhbmRsZTtcbiAgfSk7XG5cbiAgcHVibGljIHRhcmdldEhhbmRsZSA9IGV4dGVuZGVkQ29tcHV0ZWQ8SGFuZGxlTW9kZWwgfCBudWxsPigocHJldmlvdXNIYW5kbGUpID0+IHtcbiAgICBsZXQgaGFuZGxlOiBIYW5kbGVNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgIGhhbmRsZSA9XG4gICAgICAgIHRoaXMudGFyZ2V0KClcbiAgICAgICAgICA/LmhhbmRsZXMoKVxuICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpID8/IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZSA9XG4gICAgICAgIHRoaXMudGFyZ2V0KClcbiAgICAgICAgICA/LmhhbmRsZXMoKVxuICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpID8/IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSW4gY2FzZSBvZiB2aXJ0dWFsIHNjcm9sbGluZywgaWYgdGhlIG5vZGUgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgdGhlIGhhbmRsZSBtYXkgZGlzYXBwZWFyXG4gICAgLy8gd2hpY2ggY291bGQgbGVhZCB0byB0aGUgZWRnZSBub3QgYmVpbmcgcmVuZGVyZWRcbiAgICAvLyBzbyB3ZSByZXR1cm4gdGhlIHByZXZpb3VzIGhhbmRsZSBpZiB0aGUgY3VycmVudCBvbmUgaXMgbnVsbFxuICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgYnJlYWtzIGFueXRoaW5nXG4gICAgaWYgKGhhbmRsZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHByZXZpb3VzSGFuZGxlO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGU7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBUT0RPOiBub3QgcmVhY3RpdmVcbiAgICovXG4gIHB1YmxpYyBtYXJrZXJTdGFydFVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLmVkZ2UubWFya2Vycz8uc3RhcnQ7XG5cbiAgICByZXR1cm4gbWFya2VyID8gYHVybCgjJHtoYXNoQ29kZShKU09OLnN0cmluZ2lmeShtYXJrZXIpKX0pYCA6ICcnO1xuICB9KTtcblxuICAvKipcbiAgICogVE9ETzogbm90IHJlYWN0aXZlXG4gICAqL1xuICBwdWJsaWMgbWFya2VyRW5kVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZWRnZS5tYXJrZXJzPy5lbmQ7XG5cbiAgICByZXR1cm4gbWFya2VyID8gYHVybCgjJHtoYXNoQ29kZShKU09OLnN0cmluZ2lmeShtYXJrZXIpKX0pYCA6ICcnO1xuICB9KTtcblxuICBwdWJsaWMgY29udGV4dCA9IHtcbiAgICAkaW1wbGljaXQ6IHtcbiAgICAgIC8vIFRPRE86IGNoZWNrIGlmIGVkZ2UgY291bGQgY2hhbmdlXG4gICAgICBlZGdlOiB0aGlzLmVkZ2UsXG4gICAgICBwYXRoOiBjb21wdXRlZCgoKSA9PiB0aGlzLnBhdGgoKS5wYXRoKSxcbiAgICAgIG1hcmtlclN0YXJ0OiB0aGlzLm1hcmtlclN0YXJ0VXJsLFxuICAgICAgbWFya2VyRW5kOiB0aGlzLm1hcmtlckVuZFVybCxcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLmFzUmVhZG9ubHkoKSxcbiAgICB9LFxuICB9O1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxzOiB7IFtwb3NpdGlvbiBpbiBFZGdlTGFiZWxQb3NpdGlvbl0/OiBFZGdlTGFiZWxNb2RlbCB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVkZ2U6IEVkZ2UpIHtcbiAgICB0aGlzLnR5cGUgPSBlZGdlLnR5cGUgPz8gJ2RlZmF1bHQnO1xuICAgIHRoaXMuY3VydmUgPSBlZGdlLmN1cnZlID8/ICdiZXppZXInO1xuICAgIHRoaXMucmVjb25uZWN0YWJsZSA9IGVkZ2UucmVjb25uZWN0YWJsZSA/PyBmYWxzZTtcblxuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LnN0YXJ0KSB0aGlzLmVkZ2VMYWJlbHMuc3RhcnQgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLnN0YXJ0KTtcbiAgICBpZiAoZWRnZS5lZGdlTGFiZWxzPy5jZW50ZXIpIHRoaXMuZWRnZUxhYmVscy5jZW50ZXIgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLmNlbnRlcik7XG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uZW5kKSB0aGlzLmVkZ2VMYWJlbHMuZW5kID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5lbmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXRoRmFjdG9yeVBhcmFtcyhzb3VyY2U6IEhhbmRsZU1vZGVsLCB0YXJnZXQ6IEhhbmRsZU1vZGVsKTogQ3VydmVGYWN0b3J5UGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kZTogJ2VkZ2UnLFxuICAgICAgZWRnZTogdGhpcy5lZGdlLFxuICAgICAgc291cmNlUG9pbnQ6IHNvdXJjZS5wb2ludEFic29sdXRlKCksXG4gICAgICB0YXJnZXRQb2ludDogdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSxcbiAgICAgIHNvdXJjZVBvc2l0aW9uOiBzb3VyY2UucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgdGFyZ2V0UG9zaXRpb246IHRhcmdldC5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICBhbGxFZGdlczogdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLnJhd0VkZ2VzKCksXG4gICAgICBhbGxOb2RlczogdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLnJhd05vZGVzKCksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRFLE1BQU0sT0FBTyxTQUFTO0lBeU5wQixZQUFtQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXhOWix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU1RCxXQUFNLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUNsRCxXQUFNLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQU1sRCxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FB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QUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUc7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFtQixFQUFFLE1BQW1CO1FBQ25FLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFdBQVcsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ25DLFdBQVcsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDekMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtZQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtTQUM5QyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGdlTGFiZWxQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRnZS1sYWJlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRWRnZSwgQ3VydmUsIEVkZ2VUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlTGFiZWxNb2RlbCB9IGZyb20gJy4vZWRnZS1sYWJlbC5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSAnLi4vbWF0aC9lZGdlLXBhdGgvc3RyYWlnaC1wYXRoJztcbmltcG9ydCB7IGJlemllclBhdGggfSBmcm9tICcuLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgc21vb3RoU3RlcFBhdGggfSBmcm9tICcuLi9tYXRoL2VkZ2UtcGF0aC9zbW9vdGgtc3RlcC1wYXRoJztcbmltcG9ydCB7IGhhc2hDb2RlIH0gZnJvbSAnLi4vdXRpbHMvaGFzaCc7XG5pbXBvcnQgeyBDb250ZXh0YWJsZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29udGV4dGFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVkZ2VDb250ZXh0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90ZW1wbGF0ZS1jb250ZXh0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4vaGFuZGxlLm1vZGVsJztcbmltcG9ydCB7IEN1cnZlRmFjdG9yeVBhcmFtcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY3VydmUtZmFjdG9yeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBleHRlbmRlZENvbXB1dGVkIH0gZnJvbSAnLi4vdXRpbHMvc2lnbmFscy9leHRlbmRlZC1jb21wdXRlZCc7XG5cbmV4cG9ydCBjbGFzcyBFZGdlTW9kZWwgaW1wbGVtZW50cyBGbG93RW50aXR5LCBDb250ZXh0YWJsZTxFZGdlQ29udGV4dD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSk7XG5cbiAgcHVibGljIHNvdXJjZSA9IHNpZ25hbDxOb2RlTW9kZWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyB0YXJnZXQgPSBzaWduYWw8Tm9kZU1vZGVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgY3VydmU6IEN1cnZlO1xuICBwdWJsaWMgdHlwZTogRWRnZVR5cGU7XG4gIHB1YmxpYyByZWNvbm5lY3RhYmxlOiBib29sZWFuIHwgJ3NvdXJjZScgfCAndGFyZ2V0JztcbiAgcHVibGljIGZsb2F0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZWxlY3RlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyBzZWxlY3RlZCQgPSB0b09ic2VydmFibGUodGhpcy5zZWxlY3RlZCk7XG5cbiAgcHVibGljIHJlbmRlck9yZGVyID0gc2lnbmFsKDApO1xuXG4gIHB1YmxpYyBkZXRhY2hlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0KCk7XG5cbiAgICBpZiAoIXNvdXJjZSB8fCAhdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgZXhpc3RzU291cmNlSGFuZGxlID0gZmFsc2U7XG4gICAgbGV0IGV4aXN0c1RhcmdldEhhbmRsZSA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpIHtcbiAgICAgIGV4aXN0c1NvdXJjZUhhbmRsZSA9ICEhc291cmNlLmhhbmRsZXMoKS5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdHNTb3VyY2VIYW5kbGUgPSAhIXNvdXJjZS5oYW5kbGVzKCkuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICdzb3VyY2UnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGdlLnRhcmdldEhhbmRsZSkge1xuICAgICAgZXhpc3RzVGFyZ2V0SGFuZGxlID0gISF0YXJnZXQuaGFuZGxlcygpLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnRhcmdldEhhbmRsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0c1RhcmdldEhhbmRsZSA9ICEhdGFyZ2V0LmhhbmRsZXMoKS5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpO1xuICAgIH1cblxuICAgIHJldHVybiAhZXhpc3RzU291cmNlSGFuZGxlIHx8ICFleGlzdHNUYXJnZXRIYW5kbGU7XG4gIH0pO1xuXG4gIHB1YmxpYyBkZXRhY2hlZCQgPSB0b09ic2VydmFibGUodGhpcy5kZXRhY2hlZCk7XG5cbiAgcHVibGljIHBhdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2VIYW5kbGUoKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldEhhbmRsZSgpO1xuXG4gICAgLy8gVE9ETzogZG9uJ3QgbGlrZSB0aGlzXG4gICAgaWYgKCFzb3VyY2UgfHwgIXRhcmdldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGxhYmVsUG9pbnRzOiB7XG4gICAgICAgICAgc3RhcnQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgIGNlbnRlcjogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgZW5kOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRQYXRoRmFjdG9yeVBhcmFtcyhzb3VyY2UsIHRhcmdldCk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuY3VydmUpIHtcbiAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHN0cmFpZ2h0UGF0aChwYXJhbXMpO1xuICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgcmV0dXJuIGJlemllclBhdGgocGFyYW1zKTtcbiAgICAgIGNhc2UgJ3Ntb290aC1zdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHBhcmFtcyk7XG4gICAgICBjYXNlICdzdGVwJzpcbiAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHBhcmFtcywgMCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5jdXJ2ZShwYXJhbXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHVibGljIHNvdXJjZUhhbmRsZSA9IGV4dGVuZGVkQ29tcHV0ZWQ8SGFuZGxlTW9kZWwgfCBudWxsPigocHJldmlvdXNIYW5kbGUpID0+IHtcbiAgICBsZXQgaGFuZGxlOiBIYW5kbGVNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuZmxvYXRpbmcpIHtcbiAgICAgIGhhbmRsZSA9IHRoaXMuY2xvc2VzdEhhbmRsZXMoKS5zb3VyY2VIYW5kbGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICAgIGhhbmRsZSA9XG4gICAgICAgICAgdGhpcy5zb3VyY2UoKVxuICAgICAgICAgICAgPy5oYW5kbGVzKClcbiAgICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpID8/IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGUgPVxuICAgICAgICAgIHRoaXMuc291cmNlKClcbiAgICAgICAgICAgID8uaGFuZGxlcygpXG4gICAgICAgICAgICAuZmluZCgoaGFuZGxlKSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICdzb3VyY2UnKSA/PyBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEluIGNhc2Ugb2YgdmlydHVhbCBzY3JvbGxpbmcsIGlmIHRoZSBub2RlIGlzIHNjcm9sbGVkIG91dCBvZiB2aWV3IHRoZSBoYW5kbGUgbWF5IGRpc2FwcGVhclxuICAgIC8vIHdoaWNoIGNvdWxkIGxlYWQgdG8gdGhlIGVkZ2Ugbm90IGJlaW5nIHJlbmRlcmVkXG4gICAgLy8gc28gd2UgcmV0dXJuIHRoZSBwcmV2aW91cyBoYW5kbGUgaWYgdGhlIGN1cnJlbnQgb25lIGlzIG51bGxcbiAgICAvLyBUT0RPOiBjaGVjayBpZiB0aGlzIGJyZWFrcyBhbnl0aGluZ1xuICAgIGlmIChoYW5kbGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBwcmV2aW91c0hhbmRsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlO1xuICB9KTtcblxuICBwdWJsaWMgdGFyZ2V0SGFuZGxlID0gZXh0ZW5kZWRDb21wdXRlZDxIYW5kbGVNb2RlbCB8IG51bGw+KChwcmV2aW91c0hhbmRsZSkgPT4ge1xuICAgIGxldCBoYW5kbGU6IEhhbmRsZU1vZGVsIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5mbG9hdGluZykge1xuICAgICAgaGFuZGxlID0gdGhpcy5jbG9zZXN0SGFuZGxlcygpLnRhcmdldEhhbmRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpIHtcbiAgICAgICAgaGFuZGxlID1cbiAgICAgICAgICB0aGlzLnRhcmdldCgpXG4gICAgICAgICAgICA/LmhhbmRsZXMoKVxuICAgICAgICAgICAgLmZpbmQoKGhhbmRsZSkgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnRhcmdldEhhbmRsZSkgPz8gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZSA9XG4gICAgICAgICAgdGhpcy50YXJnZXQoKVxuICAgICAgICAgICAgPy5oYW5kbGVzKClcbiAgICAgICAgICAgIC5maW5kKChoYW5kbGUpID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpID8/IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW4gY2FzZSBvZiB2aXJ0dWFsIHNjcm9sbGluZywgaWYgdGhlIG5vZGUgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgdGhlIGhhbmRsZSBtYXkgZGlzYXBwZWFyXG4gICAgLy8gd2hpY2ggY291bGQgbGVhZCB0byB0aGUgZWRnZSBub3QgYmVpbmcgcmVuZGVyZWRcbiAgICAvLyBzbyB3ZSByZXR1cm4gdGhlIHByZXZpb3VzIGhhbmRsZSBpZiB0aGUgY3VycmVudCBvbmUgaXMgbnVsbFxuICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgYnJlYWtzIGFueXRoaW5nXG4gICAgaWYgKGhhbmRsZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHByZXZpb3VzSGFuZGxlO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGU7XG4gIH0pO1xuXG4gIHB1YmxpYyBjbG9zZXN0SGFuZGxlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0KCk7XG5cbiAgICBpZiAoIXNvdXJjZSB8fCAhdGFyZ2V0KSB7XG4gICAgICByZXR1cm4geyBzb3VyY2VIYW5kbGU6IG51bGwsIHRhcmdldEhhbmRsZTogbnVsbCB9O1xuICAgIH1cblxuICAgIC8vIEdldCBhbGwgc291cmNlIGhhbmRsZXMgZnJvbSBzb3VyY2Ugbm9kZVxuICAgIGNvbnN0IHNvdXJjZUhhbmRsZXMgPVxuICAgICAgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS5tb2RlID09PSAnc3RyaWN0J1xuICAgICAgICA/IHNvdXJjZS5oYW5kbGVzKCkuZmlsdGVyKChoKSA9PiBoLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJylcbiAgICAgICAgOiBzb3VyY2UuaGFuZGxlcygpO1xuICAgIC8vIEdldCBhbGwgdGFyZ2V0IGhhbmRsZXMgZnJvbSB0YXJnZXQgbm9kZVxuICAgIGNvbnN0IHRhcmdldEhhbmRsZXMgPVxuICAgICAgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS5tb2RlID09PSAnc3RyaWN0J1xuICAgICAgICA/IHRhcmdldC5oYW5kbGVzKCkuZmlsdGVyKChoKSA9PiBoLnJhd0hhbmRsZS50eXBlID09PSAndGFyZ2V0JylcbiAgICAgICAgOiB0YXJnZXQuaGFuZGxlcygpO1xuXG4gICAgaWYgKHNvdXJjZUhhbmRsZXMubGVuZ3RoID09PSAwIHx8IHRhcmdldEhhbmRsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzb3VyY2VIYW5kbGU6IG51bGwsIHRhcmdldEhhbmRsZTogbnVsbCB9O1xuICAgIH1cblxuICAgIGxldCBtaW5EaXN0YW5jZSA9IEluZmluaXR5O1xuICAgIGxldCBjbG9zZXN0U291cmNlSGFuZGxlOiBIYW5kbGVNb2RlbCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjbG9zZXN0VGFyZ2V0SGFuZGxlOiBIYW5kbGVNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gQ2hlY2sgYWxsIGNvbWJpbmF0aW9ucyBvZiBzb3VyY2UgYW5kIHRhcmdldCBoYW5kbGVzXG4gICAgZm9yIChjb25zdCBzb3VyY2VIYW5kbGUgb2Ygc291cmNlSGFuZGxlcykge1xuICAgICAgZm9yIChjb25zdCB0YXJnZXRIYW5kbGUgb2YgdGFyZ2V0SGFuZGxlcykge1xuICAgICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gdGFyZ2V0SGFuZGxlLnBvaW50QWJzb2x1dGUoKTtcblxuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChcbiAgICAgICAgICBNYXRoLnBvdyhzb3VyY2VQb2ludC54IC0gdGFyZ2V0UG9pbnQueCwgMikgKyBNYXRoLnBvdyhzb3VyY2VQb2ludC55IC0gdGFyZ2V0UG9pbnQueSwgMiksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgICAgICBtaW5EaXN0YW5jZSA9IGRpc3RhbmNlO1xuICAgICAgICAgIGNsb3Nlc3RTb3VyY2VIYW5kbGUgPSBzb3VyY2VIYW5kbGU7XG4gICAgICAgICAgY2xvc2VzdFRhcmdldEhhbmRsZSA9IHRhcmdldEhhbmRsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2VIYW5kbGU6IGNsb3Nlc3RTb3VyY2VIYW5kbGUsXG4gICAgICB0YXJnZXRIYW5kbGU6IGNsb3Nlc3RUYXJnZXRIYW5kbGUsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFRPRE86IG5vdCByZWFjdGl2ZVxuICAgKi9cbiAgcHVibGljIG1hcmtlclN0YXJ0VXJsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZWRnZS5tYXJrZXJzPy5zdGFydDtcblxuICAgIHJldHVybiBtYXJrZXIgPyBgdXJsKCMke2hhc2hDb2RlKEpTT04uc3RyaW5naWZ5KG1hcmtlcikpfSlgIDogJyc7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBUT0RPOiBub3QgcmVhY3RpdmVcbiAgICovXG4gIHB1YmxpYyBtYXJrZXJFbmRVcmwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya2VyID0gdGhpcy5lZGdlLm1hcmtlcnM/LmVuZDtcblxuICAgIHJldHVybiBtYXJrZXIgPyBgdXJsKCMke2hhc2hDb2RlKEpTT04uc3RyaW5naWZ5KG1hcmtlcikpfSlgIDogJyc7XG4gIH0pO1xuXG4gIHB1YmxpYyBjb250ZXh0ID0ge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgLy8gVE9ETzogY2hlY2sgaWYgZWRnZSBjb3VsZCBjaGFuZ2VcbiAgICAgIGVkZ2U6IHRoaXMuZWRnZSxcbiAgICAgIHBhdGg6IGNvbXB1dGVkKCgpID0+IHRoaXMucGF0aCgpLnBhdGgpLFxuICAgICAgbWFya2VyU3RhcnQ6IHRoaXMubWFya2VyU3RhcnRVcmwsXG4gICAgICBtYXJrZXJFbmQ6IHRoaXMubWFya2VyRW5kVXJsLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQuYXNSZWFkb25seSgpLFxuICAgIH0sXG4gIH07XG5cbiAgcHVibGljIGVkZ2VMYWJlbHM6IHsgW3Bvc2l0aW9uIGluIEVkZ2VMYWJlbFBvc2l0aW9uXT86IEVkZ2VMYWJlbE1vZGVsIH0gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWRnZTogRWRnZSkge1xuICAgIHRoaXMudHlwZSA9IGVkZ2UudHlwZSA/PyAnZGVmYXVsdCc7XG4gICAgdGhpcy5jdXJ2ZSA9IGVkZ2UuY3VydmUgPz8gJ2Jlemllcic7XG4gICAgdGhpcy5yZWNvbm5lY3RhYmxlID0gZWRnZS5yZWNvbm5lY3RhYmxlID8/IGZhbHNlO1xuICAgIHRoaXMuZmxvYXRpbmcgPSBlZGdlLmZsb2F0aW5nID8/IGZhbHNlO1xuXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uc3RhcnQpIHRoaXMuZWRnZUxhYmVscy5zdGFydCA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuc3RhcnQpO1xuICAgIGlmIChlZGdlLmVkZ2VMYWJlbHM/LmNlbnRlcikgdGhpcy5lZGdlTGFiZWxzLmNlbnRlciA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuY2VudGVyKTtcbiAgICBpZiAoZWRnZS5lZGdlTGFiZWxzPy5lbmQpIHRoaXMuZWRnZUxhYmVscy5lbmQgPSBuZXcgRWRnZUxhYmVsTW9kZWwoZWRnZS5lZGdlTGFiZWxzLmVuZCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhGYWN0b3J5UGFyYW1zKHNvdXJjZTogSGFuZGxlTW9kZWwsIHRhcmdldDogSGFuZGxlTW9kZWwpOiBDdXJ2ZUZhY3RvcnlQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBtb2RlOiAnZWRnZScsXG4gICAgICBlZGdlOiB0aGlzLmVkZ2UsXG4gICAgICBzb3VyY2VQb2ludDogc291cmNlLnBvaW50QWJzb2x1dGUoKSxcbiAgICAgIHRhcmdldFBvaW50OiB0YXJnZXQucG9pbnRBYnNvbHV0ZSgpLFxuICAgICAgc291cmNlUG9zaXRpb246IHNvdXJjZS5yYXdIYW5kbGUucG9zaXRpb24sXG4gICAgICB0YXJnZXRQb3NpdGlvbjogdGFyZ2V0LnJhd0hhbmRsZS5wb3NpdGlvbixcbiAgICAgIGFsbEVkZ2VzOiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UucmF3RWRnZXMoKSxcbiAgICAgIGFsbE5vZGVzOiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UucmF3Tm9kZXMoKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -37,23 +37,23 @@ export class HandleModel {
|
|
|
37
37
|
switch (this.rawHandle.position) {
|
|
38
38
|
case 'left':
|
|
39
39
|
return {
|
|
40
|
-
x:
|
|
41
|
-
y: this.hostPosition().y + this.hostSize().height / 2,
|
|
40
|
+
x: -this.rawHandle.userOffsetX,
|
|
41
|
+
y: -this.rawHandle.userOffsetY + this.hostPosition().y + this.hostSize().height / 2,
|
|
42
42
|
};
|
|
43
43
|
case 'right':
|
|
44
44
|
return {
|
|
45
|
-
x: this.parentNode.size().width,
|
|
46
|
-
y: this.hostPosition().y + this.hostSize().height / 2,
|
|
45
|
+
x: -this.rawHandle.userOffsetX + this.parentNode.size().width,
|
|
46
|
+
y: -this.rawHandle.userOffsetY + this.hostPosition().y + this.hostSize().height / 2,
|
|
47
47
|
};
|
|
48
48
|
case 'top':
|
|
49
49
|
return {
|
|
50
|
-
x: this.hostPosition().x + this.hostSize().width / 2,
|
|
51
|
-
y:
|
|
50
|
+
x: -this.rawHandle.userOffsetX + this.hostPosition().x + this.hostSize().width / 2,
|
|
51
|
+
y: -this.rawHandle.userOffsetY,
|
|
52
52
|
};
|
|
53
53
|
case 'bottom':
|
|
54
54
|
return {
|
|
55
|
-
x: this.hostPosition().x + this.hostSize().width / 2,
|
|
56
|
-
y: this.parentNode.size().height,
|
|
55
|
+
x: -this.rawHandle.userOffsetX + this.hostPosition().x + this.hostSize().width / 2,
|
|
56
|
+
y: -this.rawHandle.userOffsetY + this.parentNode.size().height,
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
});
|
|
@@ -95,4 +95,4 @@ export class HandleModel {
|
|
|
95
95
|
return { width: 0, height: 0 };
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBMkZ0QixZQUNTLFNBQXFCLEVBQ3JCLFVBQXFCO1FBRHJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQTVGZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQzs7O1dBR0c7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ2hDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ2xDLENBQUMsQ0FBQztRQUVJLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxPQUFPO2dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzth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LEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVIYW5kbGUgfSBmcm9tICcuLi9zZXJ2aWNlcy9oYW5kbGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgU3ViamVjdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IHR5cGUgSGFuZGxlU3RhdGUgPSAndmFsaWQnIHwgJ2ludmFsaWQnIHwgJ2lkbGUnO1xuXG5leHBvcnQgY2xhc3MgSGFuZGxlTW9kZWwge1xuICBwdWJsaWMgcmVhZG9ubHkgc3Ryb2tlV2lkdGggPSAyO1xuXG4gIC8qKlxuICAgKiBQcmUtY29tcHV0ZWQgc2l6ZSBmb3IgZGVmYXVsdCBoYW5kbGUsIGNoYW5nZWQgZHluYW1pY2FsbHlcbiAgICogZm9yIGN1c3RvbSBoYW5kbGVzXG4gICAqL1xuICBwdWJsaWMgc2l6ZSA9IHNpZ25hbCh7XG4gICAgd2lkdGg6IDEwICsgMiAqIHRoaXMuc3Ryb2tlV2lkdGgsXG4gICAgaGVpZ2h0OiAxMCArIDIgKiB0aGlzLnN0cm9rZVdpZHRoLFxuICB9KTtcblxuICBwdWJsaWMgcG9pbnRBYnNvbHV0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogdGhpcy5wYXJlbnROb2RlLmdsb2JhbFBvaW50KCkueCArIHRoaXMuaG9zdE9mZnNldCgpLnggKyB0aGlzLnNpemVPZmZzZXQoKS54LFxuICAgICAgeTogdGhpcy5wYXJlbnROb2RlLmdsb2JhbFBvaW50KCkueSArIHRoaXMuaG9zdE9mZnNldCgpLnkgKyB0aGlzLnNpemVPZmZzZXQoKS55LFxuICAgIH07XG4gIH0pO1xuXG4gIHB1YmxpYyBzdGF0ZSA9IHNpZ25hbDxIYW5kbGVTdGF0ZT4oJ2lkbGUnKTtcblxuICBwcml2YXRlIHVwZGF0ZUhvc3RTaXplQW5kUG9zaXRpb24kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBUT0RPOiBmb3Igc29tZSByZWFzb24gdG9MYXp5U2lnbmFsIGJyZWFrcyB1bml0IHRlc3RzLCBzbyB3ZSB1c2UgdG9TaWduYWwgaGVyZVxuICBwcml2YXRlIGhvc3RTaXplID0gdG9TaWduYWwodGhpcy51cGRhdGVIb3N0U2l6ZUFuZFBvc2l0aW9uJC5waXBlKG1hcCgoKSA9PiB0aGlzLmdldEhvc3RTaXplKCkpKSwge1xuICAgIGluaXRpYWxWYWx1ZTogeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sXG4gIH0pO1xuXG4gIC8vIFRPRE86IGZvciBzb21lIHJlYXNvbiB0b0xhenlTaWduYWwgYnJlYWtzIHVuaXQgdGVzdHMsIHNvIHdlIHVzZSB0b1NpZ25hbCBoZXJlXG4gIHByaXZhdGUgaG9zdFBvc2l0aW9uID0gdG9TaWduYWwoXG4gICAgdGhpcy51cGRhdGVIb3N0U2l6ZUFuZFBvc2l0aW9uJC5waXBlKFxuICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgIHg6IHRoaXMuaG9zdFJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5ob3N0UmVmZXJlbmNlLm9mZnNldExlZnQgOiAwLCAvLyBmb3Igbm93IGp1c3QgMCBmb3IgZ3JvdXAgbm9kZXNcbiAgICAgICAgeTogdGhpcy5ob3N0UmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyB0aGlzLmhvc3RSZWZlcmVuY2Uub2Zmc2V0VG9wIDogMCwgLy8gZm9yIG5vdyBqdXN0IDAgZm9yIGdyb3VwIG5vZGVzXG4gICAgICB9KSksXG4gICAgKSxcbiAgICB7XG4gICAgICBpbml0aWFsVmFsdWU6IHsgeDogMCwgeTogMCB9LFxuICAgIH0sXG4gICk7XG5cbiAgcHVibGljIGhvc3RPZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogMCxcbiAgICAgICAgICB5OiB0aGlzLmhvc3RQb3NpdGlvbigpLnkgKyB0aGlzLmhvc3RTaXplKCkuaGVpZ2h0IC8gMixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLndpZHRoLFxuICAgICAgICAgIHk6IHRoaXMuaG9zdFBvc2l0aW9uKCkueSArIHRoaXMuaG9zdFNpemUoKS5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLmhvc3RQb3NpdGlvbigpLnggKyB0aGlzLmhvc3RTaXplKCkud2lkdGggLyAyLFxuICAgICAgICAgIHk6IDAsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHRoaXMuaG9zdFBvc2l0aW9uKCkueCArIHRoaXMuaG9zdFNpemUoKS53aWR0aCAvIDIsXG4gICAgICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnNpemUoKS5oZWlnaHQsXG4gICAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIHNpemVPZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHJldHVybiB7IHg6IC0odGhpcy5zaXplKCkud2lkdGggLyAyKSwgeTogMCB9O1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICByZXR1cm4geyB4OiB0aGlzLnNpemUoKS53aWR0aCAvIDIsIHk6IDAgfTtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IC0odGhpcy5zaXplKCkuaGVpZ2h0IC8gMikgfTtcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IHRoaXMuc2l6ZSgpLmhlaWdodCAvIDIgfTtcbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBob3N0UmVmZXJlbmNlID0gdGhpcy5yYXdIYW5kbGUuaG9zdFJlZmVyZW5jZSE7XG5cbiAgcHVibGljIHRlbXBsYXRlID0gdGhpcy5yYXdIYW5kbGUudGVtcGxhdGU7XG5cbiAgcHVibGljIHRlbXBsYXRlQ29udGV4dCA9IHtcbiAgICAkaW1wbGljaXQ6IHtcbiAgICAgIHBvaW50OiB0aGlzLmhvc3RPZmZzZXQsXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgIG5vZGU6IHRoaXMucGFyZW50Tm9kZS5yYXdOb2RlLFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJhd0hhbmRsZTogTm9kZUhhbmRsZSxcbiAgICBwdWJsaWMgcGFyZW50Tm9kZTogTm9kZU1vZGVsLFxuICApIHt9XG5cbiAgcHVibGljIHVwZGF0ZUhvc3QoKSB7XG4gICAgdGhpcy51cGRhdGVIb3N0U2l6ZUFuZFBvc2l0aW9uJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEhvc3RTaXplKCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB7XG4gICAgaWYgKHRoaXMuaG9zdFJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdGhpcy5ob3N0UmVmZXJlbmNlLm9mZnNldFdpZHRoLFxuICAgICAgICBoZWlnaHQ6IHRoaXMuaG9zdFJlZmVyZW5jZS5vZmZzZXRIZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy5ob3N0UmVmZXJlbmNlIGluc3RhbmNlb2YgU1ZHR3JhcGhpY3NFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5ob3N0UmVmZXJlbmNlLmdldEJCb3goKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB3aWR0aDogMCwgaGVpZ2h0OiAwIH07XG4gIH1cbn1cbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBMkZ0QixZQUNTLFNBQXFCLEVBQ3JCLFVBQXFCO1FBRHJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQTVGZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQzs7O1dBR0c7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ2hDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ2xDLENBQUMsQ0FBQztRQUVJLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxPQUFPO2dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzth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Q3pDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsWUFBWSxXQUFXLEVBQUUsQ0FBQztZQUM5QyxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVc7Z0JBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7YUFDeEMsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlSGFuZGxlIH0gZnJvbSAnLi4vc2VydmljZXMvaGFuZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi9ub2RlLm1vZGVsJztcbmltcG9ydCB7IFN1YmplY3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCB0eXBlIEhhbmRsZVN0YXRlID0gJ3ZhbGlkJyB8ICdpbnZhbGlkJyB8ICdpZGxlJztcblxuZXhwb3J0IGNsYXNzIEhhbmRsZU1vZGVsIHtcbiAgcHVibGljIHJlYWRvbmx5IHN0cm9rZVdpZHRoID0gMjtcblxuICAvKipcbiAgICogUHJlLWNvbXB1dGVkIHNpemUgZm9yIGRlZmF1bHQgaGFuZGxlLCBjaGFuZ2VkIGR5bmFtaWNhbGx5XG4gICAqIGZvciBjdXN0b20gaGFuZGxlc1xuICAgKi9cbiAgcHVibGljIHNpemUgPSBzaWduYWwoe1xuICAgIHdpZHRoOiAxMCArIDIgKiB0aGlzLnN0cm9rZVdpZHRoLFxuICAgIGhlaWdodDogMTAgKyAyICogdGhpcy5zdHJva2VXaWR0aCxcbiAgfSk7XG5cbiAgcHVibGljIHBvaW50QWJzb2x1dGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5nbG9iYWxQb2ludCgpLnggKyB0aGlzLmhvc3RPZmZzZXQoKS54ICsgdGhpcy5zaXplT2Zmc2V0KCkueCxcbiAgICAgIHk6IHRoaXMucGFyZW50Tm9kZS5nbG9iYWxQb2ludCgpLnkgKyB0aGlzLmhvc3RPZmZzZXQoKS55ICsgdGhpcy5zaXplT2Zmc2V0KCkueSxcbiAgICB9O1xuICB9KTtcblxuICBwdWJsaWMgc3RhdGUgPSBzaWduYWw8SGFuZGxlU3RhdGU+KCdpZGxlJyk7XG5cbiAgcHJpdmF0ZSB1cGRhdGVIb3N0U2l6ZUFuZFBvc2l0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gVE9ETzogZm9yIHNvbWUgcmVhc29uIHRvTGF6eVNpZ25hbCBicmVha3MgdW5pdCB0ZXN0cywgc28gd2UgdXNlIHRvU2lnbmFsIGhlcmVcbiAgcHJpdmF0ZSBob3N0U2l6ZSA9IHRvU2lnbmFsKHRoaXMudXBkYXRlSG9zdFNpemVBbmRQb3NpdGlvbiQucGlwZShtYXAoKCkgPT4gdGhpcy5nZXRIb3N0U2l6ZSgpKSksIHtcbiAgICBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICB9KTtcblxuICAvLyBUT0RPOiBmb3Igc29tZSByZWFzb24gdG9MYXp5U2lnbmFsIGJyZWFrcyB1bml0IHRlc3RzLCBzbyB3ZSB1c2UgdG9TaWduYWwgaGVyZVxuICBwcml2YXRlIGhvc3RQb3NpdGlvbiA9IHRvU2lnbmFsKFxuICAgIHRoaXMudXBkYXRlSG9zdFNpemVBbmRQb3NpdGlvbiQucGlwZShcbiAgICAgIG1hcCgoKSA9PiAoe1xuICAgICAgICB4OiB0aGlzLmhvc3RSZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IHRoaXMuaG9zdFJlZmVyZW5jZS5vZmZzZXRMZWZ0IDogMCwgLy8gZm9yIG5vdyBqdXN0IDAgZm9yIGdyb3VwIG5vZGVzXG4gICAgICAgIHk6IHRoaXMuaG9zdFJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5ob3N0UmVmZXJlbmNlLm9mZnNldFRvcCA6IDAsIC8vIGZvciBub3cganVzdCAwIGZvciBncm91cCBub2Rlc1xuICAgICAgfSkpLFxuICAgICksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiB7IHg6IDAsIHk6IDAgfSxcbiAgICB9LFxuICApO1xuXG4gIHB1YmxpYyBob3N0T2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IC10aGlzLnJhd0hhbmRsZS51c2VyT2Zmc2V0WCxcbiAgICAgICAgICB5OiAtdGhpcy5yYXdIYW5kbGUudXNlck9mZnNldFkgKyB0aGlzLmhvc3RQb3NpdGlvbigpLnkgKyB0aGlzLmhvc3RTaXplKCkuaGVpZ2h0IC8gMixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiAtdGhpcy5yYXdIYW5kbGUudXNlck9mZnNldFggKyB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLndpZHRoLFxuICAgICAgICAgIHk6IC10aGlzLnJhd0hhbmRsZS51c2VyT2Zmc2V0WSArIHRoaXMuaG9zdFBvc2l0aW9uKCkueSArIHRoaXMuaG9zdFNpemUoKS5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiAtdGhpcy5yYXdIYW5kbGUudXNlck9mZnNldFggKyB0aGlzLmhvc3RQb3NpdGlvbigpLnggKyB0aGlzLmhvc3RTaXplKCkud2lkdGggLyAyLFxuICAgICAgICAgIHk6IC10aGlzLnJhd0hhbmRsZS51c2VyT2Zmc2V0WSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogLXRoaXMucmF3SGFuZGxlLnVzZXJPZmZzZXRYICsgdGhpcy5ob3N0UG9zaXRpb24oKS54ICsgdGhpcy5ob3N0U2l6ZSgpLndpZHRoIC8gMixcbiAgICAgICAgICB5OiAtdGhpcy5yYXdIYW5kbGUudXNlck9mZnNldFkgKyB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgc2l6ZU9mZnNldCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMucmF3SGFuZGxlLnBvc2l0aW9uKSB7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuIHsgeDogLSh0aGlzLnNpemUoKS53aWR0aCAvIDIpLCB5OiAwIH07XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHJldHVybiB7IHg6IHRoaXMuc2l6ZSgpLndpZHRoIC8gMiwgeTogMCB9O1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogLSh0aGlzLnNpemUoKS5oZWlnaHQgLyAyKSB9O1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogdGhpcy5zaXplKCkuaGVpZ2h0IC8gMiB9O1xuICAgIH1cbiAgfSk7XG5cbiAgcHVibGljIGhvc3RSZWZlcmVuY2UgPSB0aGlzLnJhd0hhbmRsZS5ob3N0UmVmZXJlbmNlITtcblxuICBwdWJsaWMgdGVtcGxhdGUgPSB0aGlzLnJhd0hhbmRsZS50ZW1wbGF0ZTtcblxuICBwdWJsaWMgdGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgcG9pbnQ6IHRoaXMuaG9zdE9mZnNldCxcbiAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgICAgbm9kZTogdGhpcy5wYXJlbnROb2RlLnJhd05vZGUsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmF3SGFuZGxlOiBOb2RlSGFuZGxlLFxuICAgIHB1YmxpYyBwYXJlbnROb2RlOiBOb2RlTW9kZWwsXG4gICkge31cblxuICBwdWJsaWMgdXBkYXRlSG9zdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhvc3RTaXplQW5kUG9zaXRpb24kLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SG9zdFNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHtcbiAgICBpZiAodGhpcy5ob3N0UmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiB0aGlzLmhvc3RSZWZlcmVuY2Uub2Zmc2V0V2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5ob3N0UmVmZXJlbmNlLm9mZnNldEhlaWdodCxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0aGlzLmhvc3RSZWZlcmVuY2UgaW5zdGFuY2VvZiBTVkdHcmFwaGljc0VsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmhvc3RSZWZlcmVuY2UuZ2V0QkJveCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcbiAgfVxufVxuIl19
|
|
@@ -21,6 +21,8 @@ export class HandleComponent {
|
|
|
21
21
|
*/
|
|
22
22
|
this.id = input();
|
|
23
23
|
this.template = input();
|
|
24
|
+
this.offsetX = input(0);
|
|
25
|
+
this.offsetY = input(0);
|
|
24
26
|
}
|
|
25
27
|
ngOnInit() {
|
|
26
28
|
runInInjectionContext(this.injector, () => {
|
|
@@ -32,6 +34,8 @@ export class HandleComponent {
|
|
|
32
34
|
id: this.id(),
|
|
33
35
|
hostReference: this.element.parentElement,
|
|
34
36
|
template: this.template(),
|
|
37
|
+
userOffsetX: this.offsetX(),
|
|
38
|
+
userOffsetY: this.offsetY(),
|
|
35
39
|
}, node);
|
|
36
40
|
this.handleService.createHandle(model);
|
|
37
41
|
requestAnimationFrame(() => model.updateHost());
|
|
@@ -40,10 +44,10 @@ export class HandleComponent {
|
|
|
40
44
|
});
|
|
41
45
|
}
|
|
42
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, offsetX: { classPropertyName: "offsetX", publicName: "offsetX", isSignal: true, isRequired: false, transformFunction: null }, offsetY: { classPropertyName: "offsetY", publicName: "offsetY", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
48
|
}
|
|
45
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleComponent, decorators: [{
|
|
46
50
|
type: Component,
|
|
47
51
|
args: [{ standalone: true, selector: 'handle', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
|
|
48
52
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUdSLE1BQU0sRUFDTixLQUFLLEVBQ0wscUJBQXFCLEdBQ3RCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBUXhELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBT1UsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxZQUFPLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDcEUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4Qzs7V0FFRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7UUFFN0M7O1dBRUc7UUFDSSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUVwRDs7V0FFRztRQUNJLE9BQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUVyQixhQUFRLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBRTVDLFlBQU8sR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztLQTRCbkM7SUExQlEsUUFBUTtRQUNiLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFdkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FDM0I7b0JBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNqQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtvQkFDYixhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFjO29CQUMxQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO2lCQUM1QixFQUNELElBQUksQ0FDTCxDQUFDO2dCQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUV2QyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFFaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5EVSxlQUFlO21HQUFmLGVBQWUsOHlCQ3RCNUIsRUFBQTs7NEZEc0JhLGVBQWU7a0JBTjNCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFFBQVEsbUJBRUQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IEhhbmRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oYW5kbGUuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdoYW5kbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGFuZGxlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhhbmRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIGhhbmRsZVNlcnZpY2UgPSBpbmplY3QoSGFuZGxlU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIC8qKlxuICAgKiBBdCB3aGF0IHNpZGUgb2Ygbm9kZSB0aGlzIGNvbXBvbmVudCBzaG91bGQgYmUgcGxhY2VkXG4gICAqL1xuICBwdWJsaWMgcG9zaXRpb24gPSBpbnB1dC5yZXF1aXJlZDxQb3NpdGlvbj4oKTtcblxuICAvKipcbiAgICogU291cmNlIG9yIHRhcmdldFxuICAgKi9cbiAgcHVibGljIHR5cGUgPSBpbnB1dC5yZXF1aXJlZDwnc291cmNlJyB8ICd0YXJnZXQnPigpO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgYmUgdXNlZCBpZiBub2RlIGhhcyBtb3JlIHRoYW4gb25lIHNvdXJjZS90YXJnZXRcbiAgICovXG4gIHB1YmxpYyBpZCA9IGlucHV0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgdGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4oKTtcblxuICBwdWJsaWMgb2Zmc2V0WCA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHB1YmxpYyBvZmZzZXRZID0gaW5wdXQ8bnVtYmVyPigwKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmhhbmRsZVNlcnZpY2Uubm9kZSgpO1xuXG4gICAgICBpZiAobm9kZSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBIYW5kbGVNb2RlbChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbigpLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlKCksXG4gICAgICAgICAgICBpZDogdGhpcy5pZCgpLFxuICAgICAgICAgICAgaG9zdFJlZmVyZW5jZTogdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQhLFxuICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGUoKSxcbiAgICAgICAgICAgIHVzZXJPZmZzZXRYOiB0aGlzLm9mZnNldFgoKSxcbiAgICAgICAgICAgIHVzZXJPZmZzZXRZOiB0aGlzLm9mZnNldFkoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVTZXJ2aWNlLmNyZWF0ZUhhbmRsZShtb2RlbCk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IG1vZGVsLnVwZGF0ZUhvc3QoKSk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmhhbmRsZVNlcnZpY2UuZGVzdHJveUhhbmRsZShtb2RlbCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCIiXX0=
|
|
@@ -27,4 +27,4 @@ __decorate([
|
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleService, decorators: [{
|
|
28
28
|
type: Injectable
|
|
29
29
|
}], propDecorators: { createHandle: [] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvaGFuZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFhOUQsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFa0IsU0FBSSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7S0FnQnZEO0lBYlEsWUFBWSxDQUFDLFNBQXNCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxjQUEyQjtRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQzsrR0FoQlUsYUFBYTttSEFBYixhQUFhOztBQUlqQjtJQUROLFNBQVMsQ0FBQyxnREFBZ0Q7aURBTTFEOzRGQVRVLGFBQWE7a0JBRHpCLFVBQVU7OEJBS0YsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFRlbXBsYXRlUmVmLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBIYW5kbGVUeXBlIH0gZnJvbSAnLi4vdHlwZXMvaGFuZGxlLXR5cGUudHlwZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuaW1wb3J0IHsgTWljcm90YXNrIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9taWNyb3Rhc2suZGVjb3JhdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlSGFuZGxlIHtcbiAgcG9zaXRpb246IFBvc2l0aW9uO1xuICB0eXBlOiBIYW5kbGVUeXBlO1xuICB1c2VyT2Zmc2V0WDogbnVtYmVyO1xuICB1c2VyT2Zmc2V0WTogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgaG9zdFJlZmVyZW5jZT86IEVsZW1lbnQ7XG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIYW5kbGVTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IG5vZGUgPSBzaWduYWw8Tm9kZU1vZGVsIHwgbnVsbD4obnVsbCk7XG5cbiAgQE1pY3JvdGFzayAvLyBUT0RPIGZpeGVzIHJlbmRlcmluZyBvZiBoYW5kbGUgZm9yIGdyb3VwIG5vZGVcbiAgcHVibGljIGNyZWF0ZUhhbmRsZShuZXdIYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmhhbmRsZXMudXBkYXRlKChoYW5kbGVzKSA9PiBbLi4uaGFuZGxlcywgbmV3SGFuZGxlXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3lIYW5kbGUoaGFuZGxlVG9EZXN0b3k6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmhhbmRsZXMudXBkYXRlKChoYW5kbGVzKSA9PiBoYW5kbGVzLmZpbHRlcigoaGFuZGxlKSA9PiBoYW5kbGUgIT09IGhhbmRsZVRvRGVzdG95KSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -6,11 +6,13 @@ export class HandleMockComponent {
|
|
|
6
6
|
this.type = input.required();
|
|
7
7
|
this.id = input();
|
|
8
8
|
this.template = input();
|
|
9
|
+
this.offsetX = input(0);
|
|
10
|
+
this.offsetY = input(0);
|
|
9
11
|
}
|
|
10
12
|
// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
|
|
11
13
|
ngOnInit() { }
|
|
12
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleMockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleMockComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleMockComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, offsetX: { classPropertyName: "offsetX", publicName: "offsetX", isSignal: true, isRequired: false, transformFunction: null }, offsetY: { classPropertyName: "offsetY", publicName: "offsetY", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
16
|
}
|
|
15
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleMockComponent, decorators: [{
|
|
16
18
|
type: Component,
|
|
@@ -21,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
21
23
|
standalone: true,
|
|
22
24
|
}]
|
|
23
25
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLW1vY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi90ZXN0aW5nL3NyYy9jb21wb25lbnQtbW9ja3MvaGFuZGxlLW1vY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7QUFVL0YsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQU9TLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7UUFDdEMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7UUFDN0MsT0FBRSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLEVBQTJCLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO0tBSW5DO0lBRkMscUVBQXFFO0lBQzlELFFBQVEsS0FBVSxDQUFDOytHQVRmLG1CQUFtQjttR0FBbkIsbUJBQW1CLDh5QkFKcEIsRUFBRTs7NEZBSUQsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIFRlbXBsYXRlUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSGFuZGxlQ29tcG9uZW50LCBQb3NpdGlvbiB9IGZyb20gJ25neC12Zmxvdyc7XG5pbXBvcnQgeyBBc0ludGVyZmFjZSB9IGZyb20gJy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGFuZGxlJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSGFuZGxlTW9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIEFzSW50ZXJmYWNlPEhhbmRsZUNvbXBvbmVudD4sIE9uSW5pdCB7XG4gIHB1YmxpYyBwb3NpdGlvbiA9IGlucHV0LnJlcXVpcmVkPFBvc2l0aW9uPigpO1xuICBwdWJsaWMgdHlwZSA9IGlucHV0LnJlcXVpcmVkPCdzb3VyY2UnIHwgJ3RhcmdldCc+KCk7XG4gIHB1YmxpYyBpZCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+KCk7XG4gIHB1YmxpYyBvZmZzZXRYID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcHVibGljIG9mZnNldFkgPSBpbnB1dDxudW1iZXI+KDApO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tZW1wdHktbGlmZWN5Y2xlLW1ldGhvZFxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19
|
|
@@ -456,11 +456,13 @@ class HandleMockComponent {
|
|
|
456
456
|
this.type = input.required();
|
|
457
457
|
this.id = input();
|
|
458
458
|
this.template = input();
|
|
459
|
+
this.offsetX = input(0);
|
|
460
|
+
this.offsetY = input(0);
|
|
459
461
|
}
|
|
460
462
|
// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
|
|
461
463
|
ngOnInit() { }
|
|
462
464
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleMockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
463
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleMockComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: HandleMockComponent, isStandalone: true, selector: "handle", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, offsetX: { classPropertyName: "offsetX", publicName: "offsetX", isSignal: true, isRequired: false, transformFunction: null }, offsetY: { classPropertyName: "offsetY", publicName: "offsetY", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
464
466
|
}
|
|
465
467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleMockComponent, decorators: [{
|
|
466
468
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-vflow-testing.mjs","sources":["../../../projects/ngx-vflow-lib/testing/src/provide-custom-node-mocks.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/template-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/vflow-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/handle-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/resizable-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/minimap-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/node-toolbar-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/connection-controller-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/drag-handle-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/selectable-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/custom-template-edge-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/vflow-mocks.ts","../../../projects/ngx-vflow-lib/testing/src/public-api.ts","../../../projects/ngx-vflow-lib/testing/src/ngx-vflow-testing.ts"],"sourcesContent":["import { Provider, signal } from '@angular/core';\nimport {\n ɵNodeModel as NodeModel,\n ɵComponentEventBusService as ComponentEventBusService,\n ɵHandleService as HandleService,\n ɵFlowSettingsService as FlowSettingsService,\n ɵFlowEntitiesService as FlowEntitiesService,\n ɵNodeAccessorService as NodeAccessorService,\n ɵRootPointerDirective as RootPointerDirective,\n ɵSpacePointContextDirective as SpacePointContextDirective,\n ɵViewportService as ViewportService,\n ɵSelectionService as SelectionService,\n Point,\n} from 'ngx-vflow';\nimport { of } from 'rxjs';\n\nconst mockModel = () => new NodeModel({ id: 'mock', type: 'default', point: { x: 0, y: 0 } });\n\nexport function provideCustomNodeMocks(): Provider[] {\n return [\n {\n provide: ComponentEventBusService,\n useValue: {\n pushEvent: () => {},\n },\n },\n {\n provide: NodeAccessorService,\n useFactory: () => ({\n model: signal(mockModel()),\n }),\n },\n FlowEntitiesService,\n\n // TODO: mocks below should be removed after the major release\n {\n provide: HandleService,\n useFactory: () => ({\n node: signal(mockModel()),\n createHandle: () => {},\n destroyHandle: () => {},\n }),\n },\n {\n provide: RootPointerDirective,\n useValue: {\n pointerMovement$: of({\n x: 0,\n y: 0,\n movementX: 0,\n movementY: 0,\n target: null,\n originalEvent: null,\n }),\n documentPointerEnd$: of(null),\n },\n },\n {\n provide: SpacePointContextDirective,\n useValue: {\n documentPointToFlowPoint: (point: Point) => point,\n },\n },\n {\n provide: SelectionService,\n useValue: {\n select: () => {},\n },\n },\n FlowSettingsService,\n ViewportService,\n ];\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type {\n ConnectionTemplateDirective,\n EdgeLabelHtmlTemplateDirective,\n EdgeTemplateDirective,\n GroupNodeTemplateDirective,\n HandleTemplateDirective,\n NodeHtmlTemplateDirective,\n} from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[edge]',\n})\nexport class EdgeTemplateMockDirective implements AsInterface<EdgeTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[connection]',\n})\nexport class ConnectionTemplateMockDirective implements AsInterface<ConnectionTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[edgeLabelHtml]',\n})\nexport class EdgeLabelHtmlTemplateMockDirective implements AsInterface<EdgeLabelHtmlTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[nodeHtml]',\n})\nexport class NodeHtmlTemplateMockDirective implements AsInterface<NodeHtmlTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[nodeSvg]',\n})\nexport class NodeSvgTemplateMockDirective implements AsInterface<NodeSvgTemplateMockDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[groupNode]',\n})\nexport class GroupNodeTemplateMockDirective implements AsInterface<GroupNodeTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[handle]',\n})\nexport class HandleTemplateMockDirective implements AsInterface<HandleTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n Input,\n output,\n signal,\n WritableSignal,\n OnInit,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Node,\n DynamicNode,\n Edge,\n SpacePoint,\n Point,\n Background,\n KeyboardShortcuts,\n ConnectionSettings,\n ViewportState,\n NodeChange,\n EdgeChange,\n FitViewOptions,\n VflowComponent,\n IntersectingNodesOptions,\n ɵConnectionModel as ConnectionModel,\n DEFAULT_OPTIMIZATION,\n} from 'ngx-vflow';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport {\n ConnectionTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n NodeHtmlTemplateMockDirective,\n} from '../directive-mocks/template-mock.directive';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'vflow',\n template: `\n <ng-content />\n\n @for (node of nodes; track $index) {\n @if (node.type === 'html-template') {\n <ng-component\n [ngTemplateOutlet]=\"nodeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n node: node,\n selected: createSignal(false),\n },\n }\" />\n }\n\n @if (node.type === 'template-group') {\n <ng-component\n [ngTemplateOutlet]=\"groupNodeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n node: node,\n selected: createSignal(false),\n width: createSignal(node.width),\n height: createSignal(node.height),\n },\n }\" />\n }\n }\n\n @for (edge of edges; track $index) {\n @if (edge.type === 'template') {\n <ng-component\n [ngTemplateOutlet]=\"edgeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n selected: createSignal(false),\n path: createSignal(''),\n markerStart: createSignal(''),\n markerEnd: createSignal(''),\n },\n }\" />\n\n @if (edge.edgeLabels?.start) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n },\n }\" />\n }\n\n @if (edge.edgeLabels?.center) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n label: edge.edgeLabels?.center,\n },\n }\" />\n }\n\n @if (edge.edgeLabels?.end) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n label: edge.edgeLabels?.end,\n },\n }\" />\n }\n }\n }\n\n @if (connection.type === 'template') {\n <ng-component\n [ngTemplateOutlet]=\"connectionTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n path: createSignal(''),\n marker: createSignal(''),\n },\n }\" />\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class VflowMockComponent implements AsInterface<VflowComponent>, OnInit {\n @Input({ required: true })\n public readonly nodes!: Node[] | DynamicNode[];\n\n @Input()\n public readonly edges!: Edge[];\n\n @Input()\n public readonly view: [number, number] | 'auto' = [400, 400];\n\n @Input()\n public readonly minZoom = 0.5;\n\n @Input()\n public readonly maxZoom = 3;\n\n @Input()\n public readonly background: Background | string = '#fff';\n\n @Input()\n public readonly optimization = DEFAULT_OPTIMIZATION;\n\n @Input()\n public readonly entitiesSelectable = true;\n\n @Input()\n public readonly keyboardShortcuts: KeyboardShortcuts = {\n multiSelection: null,\n };\n\n @Input({\n transform: (settings: ConnectionSettings) => new ConnectionModel(settings),\n })\n public readonly connection: ConnectionModel = new ConnectionModel({});\n\n @Input()\n public readonly snapGrid!: [number, number];\n\n @Input()\n public elevateNodesOnSelect!: boolean;\n\n @Input()\n public elevateEdgesOnSelect!: boolean;\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onComponentNodeEvent = output<any>();\n\n protected nodeTemplateDirective = contentChild(NodeHtmlTemplateMockDirective);\n\n protected groupNodeTemplateDirective = contentChild(GroupNodeTemplateMockDirective);\n\n protected edgeTemplateDirective = contentChild(EdgeTemplateMockDirective);\n\n protected edgeLabelHtmlDirective = contentChild(EdgeLabelHtmlTemplateMockDirective);\n\n protected connectionTemplateDirective = contentChild(ConnectionTemplateMockDirective);\n\n public viewport = signal<ViewportState>({\n x: 0,\n y: 0,\n zoom: 1,\n });\n\n public nodesChange = signal<NodeChange[]>([]);\n public edgesChange = signal<EdgeChange[]>([]);\n\n public viewportChange$ = toObservable(this.viewport);\n\n public nodesChange$ = toObservable(this.nodesChange);\n public edgesChange$ = toObservable(this.edgesChange);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n public viewportTo(viewport: ViewportState): void {\n this.viewport.set(viewport);\n }\n\n public zoomTo(zoom: number): void {\n this.viewport.update((prev) => ({ ...prev, zoom }));\n }\n\n public panTo(point: Point): void {\n this.viewport.update((prev) => ({ ...prev, x: point.x, y: point.y }));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public fitView(options?: FitViewOptions): void {}\n\n public documentPointToFlowPoint(point: Point, options?: { spaces: false }): Point;\n public documentPointToFlowPoint(point: Point, options: { spaces: true }): SpacePoint[];\n public documentPointToFlowPoint(point: Point, options?: { spaces: boolean }): unknown {\n if (options?.spaces) {\n return [\n {\n nodeId: null,\n x: point.x,\n y: point.y,\n },\n ];\n }\n\n return point;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public getIntesectingNodes(nodeId: string, options?: IntersectingNodesOptions): Node[] | DynamicNode[] {\n return [];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public toNodeSpace(nodeId: string, spaceNodeId: string): Point {\n return { x: 0, y: 0 };\n }\n\n public getNode<T = unknown>(id: string): Node<T> | DynamicNode<T> | undefined {\n return this.nodes.find((node) => node.id === id);\n }\n\n public getDetachedEdges(): Edge[] {\n return [];\n }\n\n protected createSignal<T>(value: T): WritableSignal<T> {\n return signal(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, TemplateRef, OnInit } from '@angular/core';\nimport type { HandleComponent, Position } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'handle',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class HandleMockComponent implements AsInterface<HandleComponent>, OnInit {\n public position = input.required<Position>();\n public type = input.required<'source' | 'target'>();\n public id = input<string>();\n public template = input<TemplateRef<any>>();\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit(): void {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit, AfterViewInit } from '@angular/core';\nimport type { ResizableComponent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: '[resizable]',\n template: '<ng-content />',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ResizableMockComponent implements AsInterface<ResizableComponent>, OnInit, AfterViewInit {\n public resizable = input<boolean | ''>();\n public resizerColor = input('#2e414c');\n public gap = input(1.5);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngAfterViewInit() {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit } from '@angular/core';\nimport type { MiniMapComponent, MiniMapPosition } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'mini-map',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MiniMapMockComponent implements AsInterface<MiniMapComponent>, OnInit {\n public maskColor = input(`rgba(215, 215, 215, 0.6)`);\n\n public strokeColor = input(`rgb(200, 200, 200)`);\n\n public position = input<MiniMapPosition>('bottom-right');\n\n public scaleOnHover = input(false);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit, OnDestroy } from '@angular/core';\nimport type { Position, NodeToolbarComponent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'node-toolbar',\n template: '<ng-content />',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NodeToolbarMockComponent implements AsInterface<NodeToolbarComponent>, OnInit, OnDestroy {\n public position = input<Position>('top');\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnDestroy() {}\n}\n","import { Directive, output } from '@angular/core';\nimport { Connection, ReconnectionEvent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\nimport type { ConnectionControllerDirective, ɵHandleModel as HandleModel } from 'ngx-vflow';\n\n@Directive({ selector: '[onConnect]', standalone: true })\nexport class ConnectionControllerMockDirective implements AsInterface<ConnectionControllerDirective> {\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onConnect = output<Connection>();\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onReconnect = output<ReconnectionEvent>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public startConnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public startReconnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public validateConnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public resetValidateConnection(targetHandle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public endConnection(): void {}\n}\n","import { Directive } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { DragHandleDirective } from 'ngx-vflow';\n\n@Directive({ selector: '[dragHandle]', standalone: true })\nexport class DragHandleMockDirective implements AsInterface<DragHandleDirective> {}\n","import { Directive } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { SelectableDirective } from 'ngx-vflow';\n\n@Directive({\n selector: '[selectable]',\n standalone: true,\n})\nexport class SelectableMockDirective implements AsInterface<SelectableDirective> {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { CustomTemplateEdgeComponent } from 'ngx-vflow';\n\n@Component({\n selector: 'g[customTemplateEdge]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class CustomTemplateEdgeMockComponent implements AsInterface<CustomTemplateEdgeComponent> {}\n","import { CustomTemplateEdgeMockComponent } from './component-mocks/custom-template-edge-mock.component';\nimport { HandleMockComponent } from './component-mocks/handle-mock.component';\nimport { MiniMapMockComponent } from './component-mocks/minimap-mock.component';\nimport { NodeToolbarMockComponent } from './component-mocks/node-toolbar-mock.component';\nimport { ResizableMockComponent } from './component-mocks/resizable-mock.component';\nimport { VflowMockComponent } from './component-mocks/vflow-mock.component';\nimport { ConnectionControllerMockDirective } from './directive-mocks/connection-controller-mock.directive';\nimport { DragHandleMockDirective } from './directive-mocks/drag-handle-mock.directive';\nimport { SelectableMockDirective } from './directive-mocks/selectable-mock.directive';\nimport {\n ConnectionTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n HandleTemplateMockDirective,\n NodeHtmlTemplateMockDirective,\n} from './directive-mocks/template-mock.directive';\n\nexport const VflowMocks = [\n VflowMockComponent,\n HandleMockComponent,\n ResizableMockComponent,\n SelectableMockDirective,\n MiniMapMockComponent,\n NodeToolbarMockComponent,\n DragHandleMockDirective,\n ConnectionControllerMockDirective,\n CustomTemplateEdgeMockComponent,\n\n NodeHtmlTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n ConnectionTemplateMockDirective,\n HandleTemplateMockDirective,\n] as const;\n","// Testing\nexport * from './provide-custom-node-mocks';\nexport * from './component-mocks/vflow-mock.component';\nexport * from './component-mocks/handle-mock.component';\nexport * from './component-mocks/resizable-mock.component';\nexport * from './component-mocks/minimap-mock.component';\nexport * from './component-mocks/node-toolbar-mock.component';\nexport * from './directive-mocks/connection-controller-mock.directive';\nexport * from './directive-mocks/drag-handle-mock.directive';\nexport * from './directive-mocks/selectable-mock.directive';\nexport * from './directive-mocks/template-mock.directive';\nexport * from './vflow-mocks';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["NodeModel","ComponentEventBusService","NodeAccessorService","FlowEntitiesService","HandleService","RootPointerDirective","SpacePointContextDirective","SelectionService","FlowSettingsService","ViewportService","ConnectionModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-vflow-testing.mjs","sources":["../../../projects/ngx-vflow-lib/testing/src/provide-custom-node-mocks.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/template-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/vflow-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/handle-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/resizable-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/minimap-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/node-toolbar-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/connection-controller-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/drag-handle-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/directive-mocks/selectable-mock.directive.ts","../../../projects/ngx-vflow-lib/testing/src/component-mocks/custom-template-edge-mock.component.ts","../../../projects/ngx-vflow-lib/testing/src/vflow-mocks.ts","../../../projects/ngx-vflow-lib/testing/src/public-api.ts","../../../projects/ngx-vflow-lib/testing/src/ngx-vflow-testing.ts"],"sourcesContent":["import { Provider, signal } from '@angular/core';\nimport {\n ɵNodeModel as NodeModel,\n ɵComponentEventBusService as ComponentEventBusService,\n ɵHandleService as HandleService,\n ɵFlowSettingsService as FlowSettingsService,\n ɵFlowEntitiesService as FlowEntitiesService,\n ɵNodeAccessorService as NodeAccessorService,\n ɵRootPointerDirective as RootPointerDirective,\n ɵSpacePointContextDirective as SpacePointContextDirective,\n ɵViewportService as ViewportService,\n ɵSelectionService as SelectionService,\n Point,\n} from 'ngx-vflow';\nimport { of } from 'rxjs';\n\nconst mockModel = () => new NodeModel({ id: 'mock', type: 'default', point: { x: 0, y: 0 } });\n\nexport function provideCustomNodeMocks(): Provider[] {\n return [\n {\n provide: ComponentEventBusService,\n useValue: {\n pushEvent: () => {},\n },\n },\n {\n provide: NodeAccessorService,\n useFactory: () => ({\n model: signal(mockModel()),\n }),\n },\n FlowEntitiesService,\n\n // TODO: mocks below should be removed after the major release\n {\n provide: HandleService,\n useFactory: () => ({\n node: signal(mockModel()),\n createHandle: () => {},\n destroyHandle: () => {},\n }),\n },\n {\n provide: RootPointerDirective,\n useValue: {\n pointerMovement$: of({\n x: 0,\n y: 0,\n movementX: 0,\n movementY: 0,\n target: null,\n originalEvent: null,\n }),\n documentPointerEnd$: of(null),\n },\n },\n {\n provide: SpacePointContextDirective,\n useValue: {\n documentPointToFlowPoint: (point: Point) => point,\n },\n },\n {\n provide: SelectionService,\n useValue: {\n select: () => {},\n },\n },\n FlowSettingsService,\n ViewportService,\n ];\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type {\n ConnectionTemplateDirective,\n EdgeLabelHtmlTemplateDirective,\n EdgeTemplateDirective,\n GroupNodeTemplateDirective,\n HandleTemplateDirective,\n NodeHtmlTemplateDirective,\n} from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[edge]',\n})\nexport class EdgeTemplateMockDirective implements AsInterface<EdgeTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[connection]',\n})\nexport class ConnectionTemplateMockDirective implements AsInterface<ConnectionTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[edgeLabelHtml]',\n})\nexport class EdgeLabelHtmlTemplateMockDirective implements AsInterface<EdgeLabelHtmlTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[nodeHtml]',\n})\nexport class NodeHtmlTemplateMockDirective implements AsInterface<NodeHtmlTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[nodeSvg]',\n})\nexport class NodeSvgTemplateMockDirective implements AsInterface<NodeSvgTemplateMockDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[groupNode]',\n})\nexport class GroupNodeTemplateMockDirective implements AsInterface<GroupNodeTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n\n@Directive({\n standalone: true,\n selector: 'ng-template[handle]',\n})\nexport class HandleTemplateMockDirective implements AsInterface<HandleTemplateDirective> {\n public templateRef = inject(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n Input,\n output,\n signal,\n WritableSignal,\n OnInit,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Node,\n DynamicNode,\n Edge,\n SpacePoint,\n Point,\n Background,\n KeyboardShortcuts,\n ConnectionSettings,\n ViewportState,\n NodeChange,\n EdgeChange,\n FitViewOptions,\n VflowComponent,\n IntersectingNodesOptions,\n ɵConnectionModel as ConnectionModel,\n DEFAULT_OPTIMIZATION,\n} from 'ngx-vflow';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport {\n ConnectionTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n NodeHtmlTemplateMockDirective,\n} from '../directive-mocks/template-mock.directive';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'vflow',\n template: `\n <ng-content />\n\n @for (node of nodes; track $index) {\n @if (node.type === 'html-template') {\n <ng-component\n [ngTemplateOutlet]=\"nodeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n node: node,\n selected: createSignal(false),\n },\n }\" />\n }\n\n @if (node.type === 'template-group') {\n <ng-component\n [ngTemplateOutlet]=\"groupNodeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n node: node,\n selected: createSignal(false),\n width: createSignal(node.width),\n height: createSignal(node.height),\n },\n }\" />\n }\n }\n\n @for (edge of edges; track $index) {\n @if (edge.type === 'template') {\n <ng-component\n [ngTemplateOutlet]=\"edgeTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n selected: createSignal(false),\n path: createSignal(''),\n markerStart: createSignal(''),\n markerEnd: createSignal(''),\n },\n }\" />\n\n @if (edge.edgeLabels?.start) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n },\n }\" />\n }\n\n @if (edge.edgeLabels?.center) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n label: edge.edgeLabels?.center,\n },\n }\" />\n }\n\n @if (edge.edgeLabels?.end) {\n <ng-component\n [ngTemplateOutlet]=\"edgeLabelHtmlDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n edge: edge,\n label: edge.edgeLabels?.end,\n },\n }\" />\n }\n }\n }\n\n @if (connection.type === 'template') {\n <ng-component\n [ngTemplateOutlet]=\"connectionTemplateDirective()?.templateRef ?? null\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n path: createSignal(''),\n marker: createSignal(''),\n },\n }\" />\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class VflowMockComponent implements AsInterface<VflowComponent>, OnInit {\n @Input({ required: true })\n public readonly nodes!: Node[] | DynamicNode[];\n\n @Input()\n public readonly edges!: Edge[];\n\n @Input()\n public readonly view: [number, number] | 'auto' = [400, 400];\n\n @Input()\n public readonly minZoom = 0.5;\n\n @Input()\n public readonly maxZoom = 3;\n\n @Input()\n public readonly background: Background | string = '#fff';\n\n @Input()\n public readonly optimization = DEFAULT_OPTIMIZATION;\n\n @Input()\n public readonly entitiesSelectable = true;\n\n @Input()\n public readonly keyboardShortcuts: KeyboardShortcuts = {\n multiSelection: null,\n };\n\n @Input({\n transform: (settings: ConnectionSettings) => new ConnectionModel(settings),\n })\n public readonly connection: ConnectionModel = new ConnectionModel({});\n\n @Input()\n public readonly snapGrid!: [number, number];\n\n @Input()\n public elevateNodesOnSelect!: boolean;\n\n @Input()\n public elevateEdgesOnSelect!: boolean;\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onComponentNodeEvent = output<any>();\n\n protected nodeTemplateDirective = contentChild(NodeHtmlTemplateMockDirective);\n\n protected groupNodeTemplateDirective = contentChild(GroupNodeTemplateMockDirective);\n\n protected edgeTemplateDirective = contentChild(EdgeTemplateMockDirective);\n\n protected edgeLabelHtmlDirective = contentChild(EdgeLabelHtmlTemplateMockDirective);\n\n protected connectionTemplateDirective = contentChild(ConnectionTemplateMockDirective);\n\n public viewport = signal<ViewportState>({\n x: 0,\n y: 0,\n zoom: 1,\n });\n\n public nodesChange = signal<NodeChange[]>([]);\n public edgesChange = signal<EdgeChange[]>([]);\n\n public viewportChange$ = toObservable(this.viewport);\n\n public nodesChange$ = toObservable(this.nodesChange);\n public edgesChange$ = toObservable(this.edgesChange);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n public viewportTo(viewport: ViewportState): void {\n this.viewport.set(viewport);\n }\n\n public zoomTo(zoom: number): void {\n this.viewport.update((prev) => ({ ...prev, zoom }));\n }\n\n public panTo(point: Point): void {\n this.viewport.update((prev) => ({ ...prev, x: point.x, y: point.y }));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public fitView(options?: FitViewOptions): void {}\n\n public documentPointToFlowPoint(point: Point, options?: { spaces: false }): Point;\n public documentPointToFlowPoint(point: Point, options: { spaces: true }): SpacePoint[];\n public documentPointToFlowPoint(point: Point, options?: { spaces: boolean }): unknown {\n if (options?.spaces) {\n return [\n {\n nodeId: null,\n x: point.x,\n y: point.y,\n },\n ];\n }\n\n return point;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public getIntesectingNodes(nodeId: string, options?: IntersectingNodesOptions): Node[] | DynamicNode[] {\n return [];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public toNodeSpace(nodeId: string, spaceNodeId: string): Point {\n return { x: 0, y: 0 };\n }\n\n public getNode<T = unknown>(id: string): Node<T> | DynamicNode<T> | undefined {\n return this.nodes.find((node) => node.id === id);\n }\n\n public getDetachedEdges(): Edge[] {\n return [];\n }\n\n protected createSignal<T>(value: T): WritableSignal<T> {\n return signal(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, TemplateRef, OnInit } from '@angular/core';\nimport type { HandleComponent, Position } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'handle',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class HandleMockComponent implements AsInterface<HandleComponent>, OnInit {\n public position = input.required<Position>();\n public type = input.required<'source' | 'target'>();\n public id = input<string>();\n public template = input<TemplateRef<any> | null>();\n public offsetX = input<number>(0);\n public offsetY = input<number>(0);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit(): void {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit, AfterViewInit } from '@angular/core';\nimport type { ResizableComponent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: '[resizable]',\n template: '<ng-content />',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ResizableMockComponent implements AsInterface<ResizableComponent>, OnInit, AfterViewInit {\n public resizable = input<boolean | ''>();\n public resizerColor = input('#2e414c');\n public gap = input(1.5);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngAfterViewInit() {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit } from '@angular/core';\nimport type { MiniMapComponent, MiniMapPosition } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'mini-map',\n template: '',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MiniMapMockComponent implements AsInterface<MiniMapComponent>, OnInit {\n public maskColor = input(`rgba(215, 215, 215, 0.6)`);\n\n public strokeColor = input(`rgb(200, 200, 200)`);\n\n public position = input<MiniMapPosition>('bottom-right');\n\n public scaleOnHover = input(false);\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n}\n","import { ChangeDetectionStrategy, Component, input, OnInit, OnDestroy } from '@angular/core';\nimport type { Position, NodeToolbarComponent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\n\n@Component({\n selector: 'node-toolbar',\n template: '<ng-content />',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NodeToolbarMockComponent implements AsInterface<NodeToolbarComponent>, OnInit, OnDestroy {\n public position = input<Position>('top');\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnInit() {}\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n public ngOnDestroy() {}\n}\n","import { Directive, output } from '@angular/core';\nimport { Connection, ReconnectionEvent } from 'ngx-vflow';\nimport { AsInterface } from '../types';\nimport type { ConnectionControllerDirective, ɵHandleModel as HandleModel } from 'ngx-vflow';\n\n@Directive({ selector: '[onConnect]', standalone: true })\nexport class ConnectionControllerMockDirective implements AsInterface<ConnectionControllerDirective> {\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onConnect = output<Connection>();\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onReconnect = output<ReconnectionEvent>();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public startConnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public startReconnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public validateConnection(handle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public resetValidateConnection(targetHandle: HandleModel): void {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public endConnection(): void {}\n}\n","import { Directive } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { DragHandleDirective } from 'ngx-vflow';\n\n@Directive({ selector: '[dragHandle]', standalone: true })\nexport class DragHandleMockDirective implements AsInterface<DragHandleDirective> {}\n","import { Directive } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { SelectableDirective } from 'ngx-vflow';\n\n@Directive({\n selector: '[selectable]',\n standalone: true,\n})\nexport class SelectableMockDirective implements AsInterface<SelectableDirective> {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AsInterface } from '../types';\nimport type { CustomTemplateEdgeComponent } from 'ngx-vflow';\n\n@Component({\n selector: 'g[customTemplateEdge]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class CustomTemplateEdgeMockComponent implements AsInterface<CustomTemplateEdgeComponent> {}\n","import { CustomTemplateEdgeMockComponent } from './component-mocks/custom-template-edge-mock.component';\nimport { HandleMockComponent } from './component-mocks/handle-mock.component';\nimport { MiniMapMockComponent } from './component-mocks/minimap-mock.component';\nimport { NodeToolbarMockComponent } from './component-mocks/node-toolbar-mock.component';\nimport { ResizableMockComponent } from './component-mocks/resizable-mock.component';\nimport { VflowMockComponent } from './component-mocks/vflow-mock.component';\nimport { ConnectionControllerMockDirective } from './directive-mocks/connection-controller-mock.directive';\nimport { DragHandleMockDirective } from './directive-mocks/drag-handle-mock.directive';\nimport { SelectableMockDirective } from './directive-mocks/selectable-mock.directive';\nimport {\n ConnectionTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n HandleTemplateMockDirective,\n NodeHtmlTemplateMockDirective,\n} from './directive-mocks/template-mock.directive';\n\nexport const VflowMocks = [\n VflowMockComponent,\n HandleMockComponent,\n ResizableMockComponent,\n SelectableMockDirective,\n MiniMapMockComponent,\n NodeToolbarMockComponent,\n DragHandleMockDirective,\n ConnectionControllerMockDirective,\n CustomTemplateEdgeMockComponent,\n\n NodeHtmlTemplateMockDirective,\n GroupNodeTemplateMockDirective,\n EdgeLabelHtmlTemplateMockDirective,\n EdgeTemplateMockDirective,\n ConnectionTemplateMockDirective,\n HandleTemplateMockDirective,\n] as const;\n","// Testing\nexport * from './provide-custom-node-mocks';\nexport * from './component-mocks/vflow-mock.component';\nexport * from './component-mocks/handle-mock.component';\nexport * from './component-mocks/resizable-mock.component';\nexport * from './component-mocks/minimap-mock.component';\nexport * from './component-mocks/node-toolbar-mock.component';\nexport * from './directive-mocks/connection-controller-mock.directive';\nexport * from './directive-mocks/drag-handle-mock.directive';\nexport * from './directive-mocks/selectable-mock.directive';\nexport * from './directive-mocks/template-mock.directive';\nexport * from './vflow-mocks';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["NodeModel","ComponentEventBusService","NodeAccessorService","FlowEntitiesService","HandleService","RootPointerDirective","SpacePointContextDirective","SelectionService","FlowSettingsService","ViewportService","ConnectionModel"],"mappings":"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"}
|