@angflow/angular 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -0
- package/dist/base.css +1204 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts +25 -0
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts.map +1 -0
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js +58 -0
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js.map +1 -0
- package/dist/esm/lib/components/attribution/attribution.component.d.ts +6 -0
- package/dist/esm/lib/components/attribution/attribution.component.d.ts.map +1 -0
- package/dist/esm/lib/components/attribution/attribution.component.js +32 -0
- package/dist/esm/lib/components/attribution/attribution.component.js.map +1 -0
- package/dist/esm/lib/components/background/background.component.d.ts +31 -0
- package/dist/esm/lib/components/background/background.component.d.ts.map +1 -0
- package/dist/esm/lib/components/background/background.component.js +209 -0
- package/dist/esm/lib/components/background/background.component.js.map +1 -0
- package/dist/esm/lib/components/connection-line/connection-line.component.d.ts +36 -0
- package/dist/esm/lib/components/connection-line/connection-line.component.d.ts.map +1 -0
- package/dist/esm/lib/components/connection-line/connection-line.component.js +146 -0
- package/dist/esm/lib/components/connection-line/connection-line.component.js.map +1 -0
- package/dist/esm/lib/components/controls/controls.component.d.ts +25 -0
- package/dist/esm/lib/components/controls/controls.component.d.ts.map +1 -0
- package/dist/esm/lib/components/controls/controls.component.js +174 -0
- package/dist/esm/lib/components/controls/controls.component.js.map +1 -0
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts +6 -0
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js +24 -0
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js.map +1 -0
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts +22 -0
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +64 -0
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -0
- package/dist/esm/lib/components/edges/base-edge.component.d.ts +11 -0
- package/dist/esm/lib/components/edges/base-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/base-edge.component.js +56 -0
- package/dist/esm/lib/components/edges/base-edge.component.js.map +1 -0
- package/dist/esm/lib/components/edges/bezier-edge.component.d.ts +30 -0
- package/dist/esm/lib/components/edges/bezier-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/bezier-edge.component.js +68 -0
- package/dist/esm/lib/components/edges/bezier-edge.component.js.map +1 -0
- package/dist/esm/lib/components/edges/edge-text.component.d.ts +11 -0
- package/dist/esm/lib/components/edges/edge-text.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/edge-text.component.js +48 -0
- package/dist/esm/lib/components/edges/edge-text.component.js.map +1 -0
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts +21 -0
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +57 -0
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -0
- package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts +22 -0
- package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/smooth-step-edge.component.js +59 -0
- package/dist/esm/lib/components/edges/smooth-step-edge.component.js.map +1 -0
- package/dist/esm/lib/components/edges/step-edge.component.d.ts +22 -0
- package/dist/esm/lib/components/edges/step-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/step-edge.component.js +60 -0
- package/dist/esm/lib/components/edges/step-edge.component.js.map +1 -0
- package/dist/esm/lib/components/edges/straight-edge.component.d.ts +18 -0
- package/dist/esm/lib/components/edges/straight-edge.component.d.ts.map +1 -0
- package/dist/esm/lib/components/edges/straight-edge.component.js +53 -0
- package/dist/esm/lib/components/edges/straight-edge.component.js.map +1 -0
- package/dist/esm/lib/components/handle/handle.component.d.ts +28 -0
- package/dist/esm/lib/components/handle/handle.component.d.ts.map +1 -0
- package/dist/esm/lib/components/handle/handle.component.js +162 -0
- package/dist/esm/lib/components/handle/handle.component.js.map +1 -0
- package/dist/esm/lib/components/minimap/minimap.component.d.ts +75 -0
- package/dist/esm/lib/components/minimap/minimap.component.d.ts.map +1 -0
- package/dist/esm/lib/components/minimap/minimap.component.js +319 -0
- package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -0
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts +6 -0
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts.map +1 -0
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js +24 -0
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js.map +1 -0
- package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +44 -0
- package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts.map +1 -0
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js +198 -0
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -0
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts +19 -0
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts.map +1 -0
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +101 -0
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -0
- package/dist/esm/lib/components/nodes/default-node.component.d.ts +20 -0
- package/dist/esm/lib/components/nodes/default-node.component.d.ts.map +1 -0
- package/dist/esm/lib/components/nodes/default-node.component.js +52 -0
- package/dist/esm/lib/components/nodes/default-node.component.js.map +1 -0
- package/dist/esm/lib/components/nodes/group-node.component.d.ts +19 -0
- package/dist/esm/lib/components/nodes/group-node.component.d.ts.map +1 -0
- package/dist/esm/lib/components/nodes/group-node.component.js +34 -0
- package/dist/esm/lib/components/nodes/group-node.component.js.map +1 -0
- package/dist/esm/lib/components/nodes/input-node.component.d.ts +20 -0
- package/dist/esm/lib/components/nodes/input-node.component.d.ts.map +1 -0
- package/dist/esm/lib/components/nodes/input-node.component.js +49 -0
- package/dist/esm/lib/components/nodes/input-node.component.js.map +1 -0
- package/dist/esm/lib/components/nodes/output-node.component.d.ts +20 -0
- package/dist/esm/lib/components/nodes/output-node.component.d.ts.map +1 -0
- package/dist/esm/lib/components/nodes/output-node.component.js +48 -0
- package/dist/esm/lib/components/nodes/output-node.component.js.map +1 -0
- package/dist/esm/lib/components/panel/panel.component.d.ts +13 -0
- package/dist/esm/lib/components/panel/panel.component.d.ts.map +1 -0
- package/dist/esm/lib/components/panel/panel.component.js +39 -0
- package/dist/esm/lib/components/panel/panel.component.js.map +1 -0
- package/dist/esm/lib/components/selection-box/selection-box.component.d.ts +12 -0
- package/dist/esm/lib/components/selection-box/selection-box.component.d.ts.map +1 -0
- package/dist/esm/lib/components/selection-box/selection-box.component.js +56 -0
- package/dist/esm/lib/components/selection-box/selection-box.component.js.map +1 -0
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts +8 -0
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts.map +1 -0
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js +35 -0
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js.map +1 -0
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts +70 -0
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts.map +1 -0
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +503 -0
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js.map +1 -0
- package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts +281 -0
- package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts.map +1 -0
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js +644 -0
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -0
- package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts +56 -0
- package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts.map +1 -0
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js +312 -0
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -0
- package/dist/esm/lib/container/pane/pane.component.d.ts +35 -0
- package/dist/esm/lib/container/pane/pane.component.d.ts.map +1 -0
- package/dist/esm/lib/container/pane/pane.component.js +161 -0
- package/dist/esm/lib/container/pane/pane.component.js.map +1 -0
- package/dist/esm/lib/container/viewport/viewport.component.d.ts +9 -0
- package/dist/esm/lib/container/viewport/viewport.component.d.ts.map +1 -0
- package/dist/esm/lib/container/viewport/viewport.component.js +35 -0
- package/dist/esm/lib/container/viewport/viewport.component.js.map +1 -0
- package/dist/esm/lib/directives/drag.directive.d.ts +21 -0
- package/dist/esm/lib/directives/drag.directive.d.ts.map +1 -0
- package/dist/esm/lib/directives/drag.directive.js +69 -0
- package/dist/esm/lib/directives/drag.directive.js.map +1 -0
- package/dist/esm/lib/directives/drop-zone.directive.d.ts +30 -0
- package/dist/esm/lib/directives/drop-zone.directive.d.ts.map +1 -0
- package/dist/esm/lib/directives/drop-zone.directive.js +58 -0
- package/dist/esm/lib/directives/drop-zone.directive.js.map +1 -0
- package/dist/esm/lib/directives/key-handler.directive.d.ts +29 -0
- package/dist/esm/lib/directives/key-handler.directive.d.ts.map +1 -0
- package/dist/esm/lib/directives/key-handler.directive.js +176 -0
- package/dist/esm/lib/directives/key-handler.directive.js.map +1 -0
- package/dist/esm/lib/directives/node-type.directive.d.ts +21 -0
- package/dist/esm/lib/directives/node-type.directive.d.ts.map +1 -0
- package/dist/esm/lib/directives/node-type.directive.js +32 -0
- package/dist/esm/lib/directives/node-type.directive.js.map +1 -0
- package/dist/esm/lib/public-api.d.ts +40 -0
- package/dist/esm/lib/public-api.d.ts.map +1 -0
- package/dist/esm/lib/public-api.js +67 -0
- package/dist/esm/lib/public-api.js.map +1 -0
- package/dist/esm/lib/services/flow-store.service.d.ts +227 -0
- package/dist/esm/lib/services/flow-store.service.d.ts.map +1 -0
- package/dist/esm/lib/services/flow-store.service.js +542 -0
- package/dist/esm/lib/services/flow-store.service.js.map +1 -0
- package/dist/esm/lib/services/ng-flow.service.d.ts +186 -0
- package/dist/esm/lib/services/ng-flow.service.d.ts.map +1 -0
- package/dist/esm/lib/services/ng-flow.service.js +501 -0
- package/dist/esm/lib/services/ng-flow.service.js.map +1 -0
- package/dist/esm/lib/services/tokens.d.ts +4 -0
- package/dist/esm/lib/services/tokens.d.ts.map +1 -0
- package/dist/esm/lib/services/tokens.js +4 -0
- package/dist/esm/lib/services/tokens.js.map +1 -0
- package/dist/esm/lib/types/edges.d.ts +83 -0
- package/dist/esm/lib/types/edges.d.ts.map +1 -0
- package/dist/esm/lib/types/edges.js +2 -0
- package/dist/esm/lib/types/edges.js.map +1 -0
- package/dist/esm/lib/types/general.d.ts +128 -0
- package/dist/esm/lib/types/general.d.ts.map +1 -0
- package/dist/esm/lib/types/general.js +2 -0
- package/dist/esm/lib/types/general.js.map +1 -0
- package/dist/esm/lib/types/index.d.ts +5 -0
- package/dist/esm/lib/types/index.d.ts.map +1 -0
- package/dist/esm/lib/types/index.js +5 -0
- package/dist/esm/lib/types/index.js.map +1 -0
- package/dist/esm/lib/types/nodes.d.ts +53 -0
- package/dist/esm/lib/types/nodes.d.ts.map +1 -0
- package/dist/esm/lib/types/nodes.js +2 -0
- package/dist/esm/lib/types/nodes.js.map +1 -0
- package/dist/esm/lib/types/store.d.ts +71 -0
- package/dist/esm/lib/types/store.d.ts.map +1 -0
- package/dist/esm/lib/types/store.js +2 -0
- package/dist/esm/lib/types/store.js.map +1 -0
- package/dist/esm/lib/utils/changes.d.ts +12 -0
- package/dist/esm/lib/utils/changes.d.ts.map +1 -0
- package/dist/esm/lib/utils/changes.js +134 -0
- package/dist/esm/lib/utils/changes.js.map +1 -0
- package/dist/esm/lib/utils/index.d.ts +2 -0
- package/dist/esm/lib/utils/index.d.ts.map +1 -0
- package/dist/esm/lib/utils/index.js +2 -0
- package/dist/esm/lib/utils/index.js.map +1 -0
- package/dist/esm/lib/utils/type-guards.d.ts +12 -0
- package/dist/esm/lib/utils/type-guards.d.ts.map +1 -0
- package/dist/esm/lib/utils/type-guards.js +16 -0
- package/dist/esm/lib/utils/type-guards.js.map +1 -0
- package/dist/style.css +1392 -0
- package/package.json +60 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, input, output, inject, NgZone, ElementRef } from '@angular/core';
|
|
2
|
+
import { getNodesInside, SelectionMode } from '@angflow/system';
|
|
3
|
+
import { FlowStore } from '../../services/flow-store.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const _c0 = ["*"];
|
|
6
|
+
export class PaneComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.store = inject(FlowStore);
|
|
9
|
+
this.zone = inject(NgZone);
|
|
10
|
+
this.el = inject((ElementRef));
|
|
11
|
+
this.panOnDrag = input(true, ...(ngDevMode ? [{ debugName: "panOnDrag" }] : /* istanbul ignore next */ []));
|
|
12
|
+
this.selectionOnDrag = input(false, ...(ngDevMode ? [{ debugName: "selectionOnDrag" }] : /* istanbul ignore next */ []));
|
|
13
|
+
this.selectionKeyCode = input(null, ...(ngDevMode ? [{ debugName: "selectionKeyCode" }] : /* istanbul ignore next */ []));
|
|
14
|
+
this.selectionMode = input(SelectionMode.Full, ...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
|
|
15
|
+
this.selectionStart = output();
|
|
16
|
+
this.selectionEnd = output();
|
|
17
|
+
this.paneScroll = output();
|
|
18
|
+
this.isSelecting = false;
|
|
19
|
+
this.startX = 0;
|
|
20
|
+
this.startY = 0;
|
|
21
|
+
this.boundOnMouseMove = null;
|
|
22
|
+
this.boundOnMouseUp = null;
|
|
23
|
+
this.nativeMouseDownHandler = null;
|
|
24
|
+
}
|
|
25
|
+
onWheel(event) {
|
|
26
|
+
this.paneScroll.emit(event);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Call this after d3-zoom is initialized to attach a capture-phase
|
|
30
|
+
* mousedown listener that fires BEFORE d3-zoom's listener.
|
|
31
|
+
*/
|
|
32
|
+
initSelectionListener() {
|
|
33
|
+
this.nativeMouseDownHandler = (e) => this.onMouseDown(e);
|
|
34
|
+
// Capture phase fires before d3-zoom's bubble-phase listener
|
|
35
|
+
this.el.nativeElement.addEventListener('mousedown', this.nativeMouseDownHandler, true);
|
|
36
|
+
}
|
|
37
|
+
onMouseDown(event) {
|
|
38
|
+
const shouldSelect = this.selectionOnDrag() || this.store.selectionKeyActive();
|
|
39
|
+
if (!shouldSelect)
|
|
40
|
+
return;
|
|
41
|
+
if (event.button !== 0)
|
|
42
|
+
return;
|
|
43
|
+
const target = event.target;
|
|
44
|
+
if (target.closest('.xy-flow__node') || target.closest('.xy-flow__handle') ||
|
|
45
|
+
target.closest('.xy-flow__edge') || target.closest('.xy-flow__controls') ||
|
|
46
|
+
target.closest('.xy-flow__panel')) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Prevent d3-zoom from seeing this event
|
|
50
|
+
event.stopImmediatePropagation();
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
const containerEl = this.store.domNode();
|
|
53
|
+
if (!containerEl)
|
|
54
|
+
return;
|
|
55
|
+
const rect = containerEl.getBoundingClientRect();
|
|
56
|
+
this.startX = event.clientX - rect.left;
|
|
57
|
+
this.startY = event.clientY - rect.top;
|
|
58
|
+
this.isSelecting = true;
|
|
59
|
+
this.store.userSelectionActive.set(true);
|
|
60
|
+
this.store.userSelectionRect.set({
|
|
61
|
+
x: this.startX,
|
|
62
|
+
y: this.startY,
|
|
63
|
+
width: 0,
|
|
64
|
+
height: 0,
|
|
65
|
+
startX: this.startX,
|
|
66
|
+
startY: this.startY,
|
|
67
|
+
});
|
|
68
|
+
this.selectionStart.emit(event);
|
|
69
|
+
this.boundOnMouseMove = (e) => this.onMouseMove(e);
|
|
70
|
+
this.boundOnMouseUp = (e) => this.onMouseUp(e);
|
|
71
|
+
this.zone.runOutsideAngular(() => {
|
|
72
|
+
document.addEventListener('mousemove', this.boundOnMouseMove);
|
|
73
|
+
document.addEventListener('mouseup', this.boundOnMouseUp);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
onMouseMove(event) {
|
|
77
|
+
if (!this.isSelecting)
|
|
78
|
+
return;
|
|
79
|
+
const containerEl = this.store.domNode();
|
|
80
|
+
if (!containerEl)
|
|
81
|
+
return;
|
|
82
|
+
const rect = containerEl.getBoundingClientRect();
|
|
83
|
+
const currentX = event.clientX - rect.left;
|
|
84
|
+
const currentY = event.clientY - rect.top;
|
|
85
|
+
const selectionRect = {
|
|
86
|
+
x: Math.min(this.startX, currentX),
|
|
87
|
+
y: Math.min(this.startY, currentY),
|
|
88
|
+
width: Math.abs(currentX - this.startX),
|
|
89
|
+
height: Math.abs(currentY - this.startY),
|
|
90
|
+
startX: this.startX,
|
|
91
|
+
startY: this.startY,
|
|
92
|
+
};
|
|
93
|
+
this.zone.run(() => {
|
|
94
|
+
this.store.userSelectionRect.set(selectionRect);
|
|
95
|
+
const transform = this.store.transform();
|
|
96
|
+
const partially = this.selectionMode() === SelectionMode.Partial;
|
|
97
|
+
const nodesInside = getNodesInside(this.store.nodeLookup, selectionRect, transform, partially);
|
|
98
|
+
const nodeIds = nodesInside.map(n => n.id);
|
|
99
|
+
if (nodeIds.length > 0) {
|
|
100
|
+
this.store.addSelectedNodes(nodeIds);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
onMouseUp(event) {
|
|
105
|
+
if (!this.isSelecting)
|
|
106
|
+
return;
|
|
107
|
+
this.isSelecting = false;
|
|
108
|
+
if (this.boundOnMouseMove) {
|
|
109
|
+
document.removeEventListener('mousemove', this.boundOnMouseMove);
|
|
110
|
+
this.boundOnMouseMove = null;
|
|
111
|
+
}
|
|
112
|
+
if (this.boundOnMouseUp) {
|
|
113
|
+
document.removeEventListener('mouseup', this.boundOnMouseUp);
|
|
114
|
+
this.boundOnMouseUp = null;
|
|
115
|
+
}
|
|
116
|
+
this.zone.run(() => {
|
|
117
|
+
this.store.userSelectionActive.set(false);
|
|
118
|
+
this.store.userSelectionRect.set(null);
|
|
119
|
+
this.selectionEnd.emit(event);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
ngOnDestroy() {
|
|
123
|
+
if (this.nativeMouseDownHandler) {
|
|
124
|
+
this.el.nativeElement.removeEventListener('mousedown', this.nativeMouseDownHandler, true);
|
|
125
|
+
}
|
|
126
|
+
if (this.boundOnMouseMove) {
|
|
127
|
+
document.removeEventListener('mousemove', this.boundOnMouseMove);
|
|
128
|
+
}
|
|
129
|
+
if (this.boundOnMouseUp) {
|
|
130
|
+
document.removeEventListener('mouseup', this.boundOnMouseUp);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = function PaneComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaneComponent)(); }; }
|
|
134
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaneComponent, selectors: [["ng-flow-pane"]], hostAttrs: [1, "ng-flow__pane", "xy-flow__pane", "xy-flow__container", 2, "display", "block", "position", "absolute", "width", "100%", "height", "100%", "top", "0", "left", "0", "z-index", "1"], hostVars: 6, hostBindings: function PaneComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
135
|
+
i0.ɵɵlistener("wheel", function PaneComponent_wheel_HostBindingHandler($event) { return ctx.onWheel($event); });
|
|
136
|
+
} if (rf & 2) {
|
|
137
|
+
i0.ɵɵclassProp("draggable", ctx.panOnDrag())("dragging", ctx.store.paneDragging())("selection", ctx.store.userSelectionActive());
|
|
138
|
+
} }, inputs: { panOnDrag: [1, "panOnDrag"], selectionOnDrag: [1, "selectionOnDrag"], selectionKeyCode: [1, "selectionKeyCode"], selectionMode: [1, "selectionMode"] }, outputs: { selectionStart: "selectionStart", selectionEnd: "selectionEnd", paneScroll: "paneScroll" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function PaneComponent_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
i0.ɵɵprojectionDef();
|
|
140
|
+
i0.ɵɵprojection(0);
|
|
141
|
+
} }, encapsulation: 2, changeDetection: 0 }); }
|
|
142
|
+
}
|
|
143
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaneComponent, [{
|
|
144
|
+
type: Component,
|
|
145
|
+
args: [{
|
|
146
|
+
selector: 'ng-flow-pane',
|
|
147
|
+
standalone: true,
|
|
148
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
|
+
host: {
|
|
150
|
+
'class': 'ng-flow__pane xy-flow__pane xy-flow__container',
|
|
151
|
+
'style': 'display: block; position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 1;',
|
|
152
|
+
'[class.draggable]': 'panOnDrag()',
|
|
153
|
+
'[class.dragging]': 'store.paneDragging()',
|
|
154
|
+
'[class.selection]': 'store.userSelectionActive()',
|
|
155
|
+
'(wheel)': 'onWheel($event)',
|
|
156
|
+
},
|
|
157
|
+
template: `<ng-content />`,
|
|
158
|
+
}]
|
|
159
|
+
}], null, { panOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnDrag", required: false }] }], selectionOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionOnDrag", required: false }] }], selectionKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionKeyCode", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], selectionStart: [{ type: i0.Output, args: ["selectionStart"] }], selectionEnd: [{ type: i0.Output, args: ["selectionEnd"] }], paneScroll: [{ type: i0.Output, args: ["paneScroll"] }] }); })();
|
|
160
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaneComponent, { className: "PaneComponent", filePath: "lib/container/pane/pane.component.ts", lineNumber: 19 }); })();
|
|
161
|
+
//# sourceMappingURL=pane.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pane.component.js","sourceRoot":"","sources":["../../../../../src/lib/container/pane/pane.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;;;AAgB9D,MAAM,OAAO,aAAa;IAd1B;QAeW,UAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,SAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,OAAE,GAAG,MAAM,CAAC,CAAA,UAAuB,CAAA,CAAC,CAAC;QAEpC,cAAS,GAAG,KAAK,CAAqB,IAAI,gFAAC,CAAC;QAC5C,oBAAe,GAAG,KAAK,CAAC,KAAK,sFAAC,CAAC;QAC/B,qBAAgB,GAAG,KAAK,CAAM,IAAI,uFAAC,CAAC;QACpC,kBAAa,GAAG,KAAK,CAAgB,aAAa,CAAC,IAAI,oFAAC,CAAC;QAEzD,mBAAc,GAAG,MAAM,EAAc,CAAC;QACtC,iBAAY,GAAG,MAAM,EAAc,CAAC;QACpC,eAAU,GAAG,MAAM,EAAc,CAAC;QAEnC,gBAAW,GAAG,KAAK,CAAC;QACpB,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QACX,qBAAgB,GAAqC,IAAI,CAAC;QAC1D,mBAAc,GAAqC,IAAI,CAAC;QACxD,2BAAsB,GAAgC,IAAI,CAAC;KAmIpE;IAjIC,OAAO,CAAC,KAAiB;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAe,CAAC,CAAC;QAC9E,6DAA6D;QAC7D,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC/E,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAC/B,CAAC,EAAE,IAAI,CAAC,MAAM;YACd,CAAC,EAAE,IAAI,CAAC,MAAM;YACd,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YAC/B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAiB,CAAC,CAAC;YAC/D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAe,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAE1C,MAAM,aAAa,GAAG;YACpB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,aAAa,CAAC,OAAO,CAAC;YACjE,MAAM,WAAW,GAAG,cAAc,CAChC,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,aAAa,EACb,SAAS,EACT,SAAS,CACV,CAAC;YAEF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,KAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;8GArJU,aAAa;oEAAb,aAAa;YAAb,wFAAA,mBAAe,IAAF;;YAAb,4BAAA,eAAW,CAAE,aAAb,wBAAoB,CAAP,cAAb,+BAA2B,CAAd;;;YAFb,kBAAc;;;iFAEd,aAAa;cAdzB,SAAS;eAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,6FAA6F;oBACtG,mBAAmB,EAAE,aAAa;oBAClC,kBAAkB,EAAE,sBAAsB;oBAC1C,mBAAmB,EAAE,6BAA6B;oBAClD,SAAS,EAAE,iBAAiB;iBAC7B;gBACD,QAAQ,EAAE,gBAAgB;aAC3B;;kFACY,aAAa"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Transform } from '@angflow/system';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ViewportComponent {
|
|
4
|
+
readonly transform: import("@angular/core").InputSignal<Transform>;
|
|
5
|
+
readonly cssTransform: import("@angular/core").Signal<string>;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ViewportComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ViewportComponent, "ng-flow-viewport", never, { "transform": { "alias": "transform"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=viewport.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/container/viewport/viewport.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;;AAEjD,qBAWa,iBAAiB;IAC5B,QAAQ,CAAC,SAAS,iDAA+B;IAEjD,QAAQ,CAAC,YAAY,yCAGlB;yCANQ,iBAAiB;2CAAjB,iBAAiB;CAO7B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, input, computed } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const _c0 = ["*"];
|
|
4
|
+
export class ViewportComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.transform = input.required(...(ngDevMode ? [{ debugName: "transform" }] : /* istanbul ignore next */ []));
|
|
7
|
+
this.cssTransform = computed(() => {
|
|
8
|
+
const t = this.transform();
|
|
9
|
+
return `translate(${t[0]}px, ${t[1]}px) scale(${t[2]})`;
|
|
10
|
+
}, ...(ngDevMode ? [{ debugName: "cssTransform" }] : /* istanbul ignore next */ []));
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = function ViewportComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ViewportComponent)(); }; }
|
|
13
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ViewportComponent, selectors: [["ng-flow-viewport"]], hostAttrs: [1, "ng-flow__viewport", "xy-flow__viewport", "xyflow__viewport", 2, "display", "block", "transform-origin", "0 0", "z-index", "2", "pointer-events", "none", "position", "absolute", "width", "100%", "height", "100%"], hostVars: 2, hostBindings: function ViewportComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
14
|
+
i0.ɵɵstyleProp("transform", ctx.cssTransform());
|
|
15
|
+
} }, inputs: { transform: [1, "transform"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function ViewportComponent_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵprojectionDef();
|
|
17
|
+
i0.ɵɵprojection(0);
|
|
18
|
+
} }, encapsulation: 2, changeDetection: 0 }); }
|
|
19
|
+
}
|
|
20
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewportComponent, [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'ng-flow-viewport',
|
|
24
|
+
standalone: true,
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
host: {
|
|
27
|
+
'class': 'ng-flow__viewport xy-flow__viewport xyflow__viewport',
|
|
28
|
+
'style': 'display: block; transform-origin: 0 0; z-index: 2; pointer-events: none; position: absolute; width: 100%; height: 100%;',
|
|
29
|
+
'[style.transform]': 'cssTransform()',
|
|
30
|
+
},
|
|
31
|
+
template: `<ng-content />`,
|
|
32
|
+
}]
|
|
33
|
+
}], null, { transform: [{ type: i0.Input, args: [{ isSignal: true, alias: "transform", required: true }] }] }); })();
|
|
34
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewportComponent, { className: "ViewportComponent", filePath: "lib/container/viewport/viewport.component.ts", lineNumber: 15 }); })();
|
|
35
|
+
//# sourceMappingURL=viewport.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.component.js","sourceRoot":"","sources":["../../../../../src/lib/container/viewport/viewport.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;;;AAcpF,MAAM,OAAO,iBAAiB;IAX9B;QAYW,cAAS,GAAG,KAAK,CAAC,QAAQ,+EAAa,CAAC;QAExC,iBAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,CAAC,mFAAC,CAAC;KACJ;kHAPY,iBAAiB;oEAAjB,iBAAiB;YAAjB,4BAAA,kBAAc,CAAG;;;YAFjB,kBAAc;;;iFAEd,iBAAiB;cAX7B,SAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,sDAAsD;oBAC/D,OAAO,EAAE,yHAAyH;oBAClI,mBAAmB,EAAE,gBAAgB;iBACtC;gBACD,QAAQ,EAAE,gBAAgB;aAC3B;;kFACY,iBAAiB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DragDirective implements OnInit, OnChanges, OnDestroy {
|
|
4
|
+
private store;
|
|
5
|
+
private el;
|
|
6
|
+
readonly nodeId: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
readonly noDragClassName: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly handleSelector: import("@angular/core").InputSignal<string | undefined>;
|
|
10
|
+
readonly isSelectable: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
readonly nodeClickDistance: import("@angular/core").InputSignal<number>;
|
|
12
|
+
private dragInstance;
|
|
13
|
+
ngOnInit(): void;
|
|
14
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
15
|
+
ngOnDestroy(): void;
|
|
16
|
+
private updateDrag;
|
|
17
|
+
private handleNodeClick;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DragDirective, never>;
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DragDirective, "[ngFlowDrag]", never, { "nodeId": { "alias": "ngFlowDrag"; "required": true; "isSignal": true; }; "disabled": { "alias": "ngFlowDragDisabled"; "required": false; "isSignal": true; }; "noDragClassName": { "alias": "ngFlowDragNoDragClass"; "required": false; "isSignal": true; }; "handleSelector": { "alias": "ngFlowDragHandleSelector"; "required": false; "isSignal": true; }; "isSelectable": { "alias": "ngFlowDragSelectable"; "required": false; "isSignal": true; }; "nodeClickDistance": { "alias": "ngFlowDragClickDistance"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=drag.directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drag.directive.d.ts","sourceRoot":"","sources":["../../../../src/lib/directives/drag.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,EACd,MAAM,eAAe,CAAC;;AAIvB,qBAIa,aAAc,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAChE,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,EAAE,CAAsC;IAEhD,QAAQ,CAAC,MAAM,8CAAmD;IAClE,QAAQ,CAAC,QAAQ,+CAAiD;IAClE,QAAQ,CAAC,eAAe,8CAA+D;IACvF,QAAQ,CAAC,cAAc,0DAA+E;IACtG,QAAQ,CAAC,YAAY,+CAAkD;IACvE,QAAQ,CAAC,iBAAiB,8CAAkD;IAE5E,OAAO,CAAC,YAAY,CAA+B;IAEnD,QAAQ,IAAI,IAAI;IAWhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;yCAjDZ,aAAa;2CAAb,aAAa;CA6DzB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, input, } from '@angular/core';
|
|
2
|
+
import { XYDrag } from '@angflow/system';
|
|
3
|
+
import { FlowStore } from '../services/flow-store.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DragDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.store = inject(FlowStore);
|
|
8
|
+
this.el = inject((ElementRef));
|
|
9
|
+
this.nodeId = input.required({ ...(ngDevMode ? { debugName: "nodeId" } : /* istanbul ignore next */ {}), alias: 'ngFlowDrag' });
|
|
10
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'ngFlowDragDisabled' });
|
|
11
|
+
this.noDragClassName = input('nodrag', { ...(ngDevMode ? { debugName: "noDragClassName" } : /* istanbul ignore next */ {}), alias: 'ngFlowDragNoDragClass' });
|
|
12
|
+
this.handleSelector = input(undefined, { ...(ngDevMode ? { debugName: "handleSelector" } : /* istanbul ignore next */ {}), alias: 'ngFlowDragHandleSelector' });
|
|
13
|
+
this.isSelectable = input(true, { ...(ngDevMode ? { debugName: "isSelectable" } : /* istanbul ignore next */ {}), alias: 'ngFlowDragSelectable' });
|
|
14
|
+
this.nodeClickDistance = input(0, { ...(ngDevMode ? { debugName: "nodeClickDistance" } : /* istanbul ignore next */ {}), alias: 'ngFlowDragClickDistance' });
|
|
15
|
+
this.dragInstance = null;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.dragInstance = XYDrag({
|
|
19
|
+
getStoreItems: () => this.store.getStoreItems(),
|
|
20
|
+
onNodeMouseDown: (id) => {
|
|
21
|
+
this.handleNodeClick(id);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
this.updateDrag();
|
|
25
|
+
}
|
|
26
|
+
ngOnChanges(changes) {
|
|
27
|
+
if (this.dragInstance) {
|
|
28
|
+
this.updateDrag();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngOnDestroy() {
|
|
32
|
+
this.dragInstance?.destroy();
|
|
33
|
+
}
|
|
34
|
+
updateDrag() {
|
|
35
|
+
if (this.disabled() || !this.el.nativeElement || !this.dragInstance) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.dragInstance.update({
|
|
39
|
+
noDragClassName: this.noDragClassName(),
|
|
40
|
+
handleSelector: this.handleSelector(),
|
|
41
|
+
domNode: this.el.nativeElement,
|
|
42
|
+
isSelectable: this.isSelectable(),
|
|
43
|
+
nodeId: this.nodeId(),
|
|
44
|
+
nodeClickDistance: this.nodeClickDistance(),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
handleNodeClick(id) {
|
|
48
|
+
const store = this.store;
|
|
49
|
+
const node = store.nodeLookup.get(id);
|
|
50
|
+
if (!node)
|
|
51
|
+
return;
|
|
52
|
+
if (store.selectNodesOnDrag()) {
|
|
53
|
+
// If the node is already selected, don't re-select (which would deselect others)
|
|
54
|
+
if (!node.selected) {
|
|
55
|
+
store.addSelectedNodes([id]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = function DragDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DragDirective)(); }; }
|
|
60
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: DragDirective, selectors: [["", "ngFlowDrag", ""]], inputs: { nodeId: [1, "ngFlowDrag", "nodeId"], disabled: [1, "ngFlowDragDisabled", "disabled"], noDragClassName: [1, "ngFlowDragNoDragClass", "noDragClassName"], handleSelector: [1, "ngFlowDragHandleSelector", "handleSelector"], isSelectable: [1, "ngFlowDragSelectable", "isSelectable"], nodeClickDistance: [1, "ngFlowDragClickDistance", "nodeClickDistance"] }, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
61
|
+
}
|
|
62
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragDirective, [{
|
|
63
|
+
type: Directive,
|
|
64
|
+
args: [{
|
|
65
|
+
selector: '[ngFlowDrag]',
|
|
66
|
+
standalone: true,
|
|
67
|
+
}]
|
|
68
|
+
}], null, { nodeId: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDrag", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDragDisabled", required: false }] }], noDragClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDragNoDragClass", required: false }] }], handleSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDragHandleSelector", required: false }] }], isSelectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDragSelectable", required: false }] }], nodeClickDistance: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngFlowDragClickDistance", required: false }] }] }); })();
|
|
69
|
+
//# sourceMappingURL=drag.directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drag.directive.js","sourceRoot":"","sources":["../../../../src/lib/directives/drag.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,KAAK,GAKN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAuB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;;AAM3D,MAAM,OAAO,aAAa;IAJ1B;QAKU,UAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAE,GAAG,MAAM,CAAC,CAAA,UAA0B,CAAA,CAAC,CAAC;QAEvC,WAAM,GAAG,KAAK,CAAC,QAAQ,6EAAW,KAAK,EAAE,YAAY,GAAG,CAAC;QACzD,aAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,KAAK,EAAE,oBAAoB,GAAG,CAAC;QACzD,oBAAe,GAAG,KAAK,CAAS,QAAQ,uFAAI,KAAK,EAAE,uBAAuB,GAAG,CAAC;QAC9E,mBAAc,GAAG,KAAK,CAAqB,SAAS,sFAAI,KAAK,EAAE,0BAA0B,GAAG,CAAC;QAC7F,iBAAY,GAAG,KAAK,CAAC,IAAI,oFAAI,KAAK,EAAE,sBAAsB,GAAG,CAAC;QAC9D,sBAAiB,GAAG,KAAK,CAAC,CAAC,yFAAI,KAAK,EAAE,yBAAyB,GAAG,CAAC;QAEpE,iBAAY,GAA0B,IAAI,CAAC;KAkDpD;IAhDC,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YACzB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC/C,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;YACrC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,EAAU;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC9B,iFAAiF;YACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;8GA5DU,aAAa;oEAAb,aAAa;;iFAAb,aAAa;cAJzB,SAAS;eAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,UAAU,EAAE,IAAI;aACjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import type { XYPosition } from '@angflow/system';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Directive that makes the flow canvas a drop zone for external drag-and-drop.
|
|
6
|
+
* Works with both native HTML5 drag-and-drop and Angular CDK draggables.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```html
|
|
10
|
+
* <ng-flow ngFlowDropZone (nodeDrop)="onDrop($event)" [nodes]="nodes" [edges]="edges">
|
|
11
|
+
* ...
|
|
12
|
+
* </ng-flow>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class NgFlowDropZoneDirective implements OnInit, OnDestroy {
|
|
16
|
+
private el;
|
|
17
|
+
private flowService;
|
|
18
|
+
readonly nodeDrop: import("@angular/core").OutputEmitterRef<{
|
|
19
|
+
event: DragEvent;
|
|
20
|
+
flowPosition: XYPosition;
|
|
21
|
+
data: string | null;
|
|
22
|
+
}>;
|
|
23
|
+
private onDragOver;
|
|
24
|
+
private onDrop;
|
|
25
|
+
ngOnInit(): void;
|
|
26
|
+
ngOnDestroy(): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgFlowDropZoneDirective, never>;
|
|
28
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFlowDropZoneDirective, "[ngFlowDropZone]", never, {}, { "nodeDrop": "nodeDrop"; }, never, never, true, never>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=drop-zone.directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-zone.directive.d.ts","sourceRoot":"","sources":["../../../../src/lib/directives/drop-zone.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,MAAM,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;;AAElD;;;;;;;;;;GAUG;AACH,qBAIa,uBAAwB,YAAW,MAAM,EAAE,SAAS;IAC/D,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAE5C,QAAQ,CAAC,QAAQ;eAAmB,SAAS;sBAAgB,UAAU;cAAQ,MAAM,GAAG,IAAI;OAAM;IAElG,OAAO,CAAC,UAAU,CAKhB;IAEF,OAAO,CAAC,MAAM,CAaZ;IAEF,QAAQ,IAAI,IAAI;IAMhB,WAAW,IAAI,IAAI;yCAlCR,uBAAuB;2CAAvB,uBAAuB;CAuCnC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, inject, output, ElementRef } from '@angular/core';
|
|
2
|
+
import { NgFlowService } from '../services/ng-flow.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Directive that makes the flow canvas a drop zone for external drag-and-drop.
|
|
6
|
+
* Works with both native HTML5 drag-and-drop and Angular CDK draggables.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```html
|
|
10
|
+
* <ng-flow ngFlowDropZone (nodeDrop)="onDrop($event)" [nodes]="nodes" [edges]="edges">
|
|
11
|
+
* ...
|
|
12
|
+
* </ng-flow>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export class NgFlowDropZoneDirective {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.el = inject((ElementRef));
|
|
18
|
+
this.flowService = inject(NgFlowService);
|
|
19
|
+
this.nodeDrop = output();
|
|
20
|
+
this.onDragOver = (event) => {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
if (event.dataTransfer) {
|
|
23
|
+
event.dataTransfer.dropEffect = 'move';
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
this.onDrop = (event) => {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
const flowPosition = this.flowService.screenToFlowPosition({
|
|
29
|
+
x: event.clientX,
|
|
30
|
+
y: event.clientY,
|
|
31
|
+
});
|
|
32
|
+
const data = event.dataTransfer?.getData('application/json')
|
|
33
|
+
?? event.dataTransfer?.getData('text/plain')
|
|
34
|
+
?? null;
|
|
35
|
+
this.nodeDrop.emit({ event, flowPosition, data });
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
const el = this.el.nativeElement;
|
|
40
|
+
el.addEventListener('dragover', this.onDragOver);
|
|
41
|
+
el.addEventListener('drop', this.onDrop);
|
|
42
|
+
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
const el = this.el.nativeElement;
|
|
45
|
+
el.removeEventListener('dragover', this.onDragOver);
|
|
46
|
+
el.removeEventListener('drop', this.onDrop);
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = function NgFlowDropZoneDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgFlowDropZoneDirective)(); }; }
|
|
49
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: NgFlowDropZoneDirective, selectors: [["", "ngFlowDropZone", ""]], outputs: { nodeDrop: "nodeDrop" } }); }
|
|
50
|
+
}
|
|
51
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgFlowDropZoneDirective, [{
|
|
52
|
+
type: Directive,
|
|
53
|
+
args: [{
|
|
54
|
+
selector: '[ngFlowDropZone]',
|
|
55
|
+
standalone: true,
|
|
56
|
+
}]
|
|
57
|
+
}], null, { nodeDrop: [{ type: i0.Output, args: ["nodeDrop"] }] }); })();
|
|
58
|
+
//# sourceMappingURL=drop-zone.directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-zone.directive.js","sourceRoot":"","sources":["../../../../src/lib/directives/drop-zone.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAqB,UAAU,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;;AAG5D;;;;;;;;;;GAUG;AAKH,MAAM,OAAO,uBAAuB;IAJpC;QAKU,OAAE,GAAG,MAAM,CAAC,CAAA,UAAuB,CAAA,CAAC,CAAC;QACrC,gBAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAEnC,aAAQ,GAAG,MAAM,EAAuE,CAAC;QAE1F,eAAU,GAAG,CAAC,KAAgB,EAAE,EAAE;YACxC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;QAEM,WAAM,GAAG,CAAC,KAAgB,EAAE,EAAE;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;gBACzD,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC;mBACvD,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;mBACzC,IAAI,CAAC;YAEV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC;KAaH;IAXC,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACjC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACjC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;wHAtCU,uBAAuB;oEAAvB,uBAAuB;;iFAAvB,uBAAuB;cAJnC,SAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,UAAU,EAAE,IAAI;aACjB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import type { Node, Edge } from '../types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class KeyHandlerDirective implements OnInit, OnDestroy {
|
|
5
|
+
private store;
|
|
6
|
+
readonly deleteKeyCode: import("@angular/core").InputSignal<string | string[] | null>;
|
|
7
|
+
readonly selectionKeyCode: import("@angular/core").InputSignal<string | string[] | null>;
|
|
8
|
+
readonly multiSelectionKeyCode: import("@angular/core").InputSignal<string | string[] | null>;
|
|
9
|
+
readonly disableKeyboardA11y: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
readonly nodesDelete: import("@angular/core").OutputEmitterRef<Node[]>;
|
|
11
|
+
readonly edgesDelete: import("@angular/core").OutputEmitterRef<Edge[]>;
|
|
12
|
+
readonly deleteElements: import("@angular/core").OutputEmitterRef<{
|
|
13
|
+
nodes: Node[];
|
|
14
|
+
edges: Edge[];
|
|
15
|
+
}>;
|
|
16
|
+
private selectionKeyPressed;
|
|
17
|
+
private multiSelectionKeyPressed;
|
|
18
|
+
ngOnInit(): void;
|
|
19
|
+
ngOnDestroy(): void;
|
|
20
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
21
|
+
onKeyUp(event: KeyboardEvent): void;
|
|
22
|
+
private handleDelete;
|
|
23
|
+
private handleSelectAll;
|
|
24
|
+
private handleArrowKey;
|
|
25
|
+
private matchesKey;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KeyHandlerDirective, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KeyHandlerDirective, "[ngFlowKeyHandler]", never, { "deleteKeyCode": { "alias": "deleteKeyCode"; "required": false; "isSignal": true; }; "selectionKeyCode": { "alias": "selectionKeyCode"; "required": false; "isSignal": true; }; "multiSelectionKeyCode": { "alias": "multiSelectionKeyCode"; "required": false; "isSignal": true; }; "disableKeyboardA11y": { "alias": "disableKeyboardA11y"; "required": false; "isSignal": true; }; }, { "nodesDelete": "nodesDelete"; "edgesDelete": "edgesDelete"; "deleteElements": "deleteElements"; }, never, never, true, never>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=key-handler.directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-handler.directive.d.ts","sourceRoot":"","sources":["../../../../src/lib/directives/key-handler.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EACN,SAAS,EACV,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;;AAE3C,qBAQa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAC3D,OAAO,CAAC,KAAK,CAAqB;IAElC,QAAQ,CAAC,aAAa,gEAA4D;IAClF,QAAQ,CAAC,gBAAgB,gEAA4C;IACrE,QAAQ,CAAC,qBAAqB,gEAA2C;IACzE,QAAQ,CAAC,mBAAmB,+CAAgB;IAE5C,QAAQ,CAAC,WAAW,mDAAoB;IACxC,QAAQ,CAAC,WAAW,mDAAoB;IACxC,QAAQ,CAAC,cAAc;eAAmB,IAAI,EAAE;eAAS,IAAI,EAAE;OAAM;IAErE,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,wBAAwB,CAAS;IAEzC,QAAQ,IAAI,IAAI;IAChB,WAAW,IAAI,IAAI;IAEnB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAsCrC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAYnC,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,UAAU;yCAnKP,mBAAmB;2CAAnB,mBAAmB;CAwK/B"}
|