@uipath/apollo-react 6.17.4 → 6.19.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/canvas/components/BaseCanvas/CanvasProviders.cjs +10 -7
- package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts.map +1 -1
- package/dist/canvas/components/BaseCanvas/CanvasProviders.js +10 -7
- package/dist/canvas/components/Edges/CanvasEdge.cjs +11 -5
- package/dist/canvas/components/Edges/CanvasEdge.d.ts.map +1 -1
- package/dist/canvas/components/Edges/CanvasEdge.js +12 -6
- package/dist/canvas/components/Edges/index.cjs +12 -4
- package/dist/canvas/components/Edges/index.d.ts +2 -1
- package/dist/canvas/components/Edges/index.d.ts.map +1 -1
- package/dist/canvas/components/Edges/index.js +2 -1
- package/dist/canvas/components/Edges/shared/constants.cjs +1 -0
- package/dist/canvas/components/Edges/shared/constants.d.ts +1 -0
- package/dist/canvas/components/Edges/shared/constants.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/constants.js +1 -0
- package/dist/canvas/components/Edges/shared/crossings/EdgeCrossingsContext.cjs +122 -0
- package/dist/canvas/components/Edges/shared/crossings/EdgeCrossingsContext.d.ts +22 -0
- package/dist/canvas/components/Edges/shared/crossings/EdgeCrossingsContext.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/crossings/EdgeCrossingsContext.js +79 -0
- package/dist/canvas/components/Edges/shared/crossings/crossings.cjs +139 -0
- package/dist/canvas/components/Edges/shared/crossings/crossings.d.ts +9 -0
- package/dist/canvas/components/Edges/shared/crossings/crossings.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/crossings/crossings.js +99 -0
- package/dist/canvas/components/Edges/shared/crossings/index.cjs +50 -0
- package/dist/canvas/components/Edges/shared/crossings/index.d.ts +4 -0
- package/dist/canvas/components/Edges/shared/crossings/index.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/crossings/index.js +4 -0
- package/dist/canvas/components/Edges/shared/crossings/useEdgeLineJumps.cjs +67 -0
- package/dist/canvas/components/Edges/shared/crossings/useEdgeLineJumps.d.ts +3 -0
- package/dist/canvas/components/Edges/shared/crossings/useEdgeLineJumps.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/crossings/useEdgeLineJumps.js +33 -0
- package/dist/canvas/components/Edges/shared/geometry.cjs +83 -44
- package/dist/canvas/components/Edges/shared/geometry.d.ts +2 -2
- package/dist/canvas/components/Edges/shared/geometry.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/geometry.js +83 -44
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.cjs +6 -3
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts +2 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.js +6 -3
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.cjs +4 -3
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts +1 -1
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.js +4 -3
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.cjs +3 -3
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts +2 -2
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.js +4 -4
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.cjs +4 -3
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts +2 -2
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts.map +1 -1
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.js +4 -3
- package/dist/canvas/components/Edges/shared/types.d.ts +5 -0
- package/dist/canvas/components/Edges/shared/types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageNode.types.d.ts +1 -0
- package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/AdhocTask.cjs +5 -0
- package/dist/canvas/components/StageNode/tasks/AdhocTask.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/AdhocTask.js +5 -0
- package/dist/canvas/components/StageNode/tasks/DraggableTask.cjs +5 -0
- package/dist/canvas/components/StageNode/tasks/DraggableTask.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/DraggableTask.js +5 -0
- package/dist/canvas/components/StageNode/tasks/EventDrivenTask.cjs +5 -0
- package/dist/canvas/components/StageNode/tasks/EventDrivenTask.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/tasks/EventDrivenTask.js +5 -0
- package/dist/canvas/components/StageNode/tasks/TaskMockedChip.cjs +64 -0
- package/dist/canvas/components/StageNode/tasks/TaskMockedChip.d.ts +8 -0
- package/dist/canvas/components/StageNode/tasks/TaskMockedChip.d.ts.map +1 -0
- package/dist/canvas/components/StageNode/tasks/TaskMockedChip.js +30 -0
- package/dist/canvas/locales/en.cjs +1 -1
- package/dist/canvas/locales/en.d.ts.map +1 -1
- package/dist/canvas/locales/en.js +1 -1
- package/dist/canvas/storybook-utils/components/StoryPage.d.ts +36 -0
- package/dist/canvas/storybook-utils/components/StoryPage.d.ts.map +1 -0
- package/dist/canvas/storybook-utils/components/StoryPreview.d.ts +9 -0
- package/dist/canvas/storybook-utils/components/StoryPreview.d.ts.map +1 -0
- package/dist/canvas/storybook-utils/components/StorySpecTable.d.ts +14 -0
- package/dist/canvas/storybook-utils/components/StorySpecTable.d.ts.map +1 -0
- package/dist/canvas/storybook-utils/components/index.d.ts +3 -0
- package/dist/canvas/storybook-utils/components/index.d.ts.map +1 -1
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/material/components/ap-model-picker/locales/de.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/de.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/de.js +1 -1
- package/dist/material/components/ap-model-picker/locales/es-MX.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/es-MX.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/es-MX.js +1 -1
- package/dist/material/components/ap-model-picker/locales/es.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/es.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/es.js +1 -1
- package/dist/material/components/ap-model-picker/locales/fr.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/fr.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/fr.js +1 -1
- package/dist/material/components/ap-model-picker/locales/ja.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/ja.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/ja.js +1 -1
- package/dist/material/components/ap-model-picker/locales/ko.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/ko.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/ko.js +1 -1
- package/dist/material/components/ap-model-picker/locales/pt-BR.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/pt-BR.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/pt-BR.js +1 -1
- package/dist/material/components/ap-model-picker/locales/pt.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/pt.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/pt.js +1 -1
- package/dist/material/components/ap-model-picker/locales/ro.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/ro.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/ro.js +1 -1
- package/dist/material/components/ap-model-picker/locales/tr.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/tr.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/tr.js +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-CN.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-CN.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-CN.js +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-TW.cjs +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-TW.d.ts.map +1 -1
- package/dist/material/components/ap-model-picker/locales/zh-TW.js +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
|
30
30
|
const tooltip_namespaceObject = require("@uipath/apollo-wind/components/ui/tooltip");
|
|
31
31
|
const index_cjs_namespaceObject = require("../../../i18n/index.cjs");
|
|
32
32
|
const external_CanvasTooltip_cjs_namespaceObject = require("../CanvasTooltip.cjs");
|
|
33
|
+
const crossings_index_cjs_namespaceObject = require("../Edges/shared/crossings/index.cjs");
|
|
33
34
|
const StickyNoteCanvasOptionsContext_cjs_namespaceObject = require("../StickyNoteNode/StickyNoteCanvasOptionsContext.cjs");
|
|
34
35
|
const external_BaseCanvasModeProvider_cjs_namespaceObject = require("./BaseCanvasModeProvider.cjs");
|
|
35
36
|
const external_CanvasThemeContext_cjs_namespaceObject = require("./CanvasThemeContext.cjs");
|
|
@@ -47,13 +48,15 @@ function CanvasProviders({ nodes, edges, mode, isDarkMode, locale, stickyNoteOpt
|
|
|
47
48
|
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltipProviderMarker, {
|
|
48
49
|
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ConnectedHandlesContext_cjs_namespaceObject.ConnectedHandlesProvider, {
|
|
49
50
|
edges: edges,
|
|
50
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(crossings_index_cjs_namespaceObject.EdgeCrossingsProvider, {
|
|
52
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_BaseCanvasModeProvider_cjs_namespaceObject.BaseCanvasModeProvider, {
|
|
53
|
+
mode: mode,
|
|
54
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StickyNoteCanvasOptionsContext_cjs_namespaceObject.StickyNoteCanvasOptionsProvider, {
|
|
55
|
+
options: stickyNoteOptions,
|
|
56
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_SelectionStateContext_cjs_namespaceObject.SelectionStateProvider, {
|
|
57
|
+
nodes: nodes,
|
|
58
|
+
children: children
|
|
59
|
+
})
|
|
57
60
|
})
|
|
58
61
|
})
|
|
59
62
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasProviders.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseCanvas/CanvasProviders.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CanvasProviders.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseCanvas/CanvasProviders.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAQD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,IAAI,EACJ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,QAAQ,GACT,EAAE,oBAAoB,2CAoBtB"}
|
|
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { TooltipProvider } from "@uipath/apollo-wind/components/ui/tooltip";
|
|
3
3
|
import { ApI18nProvider } from "../../../i18n/index.js";
|
|
4
4
|
import { CanvasTooltipProviderMarker } from "../CanvasTooltip.js";
|
|
5
|
+
import { EdgeCrossingsProvider } from "../Edges/shared/crossings/index.js";
|
|
5
6
|
import { StickyNoteCanvasOptionsProvider } from "../StickyNoteNode/StickyNoteCanvasOptionsContext.js";
|
|
6
7
|
import { BaseCanvasModeProvider } from "./BaseCanvasModeProvider.js";
|
|
7
8
|
import { CanvasThemeProvider } from "./CanvasThemeContext.js";
|
|
@@ -19,13 +20,15 @@ function CanvasProviders({ nodes, edges, mode, isDarkMode, locale, stickyNoteOpt
|
|
|
19
20
|
children: /*#__PURE__*/ jsx(CanvasTooltipProviderMarker, {
|
|
20
21
|
children: /*#__PURE__*/ jsx(ConnectedHandlesProvider, {
|
|
21
22
|
edges: edges,
|
|
22
|
-
children: /*#__PURE__*/ jsx(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
children: /*#__PURE__*/ jsx(EdgeCrossingsProvider, {
|
|
24
|
+
children: /*#__PURE__*/ jsx(BaseCanvasModeProvider, {
|
|
25
|
+
mode: mode,
|
|
26
|
+
children: /*#__PURE__*/ jsx(StickyNoteCanvasOptionsProvider, {
|
|
27
|
+
options: stickyNoteOptions,
|
|
28
|
+
children: /*#__PURE__*/ jsx(SelectionStateProvider, {
|
|
29
|
+
nodes: nodes,
|
|
30
|
+
children: children
|
|
31
|
+
})
|
|
29
32
|
})
|
|
30
33
|
})
|
|
31
34
|
})
|
|
@@ -97,6 +97,7 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ (0, external_react_namespaceObject.m
|
|
|
97
97
|
});
|
|
98
98
|
const geometry = (0, hooks_index_cjs_namespaceObject.useEdgeGeometry)({
|
|
99
99
|
routing,
|
|
100
|
+
edgeId: id,
|
|
100
101
|
sourceNodeId: source,
|
|
101
102
|
targetNodeId: target,
|
|
102
103
|
sourceHandleId,
|
|
@@ -110,7 +111,8 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ (0, external_react_namespaceObject.m
|
|
|
110
111
|
waypoints: effectiveWaypoints,
|
|
111
112
|
autoRouted: 0 === waypoints.length,
|
|
112
113
|
enableSegments: editingEnabled,
|
|
113
|
-
hideArrowHead
|
|
114
|
+
hideArrowHead,
|
|
115
|
+
enableLineJumps: !!data?.enableLineJumps
|
|
114
116
|
});
|
|
115
117
|
const editor = (0, hooks_index_cjs_namespaceObject.useWaypointEditor)({
|
|
116
118
|
edgeId: id,
|
|
@@ -148,6 +150,13 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ (0, external_react_namespaceObject.m
|
|
|
148
150
|
});
|
|
149
151
|
const showEditingChrome = editingEnabled && (isHovered || selected || editor.isDragging);
|
|
150
152
|
const opacity = style?.opacity ?? 1;
|
|
153
|
+
const arrowTarget = (0, external_react_namespaceObject.useMemo)(()=>({
|
|
154
|
+
x: targetX,
|
|
155
|
+
y: targetY
|
|
156
|
+
}), [
|
|
157
|
+
targetX,
|
|
158
|
+
targetY
|
|
159
|
+
]);
|
|
151
160
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
|
|
152
161
|
children: [
|
|
153
162
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("g", {
|
|
@@ -183,10 +192,7 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ (0, external_react_namespaceObject.m
|
|
|
183
192
|
handlers: editor.waypointHandlers
|
|
184
193
|
}, waypoint.id)),
|
|
185
194
|
!hideArrowHead && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.EdgeArrow, {
|
|
186
|
-
target:
|
|
187
|
-
x: targetX,
|
|
188
|
-
y: targetY
|
|
189
|
-
},
|
|
195
|
+
target: arrowTarget,
|
|
190
196
|
angle: geometry.arrow.angle,
|
|
191
197
|
offset: geometry.arrow.offset,
|
|
192
198
|
color: color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/CanvasEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"CanvasEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/CanvasEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAYtD,eAAO,MAAM,UAAU,uDAqOF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Position, useStoreApi } from "../../xyflow/react.js";
|
|
3
|
-
import { memo, useCallback, useRef, useState } from "react";
|
|
3
|
+
import { memo, useCallback, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { isPreviewEdge } from "../../utils/createPreviewNode.js";
|
|
5
5
|
import { useBaseCanvasMode } from "../BaseCanvas/BaseCanvasModeProvider.js";
|
|
6
6
|
import { EdgeToolbar, useEdgeToolbarState } from "../Toolbar/index.js";
|
|
@@ -69,6 +69,7 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ memo(function({ id, selected, animat
|
|
|
69
69
|
});
|
|
70
70
|
const geometry = useEdgeGeometry({
|
|
71
71
|
routing,
|
|
72
|
+
edgeId: id,
|
|
72
73
|
sourceNodeId: source,
|
|
73
74
|
targetNodeId: target,
|
|
74
75
|
sourceHandleId,
|
|
@@ -82,7 +83,8 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ memo(function({ id, selected, animat
|
|
|
82
83
|
waypoints: effectiveWaypoints,
|
|
83
84
|
autoRouted: 0 === waypoints.length,
|
|
84
85
|
enableSegments: editingEnabled,
|
|
85
|
-
hideArrowHead
|
|
86
|
+
hideArrowHead,
|
|
87
|
+
enableLineJumps: !!data?.enableLineJumps
|
|
86
88
|
});
|
|
87
89
|
const editor = useWaypointEditor({
|
|
88
90
|
edgeId: id,
|
|
@@ -120,6 +122,13 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ memo(function({ id, selected, animat
|
|
|
120
122
|
});
|
|
121
123
|
const showEditingChrome = editingEnabled && (isHovered || selected || editor.isDragging);
|
|
122
124
|
const opacity = style?.opacity ?? 1;
|
|
125
|
+
const arrowTarget = useMemo(()=>({
|
|
126
|
+
x: targetX,
|
|
127
|
+
y: targetY
|
|
128
|
+
}), [
|
|
129
|
+
targetX,
|
|
130
|
+
targetY
|
|
131
|
+
]);
|
|
123
132
|
return /*#__PURE__*/ jsxs(Fragment, {
|
|
124
133
|
children: [
|
|
125
134
|
/*#__PURE__*/ jsxs("g", {
|
|
@@ -155,10 +164,7 @@ const CanvasEdge_CanvasEdge = /*#__PURE__*/ memo(function({ id, selected, animat
|
|
|
155
164
|
handlers: editor.waypointHandlers
|
|
156
165
|
}, waypoint.id)),
|
|
157
166
|
!hideArrowHead && /*#__PURE__*/ jsx(EdgeArrow, {
|
|
158
|
-
target:
|
|
159
|
-
x: targetX,
|
|
160
|
-
y: targetY
|
|
161
|
-
},
|
|
167
|
+
target: arrowTarget,
|
|
162
168
|
angle: geometry.arrow.angle,
|
|
163
169
|
offset: geometry.arrow.offset,
|
|
164
170
|
color: color,
|
|
@@ -6,6 +6,9 @@ var __webpack_modules__ = {
|
|
|
6
6
|
"./SequenceEdge" (module) {
|
|
7
7
|
module.exports = require("./SequenceEdge.cjs");
|
|
8
8
|
},
|
|
9
|
+
"./shared/crossings" (module) {
|
|
10
|
+
module.exports = require("./shared/crossings/index.cjs");
|
|
11
|
+
},
|
|
9
12
|
"./shared/routing" (module) {
|
|
10
13
|
module.exports = require("./shared/routing/index.cjs");
|
|
11
14
|
}
|
|
@@ -55,9 +58,10 @@ var __webpack_exports__ = {};
|
|
|
55
58
|
__webpack_require__.r(__webpack_exports__);
|
|
56
59
|
__webpack_require__.d(__webpack_exports__, {
|
|
57
60
|
CanvasEdge: ()=>_CanvasEdge__rspack_import_0.CanvasEdge,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
EdgeCrossingsProvider: ()=>_shared_crossings__rspack_import_2.EdgeCrossingsProvider,
|
|
62
|
+
defaultEdgeRouter: ()=>_shared_routing__rspack_import_3.defaultEdgeRouter,
|
|
63
|
+
defaultIsRoutable: ()=>_shared_routing__rspack_import_3.defaultIsRoutable,
|
|
64
|
+
useGraphRouter: ()=>_shared_routing__rspack_import_3.useGraphRouter
|
|
61
65
|
});
|
|
62
66
|
var _CanvasEdge__rspack_import_0 = __webpack_require__("./CanvasEdge");
|
|
63
67
|
var _SequenceEdge__rspack_import_1 = __webpack_require__("./SequenceEdge");
|
|
@@ -67,17 +71,21 @@ var __webpack_exports__ = {};
|
|
|
67
71
|
"useGraphRouter",
|
|
68
72
|
"default",
|
|
69
73
|
"CanvasEdge",
|
|
74
|
+
"EdgeCrossingsProvider",
|
|
70
75
|
"defaultIsRoutable"
|
|
71
76
|
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_SequenceEdge__rspack_import_1[__rspack_import_key];
|
|
72
77
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
73
|
-
var
|
|
78
|
+
var _shared_crossings__rspack_import_2 = __webpack_require__("./shared/crossings");
|
|
79
|
+
var _shared_routing__rspack_import_3 = __webpack_require__("./shared/routing");
|
|
74
80
|
})();
|
|
75
81
|
exports.CanvasEdge = __webpack_exports__.CanvasEdge;
|
|
82
|
+
exports.EdgeCrossingsProvider = __webpack_exports__.EdgeCrossingsProvider;
|
|
76
83
|
exports.defaultEdgeRouter = __webpack_exports__.defaultEdgeRouter;
|
|
77
84
|
exports.defaultIsRoutable = __webpack_exports__.defaultIsRoutable;
|
|
78
85
|
exports.useGraphRouter = __webpack_exports__.useGraphRouter;
|
|
79
86
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
80
87
|
"CanvasEdge",
|
|
88
|
+
"EdgeCrossingsProvider",
|
|
81
89
|
"defaultEdgeRouter",
|
|
82
90
|
"defaultIsRoutable",
|
|
83
91
|
"useGraphRouter"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { CanvasEdge } from './CanvasEdge';
|
|
2
2
|
export * from './SequenceEdge';
|
|
3
|
+
export { EdgeCrossingsProvider } from './shared/crossings';
|
|
3
4
|
export type { EdgeRouter, RouteAnchor, RoutedEdge, RouteEdgeRequest, RouteNodeRequest, RouteRequest, } from './shared/routing';
|
|
4
5
|
export { defaultEdgeRouter, defaultIsRoutable, useGraphRouter, } from './shared/routing';
|
|
5
|
-
export type { CanvasEdgeData, CanvasEdgeProps, EdgeRouting, EdgeStrokeStyle, Point, Segment, SegmentOrientation, Waypoint, } from './shared/types';
|
|
6
|
+
export type { CanvasEdgeData, CanvasEdgeProps, EdgeRouting, EdgeStrokeStyle, PathJump, Point, Segment, SegmentOrientation, Waypoint, } from './shared/types';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,EACL,OAAO,EACP,kBAAkB,EAClB,QAAQ,GACT,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,QAAQ,EACR,KAAK,EACL,OAAO,EACP,kBAAkB,EAClB,QAAQ,GACT,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CanvasEdge } from "./CanvasEdge.js";
|
|
2
|
+
import { EdgeCrossingsProvider } from "./shared/crossings/index.js";
|
|
2
3
|
import { defaultEdgeRouter, defaultIsRoutable, useGraphRouter } from "./shared/routing/index.js";
|
|
3
4
|
export * from "./SequenceEdge.js";
|
|
4
|
-
export { CanvasEdge, defaultEdgeRouter, defaultIsRoutable, useGraphRouter };
|
|
5
|
+
export { CanvasEdge, EdgeCrossingsProvider, defaultEdgeRouter, defaultIsRoutable, useGraphRouter };
|
|
@@ -47,6 +47,7 @@ const EDGE_CONSTANTS = {
|
|
|
47
47
|
MIN_SEGMENT_LENGTH: 32,
|
|
48
48
|
COLLINEAR_TOLERANCE: 1,
|
|
49
49
|
ARROW_OFFSET: 8,
|
|
50
|
+
LINE_JUMP_RADIUS: 5,
|
|
50
51
|
STUB_OFFSET: 2 * external_constants_cjs_namespaceObject.GRID_SPACING
|
|
51
52
|
};
|
|
52
53
|
const EDGE_PATH_TRANSITION = 'stroke 0.2s ease, opacity 0.2s ease';
|
|
@@ -13,6 +13,7 @@ export declare const EDGE_CONSTANTS: {
|
|
|
13
13
|
readonly MIN_SEGMENT_LENGTH: 32;
|
|
14
14
|
readonly COLLINEAR_TOLERANCE: 1;
|
|
15
15
|
readonly ARROW_OFFSET: 8;
|
|
16
|
+
readonly LINE_JUMP_RADIUS: 5;
|
|
16
17
|
readonly STUB_OFFSET: number;
|
|
17
18
|
};
|
|
18
19
|
export declare const EDGE_PATH_TRANSITION = "stroke 0.2s ease, opacity 0.2s ease";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Edges/shared/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/C,eAAO,MAAM,eAAe,EAAE,QAAQ,EAAO,CAAC;AAE9C,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Edges/shared/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/C,eAAO,MAAM,eAAe,EAAE,QAAQ,EAAO,CAAC;AAE9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAuCjB,CAAC;AAGX,eAAO,MAAM,oBAAoB,wCAAwC,CAAC;AAG1E,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAMX,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAOX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKpD,CAAC;AASF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAKjD,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
EMPTY_JUMPS: ()=>EMPTY_JUMPS,
|
|
28
|
+
EdgeCrossingsStore: ()=>EdgeCrossingsStore,
|
|
29
|
+
EdgeCrossingsProvider: ()=>EdgeCrossingsProvider,
|
|
30
|
+
useEdgeCrossingsStore: ()=>useEdgeCrossingsStore
|
|
31
|
+
});
|
|
32
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
33
|
+
const external_react_namespaceObject = require("react");
|
|
34
|
+
const external_crossings_cjs_namespaceObject = require("./crossings.cjs");
|
|
35
|
+
const EMPTY_JUMPS = Object.freeze([]);
|
|
36
|
+
class EdgeCrossingsStore {
|
|
37
|
+
geometry = new Map();
|
|
38
|
+
jumps = new Map();
|
|
39
|
+
listeners = new Map();
|
|
40
|
+
scheduled = false;
|
|
41
|
+
register(edgeId, points) {
|
|
42
|
+
const current = this.geometry.get(edgeId);
|
|
43
|
+
if (current && (0, external_crossings_cjs_namespaceObject.polylinesEqual)(current, points)) return;
|
|
44
|
+
this.geometry.set(edgeId, points);
|
|
45
|
+
this.schedule();
|
|
46
|
+
}
|
|
47
|
+
unregister(edgeId) {
|
|
48
|
+
if (this.geometry.delete(edgeId)) this.schedule();
|
|
49
|
+
}
|
|
50
|
+
subscribe(edgeId, listener) {
|
|
51
|
+
let edgeListeners = this.listeners.get(edgeId);
|
|
52
|
+
if (!edgeListeners) {
|
|
53
|
+
edgeListeners = new Set();
|
|
54
|
+
this.listeners.set(edgeId, edgeListeners);
|
|
55
|
+
}
|
|
56
|
+
edgeListeners.add(listener);
|
|
57
|
+
return ()=>{
|
|
58
|
+
edgeListeners.delete(listener);
|
|
59
|
+
if (0 === edgeListeners.size) this.listeners.delete(edgeId);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
getSnapshot(edgeId) {
|
|
63
|
+
return this.jumps.get(edgeId) ?? EMPTY_JUMPS;
|
|
64
|
+
}
|
|
65
|
+
schedule() {
|
|
66
|
+
if (this.scheduled) return;
|
|
67
|
+
this.scheduled = true;
|
|
68
|
+
queueMicrotask(()=>{
|
|
69
|
+
this.scheduled = false;
|
|
70
|
+
this.recompute();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
recompute() {
|
|
74
|
+
const polylines = [];
|
|
75
|
+
for (const [edgeId, points] of this.geometry)polylines.push({
|
|
76
|
+
edgeId,
|
|
77
|
+
points
|
|
78
|
+
});
|
|
79
|
+
const next = (0, external_crossings_cjs_namespaceObject.computeLineJumps)(polylines);
|
|
80
|
+
const changed = [];
|
|
81
|
+
for (const [edgeId, jumps] of next)if (!(0, external_crossings_cjs_namespaceObject.jumpsEqual)(this.jumps.get(edgeId) ?? EMPTY_JUMPS, jumps)) {
|
|
82
|
+
this.jumps.set(edgeId, jumps);
|
|
83
|
+
changed.push(edgeId);
|
|
84
|
+
}
|
|
85
|
+
for (const edgeId of [
|
|
86
|
+
...this.jumps.keys()
|
|
87
|
+
])if (!next.has(edgeId)) {
|
|
88
|
+
this.jumps.delete(edgeId);
|
|
89
|
+
changed.push(edgeId);
|
|
90
|
+
}
|
|
91
|
+
for (const edgeId of changed){
|
|
92
|
+
const edgeListeners = this.listeners.get(edgeId);
|
|
93
|
+
if (edgeListeners) for (const listener of edgeListeners)listener();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const EdgeCrossingsContext = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(null);
|
|
98
|
+
function EdgeCrossingsProvider({ children }) {
|
|
99
|
+
const inherited = (0, external_react_namespaceObject.useContext)(EdgeCrossingsContext);
|
|
100
|
+
const ownStoreRef = (0, external_react_namespaceObject.useRef)(void 0);
|
|
101
|
+
if (!ownStoreRef.current) ownStoreRef.current = new EdgeCrossingsStore();
|
|
102
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(EdgeCrossingsContext.Provider, {
|
|
103
|
+
value: inherited ?? ownStoreRef.current,
|
|
104
|
+
children: children
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function useEdgeCrossingsStore() {
|
|
108
|
+
return (0, external_react_namespaceObject.useContext)(EdgeCrossingsContext);
|
|
109
|
+
}
|
|
110
|
+
exports.EMPTY_JUMPS = __webpack_exports__.EMPTY_JUMPS;
|
|
111
|
+
exports.EdgeCrossingsProvider = __webpack_exports__.EdgeCrossingsProvider;
|
|
112
|
+
exports.EdgeCrossingsStore = __webpack_exports__.EdgeCrossingsStore;
|
|
113
|
+
exports.useEdgeCrossingsStore = __webpack_exports__.useEdgeCrossingsStore;
|
|
114
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
115
|
+
"EMPTY_JUMPS",
|
|
116
|
+
"EdgeCrossingsProvider",
|
|
117
|
+
"EdgeCrossingsStore",
|
|
118
|
+
"useEdgeCrossingsStore"
|
|
119
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
120
|
+
Object.defineProperty(exports, '__esModule', {
|
|
121
|
+
value: true
|
|
122
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { PathJump, Point } from '../types';
|
|
3
|
+
type Listener = () => void;
|
|
4
|
+
export declare const EMPTY_JUMPS: readonly PathJump[];
|
|
5
|
+
export declare class EdgeCrossingsStore {
|
|
6
|
+
private geometry;
|
|
7
|
+
private jumps;
|
|
8
|
+
private listeners;
|
|
9
|
+
private scheduled;
|
|
10
|
+
register(edgeId: string, points: Point[]): void;
|
|
11
|
+
unregister(edgeId: string): void;
|
|
12
|
+
subscribe(edgeId: string, listener: Listener): () => void;
|
|
13
|
+
getSnapshot(edgeId: string): readonly PathJump[];
|
|
14
|
+
private schedule;
|
|
15
|
+
private recompute;
|
|
16
|
+
}
|
|
17
|
+
export declare function EdgeCrossingsProvider({ children }: {
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function useEdgeCrossingsStore(): EdgeCrossingsStore | null;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=EdgeCrossingsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EdgeCrossingsContext.d.ts","sourceRoot":"","sources":["../../../../../../src/canvas/components/Edges/shared/crossings/EdgeCrossingsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGhD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAAsB,CAAC;AAWlE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,SAAS,CAAS;IAiB1B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAS/C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAmBzD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE;IAchD,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,SAAS;CA2BlB;AAeD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAa1E;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useRef } from "react";
|
|
3
|
+
import { computeLineJumps, jumpsEqual, polylinesEqual } from "./crossings.js";
|
|
4
|
+
const EMPTY_JUMPS = Object.freeze([]);
|
|
5
|
+
class EdgeCrossingsStore {
|
|
6
|
+
geometry = new Map();
|
|
7
|
+
jumps = new Map();
|
|
8
|
+
listeners = new Map();
|
|
9
|
+
scheduled = false;
|
|
10
|
+
register(edgeId, points) {
|
|
11
|
+
const current = this.geometry.get(edgeId);
|
|
12
|
+
if (current && polylinesEqual(current, points)) return;
|
|
13
|
+
this.geometry.set(edgeId, points);
|
|
14
|
+
this.schedule();
|
|
15
|
+
}
|
|
16
|
+
unregister(edgeId) {
|
|
17
|
+
if (this.geometry.delete(edgeId)) this.schedule();
|
|
18
|
+
}
|
|
19
|
+
subscribe(edgeId, listener) {
|
|
20
|
+
let edgeListeners = this.listeners.get(edgeId);
|
|
21
|
+
if (!edgeListeners) {
|
|
22
|
+
edgeListeners = new Set();
|
|
23
|
+
this.listeners.set(edgeId, edgeListeners);
|
|
24
|
+
}
|
|
25
|
+
edgeListeners.add(listener);
|
|
26
|
+
return ()=>{
|
|
27
|
+
edgeListeners.delete(listener);
|
|
28
|
+
if (0 === edgeListeners.size) this.listeners.delete(edgeId);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
getSnapshot(edgeId) {
|
|
32
|
+
return this.jumps.get(edgeId) ?? EMPTY_JUMPS;
|
|
33
|
+
}
|
|
34
|
+
schedule() {
|
|
35
|
+
if (this.scheduled) return;
|
|
36
|
+
this.scheduled = true;
|
|
37
|
+
queueMicrotask(()=>{
|
|
38
|
+
this.scheduled = false;
|
|
39
|
+
this.recompute();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
recompute() {
|
|
43
|
+
const polylines = [];
|
|
44
|
+
for (const [edgeId, points] of this.geometry)polylines.push({
|
|
45
|
+
edgeId,
|
|
46
|
+
points
|
|
47
|
+
});
|
|
48
|
+
const next = computeLineJumps(polylines);
|
|
49
|
+
const changed = [];
|
|
50
|
+
for (const [edgeId, jumps] of next)if (!jumpsEqual(this.jumps.get(edgeId) ?? EMPTY_JUMPS, jumps)) {
|
|
51
|
+
this.jumps.set(edgeId, jumps);
|
|
52
|
+
changed.push(edgeId);
|
|
53
|
+
}
|
|
54
|
+
for (const edgeId of [
|
|
55
|
+
...this.jumps.keys()
|
|
56
|
+
])if (!next.has(edgeId)) {
|
|
57
|
+
this.jumps.delete(edgeId);
|
|
58
|
+
changed.push(edgeId);
|
|
59
|
+
}
|
|
60
|
+
for (const edgeId of changed){
|
|
61
|
+
const edgeListeners = this.listeners.get(edgeId);
|
|
62
|
+
if (edgeListeners) for (const listener of edgeListeners)listener();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const EdgeCrossingsContext = /*#__PURE__*/ createContext(null);
|
|
67
|
+
function EdgeCrossingsProvider({ children }) {
|
|
68
|
+
const inherited = useContext(EdgeCrossingsContext);
|
|
69
|
+
const ownStoreRef = useRef(void 0);
|
|
70
|
+
if (!ownStoreRef.current) ownStoreRef.current = new EdgeCrossingsStore();
|
|
71
|
+
return /*#__PURE__*/ jsx(EdgeCrossingsContext.Provider, {
|
|
72
|
+
value: inherited ?? ownStoreRef.current,
|
|
73
|
+
children: children
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function useEdgeCrossingsStore() {
|
|
77
|
+
return useContext(EdgeCrossingsContext);
|
|
78
|
+
}
|
|
79
|
+
export { EMPTY_JUMPS, EdgeCrossingsProvider, EdgeCrossingsStore, useEdgeCrossingsStore };
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
polylinesEqual: ()=>polylinesEqual,
|
|
28
|
+
jumpsEqual: ()=>jumpsEqual,
|
|
29
|
+
computeLineJumps: ()=>computeLineJumps
|
|
30
|
+
});
|
|
31
|
+
const external_constants_cjs_namespaceObject = require("../constants.cjs");
|
|
32
|
+
const { COLLINEAR_TOLERANCE: TOL, BORDER_RADIUS } = external_constants_cjs_namespaceObject.EDGE_CONSTANTS;
|
|
33
|
+
function computeLineJumps(polylines) {
|
|
34
|
+
const horizontals = [];
|
|
35
|
+
const verticals = [];
|
|
36
|
+
for (const { edgeId, points } of polylines)for(let i = 0; i < points.length - 1; i++){
|
|
37
|
+
const a = points[i];
|
|
38
|
+
const b = points[i + 1];
|
|
39
|
+
const dx = Math.abs(b.x - a.x);
|
|
40
|
+
const dy = Math.abs(b.y - a.y);
|
|
41
|
+
if (dy <= TOL && dx > TOL) horizontals.push({
|
|
42
|
+
edgeId,
|
|
43
|
+
segmentIndex: i,
|
|
44
|
+
y: a.y,
|
|
45
|
+
xMin: Math.min(a.x, b.x),
|
|
46
|
+
xMax: Math.max(a.x, b.x)
|
|
47
|
+
});
|
|
48
|
+
else if (dx <= TOL && dy > TOL) {
|
|
49
|
+
const bendMargin = Math.min(BORDER_RADIUS, dy / 2);
|
|
50
|
+
const startMargin = i > 0 ? bendMargin : TOL;
|
|
51
|
+
const endMargin = i + 2 < points.length ? bendMargin : TOL;
|
|
52
|
+
const descending = b.y > a.y;
|
|
53
|
+
verticals.push({
|
|
54
|
+
edgeId,
|
|
55
|
+
x: a.x,
|
|
56
|
+
yMin: Math.min(a.y, b.y),
|
|
57
|
+
yMax: Math.max(a.y, b.y),
|
|
58
|
+
minMargin: descending ? startMargin : endMargin,
|
|
59
|
+
maxMargin: descending ? endMargin : startMargin
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (0 === horizontals.length || 0 === verticals.length) return new Map();
|
|
64
|
+
verticals.sort((a, b)=>a.x - b.x);
|
|
65
|
+
const xs = verticals.map((v)=>v.x);
|
|
66
|
+
const result = new Map();
|
|
67
|
+
for (const h of horizontals){
|
|
68
|
+
let jumps;
|
|
69
|
+
let lastX = -1 / 0;
|
|
70
|
+
for(let i = lowerBound(xs, h.xMin + TOL); i < verticals.length; i++){
|
|
71
|
+
const v = verticals[i];
|
|
72
|
+
if (v.x >= h.xMax - TOL) break;
|
|
73
|
+
if (v.edgeId !== h.edgeId) {
|
|
74
|
+
if (!(h.y <= v.yMin + v.minMargin) && !(h.y >= v.yMax - v.maxMargin)) {
|
|
75
|
+
if (!(v.x - lastX <= TOL)) {
|
|
76
|
+
lastX = v.x;
|
|
77
|
+
jumps ??= [];
|
|
78
|
+
jumps.push({
|
|
79
|
+
segmentIndex: h.segmentIndex,
|
|
80
|
+
point: {
|
|
81
|
+
x: v.x,
|
|
82
|
+
y: h.y
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (!jumps) continue;
|
|
90
|
+
const existing = result.get(h.edgeId);
|
|
91
|
+
if (existing) existing.push(...jumps);
|
|
92
|
+
else result.set(h.edgeId, jumps);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
function lowerBound(sorted, value) {
|
|
97
|
+
let low = 0;
|
|
98
|
+
let high = sorted.length;
|
|
99
|
+
while(low < high){
|
|
100
|
+
const mid = low + high >>> 1;
|
|
101
|
+
if (sorted[mid] < value) low = mid + 1;
|
|
102
|
+
else high = mid;
|
|
103
|
+
}
|
|
104
|
+
return low;
|
|
105
|
+
}
|
|
106
|
+
function polylinesEqual(a, b) {
|
|
107
|
+
if (a === b) return true;
|
|
108
|
+
if (a.length !== b.length) return false;
|
|
109
|
+
for(let i = 0; i < a.length; i++){
|
|
110
|
+
const left = a[i];
|
|
111
|
+
const right = b[i];
|
|
112
|
+
if (Math.abs(left.x - right.x) > TOL) return false;
|
|
113
|
+
if (Math.abs(left.y - right.y) > TOL) return false;
|
|
114
|
+
}
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
function jumpsEqual(a, b) {
|
|
118
|
+
if (a === b) return true;
|
|
119
|
+
if (a.length !== b.length) return false;
|
|
120
|
+
for(let i = 0; i < a.length; i++){
|
|
121
|
+
const left = a[i];
|
|
122
|
+
const right = b[i];
|
|
123
|
+
if (left.segmentIndex !== right.segmentIndex) return false;
|
|
124
|
+
if (Math.abs(left.point.x - right.point.x) > TOL) return false;
|
|
125
|
+
if (Math.abs(left.point.y - right.point.y) > TOL) return false;
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
exports.computeLineJumps = __webpack_exports__.computeLineJumps;
|
|
130
|
+
exports.jumpsEqual = __webpack_exports__.jumpsEqual;
|
|
131
|
+
exports.polylinesEqual = __webpack_exports__.polylinesEqual;
|
|
132
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
133
|
+
"computeLineJumps",
|
|
134
|
+
"jumpsEqual",
|
|
135
|
+
"polylinesEqual"
|
|
136
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
137
|
+
Object.defineProperty(exports, '__esModule', {
|
|
138
|
+
value: true
|
|
139
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PathJump, Point } from '../types';
|
|
2
|
+
export type EdgePolyline = {
|
|
3
|
+
edgeId: string;
|
|
4
|
+
points: Point[];
|
|
5
|
+
};
|
|
6
|
+
export declare function computeLineJumps(polylines: EdgePolyline[]): Map<string, PathJump[]>;
|
|
7
|
+
export declare function polylinesEqual(a: readonly Point[], b: readonly Point[]): boolean;
|
|
8
|
+
export declare function jumpsEqual(a: readonly PathJump[], b: readonly PathJump[]): boolean;
|
|
9
|
+
//# sourceMappingURL=crossings.d.ts.map
|