@rxflow/base 0.0.2 → 0.0.4-alpha.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/cjs/Flow.d.ts +1 -1
- package/cjs/Flow.d.ts.map +1 -1
- package/cjs/Flow.js +28 -10
- package/cjs/components/Legend/index.d.ts.map +1 -1
- package/cjs/components/Legend/index.js +2 -1
- package/cjs/components/Popover/index.d.ts +1 -9
- package/cjs/components/Popover/index.d.ts.map +1 -1
- package/cjs/components/Popover/index.js +14 -75
- package/cjs/components/Tooltip/index.d.ts +1 -10
- package/cjs/components/Tooltip/index.d.ts.map +1 -1
- package/cjs/components/Tooltip/index.js +11 -83
- package/cjs/edges/manhattan.d.ts.map +1 -1
- package/cjs/edges/manhattan.js +100 -30
- package/cjs/hoc/createFlow.d.ts +30 -4
- package/cjs/hoc/createFlow.d.ts.map +1 -1
- package/cjs/hoc/createFlow.js +45 -18
- package/cjs/hooks/index.d.ts +5 -2
- package/cjs/hooks/index.d.ts.map +1 -1
- package/cjs/hooks/index.js +44 -22
- package/cjs/hooks/props/index.d.ts +12 -0
- package/cjs/hooks/props/index.d.ts.map +1 -0
- package/cjs/hooks/props/index.js +49 -0
- package/cjs/hooks/props/useFlowProps.d.ts +23 -0
- package/cjs/hooks/props/useFlowProps.d.ts.map +1 -0
- package/cjs/hooks/props/useFlowProps.js +34 -0
- package/cjs/hooks/props/useGetFlowProps.d.ts +19 -0
- package/cjs/hooks/props/useGetFlowProps.d.ts.map +1 -0
- package/cjs/hooks/props/useGetFlowProps.js +38 -0
- package/cjs/hooks/props/useGetInputProps.d.ts +18 -0
- package/cjs/hooks/props/useGetInputProps.d.ts.map +1 -0
- package/cjs/hooks/props/useGetInputProps.js +38 -0
- package/cjs/hooks/props/useInputProps.d.ts +14 -0
- package/cjs/hooks/props/useInputProps.d.ts.map +1 -0
- package/cjs/hooks/props/useInputProps.js +33 -0
- package/cjs/hooks/useListenRender.js +4 -4
- package/cjs/hooks/useTheme.d.ts.map +1 -1
- package/cjs/hooks/useTheme.js +3 -2
- package/cjs/index.d.ts +6 -3
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +46 -14
- package/cjs/providers/FlowProvider.d.ts +7 -1
- package/cjs/providers/FlowProvider.d.ts.map +1 -1
- package/cjs/providers/FlowProvider.js +33 -14
- package/cjs/store/PropsStore.d.ts +11 -6
- package/cjs/store/PropsStore.d.ts.map +1 -1
- package/cjs/store/PropsStore.js +55 -39
- package/cjs/types/props.d.ts +83 -0
- package/cjs/types/props.d.ts.map +1 -0
- package/cjs/types/props.js +5 -0
- package/cjs/types.d.ts +5 -1
- package/cjs/types.d.ts.map +1 -1
- package/cjs/utils/wrapNodeTypes.d.ts +30 -0
- package/cjs/utils/wrapNodeTypes.d.ts.map +1 -0
- package/cjs/utils/wrapNodeTypes.js +56 -0
- package/cjs/workers/manhattan.worker.js +12534 -31
- package/cjs/workers/manhattan.worker.js.map +7 -0
- package/esm/Flow.d.ts +1 -1
- package/esm/Flow.d.ts.map +1 -1
- package/esm/Flow.js +30 -16
- package/esm/components/Legend/index.d.ts.map +1 -1
- package/esm/components/Legend/index.js +3 -2
- package/esm/components/Popover/index.d.ts +1 -9
- package/esm/components/Popover/index.d.ts.map +1 -1
- package/esm/components/Popover/index.js +16 -87
- package/esm/components/Tooltip/index.d.ts +1 -10
- package/esm/components/Tooltip/index.d.ts.map +1 -1
- package/esm/components/Tooltip/index.js +14 -97
- package/esm/edges/manhattan.d.ts.map +1 -1
- package/esm/edges/manhattan.js +95 -23
- package/esm/hoc/createFlow.d.ts +30 -4
- package/esm/hoc/createFlow.d.ts.map +1 -1
- package/esm/hoc/createFlow.js +48 -20
- package/esm/hooks/index.d.ts +5 -2
- package/esm/hooks/index.d.ts.map +1 -1
- package/esm/hooks/index.js +8 -3
- package/esm/hooks/props/index.d.ts +12 -0
- package/esm/hooks/props/index.d.ts.map +1 -0
- package/esm/hooks/props/index.js +12 -0
- package/esm/hooks/props/useFlowProps.d.ts +23 -0
- package/esm/hooks/props/useFlowProps.d.ts.map +1 -0
- package/esm/hooks/props/useFlowProps.js +29 -0
- package/esm/hooks/props/useGetFlowProps.d.ts +19 -0
- package/esm/hooks/props/useGetFlowProps.d.ts.map +1 -0
- package/esm/hooks/props/useGetFlowProps.js +31 -0
- package/esm/hooks/props/useGetInputProps.d.ts +18 -0
- package/esm/hooks/props/useGetInputProps.d.ts.map +1 -0
- package/esm/hooks/props/useGetInputProps.js +31 -0
- package/esm/hooks/props/useInputProps.d.ts +14 -0
- package/esm/hooks/props/useInputProps.d.ts.map +1 -0
- package/esm/hooks/props/useInputProps.js +27 -0
- package/esm/hooks/useListenRender.js +4 -4
- package/esm/hooks/useTheme.d.ts.map +1 -1
- package/esm/hooks/useTheme.js +3 -2
- package/esm/index.d.ts +6 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +22 -3
- package/esm/providers/FlowProvider.d.ts +7 -1
- package/esm/providers/FlowProvider.d.ts.map +1 -1
- package/esm/providers/FlowProvider.js +36 -15
- package/esm/store/PropsStore.d.ts +11 -6
- package/esm/store/PropsStore.d.ts.map +1 -1
- package/esm/store/PropsStore.js +75 -34
- package/esm/types/props.d.ts +83 -0
- package/esm/types/props.d.ts.map +1 -0
- package/esm/types/props.js +1 -0
- package/esm/types.d.ts +5 -1
- package/esm/types.d.ts.map +1 -1
- package/esm/utils/wrapNodeTypes.d.ts +30 -0
- package/esm/utils/wrapNodeTypes.d.ts.map +1 -0
- package/esm/utils/wrapNodeTypes.js +55 -0
- package/esm/workers/manhattan.worker.js +1 -1
- package/esm/workers/manhattan.worker.js.map +7 -0
- package/package.json +5 -3
- package/cjs/hooks/props/useGetProps.d.ts +0 -6
- package/cjs/hooks/props/useGetProps.d.ts.map +0 -1
- package/cjs/hooks/props/useGetProps.js +0 -29
- package/cjs/hooks/props/useProps.d.ts +0 -2
- package/cjs/hooks/props/useProps.d.ts.map +0 -1
- package/cjs/hooks/props/useProps.js +0 -20
- package/cjs/hooks/props/usePropsSelector.d.ts +0 -13
- package/cjs/hooks/props/usePropsSelector.d.ts.map +0 -1
- package/cjs/hooks/props/usePropsSelector.js +0 -37
- package/esm/hooks/props/useGetProps.d.ts +0 -6
- package/esm/hooks/props/useGetProps.d.ts.map +0 -1
- package/esm/hooks/props/useGetProps.js +0 -21
- package/esm/hooks/props/useProps.d.ts +0 -2
- package/esm/hooks/props/useProps.d.ts.map +0 -1
- package/esm/hooks/props/useProps.js +0 -14
- package/esm/hooks/props/usePropsSelector.d.ts +0 -13
- package/esm/hooks/props/usePropsSelector.d.ts.map +0 -1
- package/esm/hooks/props/usePropsSelector.js +0 -31
package/cjs/index.js
CHANGED
|
@@ -52,6 +52,18 @@ Object.keys(_types).forEach(function (key) {
|
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
|
+
var _props = require("./types/props");
|
|
56
|
+
Object.keys(_props).forEach(function (key) {
|
|
57
|
+
if (key === "default" || key === "__esModule") return;
|
|
58
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
59
|
+
if (key in exports && exports[key] === _props[key]) return;
|
|
60
|
+
Object.defineProperty(exports, key, {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _props[key];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
55
67
|
var _hooks = require("./hooks");
|
|
56
68
|
Object.keys(_hooks).forEach(function (key) {
|
|
57
69
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -100,18 +112,6 @@ Object.keys(_dimension).forEach(function (key) {
|
|
|
100
112
|
}
|
|
101
113
|
});
|
|
102
114
|
});
|
|
103
|
-
var _withFlowProvider = require("./hoc/withFlowProvider");
|
|
104
|
-
Object.keys(_withFlowProvider).forEach(function (key) {
|
|
105
|
-
if (key === "default" || key === "__esModule") return;
|
|
106
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
107
|
-
if (key in exports && exports[key] === _withFlowProvider[key]) return;
|
|
108
|
-
Object.defineProperty(exports, key, {
|
|
109
|
-
enumerable: true,
|
|
110
|
-
get: function () {
|
|
111
|
-
return _withFlowProvider[key];
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
115
|
var _measureText = require("./utils/measureText");
|
|
116
116
|
Object.keys(_measureText).forEach(function (key) {
|
|
117
117
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -136,6 +136,30 @@ Object.keys(_mindmap).forEach(function (key) {
|
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
});
|
|
139
|
+
var _wrapNodeTypes = require("./utils/wrapNodeTypes");
|
|
140
|
+
Object.keys(_wrapNodeTypes).forEach(function (key) {
|
|
141
|
+
if (key === "default" || key === "__esModule") return;
|
|
142
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
143
|
+
if (key in exports && exports[key] === _wrapNodeTypes[key]) return;
|
|
144
|
+
Object.defineProperty(exports, key, {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
get: function () {
|
|
147
|
+
return _wrapNodeTypes[key];
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
var _withFlowProvider = require("./hoc/withFlowProvider");
|
|
152
|
+
Object.keys(_withFlowProvider).forEach(function (key) {
|
|
153
|
+
if (key === "default" || key === "__esModule") return;
|
|
154
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
155
|
+
if (key in exports && exports[key] === _withFlowProvider[key]) return;
|
|
156
|
+
Object.defineProperty(exports, key, {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function () {
|
|
159
|
+
return _withFlowProvider[key];
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
139
163
|
var _NodeRoleType = require("./constants/NodeRoleType");
|
|
140
164
|
Object.keys(_NodeRoleType).forEach(function (key) {
|
|
141
165
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -176,7 +200,8 @@ var _FlowProvider = require("./providers/FlowProvider");
|
|
|
176
200
|
/**
|
|
177
201
|
* @author: yanxianliang
|
|
178
202
|
* @date: 2025-07-02 09:27
|
|
179
|
-
* @
|
|
203
|
+
* @modified:2025/1/17 by yanxianliang
|
|
204
|
+
* @desc: 基础 Graph 组件
|
|
180
205
|
*
|
|
181
206
|
* 提供统一图解决方案底层
|
|
182
207
|
*
|
|
@@ -184,4 +209,11 @@ var _FlowProvider = require("./providers/FlowProvider");
|
|
|
184
209
|
*/
|
|
185
210
|
|
|
186
211
|
const BaseFlow = (0, _createFlow.createFlow)(_Flow.Flow);
|
|
187
|
-
var _default = exports.default = BaseFlow;
|
|
212
|
+
var _default = exports.default = BaseFlow; // 类型导出
|
|
213
|
+
// Hooks 导出
|
|
214
|
+
// 组件导出
|
|
215
|
+
// 工具函数导出
|
|
216
|
+
// HOC 导出
|
|
217
|
+
// 常量导出
|
|
218
|
+
// Provider 导出
|
|
219
|
+
// Flow 组件导出
|
|
@@ -10,9 +10,15 @@ export declare const FlowProvider: React.ComponentType<{
|
|
|
10
10
|
}>;
|
|
11
11
|
/**
|
|
12
12
|
* hooks 创建
|
|
13
|
-
*
|
|
13
|
+
* @deprecated 使用 hooks/state 目录下的 hooks
|
|
14
14
|
*/
|
|
15
15
|
export declare const useSelector: <U>(selector: (state: ExtractState<StoreApi<BaseStateType>>) => U) => U;
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated 使用 hooks/state/useSetState
|
|
18
|
+
*/
|
|
16
19
|
export declare const useSetState: () => (partial: BaseStateType | Partial<BaseStateType> | ((state: BaseStateType) => BaseStateType | Partial<BaseStateType>), replace?: boolean | undefined) => void;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated 使用 hooks/state/useGetState
|
|
22
|
+
*/
|
|
17
23
|
export declare const useGetState: () => () => BaseStateType;
|
|
18
24
|
//# sourceMappingURL=FlowProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowProvider.d.ts","sourceRoot":"","sources":["FlowProvider.tsx"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"FlowProvider.d.ts","sourceRoot":"","sources":["FlowProvider.tsx"],"names":[],"mappings":"AASA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAU,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGvD,eAAO,MAAM,WAAW;;EAET,CAAC;AA2ChB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAc1E,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW,wBACJ,aAAa,SAAS,aAAa,CAAC,CAAC,KAAK,CAAC,MAQ9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,qKAOvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2BAOvB,CAAC"}
|
|
@@ -14,27 +14,38 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
14
14
|
/**
|
|
15
15
|
* @author: yanxianliang
|
|
16
16
|
* @date: 2025-10-16 17:28
|
|
17
|
-
* @modified:2025/
|
|
18
|
-
* @desc: 全局状态管理器
|
|
17
|
+
* @modified:2025/1/17 by yanxianliang
|
|
18
|
+
* @desc: 全局状态管理器 - 支持双层 Props 存储
|
|
19
19
|
*
|
|
20
20
|
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
// Context 外部提供,支持inner hooks
|
|
23
|
+
// Context 外部提供,支持 inner hooks
|
|
24
24
|
const FlowContext = exports.FlowContext = /*#__PURE__*/_react2.default.createContext(null);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 创建初始状态
|
|
28
|
+
*/
|
|
29
|
+
const createInitialState = () => ({
|
|
30
|
+
id: '',
|
|
31
|
+
props: undefined,
|
|
32
|
+
// 向后兼容
|
|
33
|
+
inputProps: undefined,
|
|
34
|
+
// 原始输入 props
|
|
35
|
+
flowProps: undefined,
|
|
36
|
+
// 转换后的 Flow props
|
|
37
|
+
onEdgesChangeHandlers: [],
|
|
38
|
+
forceRenderTimes: 0,
|
|
39
|
+
initialNodeIdSet: new Set(),
|
|
40
|
+
nodeTypeMap: new Map(),
|
|
41
|
+
smartEdges: {},
|
|
42
|
+
edgeStore: {}
|
|
43
|
+
});
|
|
25
44
|
const FlowProviderWrapper = ({
|
|
26
45
|
children
|
|
27
46
|
}) => {
|
|
28
|
-
const [useStore] = (0, _react2.useState)(() => (0, _zustand.create)((0, _middleware.devtools)(
|
|
29
|
-
|
|
30
|
-
// onChange 列表
|
|
31
|
-
forceRenderTimes: 0,
|
|
32
|
-
initialNodeIdSet: new Set(),
|
|
33
|
-
nodeTypeMap: new Map(),
|
|
34
|
-
smartEdges: {},
|
|
35
|
-
edgeStore: {}
|
|
36
|
-
}), {
|
|
37
|
-
name: "flow",
|
|
47
|
+
const [useStore] = (0, _react2.useState)(() => (0, _zustand.create)()((0, _middleware.devtools)(() => createInitialState(), {
|
|
48
|
+
name: "rxflow",
|
|
38
49
|
enabled: process.env.NODE_ENV === 'development'
|
|
39
50
|
})));
|
|
40
51
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FlowContext.Provider, {
|
|
@@ -60,7 +71,7 @@ const FlowProvider = exports.FlowProvider = /*#__PURE__*/(0, _react2.memo)(({
|
|
|
60
71
|
|
|
61
72
|
/**
|
|
62
73
|
* hooks 创建
|
|
63
|
-
*
|
|
74
|
+
* @deprecated 使用 hooks/state 目录下的 hooks
|
|
64
75
|
*/
|
|
65
76
|
const useSelector = selector => {
|
|
66
77
|
const context = (0, _react2.useContext)(FlowContext);
|
|
@@ -70,6 +81,10 @@ const useSelector = selector => {
|
|
|
70
81
|
}
|
|
71
82
|
return context.useStore(selector);
|
|
72
83
|
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated 使用 hooks/state/useSetState
|
|
87
|
+
*/
|
|
73
88
|
exports.useSelector = useSelector;
|
|
74
89
|
const useSetState = () => {
|
|
75
90
|
const context = (0, _react2.useContext)(FlowContext);
|
|
@@ -79,6 +94,10 @@ const useSetState = () => {
|
|
|
79
94
|
}
|
|
80
95
|
return context.useStore.setState;
|
|
81
96
|
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @deprecated 使用 hooks/state/useGetState
|
|
100
|
+
*/
|
|
82
101
|
exports.useSetState = useSetState;
|
|
83
102
|
const useGetState = () => {
|
|
84
103
|
const context = (0, _react2.useContext)(FlowContext);
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author: yanxianliang
|
|
3
3
|
* @date: 2025-10-16 19:35
|
|
4
|
-
* @modified:2025/
|
|
5
|
-
* @desc: Props 存储
|
|
4
|
+
* @modified:2025/1/17 by yanxianliang
|
|
5
|
+
* @desc: Props 存储 - 双层存储设计
|
|
6
|
+
*
|
|
7
|
+
* 支持同时存储原始输入 props 和转换后的 flow props
|
|
6
8
|
*
|
|
7
9
|
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
10
|
*/
|
|
9
11
|
import { IBaseFlowProps } from "../types";
|
|
10
|
-
import { Edge, Node } from "@xyflow/react";
|
|
11
12
|
import { ReactNode } from "react";
|
|
12
|
-
export
|
|
13
|
-
props
|
|
13
|
+
export interface PropsStoreProps<TInputProps extends Record<string, any> = Record<string, any>, TFlowProps extends IBaseFlowProps = IBaseFlowProps> {
|
|
14
|
+
/** 原始输入 props(用户传入的) */
|
|
15
|
+
inputProps: TInputProps;
|
|
16
|
+
/** 转换后的 Flow props(传给 Flow 组件的) */
|
|
17
|
+
flowProps: TFlowProps;
|
|
14
18
|
children: ReactNode;
|
|
15
|
-
}
|
|
19
|
+
}
|
|
20
|
+
export declare const PropsStore: <TInputProps extends Record<string, any> = Record<string, any>, TFlowProps extends IBaseFlowProps<import("@xyflow/react").Node, import("@xyflow/react").Edge> = IBaseFlowProps<import("@xyflow/react").Node, import("@xyflow/react").Edge>>({ inputProps, flowProps, children }: PropsStoreProps<TInputProps, TFlowProps>) => import("react/jsx-runtime").JSX.Element;
|
|
16
21
|
//# sourceMappingURL=PropsStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropsStore.d.ts","sourceRoot":"","sources":["PropsStore.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PropsStore.d.ts","sourceRoot":"","sources":["PropsStore.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAmB,MAAM,UAAU,CAAC;AAG3D,OAAO,EAAE,SAAS,EAA8B,MAAM,OAAO,CAAC;AAK9D,MAAM,WAAW,eAAe,CAC9B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,UAAU,SAAS,cAAc,GAAG,cAAc;IAElD,wBAAwB;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAiCD,eAAO,MAAM,UAAU,mRAOpB,gBAAgB,WAAW,EAAE,UAAU,CAAC,4CAyC1C,CAAC"}
|
package/cjs/store/PropsStore.js
CHANGED
|
@@ -6,70 +6,86 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PropsStore = void 0;
|
|
7
7
|
var _NodeRoleType = require("../constants/NodeRoleType");
|
|
8
8
|
var _ahooks = require("ahooks");
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = require("react");
|
|
10
10
|
var _uuid = require("uuid");
|
|
11
|
-
var
|
|
11
|
+
var _useGetState = require("../hooks/state/useGetState");
|
|
12
|
+
var _useSetState = require("../hooks/state/useSetState");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
14
|
/**
|
|
16
15
|
* @author: yanxianliang
|
|
17
16
|
* @date: 2025-10-16 19:35
|
|
18
|
-
* @modified:2025/
|
|
19
|
-
* @desc: Props 存储
|
|
17
|
+
* @modified:2025/1/17 by yanxianliang
|
|
18
|
+
* @desc: Props 存储 - 双层存储设计
|
|
19
|
+
*
|
|
20
|
+
* 支持同时存储原始输入 props 和转换后的 flow props
|
|
20
21
|
*
|
|
21
22
|
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
22
23
|
*/
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* 构建 nodeTypeMap
|
|
27
|
+
*/
|
|
28
|
+
const buildNodeTypeMap = nodeTypes => {
|
|
29
|
+
const map = new Map();
|
|
30
|
+
if (nodeTypes) {
|
|
31
|
+
for (const definition of nodeTypes) {
|
|
32
|
+
map.set(definition.type, definition);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return map;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 生成 SubFlow 样式
|
|
40
|
+
*/
|
|
41
|
+
const generateSubFlowStyles = nodeTypes => {
|
|
42
|
+
const styles = [];
|
|
43
|
+
if (nodeTypes) {
|
|
44
|
+
for (const definition of nodeTypes) {
|
|
45
|
+
if (definition.nodeRoleType === _NodeRoleType.NodeRoleType.SubFlow && (definition.allowContentSelection ?? true)) {
|
|
46
|
+
styles.push(`.react-flow__node-${definition.type} {pointer-events: none!important;}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return styles;
|
|
51
|
+
};
|
|
24
52
|
const PropsStore = ({
|
|
25
|
-
|
|
53
|
+
inputProps,
|
|
54
|
+
flowProps,
|
|
26
55
|
children
|
|
27
56
|
}) => {
|
|
28
|
-
const setState = (0,
|
|
29
|
-
const getState = (0,
|
|
30
|
-
const defaultId = (0, _react.useMemo)(() =>
|
|
31
|
-
return (0, _uuid.v4)();
|
|
32
|
-
}, []);
|
|
57
|
+
const setState = (0, _useSetState.useSetState)();
|
|
58
|
+
const getState = (0, _useGetState.useGetState)();
|
|
59
|
+
const defaultId = (0, _react.useMemo)(() => (0, _uuid.v4)(), []);
|
|
33
60
|
const {
|
|
34
61
|
nodeTypes
|
|
35
|
-
} =
|
|
62
|
+
} = flowProps;
|
|
36
63
|
const styleContentRef = (0, _react.useRef)([]);
|
|
37
64
|
|
|
38
|
-
//
|
|
65
|
+
// 构建 nodeTypeMap
|
|
39
66
|
const nodeTypeMap = (0, _react.useMemo)(() => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (nodeTypes) {
|
|
43
|
-
for (let i = 0; i < nodeTypes.length; i++) {
|
|
44
|
-
const definition = nodeTypes[i];
|
|
45
|
-
map.set(definition.type, definition);
|
|
46
|
-
// TODO 子工作流需要禁用内容区域的拖拽
|
|
47
|
-
if (definition.nodeRoleType === _NodeRoleType.NodeRoleType.SubFlow && (definition.allowContentSelection ?? true)) {
|
|
48
|
-
// 子工作流,需要固定样式
|
|
49
|
-
const type = definition.type;
|
|
50
|
-
styleContentRef.current.push(`.react-flow__node-${type} {pointer-events: none!important;}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return map;
|
|
67
|
+
styleContentRef.current = generateSubFlowStyles(nodeTypes);
|
|
68
|
+
return buildNodeTypeMap(nodeTypes);
|
|
55
69
|
}, [nodeTypes]);
|
|
56
70
|
|
|
57
|
-
//
|
|
71
|
+
// 更新状态 - 同时存储 inputProps 和 flowProps
|
|
58
72
|
(0, _ahooks.useDeepCompareEffect)(() => {
|
|
59
73
|
setState({
|
|
60
|
-
|
|
61
|
-
|
|
74
|
+
// 分别存储原始和转换后的 props
|
|
75
|
+
inputProps,
|
|
76
|
+
flowProps,
|
|
77
|
+
// 其他状态
|
|
78
|
+
id: flowProps.id || defaultId,
|
|
62
79
|
nodeTypeMap
|
|
63
80
|
});
|
|
64
|
-
}, [
|
|
65
|
-
(0, _react.useEffect)(() => {
|
|
66
|
-
// nodes 变化,需要重新进行初始化,清除当前初始化记录
|
|
67
|
-
getState().initialNodeIdSet.clear();
|
|
68
|
-
}, [props.nodes]);
|
|
81
|
+
}, [inputProps, flowProps]);
|
|
69
82
|
|
|
70
|
-
//
|
|
83
|
+
// nodes 变化时清除初始化记录
|
|
84
|
+
(0, _react.useEffect)(() => {
|
|
85
|
+
getState().initialNodeIdSet?.clear();
|
|
86
|
+
}, [flowProps.nodes]);
|
|
71
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
72
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("style", {
|
|
88
|
+
children: [styleContentRef.current.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)("style", {
|
|
73
89
|
children: styleContentRef.current.join('')
|
|
74
90
|
}), children]
|
|
75
91
|
});
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-01-17
|
|
4
|
+
* @desc: Props 类型定义 - 分层设计
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
7
|
+
*/
|
|
8
|
+
import { Edge, Node, PanelPosition, ReactFlowProps } from "@xyflow/react";
|
|
9
|
+
import React from "react";
|
|
10
|
+
import { MarkDefinition } from "../components/MarkerDefinitions/types";
|
|
11
|
+
import { ScrollbarPluginOptions } from "../plugins/scrollbar/types";
|
|
12
|
+
import { BaseThemeConfig, INodeDefinition, LayoutFunction } from "../types";
|
|
13
|
+
/**
|
|
14
|
+
* 核心层 Props - ReactFlow 原生属性的扩展
|
|
15
|
+
* 这些属性会透传给 ReactFlow
|
|
16
|
+
*/
|
|
17
|
+
export interface CoreFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> extends Omit<ReactFlowProps<NodeType, EdgeType>, 'nodeTypes' | 'width' | 'height'> {
|
|
18
|
+
nodeTypes?: Array<INodeDefinition<NodeType['data']>>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 框架层 Props - rxflow 框架属性
|
|
22
|
+
* 这些属性不透传给 ReactFlow,由框架内部消费
|
|
23
|
+
*/
|
|
24
|
+
export interface FrameworkProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> {
|
|
25
|
+
width?: string | number;
|
|
26
|
+
height?: string | number;
|
|
27
|
+
rootStyle?: React.CSSProperties;
|
|
28
|
+
showControls?: boolean;
|
|
29
|
+
controlsPosition?: PanelPosition;
|
|
30
|
+
controlsOrientation?: 'horizontal' | 'vertical';
|
|
31
|
+
customControls?: React.ReactNode;
|
|
32
|
+
showMiniMap?: boolean;
|
|
33
|
+
getMiniMapNodeColor?: (node: Node) => string;
|
|
34
|
+
showFullscreen?: boolean;
|
|
35
|
+
showForceLayout?: boolean;
|
|
36
|
+
showInteractive?: boolean;
|
|
37
|
+
showFitView?: boolean;
|
|
38
|
+
showZoom?: boolean;
|
|
39
|
+
showLegend?: boolean | {
|
|
40
|
+
showAll?: boolean;
|
|
41
|
+
};
|
|
42
|
+
layout?: LayoutFunction<NodeType, EdgeType>;
|
|
43
|
+
forceLayout?: boolean;
|
|
44
|
+
autoCenter?: boolean;
|
|
45
|
+
theme?: BaseThemeConfig;
|
|
46
|
+
background?: string;
|
|
47
|
+
plugins?: {
|
|
48
|
+
scroller?: false | ScrollbarPluginOptions;
|
|
49
|
+
};
|
|
50
|
+
markers?: MarkDefinition[];
|
|
51
|
+
onZoomIn?: () => void;
|
|
52
|
+
onZoomOut?: () => void;
|
|
53
|
+
onFitView?: () => void;
|
|
54
|
+
onInteractiveChange?: (interactiveStatus: boolean) => void;
|
|
55
|
+
onRender?: (nodes: NodeType[], edges: EdgeType[], timing: number) => void;
|
|
56
|
+
forceFitView?: boolean;
|
|
57
|
+
loading?: boolean;
|
|
58
|
+
readOnly?: boolean;
|
|
59
|
+
debug?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 完整的 Base Flow Props
|
|
63
|
+
*/
|
|
64
|
+
export type BaseFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = CoreFlowProps<NodeType, EdgeType> & FrameworkProps<NodeType, EdgeType>;
|
|
65
|
+
/**
|
|
66
|
+
* Props Store 状态类型
|
|
67
|
+
*/
|
|
68
|
+
export interface PropsStoreState<TInputProps = Record<string, any>, TFlowProps = Record<string, any>> {
|
|
69
|
+
/** 原始输入 props(用户传入的) */
|
|
70
|
+
inputProps: TInputProps;
|
|
71
|
+
/** 转换后的 Flow props(传给 Flow 组件的) */
|
|
72
|
+
flowProps: TFlowProps;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 创建扩展包 Props 类型的辅助类型
|
|
76
|
+
* 用于移除基础包中不需要的属性
|
|
77
|
+
*/
|
|
78
|
+
export type OmitBaseProps<T> = Omit<T, 'nodes' | 'edges' | 'defaultNodes' | 'defaultEdges'>;
|
|
79
|
+
/**
|
|
80
|
+
* 创建扩展包 Props 类型
|
|
81
|
+
*/
|
|
82
|
+
export type ExtendFlowProps<TBase, TExtend, TOmit extends keyof TBase = never> = Omit<TBase, TOmit | 'nodes' | 'edges' | 'defaultNodes' | 'defaultEdges'> & TExtend;
|
|
83
|
+
//# sourceMappingURL=props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["props.ts"],"names":[],"mappings":"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"}
|
package/cjs/types.d.ts
CHANGED
|
@@ -168,7 +168,6 @@ export interface IBaseFlowProps<NodeType extends Node = Node, EdgeType extends E
|
|
|
168
168
|
* @description nodes 节点变化/初始化渲染回调
|
|
169
169
|
*/
|
|
170
170
|
onRender?: (nodes: NodeType[], edges: EdgeType[], timing: number) => void;
|
|
171
|
-
omitProps?: string[];
|
|
172
171
|
/**
|
|
173
172
|
* 强制执行 fitView 逻辑,当 nodes 变化时自动触发 forceFitView
|
|
174
173
|
*/
|
|
@@ -209,7 +208,12 @@ export type PopupTriggerEventType = {
|
|
|
209
208
|
};
|
|
210
209
|
export type BaseStateType = {
|
|
211
210
|
id: string;
|
|
211
|
+
/** @deprecated 使用 flowProps 代替 */
|
|
212
212
|
props: Record<string, any>;
|
|
213
|
+
/** 原始输入 props(用户传入的) */
|
|
214
|
+
inputProps: Record<string, any>;
|
|
215
|
+
/** 转换后的 Flow props(传给 Flow 组件的) */
|
|
216
|
+
flowProps: Record<string, any>;
|
|
213
217
|
onEdgesChangeHandlers: OnEdgesChange<any>[];
|
|
214
218
|
isNodeDragging: boolean;
|
|
215
219
|
forceRenderTimes: number;
|
package/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-01-17
|
|
4
|
+
* @desc: NodeTypes 包装工具 - 标准化节点类型包装机制
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
7
|
+
*/
|
|
8
|
+
import { INodeDefinition, NodeTypeComponent } from "../types";
|
|
9
|
+
/**
|
|
10
|
+
* 包装器接口
|
|
11
|
+
*/
|
|
12
|
+
export interface NodeTypeWrapper {
|
|
13
|
+
/** 包装组件 */
|
|
14
|
+
wrap<T extends Record<string, unknown>>(definition: INodeDefinition<T>, WrapperComponent: NodeTypeComponent<T>): INodeDefinition<T>;
|
|
15
|
+
/** 获取原始组件 */
|
|
16
|
+
getOriginal<T extends Record<string, unknown>>(definition: INodeDefinition<T>): NodeTypeComponent<T> | undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 创建节点类型包装器
|
|
20
|
+
*/
|
|
21
|
+
export declare const createNodeTypeWrapper: () => NodeTypeWrapper;
|
|
22
|
+
/**
|
|
23
|
+
* 批量包装节点类型
|
|
24
|
+
*/
|
|
25
|
+
export declare const wrapNodeTypes: <T extends Record<string, unknown> = Record<string, unknown>>(nodeTypes: INodeDefinition<T>[] | undefined, WrapperComponent: NodeTypeComponent<any>, filter?: ((definition: INodeDefinition<T>) => boolean) | undefined) => INodeDefinition<T>[];
|
|
26
|
+
/**
|
|
27
|
+
* 默认的节点类型包装器实例
|
|
28
|
+
*/
|
|
29
|
+
export declare const nodeTypeWrapper: NodeTypeWrapper;
|
|
30
|
+
//# sourceMappingURL=wrapNodeTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapNodeTypes.d.ts","sourceRoot":"","sources":["wrapNodeTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACrC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEtB,aAAa;IACb,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAO,eAiBvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,2EACb,gBAAgB,CAAC,CAAC,EAAE,GAAG,SAAS,oBACzB,kBAAkB,GAAG,CAAC,yBAClB,gBAAgB,CAAC,CAAC,KAAK,OAAO,kBACnD,gBAAgB,CAAC,CAAC,EAYpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,iBAA0B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.wrapNodeTypes = exports.nodeTypeWrapper = exports.createNodeTypeWrapper = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @author: yanxianliang
|
|
9
|
+
* @date: 2025-01-17
|
|
10
|
+
* @desc: NodeTypes 包装工具 - 标准化节点类型包装机制
|
|
11
|
+
*
|
|
12
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 包装器接口
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 创建节点类型包装器
|
|
21
|
+
*/
|
|
22
|
+
const createNodeTypeWrapper = () => ({
|
|
23
|
+
wrap(definition, WrapperComponent) {
|
|
24
|
+
return {
|
|
25
|
+
...definition,
|
|
26
|
+
_component: definition.component,
|
|
27
|
+
// 保存原始组件
|
|
28
|
+
component: WrapperComponent // 使用 wrapper
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
getOriginal(definition) {
|
|
32
|
+
return definition._component;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 批量包装节点类型
|
|
38
|
+
*/
|
|
39
|
+
exports.createNodeTypeWrapper = createNodeTypeWrapper;
|
|
40
|
+
const wrapNodeTypes = (nodeTypes, WrapperComponent, filter) => {
|
|
41
|
+
if (!nodeTypes) return [];
|
|
42
|
+
const wrapper = createNodeTypeWrapper();
|
|
43
|
+
return nodeTypes.map(definition => {
|
|
44
|
+
// 如果提供了过滤器且不通过,则不包装
|
|
45
|
+
if (filter && !filter(definition)) {
|
|
46
|
+
return definition;
|
|
47
|
+
}
|
|
48
|
+
return wrapper.wrap(definition, WrapperComponent);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 默认的节点类型包装器实例
|
|
54
|
+
*/
|
|
55
|
+
exports.wrapNodeTypes = wrapNodeTypes;
|
|
56
|
+
const nodeTypeWrapper = exports.nodeTypeWrapper = createNodeTypeWrapper();
|