@foblex/flow 1.5.4 → 1.5.5
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/domain/clear-selection/clear-selection.handler.d.ts +11 -0
- package/domain/clear-selection/clear-selection.request.d.ts +2 -0
- package/domain/clear-selection/index.d.ts +2 -0
- package/domain/get-selection/get-selection.handler.d.ts +11 -0
- package/domain/get-selection/get-selection.request.d.ts +2 -0
- package/domain/get-selection/index.d.ts +2 -0
- package/domain/index.d.ts +3 -1
- package/domain/providers.d.ts +4 -2
- package/domain/select-all/index.d.ts +2 -0
- package/domain/{select-all.handler.d.ts → select-all/select-all.handler.d.ts} +5 -4
- package/domain/select-all/select-all.request.d.ts +2 -0
- package/esm2022/domain/clear-selection/clear-selection.handler.mjs +28 -0
- package/esm2022/domain/clear-selection/clear-selection.request.mjs +3 -0
- package/esm2022/domain/clear-selection/index.mjs +3 -0
- package/esm2022/domain/get-selection/get-selection.handler.mjs +35 -0
- package/esm2022/domain/get-selection/get-selection.request.mjs +3 -0
- package/esm2022/domain/get-selection/index.mjs +3 -0
- package/esm2022/domain/index.mjs +4 -2
- package/esm2022/domain/providers.mjs +7 -3
- package/esm2022/domain/select-all/index.mjs +3 -0
- package/esm2022/domain/select-all/select-all.handler.mjs +38 -0
- package/esm2022/domain/select-all/select-all.request.mjs +3 -0
- package/esm2022/f-canvas/f-canvas.component.mjs +4 -8
- package/esm2022/f-draggable/external-item/external-item.drag-handler.mjs +1 -4
- package/esm2022/f-draggable/f-draggable-base.mjs +148 -7
- package/esm2022/f-draggable/f-draggable.directive.mjs +19 -24
- package/esm2022/f-draggable/f-selection-change-event.mjs +7 -0
- package/esm2022/f-draggable/index.mjs +2 -2
- package/esm2022/f-draggable/single-select/index.mjs +1 -2
- package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +2 -2
- package/esm2022/f-flow/f-flow.component.mjs +11 -2
- package/f-canvas/f-canvas.component.d.ts +2 -4
- package/f-draggable/connections/providers.d.ts +1 -1
- package/f-draggable/external-item/external-item.drag-handler.d.ts +1 -2
- package/f-draggable/external-item/providers.d.ts +1 -1
- package/f-draggable/f-draggable-base.d.ts +38 -8
- package/f-draggable/f-draggable.directive.d.ts +6 -4
- package/f-draggable/index.d.ts +1 -1
- package/f-draggable/node/providers.d.ts +1 -1
- package/f-draggable/single-select/index.d.ts +0 -1
- package/f-flow/f-flow.component.d.ts +4 -0
- package/fesm2022/foblex-flow.mjs +1646 -1594
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/esm2022/domain/select-all.handler.mjs +0 -31
- package/esm2022/f-draggable/i-drag-and-drop-base.mjs +0 -147
- package/esm2022/f-draggable/single-select/f-selection-change-event.mjs +0 -7
- package/f-draggable/i-drag-and-drop-base.d.ts +0 -34
- /package/f-draggable/{single-select/f-selection-change-event.d.ts → f-selection-change-event.d.ts} +0 -0
|
@@ -1,15 +1,156 @@
|
|
|
1
|
+
import { EventExtensions, IMouseEvent, ITouchDownEvent, ITouchMoveEvent, ITouchUpEvent, PointExtensions } from '@foblex/core';
|
|
1
2
|
import { Directive, InjectionToken, } from '@angular/core';
|
|
2
|
-
import { IDragAndDropBase } from './i-drag-and-drop-base';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export const F_DRAGGABLE = new InjectionToken('F_DRAGGABLE');
|
|
5
|
-
export
|
|
5
|
+
export const MOUSE_EVENT_IGNORE_TIME = 800;
|
|
6
|
+
export class FDraggableBase {
|
|
7
|
+
isSyntheticEvent(event) {
|
|
8
|
+
const isSyntheticEvent = !!this.lastTouchEventTime &&
|
|
9
|
+
(this.lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now());
|
|
10
|
+
return isSyntheticEvent;
|
|
11
|
+
}
|
|
6
12
|
constructor(ngZone) {
|
|
7
|
-
|
|
13
|
+
this.ngZone = ngZone;
|
|
14
|
+
this.mouseListeners = EventExtensions.emptyListener();
|
|
15
|
+
this.touchListeners = EventExtensions.emptyListener();
|
|
16
|
+
this.startListeners = EventExtensions.emptyListener();
|
|
17
|
+
this.lastTouchEventTime = 0;
|
|
18
|
+
this.isDragStarted = false;
|
|
19
|
+
this.dragStartThreshold = 5;
|
|
20
|
+
this.dragStartDelay = 0;
|
|
21
|
+
this.dragStartTime = 0;
|
|
22
|
+
this.dragStartPosition = PointExtensions.initialize();
|
|
23
|
+
this.moveHandler = this.checkDragSequenceToStart;
|
|
24
|
+
this.onMouseDown = (event) => {
|
|
25
|
+
const isSyntheticEvent = this.isSyntheticEvent(event);
|
|
26
|
+
const isFakeEvent = isFakeMousedownFromScreenReader(event);
|
|
27
|
+
const mouseEvent = new IMouseEvent(event);
|
|
28
|
+
if (isSyntheticEvent || isFakeEvent || this.disabled) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
let result = this.onPointerDown(mouseEvent);
|
|
32
|
+
if (result) {
|
|
33
|
+
this.dragStartTime = Date.now();
|
|
34
|
+
this.dragStartPosition = mouseEvent.getPosition();
|
|
35
|
+
this.ngZone.runOutsideAngular(() => {
|
|
36
|
+
this.document?.addEventListener('mousemove', this.onMouseMove);
|
|
37
|
+
this.document?.addEventListener('mouseup', this.onMouseUp);
|
|
38
|
+
});
|
|
39
|
+
this.mouseListeners = () => {
|
|
40
|
+
this.document?.removeEventListener('mousemove', this.onMouseMove);
|
|
41
|
+
this.document?.removeEventListener('mouseup', this.onMouseUp);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
this.onTouchDown = (event) => {
|
|
46
|
+
const isFakeEvent = isFakeTouchstartFromScreenReader(event);
|
|
47
|
+
const touchEvent = new ITouchDownEvent(event);
|
|
48
|
+
if (isFakeEvent || this.disabled) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
let result = this.onPointerDown(new ITouchDownEvent(event));
|
|
52
|
+
if (result) {
|
|
53
|
+
this.dragStartTime = Date.now();
|
|
54
|
+
this.dragStartPosition = touchEvent.getPosition();
|
|
55
|
+
this.ngZone.runOutsideAngular(() => {
|
|
56
|
+
this.document?.addEventListener('touchmove', this.onTouchMove);
|
|
57
|
+
this.document?.addEventListener('touchend', this.onTouchUp);
|
|
58
|
+
});
|
|
59
|
+
this.touchListeners = () => {
|
|
60
|
+
this.document?.removeEventListener('touchmove', this.onTouchMove);
|
|
61
|
+
this.document?.removeEventListener('touchend', this.onTouchUp);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
this.onMouseMove = (event) => {
|
|
66
|
+
this.moveHandler(new IMouseEvent(event));
|
|
67
|
+
};
|
|
68
|
+
this.onTouchMove = (event) => {
|
|
69
|
+
this.moveHandler(new ITouchMoveEvent(event));
|
|
70
|
+
};
|
|
71
|
+
this.onMouseUp = (event) => {
|
|
72
|
+
if (this.isDragStarted) {
|
|
73
|
+
this.onPointerUp(new IMouseEvent(event));
|
|
74
|
+
}
|
|
75
|
+
this.endDragSequence();
|
|
76
|
+
};
|
|
77
|
+
this.onTouchUp = (event) => {
|
|
78
|
+
if (this.isDragStarted) {
|
|
79
|
+
this.onPointerUp(new ITouchUpEvent(event));
|
|
80
|
+
}
|
|
81
|
+
this.endDragSequence();
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
checkDragSequenceToStart(event) {
|
|
85
|
+
const pointerPosition = event.getPosition();
|
|
86
|
+
if (!this.isDragStarted) {
|
|
87
|
+
const distanceX = Math.abs(pointerPosition.x - this.dragStartPosition.x);
|
|
88
|
+
const distanceY = Math.abs(pointerPosition.y - this.dragStartPosition.y);
|
|
89
|
+
const isOverThreshold = distanceX + distanceY >= this.dragStartThreshold;
|
|
90
|
+
if (isOverThreshold) {
|
|
91
|
+
const isDelayElapsed = Date.now() >= this.dragStartTime + this.dragStartDelay;
|
|
92
|
+
if (!isDelayElapsed) {
|
|
93
|
+
this.endDragSequence();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
this.prepareDragSequence(event);
|
|
98
|
+
this.isDragStarted = true;
|
|
99
|
+
this.moveHandler = this.onPointerMove;
|
|
100
|
+
if (isTouchEvent(event.originalEvent)) {
|
|
101
|
+
this.lastTouchEventTime = Date.now();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
endDragSequence() {
|
|
107
|
+
this.isDragStarted = false;
|
|
108
|
+
this.moveHandler = this.checkDragSequenceToStart;
|
|
109
|
+
this.mouseListeners();
|
|
110
|
+
this.mouseListeners = EventExtensions.emptyListener();
|
|
111
|
+
this.touchListeners();
|
|
112
|
+
this.touchListeners = EventExtensions.emptyListener();
|
|
113
|
+
this.finalizeDragSequence();
|
|
114
|
+
}
|
|
115
|
+
subscribe(document) {
|
|
116
|
+
if (this.document) {
|
|
117
|
+
this.unsubscribe();
|
|
118
|
+
}
|
|
119
|
+
this.document = document;
|
|
120
|
+
this.ngZone.runOutsideAngular(() => {
|
|
121
|
+
document.addEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
|
|
122
|
+
document.addEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
|
|
123
|
+
});
|
|
124
|
+
this.startListeners = () => {
|
|
125
|
+
document.removeEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
|
|
126
|
+
document.removeEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
|
|
127
|
+
};
|
|
8
128
|
}
|
|
9
|
-
|
|
10
|
-
|
|
129
|
+
unsubscribe() {
|
|
130
|
+
this.startListeners();
|
|
131
|
+
this.startListeners = EventExtensions.emptyListener();
|
|
132
|
+
this.touchListeners();
|
|
133
|
+
this.touchListeners = EventExtensions.emptyListener();
|
|
134
|
+
this.mouseListeners();
|
|
135
|
+
this.mouseListeners = EventExtensions.emptyListener();
|
|
136
|
+
}
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FDraggableBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
138
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FDraggableBase, ngImport: i0 }); }
|
|
11
139
|
}
|
|
12
140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FDraggableBase, decorators: [{
|
|
13
141
|
type: Directive
|
|
14
|
-
}], ctorParameters: () => [{ type:
|
|
15
|
-
|
|
142
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
143
|
+
function isTouchEvent(event) {
|
|
144
|
+
return event.type[0] === 't';
|
|
145
|
+
}
|
|
146
|
+
function isFakeMousedownFromScreenReader(event) {
|
|
147
|
+
return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);
|
|
148
|
+
}
|
|
149
|
+
function isFakeTouchstartFromScreenReader(event) {
|
|
150
|
+
const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);
|
|
151
|
+
return (!!touch &&
|
|
152
|
+
touch.identifier === -1 &&
|
|
153
|
+
(touch.radiusX == null || touch.radiusX === 1) &&
|
|
154
|
+
(touch.radiusY == null || touch.radiusY === 1));
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNFLFdBQVcsRUFBeUIsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUN0SCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsU0FBUyxFQUVULGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQzs7QUFPdkIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQixhQUFhLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFHM0MsTUFBTSxPQUFnQixjQUFjO0lBbUIzQixnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCO1lBQ2hELENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQWVELFlBQ1ksTUFBNkI7UUFBN0IsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUF6QmpDLG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBUTNELHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFM0Isa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsc0JBQWlCLEdBQVcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBSXpELGdCQUFXLEdBQWEsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBT3RELGdCQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsK0JBQStCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsSUFBSSxnQkFBZ0IsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDcEQsT0FBTzthQUNSO1lBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sRUFBRTtnQkFFVixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFFbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hFLENBQUMsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFBO1FBRU8sZ0JBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUMxQyxNQUFNLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQyxLQUFtQixDQUFDLENBQUE7WUFDekUsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUMsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDaEMsT0FBTzthQUNSO1lBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzVELElBQUksTUFBTSxFQUFFO2dCQUVWLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVsRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtvQkFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFO29CQUN6QixJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakUsQ0FBQyxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUE7UUFFTyxnQkFBVyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUE7UUFFTyxnQkFBVyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUE7UUErQk8sY0FBUyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQ3hDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQTtRQUVPLGNBQVMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUN4QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM1QztZQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUE7SUF0R0QsQ0FBQztJQTZETyx3QkFBd0IsQ0FBQyxLQUFvQjtRQUNuRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sZUFBZSxHQUFHLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBRXpFLElBQUksZUFBZSxFQUFFO2dCQUNuQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUU5RSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUNuQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3ZCLE9BQU87aUJBQ1I7Z0JBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ3RDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDdEM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQWtCTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQVVNLFNBQVMsQ0FBQyxRQUFrQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzNGLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ3pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUM5RixRQUFRLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFFaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEQsQ0FBQzs4R0E1TG1CLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsU0FBUzs7QUFnTVYsU0FBUyxZQUFZLENBQUMsS0FBOEI7SUFDbEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBRSxLQUFLLEdBQUcsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxLQUFpQjtJQUN4RCxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBQyxLQUFpQjtJQUN6RCxNQUFNLEtBQUssR0FDVCxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBRSxDQUFDLENBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBRSxDQUFDLENBQUM7SUFDL0YsT0FBTyxDQUNMLENBQUMsQ0FBQyxLQUFLO1FBQ1AsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQy9DLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXZlbnRFeHRlbnNpb25zLFxuICBJSGFzSG9zdEVsZW1lbnQsIElNb3VzZUV2ZW50LCBJUG9pbnQsIElQb2ludGVyRXZlbnQsIElUb3VjaERvd25FdmVudCwgSVRvdWNoTW92ZUV2ZW50LCBJVG91Y2hVcEV2ZW50LCBQb2ludEV4dGVuc2lvbnNcbn0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ3JlYXRlTm9kZUV2ZW50fSBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQgeyBJQ2FuUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICdAZm9ibGV4L2NvcmUvZHJhZy1hbmQtZHJvcC9pLWNhbi1ydW4tb3V0c2lkZS1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IEZfRFJBR0dBQkxFID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnZ2FibGVCYXNlPignRl9EUkFHR0FCTEUnKTtcblxuZXhwb3J0IGNvbnN0IE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID0gODAwO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZSZWFzc2lnbkNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ3JlYXRlQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+O1xuXG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgbW91c2VMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgcHJpdmF0ZSB0b3VjaExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgc3RhcnRMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcblxuICBwdWJsaWMgaXNTeW50aGV0aWNFdmVudChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3ludGhldGljRXZlbnQgPSAhIXRoaXMubGFzdFRvdWNoRXZlbnRUaW1lICYmXG4gICAgICAodGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgKyBNT1VTRV9FVkVOVF9JR05PUkVfVElNRSA+IERhdGUubm93KCkpO1xuICAgIHJldHVybiBpc1N5bnRoZXRpY0V2ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBsYXN0VG91Y2hFdmVudFRpbWU6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGlzRHJhZ1N0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaHJlc2hvbGQ6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0RGVsYXk6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaW1lOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGRyYWdTdGFydFBvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIG1vdmVIYW5kbGVyOiBGdW5jdGlvbiA9IHRoaXMuY2hlY2tEcmFnU2VxdWVuY2VUb1N0YXJ0O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbmdab25lOiBJQ2FuUnVuT3V0c2lkZUFuZ3VsYXJcbiAgKSB7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaXNTeW50aGV0aWNFdmVudCA9IHRoaXMuaXNTeW50aGV0aWNFdmVudChldmVudCk7XG4gICAgY29uc3QgaXNGYWtlRXZlbnQgPSBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyKGV2ZW50KTtcbiAgICBjb25zdCBtb3VzZUV2ZW50ID0gbmV3IElNb3VzZUV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChpc1N5bnRoZXRpY0V2ZW50IHx8IGlzRmFrZUV2ZW50IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bihtb3VzZUV2ZW50KTtcbiAgICBpZiAocmVzdWx0KSB7XG5cbiAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0aGlzLmRyYWdTdGFydFBvc2l0aW9uID0gbW91c2VFdmVudC5nZXRQb3NpdGlvbigpO1xuXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hEb3duID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgY29uc3QgaXNGYWtlRXZlbnQgPSBpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCBhcyBUb3VjaEV2ZW50KVxuICAgIGNvbnN0IHRvdWNoRXZlbnQgPSBuZXcgSVRvdWNoRG93bkV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChpc0Zha2VFdmVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSB0aGlzLm9uUG9pbnRlckRvd24obmV3IElUb3VjaERvd25FdmVudChldmVudCkpO1xuICAgIGlmIChyZXN1bHQpIHtcblxuICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24gPSB0b3VjaEV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoVXApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMub25Ub3VjaE1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMub25Ub3VjaFVwKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIHRoaXMubW92ZUhhbmRsZXIobmV3IElNb3VzZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hNb3ZlID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSVRvdWNoTW92ZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEcmFnU3RhcnRlZCkge1xuICAgICAgY29uc3QgZGlzdGFuY2VYID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnggLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLngpO1xuICAgICAgY29uc3QgZGlzdGFuY2VZID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnkgLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLnkpO1xuICAgICAgY29uc3QgaXNPdmVyVGhyZXNob2xkID0gZGlzdGFuY2VYICsgZGlzdGFuY2VZID49IHRoaXMuZHJhZ1N0YXJ0VGhyZXNob2xkO1xuXG4gICAgICBpZiAoaXNPdmVyVGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnN0IGlzRGVsYXlFbGFwc2VkID0gRGF0ZS5ub3coKSA+PSB0aGlzLmRyYWdTdGFydFRpbWUgKyB0aGlzLmRyYWdTdGFydERlbGF5O1xuXG4gICAgICAgIGlmICghaXNEZWxheUVsYXBzZWQpIHtcbiAgICAgICAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZURyYWdTZXF1ZW5jZShldmVudCk7XG4gICAgICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLm9uUG9pbnRlck1vdmU7XG4gICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQub3JpZ2luYWxFdmVudCkpIHtcbiAgICAgICAgICB0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJTW91c2VFdmVudChldmVudCkpO1xuICAgIH1cbiAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoVXAgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJVG91Y2hVcEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICAgIHRoaXMuZW5kRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuZERyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRHJhZ1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLm1vdmVIYW5kbGVyID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycygpO1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLmZpbmFsaXplRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZmluYWxpemVEcmFnU2VxdWVuY2UoKTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlck1vdmUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIHN1YnNjcmliZShkb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydExpc3RlbmVycygpO1xuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUb3VjaEV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQge1xuICByZXR1cm4gZXZlbnQudHlwZVsgMCBdID09PSAndCc7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LmJ1dHRvbnMgPT09IDAgfHwgKGV2ZW50Lm9mZnNldFggPT09IDAgJiYgZXZlbnQub2Zmc2V0WSA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50OiBUb3VjaEV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHRvdWNoOiBUb3VjaCB8IHVuZGVmaW5lZCA9XG4gICAgKGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlc1sgMCBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbIDAgXSk7XG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -3,25 +3,29 @@ import { F_DRAGGABLE, FDraggableBase } from './f-draggable-base';
|
|
|
3
3
|
import { Subscription } from 'rxjs';
|
|
4
4
|
import { ExternalItemOnPointerUp, ExternalItemPrepareDragSequence } from './external-item';
|
|
5
5
|
import { Point } from '@foblex/core';
|
|
6
|
-
import {
|
|
6
|
+
import { SingleSelectOnPointerDown } from './single-select';
|
|
7
7
|
import { SelectionAreaOnPointerUp, SelectionAreaPrepareDragSequence } from './selection-area';
|
|
8
8
|
import { NodeOnPointerUp, NodePrepareDragSequence } from './node';
|
|
9
9
|
import { CanvasOnPointerUp, CanvasPrepareDragSequence } from './canvas';
|
|
10
10
|
import { DOCUMENT } from '@angular/common';
|
|
11
11
|
import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './connections';
|
|
12
|
+
import { GetSelectionRequest } from '../domain';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "./f-draggable-data-context";
|
|
14
15
|
import * as i2 from "../f-components-store";
|
|
16
|
+
import * as i3 from "../f-mediator";
|
|
15
17
|
export class FDraggableDirective extends FDraggableBase {
|
|
16
18
|
get hostElement() {
|
|
17
19
|
return this.elementReference.nativeElement;
|
|
18
20
|
}
|
|
19
|
-
constructor(elementReference, fDraggableDataContext, ngZone, injector, fComponentsStore,
|
|
21
|
+
constructor(elementReference, fDraggableDataContext, ngZone, injector, fComponentsStore, fMediator, doc) {
|
|
20
22
|
super(ngZone);
|
|
21
23
|
this.elementReference = elementReference;
|
|
22
24
|
this.fDraggableDataContext = fDraggableDataContext;
|
|
23
25
|
this.injector = injector;
|
|
24
26
|
this.fComponentsStore = fComponentsStore;
|
|
27
|
+
this.fMediator = fMediator;
|
|
28
|
+
this.doc = doc;
|
|
25
29
|
this.subscriptions$ = new Subscription();
|
|
26
30
|
this.disabled = false;
|
|
27
31
|
this.fSelectionChange = new EventEmitter();
|
|
@@ -30,23 +34,22 @@ export class FDraggableDirective extends FDraggableBase {
|
|
|
30
34
|
this.fCreateNode = new EventEmitter();
|
|
31
35
|
this.fReassignConnection = new EventEmitter();
|
|
32
36
|
this.fCreateConnection = new EventEmitter();
|
|
33
|
-
this.selectedItemsOnPointerDown = 0;
|
|
34
|
-
this.document = document;
|
|
35
37
|
}
|
|
36
38
|
ngOnInit() {
|
|
37
39
|
this.fComponentsStore.fDraggable = this;
|
|
38
40
|
}
|
|
39
41
|
ngAfterViewInit() {
|
|
40
|
-
super.subscribe(this.
|
|
42
|
+
super.subscribe(this.doc);
|
|
41
43
|
}
|
|
42
44
|
onPointerDown(event) {
|
|
43
45
|
this.fDraggableDataContext.reset();
|
|
44
46
|
let result = event.isMouseLeftButton();
|
|
45
|
-
this.selectedItemsOnPointerDown = this.fDraggableDataContext.selectedItems.length;
|
|
46
47
|
this.injector.get(SingleSelectOnPointerDown).handle(event);
|
|
47
48
|
this.injector.get(ReassignConnectionPrepareDragSequence).handle(event);
|
|
48
49
|
this.injector.get(CreateConnectionPrepareDragSequence).handle(event);
|
|
49
|
-
|
|
50
|
+
if (!result) {
|
|
51
|
+
this.finalizeDragSequence();
|
|
52
|
+
}
|
|
50
53
|
return result;
|
|
51
54
|
}
|
|
52
55
|
prepareDragSequence(event) {
|
|
@@ -76,31 +79,23 @@ export class FDraggableDirective extends FDraggableBase {
|
|
|
76
79
|
this.injector.get(CanvasOnPointerUp).handle(event);
|
|
77
80
|
this.injector.get(ExternalItemOnPointerUp).handle(event);
|
|
78
81
|
this.hostElement.classList.remove('f-dragging');
|
|
79
|
-
this.emitSelectionChangeEvent();
|
|
80
82
|
this.fDraggableDataContext.reset();
|
|
81
83
|
}
|
|
84
|
+
finalizeDragSequence() {
|
|
85
|
+
this.emitSelectionChangeEvent();
|
|
86
|
+
}
|
|
82
87
|
emitSelectionChangeEvent() {
|
|
83
|
-
if (!this.fDraggableDataContext.isSelectedChanged
|
|
84
|
-
&& this.selectedItemsOnPointerDown === this.fDraggableDataContext.selectedItems.length) {
|
|
88
|
+
if (!this.fDraggableDataContext.isSelectedChanged) {
|
|
85
89
|
return;
|
|
86
90
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.fDraggableDataContext.selectedItems.forEach((x) => {
|
|
90
|
-
if (x.hostElement.classList.contains('f-node')) {
|
|
91
|
-
selectedNodes.push(x.hostElement.id);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
selectedConnections.push(x.hostElement.id);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
this.fSelectionChange.emit(new FSelectionChangeEvent(selectedNodes, selectedConnections));
|
|
91
|
+
const result = this.fMediator.send(new GetSelectionRequest());
|
|
92
|
+
this.fSelectionChange.emit(result);
|
|
98
93
|
}
|
|
99
94
|
ngOnDestroy() {
|
|
100
95
|
super.unsubscribe();
|
|
101
96
|
this.subscriptions$.unsubscribe();
|
|
102
97
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: i0.NgZone }, { token: i0.Injector }, { token: i2.FComponentsStore }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: i0.NgZone }, { token: i0.Injector }, { token: i2.FComponentsStore }, { token: i3.FFlowMediator }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
104
99
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: ["fDraggableDisabled", "disabled"] }, outputs: { fSelectionChange: "fSelectionChange", fCreateNode: "fCreateNode", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection" }, providers: [
|
|
105
100
|
{ provide: F_DRAGGABLE, useExisting: FDraggableDirective }
|
|
106
101
|
], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 }); }
|
|
@@ -114,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
114
109
|
{ provide: F_DRAGGABLE, useExisting: FDraggableDirective }
|
|
115
110
|
]
|
|
116
111
|
}]
|
|
117
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: i0.NgZone }, { type: i0.Injector }, { type: i2.FComponentsStore }, { type:
|
|
112
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: i0.NgZone }, { type: i0.Injector }, { type: i2.FComponentsStore }, { type: i3.FFlowMediator }, { type: Document, decorators: [{
|
|
118
113
|
type: Inject,
|
|
119
114
|
args: [DOCUMENT]
|
|
120
115
|
}] }], propDecorators: { disabled: [{
|
|
@@ -129,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
129
124
|
}], fCreateConnection: [{
|
|
130
125
|
type: Output
|
|
131
126
|
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFPckQsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJ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RTtTQUMzRDs7MkZBRVUsbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7cUJBQzNEO2lCQUNGOzswQkFxQ00sTUFBTTsyQkFBQyxRQUFRO3lDQS9CSixRQUFRO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFRWCxnQkFBZ0I7c0JBRC9CLE1BQU07Z0JBT1MsV0FBVztzQkFEMUIsTUFBTTtnQkFJUyxtQkFBbUI7c0JBRGxDLE1BQU07Z0JBSVMsaUJBQWlCO3NCQURoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZfRFJBR0dBQkxFLCBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkNyZWF0ZU5vZGVFdmVudCwgRXh0ZXJuYWxJdGVtT25Qb2ludGVyVXAsIEV4dGVybmFsSXRlbVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgSVBvaW50ZXJFdmVudCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkNoYW5nZUV2ZW50LCBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCwgU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IE5vZGVPblBvaW50ZXJVcCwgTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgQ2FudmFzT25Qb2ludGVyVXAsIENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG59IGZyb20gJy4vY29ubmVjdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiZi1mbG93W2ZEcmFnZ2FibGVdXCIsXG4gIGV4cG9ydEFzOiAnZkRyYWdnYWJsZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9EUkFHR0FCTEUsIHVzZUV4aXN0aW5nOiBGRHJhZ2dhYmxlRGlyZWN0aXZlIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGRHJhZ2dhYmxlRGlyZWN0aXZlIGV4dGVuZHMgRkRyYWdnYWJsZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgnZkRyYWdnYWJsZURpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIC8vIEBPdXRwdXQoKVxuICAvLyBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JbnRlcnNlY3ROb2RlOiBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEl0ZW1zT25Qb2ludGVyRG93bjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGUgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5zdWJzY3JpYmUodGhpcy5kb2N1bWVudCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnJlc2V0KCk7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGV2ZW50LmlzTW91c2VMZWZ0QnV0dG9uKCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNPblBvaW50ZXJEb3duID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoUmVhc3NpZ25Db25uZWN0aW9uUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCkge1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChFeHRlcm5hbEl0ZW1QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChTZWxlY3Rpb25BcmVhT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDYW52YXNPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEV4dGVybmFsSXRlbU9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmLWRyYWdnaW5nJyk7XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICAgIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkXG4gICAgICAgICYmIHRoaXMuc2VsZWN0ZWRJdGVtc09uUG9pbnRlckRvd24gPT09IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBzZWxlY3RlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBzZWxlY3RlZENvbm5lY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgaWYgKHguaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmLW5vZGUnKSkge1xuICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2goeC5ob3N0RWxlbWVudC5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZENvbm5lY3Rpb25zLnB1c2goeC5ob3N0RWxlbWVudC5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mU2VsZWN0aW9uQ2hhbmdlLmVtaXQobmV3IEZTZWxlY3Rpb25DaGFuZ2VFdmVudChzZWxlY3RlZE5vZGVzLCBzZWxlY3RlZENvbm5lY3Rpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuIl19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQVNoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQU9yRCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdC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LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE91dHB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRl9EUkFHR0FCTEUsIEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQ3JlYXRlTm9kZUV2ZW50LCBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCwgRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSB9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCwgU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IE5vZGVPblBvaW50ZXJVcCwgTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgQ2FudmFzT25Qb2ludGVyVXAsIENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG59IGZyb20gJy4vY29ubmVjdGlvbnMnO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0U2VsZWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gQE91dHB1dCgpXG4gIC8vIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkludGVyc2VjdE5vZGU6IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBEb2N1bWVudFxuICApIHtcbiAgICBzdXBlcihuZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24pLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5pbmplY3Rvci5nZXQoU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChFeHRlcm5hbEl0ZW1QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChTZWxlY3Rpb25BcmVhT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDYW52YXNPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEV4dGVybmFsSXRlbU9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmLWRyYWdnaW5nJyk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpO1xuICAgIHRoaXMuZlNlbGVjdGlvbkNoYW5nZS5lbWl0KHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export class FSelectionChangeEvent {
|
|
2
|
+
constructor(nodes, connections) {
|
|
3
|
+
this.nodes = nodes;
|
|
4
|
+
this.connections = connections;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNXLEtBQWUsRUFDZixXQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVU7SUFFaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgbm9kZXM6IHN0cmluZ1tdLFxuICAgICAgcHVibGljIGNvbm5lY3Rpb25zOiBzdHJpbmdbXSxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,6 +8,6 @@ export * from './e-f-draggable-type';
|
|
|
8
8
|
export * from './f-draggable.directive';
|
|
9
9
|
export * from './f-draggable-base';
|
|
10
10
|
export * from './f-draggable-data-context';
|
|
11
|
-
export * from './
|
|
11
|
+
export * from './f-selection-change-event';
|
|
12
12
|
export * from './i-draggable-item';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYW52YXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb25zJztcblxuZXhwb3J0ICogZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZS1mLWRyYWdnYWJsZS10eXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWdnYWJsZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWRyYWdnYWJsZS1pdGVtJztcblxuXG5cbiJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export * from './providers';
|
|
2
|
-
export * from './f-selection-change-event';
|
|
3
2
|
export * from './single-select.on-pointer-down';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zaW5nbGUtc2VsZWN0Lm9uLXBvaW50ZXItZG93bic7XG4iXX0=
|
|
@@ -27,7 +27,7 @@ export class SingleSelectOnPointerDown {
|
|
|
27
27
|
if (node) {
|
|
28
28
|
if (!this.fDraggableDataContext.selectedItems.includes(node)) {
|
|
29
29
|
this.fDraggableDataContext.selectedItems.push(node);
|
|
30
|
-
if (element?.hostElement.
|
|
30
|
+
if (element?.hostElement.dataset['fNodeId'] !== node.hostElement.dataset['fNodeId']) {
|
|
31
31
|
this.fDraggableDataContext.isSelectedChanged = true;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -76,4 +76,4 @@ export class SingleSelectOnPointerDown {
|
|
|
76
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SingleSelectOnPointerDown, decorators: [{
|
|
77
77
|
type: Injectable
|
|
78
78
|
}], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetConnectionHandler }, { type: i3.UpdateConnectionLayerHandler }] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBR2hFLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLG9CQUEwQyxFQUMxQyw0QkFBMEQ7UUFIMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtJQUV0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzNFLE9BQU87U0FDUjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FB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LEVBQUU7Z0JBQ25CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhFVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBNb3VzZUV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0aW9uSGFuZGxlciwgVXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlciB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVNlbGVjdGFibGUgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgaXNOb2RlT3V0bGV0LCBpc05vZGVPdXRwdXQgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2luZ2xlU2VsZWN0T25Qb2ludGVyRG93biBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGdldENvbm5lY3Rpb25IYW5kbGVyOiBHZXRDb25uZWN0aW9uSGFuZGxlcixcbiAgICAgIHByaXZhdGUgdXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlcjogVXBkYXRlQ29ubmVjdGlvbkxheWVySGFuZGxlclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93Py5ob3N0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub2RlID0gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZpbmROb2RlKGV2ZW50LnRhcmdldEVsZW1lbnQpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmdldENvbm5lY3Rpb25IYW5kbGVyLmhhbmRsZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICB0aGlzLmRlc2VsZWN0QWxsKG5vZGUsIGV2ZW50KTtcblxuICAgIGxldCBlbGVtZW50OiBJU2VsZWN0YWJsZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGVsZW1lbnQgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zWyAwIF07XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbklmTm90TXVsdGlzZWxlY3QoZXZlbnQpO1xuXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlKSkge1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2gobm9kZSk7XG4gICAgICAgIGlmIChlbGVtZW50Py5ob3N0RWxlbWVudC5kYXRhc2V0WydmTm9kZUlkJ10gIT09IG5vZGUuaG9zdEVsZW1lbnQuZGF0YXNldFsnZk5vZGVJZCddKSB7XG4gICAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnNwbGljZSh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmluZGV4T2Yobm9kZSksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29ubmVjdGlvbikge1xuICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9uTGF5ZXJIYW5kbGVyLmhhbmRsZShjb25uZWN0aW9uKTtcbiAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhjb25uZWN0aW9uKSkge1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goY29ubmVjdGlvbik7XG4gICAgICAgIGlmIChlbGVtZW50Py5ob3N0RWxlbWVudC5pZCAhPT0gY29ubmVjdGlvbi5ob3N0RWxlbWVudC5pZCkge1xuICAgICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5zcGxpY2UodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGNvbm5lY3Rpb24pLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RJZk5vdFNlbGVjdGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc2VsZWN0QWxsKG5vZGU6IEZOb2RlQmFzZSB8IHVuZGVmaW5lZCwgZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmICh4ICE9PSBub2RlIHx8ICghaXNOb2RlT3V0bGV0KGV2ZW50LnRhcmdldEVsZW1lbnQpICYmICFpc05vZGVPdXRwdXQoZXZlbnQudGFyZ2V0RWxlbWVudCkpKSB7XG4gICAgICAgIHguZGVzZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZWxlY3Rpb25JZk5vdE11bHRpc2VsZWN0KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXNNdWx0aXNlbGVjdCA9XG4gICAgICAgIE1vdXNlRXZlbnRFeHRlbnNpb25zLmlzQ29tbWFuZEJ1dHRvbihldmVudC5vcmlnaW5hbEV2ZW50KSB8fFxuICAgICAgICBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KTtcbiAgICBpZiAoIWlzTXVsdGlzZWxlY3QpIHtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdElmTm90U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBpZiAoIXguaXNTZWxlY3RlZCgpKSB7XG4gICAgICAgIHguc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
|
|
|
2
2
|
import { F_FLOW, FFlowBase } from './f-flow-base';
|
|
3
3
|
import { FComponentsStore } from '../f-components-store';
|
|
4
4
|
import { debounceTime, startWith, Subscription } from 'rxjs';
|
|
5
|
-
import { COMMON_PROVIDERS, RedrawConnectionsRequest, } from '../domain';
|
|
5
|
+
import { ClearSelectionRequest, COMMON_PROVIDERS, GetSelectionRequest, RedrawConnectionsRequest, SelectAllRequest, } from '../domain';
|
|
6
6
|
import { FLOW } from '../get-flow-uid';
|
|
7
7
|
import { FFlowMediator } from '../f-mediator';
|
|
8
8
|
import { CANVAS_PROVIDERS, CONNECTIONS_PROVIDERS, EXTERNAL_ITEM_PROVIDERS, FDraggableDataContext, NODE_PROVIDERS, SELECTION_AREA_PROVIDERS, SINGLE_SELECT_PROVIDERS } from '../f-draggable';
|
|
@@ -45,6 +45,15 @@ export class FFlowComponent extends FFlowBase {
|
|
|
45
45
|
getNodesRect() {
|
|
46
46
|
return this.getAllNodesRectHandler.handle();
|
|
47
47
|
}
|
|
48
|
+
getSelection() {
|
|
49
|
+
return this.fMediator.send(new GetSelectionRequest());
|
|
50
|
+
}
|
|
51
|
+
selectAll() {
|
|
52
|
+
this.fMediator.send(new SelectAllRequest());
|
|
53
|
+
}
|
|
54
|
+
clearSelection() {
|
|
55
|
+
this.fMediator.send(new ClearSelectionRequest());
|
|
56
|
+
}
|
|
48
57
|
ngOnDestroy() {
|
|
49
58
|
this.subscription$.unsubscribe();
|
|
50
59
|
}
|
|
@@ -86,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
86
95
|
}], fLoaded: [{
|
|
87
96
|
type: Output
|
|
88
97
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93L2YtZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZmxvdy9mLWZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxLQUFLLEVBQXFCLE1BQU0sRUFDakMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBRWhCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEdBQ2pCLE1BQU0sV0FBVyxDQUFDO0FBRW5CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFDTCxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFDaEUscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRXhCLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQXlCekIsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBTzNDLElBQW9CLFdBQVc7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFPRCxZQUNZLGdCQUF5QyxFQUN6QyxzQkFBOEMsRUFDOUMsZ0JBQWtDLEVBQ2xDLFNBQXdCO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBTEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUN6QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQWxCNUIsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd6QyxZQUFPLEdBQVcsVUFBVyxRQUFRLEVBQUcsRUFBRSxDQUFDO1FBTzNDLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvRCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBU2xDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBRTFGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1lBRXBELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBd0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBbEVVLGNBQWM7a0dBQWQsY0FBYyx3TEFmZDtZQUNULGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLEdBQUcsdUJBQXVCO1lBQzFCLEdBQUcsd0JBQXdCO1lBQzNCLEdBQUcsY0FBYztZQUNqQixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLHVCQUF1QjtZQUMxQixHQUFHLHFCQUFxQjtZQUN4QixHQUFHLGdCQUFnQjtZQUNuQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRTtTQUNqRCxpRENsREgsb1VBV0E7OzJGRDBDYSxjQUFjO2tCQXZCMUIsU0FBUzsrQkFDRSxRQUFRLFFBR1o7d0JBQ0osV0FBVyxFQUFFLFNBQVM7d0JBQ3RCLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLGFBQ1U7d0JBQ1QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsR0FBRyx1QkFBdUI7d0JBQzFCLEdBQUcsd0JBQXdCO3dCQUMzQixHQUFHLGNBQWM7d0JBQ2pCLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLHVCQUF1Qjt3QkFDMUIsR0FBRyxxQkFBcUI7d0JBQ3hCLEdBQUcsZ0JBQWdCO3dCQUNuQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRTtxQkFDakQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07K0tBTy9CLE9BQU87c0JBRHRCLEtBQUs7Z0JBUVUsT0FBTztzQkFEdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGX0ZMT1csIEZGbG93QmFzZSB9IGZyb20gJy4vZi1mbG93LWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDbGVhclNlbGVjdGlvblJlcXVlc3QsXG4gIENPTU1PTl9QUk9WSURFUlMsXG4gIEdldEFsbE5vZGVzUmVjdEhhbmRsZXIsXG4gIEdldFNlbGVjdGlvblJlcXVlc3QsXG4gIFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCxcbiAgU2VsZWN0QWxsUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IElSZWN0IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZMT1cgfSBmcm9tICcuLi9nZXQtZmxvdy11aWQnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQ0FOVkFTX1BST1ZJREVSUywgQ09OTkVDVElPTlNfUFJPVklERVJTLCBFWFRFUk5BTF9JVEVNX1BST1ZJREVSUyxcbiAgRkRyYWdnYWJsZURhdGFDb250ZXh0LCBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gIE5PREVfUFJPVklERVJTLFxuICBTRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMsXG4gIFNJTkdMRV9TRUxFQ1RfUFJPVklERVJTXG59IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1mbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtZmxvdy5jb21wb25lbnQuc2NzcycgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnZkZsb3dJZCcsXG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1mbG93XCIsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIEZGbG93TWVkaWF0b3IsXG4gICAgRkNvbXBvbmVudHNTdG9yZSxcbiAgICBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgLi4uU0lOR0xFX1NFTEVDVF9QUk9WSURFUlMsXG4gICAgLi4uU0VMRUNUSU9OX0FSRUFfUFJPVklERVJTLFxuICAgIC4uLk5PREVfUFJPVklERVJTLFxuICAgIC4uLkNBTlZBU19QUk9WSURFUlMsXG4gICAgLi4uRVhURVJOQUxfSVRFTV9QUk9WSURFUlMsXG4gICAgLi4uQ09OTkVDVElPTlNfUFJPVklERVJTLFxuICAgIC4uLkNPTU1PTl9QUk9WSURFUlMsXG4gICAgeyBwcm92aWRlOiBGX0ZMT1csIHVzZUV4aXN0aW5nOiBGRmxvd0NvbXBvbmVudCB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRkZsb3dDb21wb25lbnQgZXh0ZW5kcyBGRmxvd0Jhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZGbG93SWQ6IHN0cmluZyA9IGBmLWZsb3ctJHsgdW5pcXVlSWQrKyB9YDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZMb2FkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGlzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBnZXRBbGxOb2Rlc1JlY3RIYW5kbGVyOiBHZXRBbGxOb2Rlc1JlY3RIYW5kbGVyLFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93ID0gdGhpcztcbiAgICBGTE9XLlVJRCA9IHRoaXMuZkZsb3dJZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24kLmFkZChcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVPbkVsZW1lbnRzQ2hhbmdlcygpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25FbGVtZW50c0NoYW5nZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIGRlYm91bmNlVGltZSgyMCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCgpKTtcblxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGVkKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZMb2FkZWQuZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldE5vZGVzUmVjdCgpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsTm9kZXNSZWN0SGFuZGxlci5oYW5kbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3Rpb24oKTogRlNlbGVjdGlvbkNoYW5nZUV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTZWxlY3RBbGxSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENsZWFyU2VsZWN0aW9uUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkRlZmluaXRpb25zXVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtYmFja2dyb3VuZFwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtbGluZS1hbGlnbm1lbnRcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNhbnZhc1wiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtc2VsZWN0aW9uLWFyZWFcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -3,12 +3,11 @@ import { FCanvasBase } from './f-canvas-base';
|
|
|
3
3
|
import { IPoint } from '@foblex/core';
|
|
4
4
|
import { FCanvasChangeEvent } from './domain';
|
|
5
5
|
import { FComponentsStore } from '../f-components-store';
|
|
6
|
-
import { GetAllNodesRectHandler
|
|
6
|
+
import { GetAllNodesRectHandler } from '../domain';
|
|
7
7
|
import { FNodeBase } from '../f-node';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class FCanvasComponent extends FCanvasBase implements OnInit {
|
|
10
10
|
private getAllNodesRectHandler;
|
|
11
|
-
private selectAllHandler;
|
|
12
11
|
private elementReference;
|
|
13
12
|
private fComponentsStore;
|
|
14
13
|
fCanvasChange: EventEmitter<FCanvasChangeEvent>;
|
|
@@ -18,13 +17,12 @@ export declare class FCanvasComponent extends FCanvasBase implements OnInit {
|
|
|
18
17
|
get hostElement(): HTMLElement;
|
|
19
18
|
fNodesContainer: ElementRef<HTMLElement>;
|
|
20
19
|
fConnectionsContainer: ElementRef<HTMLElement>;
|
|
21
|
-
constructor(getAllNodesRectHandler: GetAllNodesRectHandler,
|
|
20
|
+
constructor(getAllNodesRectHandler: GetAllNodesRectHandler, elementReference: ElementRef<HTMLElement>, fComponentsStore: FComponentsStore);
|
|
22
21
|
ngOnInit(): void;
|
|
23
22
|
redraw(): void;
|
|
24
23
|
redrawWithAnimation(): void;
|
|
25
24
|
fitToScreen(toCenter?: IPoint, animated?: boolean): void;
|
|
26
25
|
oneToOne(): void;
|
|
27
|
-
selectAll(): void;
|
|
28
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<FCanvasComponent, never>;
|
|
29
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<FCanvasComponent, "f-canvas", ["fComponent"], { "position": { "alias": "position"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "fCanvasChange": "fCanvasChange"; }, never, ["f-connection", "f-connection-for-create", "[fNode]"], false, never>;
|
|
30
28
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, FindFirstCanBeConnectedOutputByOutletHandler } from './create-connection';
|
|
2
2
|
import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, InputsUnderPointerHandler } from './find-inputs-under-pointer';
|
|
3
3
|
import { ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './reassign-connection';
|
|
4
|
-
export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof
|
|
4
|
+
export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof FindInputsUnderPointerHandler | typeof ReassignConnectionOnPointerUp | typeof ReassignConnectionPrepareDragSequence)[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IPoint
|
|
1
|
+
import { IPoint } from '@foblex/core';
|
|
2
2
|
import { IDraggableItem } from '../i-draggable-item';
|
|
3
3
|
import { EFDraggableType } from '../e-f-draggable-type';
|
|
4
4
|
import { FExternalItemBase } from '../../f-external-item';
|
|
@@ -13,6 +13,5 @@ export declare class ExternalItemDragHandler implements IDraggableItem {
|
|
|
13
13
|
initialize(): void;
|
|
14
14
|
private getExternalItemRect;
|
|
15
15
|
move(difference: IPoint): void;
|
|
16
|
-
getPlaceholderRect(): IRect;
|
|
17
16
|
complete(): void;
|
|
18
17
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ExternalItemOnPointerUp } from './external-item.on-pointer-up';
|
|
2
2
|
import { ExternalItemPrepareDragSequence } from './external-item.prepare-drag-sequence';
|
|
3
|
-
export declare const EXTERNAL_ITEM_PROVIDERS: (typeof
|
|
3
|
+
export declare const EXTERNAL_ITEM_PROVIDERS: (typeof ExternalItemOnPointerUp | typeof ExternalItemPrepareDragSequence)[];
|