@html-graph/html-graph 9.1.0 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/html-graph.d.ts +29 -4
- package/dist/html-graph.js +225 -79
- package/dist/html-graph.min.js +616 -528
- package/dist/html-graph.min.umd.cjs +1 -1
- package/dist/html-graph.umd.cjs +225 -79
- package/package.json +1 -1
package/dist/html-graph.umd.cjs
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}({});
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region src/html-view/core-html-view/create-host/create-host.ts
|
|
14
|
-
var createHost$
|
|
14
|
+
var createHost$2 = () => {
|
|
15
15
|
const host = document.createElement("div");
|
|
16
16
|
host.style.width = "100%";
|
|
17
17
|
host.style.height = "100%";
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
graphStore;
|
|
54
54
|
viewportStore;
|
|
55
55
|
element;
|
|
56
|
-
host = createHost$
|
|
56
|
+
host = createHost$2();
|
|
57
57
|
container = createContainer();
|
|
58
58
|
edgeIdToElementMap = /* @__PURE__ */ new Map();
|
|
59
59
|
attachedNodeIds = /* @__PURE__ */ new Set();
|
|
@@ -772,7 +772,7 @@
|
|
|
772
772
|
if (request.from !== void 0 && !this.hasPort(request.from)) throw new CanvasError(canvasErrorText.updateNonexistentEdgeSource(edgeId, request.from));
|
|
773
773
|
if (request.to !== void 0 && !this.hasPort(request.to)) throw new CanvasError(canvasErrorText.updateNonexistentEdgeTarget(edgeId, request.to));
|
|
774
774
|
const edge = this.getEdge(edgeId);
|
|
775
|
-
const payload = edge
|
|
775
|
+
const { payload } = edge;
|
|
776
776
|
this.removeEdgeInternal(edgeId);
|
|
777
777
|
this.addEdgeInternal({
|
|
778
778
|
id: edgeId,
|
|
@@ -782,7 +782,7 @@
|
|
|
782
782
|
priority: payload.priority
|
|
783
783
|
});
|
|
784
784
|
}
|
|
785
|
-
const edge = this.
|
|
785
|
+
const edge = this.getEdge(edgeId);
|
|
786
786
|
if (request.shape !== void 0) {
|
|
787
787
|
edge.payload.shape = request.shape;
|
|
788
788
|
this.afterEdgeShapeUpdatedEmitter.emit(edgeId);
|
|
@@ -4372,12 +4372,11 @@
|
|
|
4372
4372
|
return;
|
|
4373
4373
|
}
|
|
4374
4374
|
const request = resolveCreateEdgeRequest(this.edgeInProgress, targetPortId);
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
if (connectionAllowed && processedRequest !== null) {
|
|
4375
|
+
if (this.params.connectionAllowedVerifier(request)) {
|
|
4376
|
+
const processedRequest = this.params.connectionPreprocessor({
|
|
4377
|
+
from: request.from,
|
|
4378
|
+
to: request.to
|
|
4379
|
+
});
|
|
4381
4380
|
this.canvas.graph.onAfterEdgeAdded.subscribe(this.onEdgeCreated);
|
|
4382
4381
|
this.canvas.addEdge(processedRequest);
|
|
4383
4382
|
this.canvas.graph.onAfterEdgeAdded.unsubscribe(this.onEdgeCreated);
|
|
@@ -4875,6 +4874,134 @@
|
|
|
4875
4874
|
}
|
|
4876
4875
|
};
|
|
4877
4876
|
//#endregion
|
|
4877
|
+
//#region src/configurators/rectangular-selection-configurator/create-host/create-host.ts
|
|
4878
|
+
var createHost$1 = () => {
|
|
4879
|
+
const element = document.createElement("div");
|
|
4880
|
+
element.style.width = "100%";
|
|
4881
|
+
element.style.height = "100%";
|
|
4882
|
+
element.style.position = "relative";
|
|
4883
|
+
return element;
|
|
4884
|
+
};
|
|
4885
|
+
//#endregion
|
|
4886
|
+
//#region src/configurators/rectangular-selection-configurator/create-selection-rectangle-wrapper/create-selection-rectangle-wrapper.ts
|
|
4887
|
+
var createSelectionRectangleWrapper = () => {
|
|
4888
|
+
const element = document.createElement("div");
|
|
4889
|
+
element.style.position = "absolute";
|
|
4890
|
+
return element;
|
|
4891
|
+
};
|
|
4892
|
+
//#endregion
|
|
4893
|
+
//#region src/configurators/rectangular-selection-configurator/rectangular-selection-configurator.ts
|
|
4894
|
+
var RectangularSelectionConfigurator = class RectangularSelectionConfigurator {
|
|
4895
|
+
canvas;
|
|
4896
|
+
mainElement;
|
|
4897
|
+
overlayLayer;
|
|
4898
|
+
pointInsideVerifier;
|
|
4899
|
+
eventTagger;
|
|
4900
|
+
win;
|
|
4901
|
+
params;
|
|
4902
|
+
host = createHost$1();
|
|
4903
|
+
selectionRectangleWrapper = createSelectionRectangleWrapper();
|
|
4904
|
+
initialContentPoint = null;
|
|
4905
|
+
draggingViewportPoint = null;
|
|
4906
|
+
eventHandledTag = dragEventHandledTag;
|
|
4907
|
+
onAfterViewportUpdated = () => {
|
|
4908
|
+
this.updateSelectionRectangle();
|
|
4909
|
+
};
|
|
4910
|
+
onCanvasMouseDown = (event) => {
|
|
4911
|
+
const mouseEvent = event;
|
|
4912
|
+
if (!this.params.mouseDownEventVerifier(mouseEvent)) return;
|
|
4913
|
+
if (this.eventTagger.has(event, this.eventHandledTag)) return;
|
|
4914
|
+
this.params.onSelectionStarted();
|
|
4915
|
+
const rect = this.mainElement.getBoundingClientRect();
|
|
4916
|
+
const cursorViewportCoords = {
|
|
4917
|
+
x: mouseEvent.clientX - rect.x,
|
|
4918
|
+
y: mouseEvent.clientY - rect.y
|
|
4919
|
+
};
|
|
4920
|
+
this.initialContentPoint = this.canvas.viewport.createContentCoords(cursorViewportCoords);
|
|
4921
|
+
this.draggingViewportPoint = cursorViewportCoords;
|
|
4922
|
+
this.updateSelectionRectangle();
|
|
4923
|
+
this.host.appendChild(this.selectionRectangleWrapper);
|
|
4924
|
+
this.win.addEventListener("mousemove", this.onWindowMouseMove, { passive: true });
|
|
4925
|
+
this.win.addEventListener("mouseup", this.onWindowMouseUp, { passive: true });
|
|
4926
|
+
};
|
|
4927
|
+
onWindowMouseMove = (event) => {
|
|
4928
|
+
const mouseEvent = event;
|
|
4929
|
+
if (!this.pointInsideVerifier.verify(mouseEvent.clientX, mouseEvent.clientY)) {
|
|
4930
|
+
this.removeMouseListeners();
|
|
4931
|
+
this.interruptSelection();
|
|
4932
|
+
return;
|
|
4933
|
+
}
|
|
4934
|
+
const rect = this.mainElement.getBoundingClientRect();
|
|
4935
|
+
const cursorViewportCoords = {
|
|
4936
|
+
x: mouseEvent.clientX - rect.x,
|
|
4937
|
+
y: mouseEvent.clientY - rect.y
|
|
4938
|
+
};
|
|
4939
|
+
this.draggingViewportPoint = cursorViewportCoords;
|
|
4940
|
+
this.updateSelectionRectangle();
|
|
4941
|
+
const selectionRect = this.selectionRectangleWrapper.getBoundingClientRect();
|
|
4942
|
+
this.params.onSelectionChange(selectionRect);
|
|
4943
|
+
};
|
|
4944
|
+
onWindowMouseUp = (event) => {
|
|
4945
|
+
const mouseEvent = event;
|
|
4946
|
+
if (!this.params.mouseUpEventVerifier(mouseEvent)) return;
|
|
4947
|
+
this.removeMouseListeners();
|
|
4948
|
+
this.finishSelection();
|
|
4949
|
+
};
|
|
4950
|
+
constructor(canvas, mainElement, overlayLayer, pointInsideVerifier, eventTagger, win, params) {
|
|
4951
|
+
this.canvas = canvas;
|
|
4952
|
+
this.mainElement = mainElement;
|
|
4953
|
+
this.overlayLayer = overlayLayer;
|
|
4954
|
+
this.pointInsideVerifier = pointInsideVerifier;
|
|
4955
|
+
this.eventTagger = eventTagger;
|
|
4956
|
+
this.win = win;
|
|
4957
|
+
this.params = params;
|
|
4958
|
+
this.overlayLayer.appendChild(this.host);
|
|
4959
|
+
this.selectionRectangleWrapper.appendChild(this.params.rectangleElement);
|
|
4960
|
+
this.canvas.viewport.onAfterUpdated.subscribe(this.onAfterViewportUpdated);
|
|
4961
|
+
this.mainElement.addEventListener("mousedown", this.onCanvasMouseDown, { passive: true });
|
|
4962
|
+
this.canvas.onBeforeDestroy.subscribe(() => {
|
|
4963
|
+
this.mainElement.removeEventListener("mousedown", this.onCanvasMouseDown);
|
|
4964
|
+
this.removeMouseListeners();
|
|
4965
|
+
});
|
|
4966
|
+
}
|
|
4967
|
+
static configure(canvas, mainElement, overlayLayer, pointInsideVerifier, eventTagger, win, params) {
|
|
4968
|
+
new RectangularSelectionConfigurator(canvas, mainElement, overlayLayer, pointInsideVerifier, eventTagger, win, params);
|
|
4969
|
+
}
|
|
4970
|
+
updateSelectionRectangle() {
|
|
4971
|
+
if (this.initialContentPoint === null || this.draggingViewportPoint === null) return;
|
|
4972
|
+
const initialViewportPoint = this.canvas.viewport.createViewportCoords(this.initialContentPoint);
|
|
4973
|
+
const draggingViewportPoint = this.draggingViewportPoint;
|
|
4974
|
+
const x = Math.min(initialViewportPoint.x, draggingViewportPoint.x);
|
|
4975
|
+
const y = Math.min(initialViewportPoint.y, draggingViewportPoint.y);
|
|
4976
|
+
const width = Math.abs(draggingViewportPoint.x - initialViewportPoint.x);
|
|
4977
|
+
const height = Math.abs(draggingViewportPoint.y - initialViewportPoint.y);
|
|
4978
|
+
const { style } = this.selectionRectangleWrapper;
|
|
4979
|
+
style.left = `${x}px`;
|
|
4980
|
+
style.top = `${y}px`;
|
|
4981
|
+
style.width = `${width}px`;
|
|
4982
|
+
style.height = `${height}px`;
|
|
4983
|
+
}
|
|
4984
|
+
removeMouseListeners() {
|
|
4985
|
+
this.win.removeEventListener("mousemove", this.onWindowMouseMove);
|
|
4986
|
+
this.win.removeEventListener("mouseup", this.onWindowMouseUp);
|
|
4987
|
+
}
|
|
4988
|
+
finishSelection() {
|
|
4989
|
+
const selectionRect = this.selectionRectangleWrapper.getBoundingClientRect();
|
|
4990
|
+
this.terminateSelection();
|
|
4991
|
+
this.params.onSelectionFinished(selectionRect);
|
|
4992
|
+
}
|
|
4993
|
+
interruptSelection() {
|
|
4994
|
+
const selectionRect = this.selectionRectangleWrapper.getBoundingClientRect();
|
|
4995
|
+
this.terminateSelection();
|
|
4996
|
+
this.params.onSelectionInterrupted(selectionRect);
|
|
4997
|
+
}
|
|
4998
|
+
terminateSelection() {
|
|
4999
|
+
this.host.removeChild(this.selectionRectangleWrapper);
|
|
5000
|
+
this.initialContentPoint = null;
|
|
5001
|
+
this.draggingViewportPoint = null;
|
|
5002
|
+
}
|
|
5003
|
+
};
|
|
5004
|
+
//#endregion
|
|
4878
5005
|
//#region src/canvas-builder/layers/create-host/create-host.ts
|
|
4879
5006
|
var createHost = () => {
|
|
4880
5007
|
const host = document.createElement("div");
|
|
@@ -4885,16 +5012,17 @@
|
|
|
4885
5012
|
};
|
|
4886
5013
|
//#endregion
|
|
4887
5014
|
//#region src/canvas-builder/layers/create-layer/create-layer.ts
|
|
4888
|
-
var createLayer = () => {
|
|
5015
|
+
var createLayer = (zIndex) => {
|
|
4889
5016
|
const host = document.createElement("div");
|
|
4890
5017
|
host.style.position = "absolute";
|
|
4891
5018
|
host.style.inset = "0";
|
|
5019
|
+
host.style.zIndex = `${zIndex}`;
|
|
4892
5020
|
return host;
|
|
4893
5021
|
};
|
|
4894
5022
|
//#endregion
|
|
4895
5023
|
//#region src/canvas-builder/layers/create-overlay-layer/create-overlay-layer.ts
|
|
4896
|
-
var createOverlayLayer = () => {
|
|
4897
|
-
const layer = createLayer();
|
|
5024
|
+
var createOverlayLayer = (zIndex) => {
|
|
5025
|
+
const layer = createLayer(zIndex);
|
|
4898
5026
|
layer.style.pointerEvents = "none";
|
|
4899
5027
|
return layer;
|
|
4900
5028
|
};
|
|
@@ -4902,10 +5030,11 @@
|
|
|
4902
5030
|
//#region src/canvas-builder/layers/layers.ts
|
|
4903
5031
|
var Layers = class {
|
|
4904
5032
|
element;
|
|
4905
|
-
background = createLayer();
|
|
4906
|
-
main = createLayer();
|
|
4907
|
-
overlayConnectablePorts = createOverlayLayer();
|
|
4908
|
-
overlayDraggableEdges = createOverlayLayer();
|
|
5033
|
+
background = createLayer(0);
|
|
5034
|
+
main = createLayer(1);
|
|
5035
|
+
overlayConnectablePorts = createOverlayLayer(1);
|
|
5036
|
+
overlayDraggableEdges = createOverlayLayer(1);
|
|
5037
|
+
overlayRectangularSelection = createOverlayLayer(2);
|
|
4909
5038
|
host = createHost();
|
|
4910
5039
|
constructor(element) {
|
|
4911
5040
|
this.element = element;
|
|
@@ -4914,12 +5043,14 @@
|
|
|
4914
5043
|
this.host.appendChild(this.main);
|
|
4915
5044
|
this.host.appendChild(this.overlayConnectablePorts);
|
|
4916
5045
|
this.host.appendChild(this.overlayDraggableEdges);
|
|
5046
|
+
this.host.appendChild(this.overlayRectangularSelection);
|
|
4917
5047
|
}
|
|
4918
5048
|
destroy() {
|
|
4919
5049
|
this.host.removeChild(this.background);
|
|
4920
5050
|
this.host.removeChild(this.main);
|
|
4921
5051
|
this.host.removeChild(this.overlayConnectablePorts);
|
|
4922
5052
|
this.host.removeChild(this.overlayDraggableEdges);
|
|
5053
|
+
this.host.removeChild(this.overlayRectangularSelection);
|
|
4923
5054
|
this.element.removeChild(this.host);
|
|
4924
5055
|
}
|
|
4925
5056
|
};
|
|
@@ -4934,20 +5065,13 @@
|
|
|
4934
5065
|
edgeStiffness: 1e3,
|
|
4935
5066
|
dtSec: .01,
|
|
4936
5067
|
maxIterations: 1e3,
|
|
4937
|
-
|
|
5068
|
+
stopVelocity: 10,
|
|
4938
5069
|
maxForce: 1e7,
|
|
4939
5070
|
nodeForceCoefficient: 1,
|
|
4940
5071
|
barnesHutAreaRadiusThreshold: .01,
|
|
4941
5072
|
barnesHutTheta: 1
|
|
4942
5073
|
});
|
|
4943
5074
|
//#endregion
|
|
4944
|
-
//#region src/canvas-builder/shared/selection-defaults.ts
|
|
4945
|
-
var selectionDefaults = Object.freeze({
|
|
4946
|
-
mouseDownEventVerifier: (event) => event.button === 0,
|
|
4947
|
-
mouseUpEventVerifier: (event) => event.button === 0,
|
|
4948
|
-
movementThreshold: 10
|
|
4949
|
-
});
|
|
4950
|
-
//#endregion
|
|
4951
5075
|
//#region src/canvas-builder/shared/noop-fn/noop-fn.ts
|
|
4952
5076
|
var noopFn = () => {};
|
|
4953
5077
|
//#endregion
|
|
@@ -5013,27 +5137,28 @@
|
|
|
5013
5137
|
}
|
|
5014
5138
|
};
|
|
5015
5139
|
//#endregion
|
|
5140
|
+
//#region src/canvas-builder/shared/lmb-ctrl-mouse-event-verifier/lmb-ctrl-mouse-event-verifier.ts
|
|
5141
|
+
var lmbCtrlMouseEventVerifier = (event) => event.button === 0 && event.ctrlKey;
|
|
5142
|
+
//#endregion
|
|
5143
|
+
//#region src/canvas-builder/shared/lmb-mouse-event-verifier/lmb-mouse-event-verifier.ts
|
|
5144
|
+
var lmbMouseEventVerifier = (event) => event.button === 0;
|
|
5145
|
+
//#endregion
|
|
5146
|
+
//#region src/canvas-builder/shared/lmb-no-ctrl-mouse-event-verifier/lmb-no-ctrl-mouse-event-verifier.ts
|
|
5147
|
+
var lmbNoCtrlMouseEventVerifier = (event) => event.button === 0 && !event.ctrlKey;
|
|
5148
|
+
//#endregion
|
|
5016
5149
|
//#region src/canvas-builder/create-draggable-nodes-params/create-draggable-nodes-params.ts
|
|
5017
5150
|
var createDraggableNodesParams = (config) => {
|
|
5018
|
-
const nodeDragVerifier = config.nodeDragVerifier ?? (() => true);
|
|
5019
5151
|
const moveOnTop = config.moveOnTop !== false;
|
|
5020
|
-
const moveEdgesOnTop = config.moveEdgesOnTop !== false && moveOnTop;
|
|
5021
|
-
const cursor = config.mouse?.dragCursor;
|
|
5022
|
-
const dragCursor = cursor !== void 0 ? cursor : "grab";
|
|
5023
|
-
const defaultMouseDownEventVerifier = config.mouse?.mouseDownEventVerifier;
|
|
5024
|
-
const mouseDownEventVerifier = defaultMouseDownEventVerifier !== void 0 ? defaultMouseDownEventVerifier : (event) => event.button === 0;
|
|
5025
|
-
const defaultMouseUpEventVerifier = config.mouse?.mouseUpEventVerifier;
|
|
5026
|
-
const mouseUpEventVerifier = defaultMouseUpEventVerifier !== void 0 ? defaultMouseUpEventVerifier : (event) => event.button === 0;
|
|
5027
5152
|
return {
|
|
5028
5153
|
moveOnTop,
|
|
5029
|
-
moveEdgesOnTop,
|
|
5030
|
-
dragCursor,
|
|
5154
|
+
moveEdgesOnTop: config.moveEdgesOnTop !== false && moveOnTop,
|
|
5155
|
+
dragCursor: config.mouse?.dragCursor ?? "grab",
|
|
5031
5156
|
gridSize: config.gridSize ?? null,
|
|
5032
|
-
mouseDownEventVerifier,
|
|
5033
|
-
mouseUpEventVerifier,
|
|
5157
|
+
mouseDownEventVerifier: config.mouse?.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
5158
|
+
mouseUpEventVerifier: config.mouse?.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
5034
5159
|
onNodeDragStarted: config.events?.onNodeDragStarted ?? noopFn,
|
|
5035
5160
|
onNodeDrag: config.events?.onNodeDrag ?? noopFn,
|
|
5036
|
-
nodeDragVerifier,
|
|
5161
|
+
nodeDragVerifier: config.nodeDragVerifier ?? (() => true),
|
|
5037
5162
|
onNodeDragFinished: config.events?.onNodeDragFinished ?? noopFn
|
|
5038
5163
|
};
|
|
5039
5164
|
};
|
|
@@ -5123,33 +5248,26 @@
|
|
|
5123
5248
|
//#endregion
|
|
5124
5249
|
//#region src/canvas-builder/create-transformable-viewport-params/create-transformable-viewport-params.ts
|
|
5125
5250
|
var createTransformableViewportParams = (transformConfig) => {
|
|
5126
|
-
const configWheelSensitivity = transformConfig?.scale?.mouseWheelSensitivity;
|
|
5127
|
-
const wheelSensitivity = configWheelSensitivity !== void 0 ? configWheelSensitivity : 1.2;
|
|
5128
5251
|
const preprocessors = transformConfig?.transformPreprocessor;
|
|
5129
5252
|
let transformPreprocessor;
|
|
5130
|
-
if (preprocessors !== void 0) if (Array.isArray(preprocessors)) transformPreprocessor = createCombinedTransformPreprocessor(preprocessors.map((preprocessor) =>
|
|
5253
|
+
if (preprocessors !== void 0) if (Array.isArray(preprocessors)) transformPreprocessor = createCombinedTransformPreprocessor(preprocessors.map((preprocessor) => {
|
|
5254
|
+
return resolveTransformPreprocessor(preprocessor);
|
|
5255
|
+
}));
|
|
5131
5256
|
else transformPreprocessor = resolveTransformPreprocessor(preprocessors);
|
|
5132
5257
|
else transformPreprocessor = (params) => {
|
|
5133
5258
|
return params.nextTransform;
|
|
5134
5259
|
};
|
|
5135
|
-
const shiftCursor = transformConfig?.pan?.cursor !== void 0 ? transformConfig.pan.cursor : "grab";
|
|
5136
|
-
const defaultMouseDownEventVerifier = transformConfig?.pan?.mouseDownEventVerifier;
|
|
5137
|
-
const mouseDownEventVerifier = defaultMouseDownEventVerifier !== void 0 ? defaultMouseDownEventVerifier : (event) => event.button === 0;
|
|
5138
|
-
const defaultMouseUpEventVerifier = transformConfig?.pan?.mouseUpEventVerifier;
|
|
5139
|
-
const mouseUpEventVerifier = defaultMouseUpEventVerifier !== void 0 ? defaultMouseUpEventVerifier : (event) => event.button === 0;
|
|
5140
|
-
const defaultMouseWheelEventVerifier = transformConfig?.scale?.mouseWheelEventVerifier;
|
|
5141
|
-
const mouseWheelEventVerifier = defaultMouseWheelEventVerifier !== void 0 ? defaultMouseWheelEventVerifier : () => true;
|
|
5142
5260
|
return {
|
|
5143
|
-
wheelSensitivity,
|
|
5261
|
+
wheelSensitivity: transformConfig?.scale?.mouseWheelSensitivity ?? 1.2,
|
|
5144
5262
|
onTransformStarted: transformConfig?.events?.onTransformStarted ?? noopFn,
|
|
5145
5263
|
onTransformFinished: transformConfig?.events?.onTransformFinished ?? noopFn,
|
|
5146
5264
|
onBeforeTransformChange: transformConfig?.events?.onBeforeTransformChange ?? noopFn,
|
|
5147
5265
|
onTransformChange: transformConfig?.events?.onTransformChange ?? noopFn,
|
|
5148
5266
|
transformPreprocessor,
|
|
5149
|
-
shiftCursor,
|
|
5150
|
-
mouseDownEventVerifier,
|
|
5151
|
-
mouseUpEventVerifier,
|
|
5152
|
-
mouseWheelEventVerifier,
|
|
5267
|
+
shiftCursor: transformConfig?.pan?.cursor ?? "grab",
|
|
5268
|
+
mouseDownEventVerifier: transformConfig?.pan?.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
5269
|
+
mouseUpEventVerifier: transformConfig?.pan?.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
5270
|
+
mouseWheelEventVerifier: transformConfig?.scale?.mouseWheelEventVerifier ?? (() => true),
|
|
5153
5271
|
scaleWheelFinishTimeout: transformConfig?.scale?.wheelFinishTimeout ?? 500,
|
|
5154
5272
|
onResizeTransformStarted: transformConfig?.events?.onResizeTransformStarted ?? noopFn,
|
|
5155
5273
|
onResizeTransformFinished: transformConfig?.events?.onResizeTransformFinished ?? noopFn
|
|
@@ -5187,8 +5305,7 @@
|
|
|
5187
5305
|
var defaults$3 = Object.freeze({
|
|
5188
5306
|
connectionTypeResolver: () => "direct",
|
|
5189
5307
|
connectionPreprocessor: (request) => request,
|
|
5190
|
-
connectionAllowedVerifier: () => true
|
|
5191
|
-
mouseEventVerifier: (event) => event.button === 0
|
|
5308
|
+
connectionAllowedVerifier: () => true
|
|
5192
5309
|
});
|
|
5193
5310
|
//#endregion
|
|
5194
5311
|
//#region src/canvas-builder/create-connectable-ports-params/create-connectable-ports-params.ts
|
|
@@ -5200,8 +5317,8 @@
|
|
|
5200
5317
|
draggingPortDirectionResolver: resolveDraggingPortDirectionResolver(config.dragPortDirection, graph, connectionAllowedVerifier),
|
|
5201
5318
|
edgeShapeFactory: config.edgeShape !== void 0 ? resolveEdgeShapeFactory(config.edgeShape) : defaultEdgeShapeFactory,
|
|
5202
5319
|
connectionPreprocessor: config.connectionPreprocessor ?? defaults$3.connectionPreprocessor,
|
|
5203
|
-
mouseDownEventVerifier: config.mouseDownEventVerifier ??
|
|
5204
|
-
mouseUpEventVerifier: config.mouseUpEventVerifier ??
|
|
5320
|
+
mouseDownEventVerifier: config.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
5321
|
+
mouseUpEventVerifier: config.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
5205
5322
|
onAfterEdgeCreated: config.events?.onAfterEdgeCreated ?? noopFn,
|
|
5206
5323
|
onEdgeCreationInterrupted: config.events?.onEdgeCreationInterrupted ?? noopFn,
|
|
5207
5324
|
onEdgeCreationPrevented: config.events?.onEdgeCreationPrevented ?? noopFn,
|
|
@@ -5213,9 +5330,7 @@
|
|
|
5213
5330
|
//#region src/canvas-builder/create-draggable-edges-params/defaults.ts
|
|
5214
5331
|
var defaults$2 = Object.freeze({
|
|
5215
5332
|
connectionAllowedVerifier: () => true,
|
|
5216
|
-
connectionPreprocessor: (request) => request
|
|
5217
|
-
mouseDownEventVerifier: (event) => event.button === 0,
|
|
5218
|
-
mouseUpEventVerifier: (event) => event.button === 0
|
|
5333
|
+
connectionPreprocessor: (request) => request
|
|
5219
5334
|
});
|
|
5220
5335
|
//#endregion
|
|
5221
5336
|
//#region src/canvas-builder/create-draggable-edges-params/create-draggable-edges-params.ts
|
|
@@ -5229,8 +5344,8 @@
|
|
|
5229
5344
|
return {
|
|
5230
5345
|
connectionPreprocessor: config.connectionPreprocessor ?? defaults$2.connectionPreprocessor,
|
|
5231
5346
|
connectionAllowedVerifier,
|
|
5232
|
-
mouseDownEventVerifier: config.mouseDownEventVerifier ??
|
|
5233
|
-
mouseUpEventVerifier: config.mouseUpEventVerifier ??
|
|
5347
|
+
mouseDownEventVerifier: config.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
5348
|
+
mouseUpEventVerifier: config.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
5234
5349
|
draggingEdgeResolver: config.draggingEdgeResolver ?? defaultDraggingEdgeResolver,
|
|
5235
5350
|
draggingEdgeShapeFactory: config.draggingEdgeShape !== void 0 ? resolveEdgeShapeFactory(config.draggingEdgeShape) : null,
|
|
5236
5351
|
onAfterEdgeReattached: config.events?.onAfterEdgeReattached ?? noopFn,
|
|
@@ -5896,14 +6011,14 @@
|
|
|
5896
6011
|
nodeMass;
|
|
5897
6012
|
edgeEquilibriumLength;
|
|
5898
6013
|
edgeStiffness;
|
|
5899
|
-
|
|
6014
|
+
stopVelocity;
|
|
5900
6015
|
constructor(params) {
|
|
5901
6016
|
this.maxIterations = params.maxIterations;
|
|
5902
6017
|
this.dtSec = params.dtSec;
|
|
5903
6018
|
this.nodeMass = params.nodeMass;
|
|
5904
6019
|
this.edgeEquilibriumLength = params.edgeEquilibriumLength;
|
|
5905
6020
|
this.edgeStiffness = params.edgeStiffness;
|
|
5906
|
-
this.
|
|
6021
|
+
this.stopVelocity = params.stopVelocity;
|
|
5907
6022
|
this.distanceVectorGenerator = new DistanceVectorGenerator(params.rand);
|
|
5908
6023
|
this.nodeForcesApplicationStrategy = resolveNodeForcesApplicationStrategy({
|
|
5909
6024
|
distanceVectorGenerator: this.distanceVectorGenerator,
|
|
@@ -5932,7 +6047,7 @@
|
|
|
5932
6047
|
nodeMass: this.nodeMass,
|
|
5933
6048
|
edgeEquilibriumLength: this.edgeEquilibriumLength,
|
|
5934
6049
|
edgeStiffness: this.edgeStiffness
|
|
5935
|
-
}).apply() < this.
|
|
6050
|
+
}).apply() < this.stopVelocity) break;
|
|
5936
6051
|
return currentCoords;
|
|
5937
6052
|
}
|
|
5938
6053
|
};
|
|
@@ -6152,14 +6267,14 @@
|
|
|
6152
6267
|
var ForceDirectedAnimatedLayoutAlgorithm = class {
|
|
6153
6268
|
distanceVectorGenerator;
|
|
6154
6269
|
nodeForcesApplicationStrategy;
|
|
6155
|
-
|
|
6270
|
+
stopVelocity;
|
|
6156
6271
|
maxTimeDeltaSec;
|
|
6157
6272
|
nodeMass;
|
|
6158
6273
|
edgeEquilibriumLength;
|
|
6159
6274
|
edgeStiffness;
|
|
6160
6275
|
fillerLayoutAlgorithm;
|
|
6161
6276
|
constructor(params) {
|
|
6162
|
-
this.
|
|
6277
|
+
this.stopVelocity = params.stopVelocity;
|
|
6163
6278
|
this.maxTimeDeltaSec = params.maxTimeDeltaSec;
|
|
6164
6279
|
this.nodeMass = params.nodeMass;
|
|
6165
6280
|
this.edgeEquilibriumLength = params.edgeEquilibriumLength;
|
|
@@ -6192,7 +6307,7 @@
|
|
|
6192
6307
|
nodeMass: this.nodeMass,
|
|
6193
6308
|
edgeEquilibriumLength: this.edgeEquilibriumLength,
|
|
6194
6309
|
edgeStiffness: this.edgeStiffness
|
|
6195
|
-
}).apply() < this.
|
|
6310
|
+
}).apply() < this.stopVelocity) {
|
|
6196
6311
|
if (!graph.getAllNodeIds().some((nodeId) => {
|
|
6197
6312
|
const node = graph.getNode(nodeId);
|
|
6198
6313
|
return node.x === null || node.y === null;
|
|
@@ -6258,7 +6373,7 @@
|
|
|
6258
6373
|
nodeMass: config?.nodeMass ?? forceDirectedDefaults.nodeMass,
|
|
6259
6374
|
edgeEquilibriumLength: config?.edgeEquilibriumLength ?? forceDirectedDefaults.edgeEquilibriumLength,
|
|
6260
6375
|
edgeStiffness: config?.edgeStiffness ?? forceDirectedDefaults.edgeStiffness,
|
|
6261
|
-
stopVelocity: config?.stopVelocity ?? forceDirectedDefaults.
|
|
6376
|
+
stopVelocity: config?.stopVelocity ?? forceDirectedDefaults.stopVelocity,
|
|
6262
6377
|
maxForce: config?.maxForce ?? forceDirectedDefaults.maxForce,
|
|
6263
6378
|
nodeForceCoefficient: config?.nodeForceCoefficient ?? forceDirectedDefaults.nodeForceCoefficient,
|
|
6264
6379
|
barnesHutTheta: config?.barnesHut?.theta ?? forceDirectedDefaults.barnesHutTheta,
|
|
@@ -6482,7 +6597,7 @@
|
|
|
6482
6597
|
nodeMass: config?.nodeMass ?? forceDirectedDefaults.nodeMass,
|
|
6483
6598
|
edgeEquilibriumLength: config?.edgeEquilibriumLength ?? forceDirectedDefaults.edgeEquilibriumLength,
|
|
6484
6599
|
edgeStiffness: config?.edgeStiffness ?? forceDirectedDefaults.edgeStiffness,
|
|
6485
|
-
stopVelocity: config?.stopVelocity ?? forceDirectedDefaults.
|
|
6600
|
+
stopVelocity: config?.stopVelocity ?? forceDirectedDefaults.stopVelocity,
|
|
6486
6601
|
maxForce: config?.maxForce ?? forceDirectedDefaults.maxForce,
|
|
6487
6602
|
nodeForceCoefficient: config?.nodeForceCoefficient ?? forceDirectedDefaults.nodeForceCoefficient,
|
|
6488
6603
|
barnesHutTheta: config?.barnesHut?.theta ?? forceDirectedDefaults.barnesHutTheta,
|
|
@@ -6608,9 +6723,9 @@
|
|
|
6608
6723
|
var createUserSelectableNodesParams = (config) => {
|
|
6609
6724
|
return {
|
|
6610
6725
|
onNodeSelected: config.onNodeSelected,
|
|
6611
|
-
mouseDownEventVerifier: config.mouseDownEventVerifier ??
|
|
6612
|
-
mouseUpEventVerifier: config.mouseUpEventVerifier ??
|
|
6613
|
-
movementThreshold: config.movementThreshold ??
|
|
6726
|
+
mouseDownEventVerifier: config.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
6727
|
+
mouseUpEventVerifier: config.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
6728
|
+
movementThreshold: config.movementThreshold ?? 10
|
|
6614
6729
|
};
|
|
6615
6730
|
};
|
|
6616
6731
|
//#endregion
|
|
@@ -6618,9 +6733,9 @@
|
|
|
6618
6733
|
var createUserSelectableCanvasParams = (config) => {
|
|
6619
6734
|
return {
|
|
6620
6735
|
onCanvasSelected: config.onCanvasSelected,
|
|
6621
|
-
mouseDownEventVerifier: config.mouseDownEventVerifier ??
|
|
6622
|
-
mouseUpEventVerifier: config.mouseUpEventVerifier ??
|
|
6623
|
-
movementThreshold: config.movementThreshold ??
|
|
6736
|
+
mouseDownEventVerifier: config.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
6737
|
+
mouseUpEventVerifier: config.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
6738
|
+
movementThreshold: config.movementThreshold ?? 10
|
|
6624
6739
|
};
|
|
6625
6740
|
};
|
|
6626
6741
|
//#endregion
|
|
@@ -6628,9 +6743,32 @@
|
|
|
6628
6743
|
var createUserSelectableEdgesParams = (config) => {
|
|
6629
6744
|
return {
|
|
6630
6745
|
onEdgeSelected: config.onEdgeSelected,
|
|
6631
|
-
mouseDownEventVerifier: config.mouseDownEventVerifier ??
|
|
6632
|
-
mouseUpEventVerifier: config.mouseUpEventVerifier ??
|
|
6633
|
-
movementThreshold: config.movementThreshold ??
|
|
6746
|
+
mouseDownEventVerifier: config.mouseDownEventVerifier ?? lmbNoCtrlMouseEventVerifier,
|
|
6747
|
+
mouseUpEventVerifier: config.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
6748
|
+
movementThreshold: config.movementThreshold ?? 10
|
|
6749
|
+
};
|
|
6750
|
+
};
|
|
6751
|
+
//#endregion
|
|
6752
|
+
//#region src/canvas-builder/create-rectangular-selection-params/create-default-rectangle-element/create-default-rectangle-element.ts
|
|
6753
|
+
var createDefaultRectangleElement = () => {
|
|
6754
|
+
const element = document.createElement("div");
|
|
6755
|
+
element.style.width = "100%";
|
|
6756
|
+
element.style.height = "100%";
|
|
6757
|
+
element.style.background = "rgba(174, 238, 255, 0.34)";
|
|
6758
|
+
element.style.border = "1px dashed rgba(96, 96, 96, 0.47)";
|
|
6759
|
+
return element;
|
|
6760
|
+
};
|
|
6761
|
+
//#endregion
|
|
6762
|
+
//#region src/canvas-builder/create-rectangular-selection-params/create-rectangular-selection-params.ts
|
|
6763
|
+
var createRectangularSelectionParams = (config) => {
|
|
6764
|
+
return {
|
|
6765
|
+
rectangleElement: config?.rectangleElement ?? createDefaultRectangleElement(),
|
|
6766
|
+
mouseDownEventVerifier: config?.mouseDownEventVerifier ?? lmbCtrlMouseEventVerifier,
|
|
6767
|
+
mouseUpEventVerifier: config?.mouseUpEventVerifier ?? lmbMouseEventVerifier,
|
|
6768
|
+
onSelectionStarted: config?.onSelectionStarted ?? noopFn,
|
|
6769
|
+
onSelectionChange: config?.onSelectionChange ?? noopFn,
|
|
6770
|
+
onSelectionInterrupted: config?.onSelectionInterrupted ?? noopFn,
|
|
6771
|
+
onSelectionFinished: config?.onSelectionFinished ?? noopFn
|
|
6634
6772
|
};
|
|
6635
6773
|
};
|
|
6636
6774
|
//#endregion
|
|
@@ -6644,6 +6782,7 @@
|
|
|
6644
6782
|
backgroundConfig = {};
|
|
6645
6783
|
connectablePortsConfig = {};
|
|
6646
6784
|
draggableEdgesConfig = {};
|
|
6785
|
+
rectangularSelectionConfig = void 0;
|
|
6647
6786
|
virtualScrollConfig = void 0;
|
|
6648
6787
|
layoutConfig = {};
|
|
6649
6788
|
animatedLayoutConfig = {};
|
|
@@ -6656,6 +6795,7 @@
|
|
|
6656
6795
|
hasBackground = false;
|
|
6657
6796
|
hasUserConnectablePorts = false;
|
|
6658
6797
|
hasUserDraggableEdges = false;
|
|
6798
|
+
hasRectangularSelection = false;
|
|
6659
6799
|
hasAnimatedLayout = false;
|
|
6660
6800
|
hasLayout = false;
|
|
6661
6801
|
boxRenderingTrigger = new EventSubject();
|
|
@@ -6704,6 +6844,11 @@
|
|
|
6704
6844
|
this.draggableEdgesConfig = config ?? {};
|
|
6705
6845
|
return this;
|
|
6706
6846
|
}
|
|
6847
|
+
enableRectangularSelection(config) {
|
|
6848
|
+
this.hasRectangularSelection = true;
|
|
6849
|
+
this.rectangularSelectionConfig = config;
|
|
6850
|
+
return this;
|
|
6851
|
+
}
|
|
6707
6852
|
enableLayout(config) {
|
|
6708
6853
|
this.layoutConfig = config ?? {};
|
|
6709
6854
|
this.hasLayout = true;
|
|
@@ -6774,6 +6919,7 @@
|
|
|
6774
6919
|
}
|
|
6775
6920
|
if (this.virtualScrollConfig !== void 0) UserTransformableViewportVirtualScrollConfigurator.configure(canvas, layers.main, this.window, createTransformableViewportParams(this.transformConfig), this.boxRenderingTrigger, this.pointInsideVerifier, this.eventTagger, createVirtualScrollParams(this.virtualScrollConfig));
|
|
6776
6921
|
else if (this.hasTransformableViewport) UserTransformableViewportConfigurator.configure(canvas, layers.main, this.window, this.pointInsideVerifier, this.eventTagger, createTransformableViewportParams(this.transformConfig));
|
|
6922
|
+
if (this.hasRectangularSelection) RectangularSelectionConfigurator.configure(canvas, layers.main, layers.overlayRectangularSelection, this.pointInsideVerifier, this.eventTagger, this.window, createRectangularSelectionParams(this.rectangularSelectionConfig));
|
|
6777
6923
|
if (this.hasLayout) LayoutConfigurator.configure(canvas, layoutParams);
|
|
6778
6924
|
if (this.hasAnimatedLayout) {
|
|
6779
6925
|
let config = createAnimatedLayoutParams(this.animatedLayoutConfig);
|