@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.
Files changed (131) hide show
  1. package/cjs/Flow.d.ts +1 -1
  2. package/cjs/Flow.d.ts.map +1 -1
  3. package/cjs/Flow.js +28 -10
  4. package/cjs/components/Legend/index.d.ts.map +1 -1
  5. package/cjs/components/Legend/index.js +2 -1
  6. package/cjs/components/Popover/index.d.ts +1 -9
  7. package/cjs/components/Popover/index.d.ts.map +1 -1
  8. package/cjs/components/Popover/index.js +14 -75
  9. package/cjs/components/Tooltip/index.d.ts +1 -10
  10. package/cjs/components/Tooltip/index.d.ts.map +1 -1
  11. package/cjs/components/Tooltip/index.js +11 -83
  12. package/cjs/edges/manhattan.d.ts.map +1 -1
  13. package/cjs/edges/manhattan.js +100 -30
  14. package/cjs/hoc/createFlow.d.ts +30 -4
  15. package/cjs/hoc/createFlow.d.ts.map +1 -1
  16. package/cjs/hoc/createFlow.js +45 -18
  17. package/cjs/hooks/index.d.ts +5 -2
  18. package/cjs/hooks/index.d.ts.map +1 -1
  19. package/cjs/hooks/index.js +44 -22
  20. package/cjs/hooks/props/index.d.ts +12 -0
  21. package/cjs/hooks/props/index.d.ts.map +1 -0
  22. package/cjs/hooks/props/index.js +49 -0
  23. package/cjs/hooks/props/useFlowProps.d.ts +23 -0
  24. package/cjs/hooks/props/useFlowProps.d.ts.map +1 -0
  25. package/cjs/hooks/props/useFlowProps.js +34 -0
  26. package/cjs/hooks/props/useGetFlowProps.d.ts +19 -0
  27. package/cjs/hooks/props/useGetFlowProps.d.ts.map +1 -0
  28. package/cjs/hooks/props/useGetFlowProps.js +38 -0
  29. package/cjs/hooks/props/useGetInputProps.d.ts +18 -0
  30. package/cjs/hooks/props/useGetInputProps.d.ts.map +1 -0
  31. package/cjs/hooks/props/useGetInputProps.js +38 -0
  32. package/cjs/hooks/props/useInputProps.d.ts +14 -0
  33. package/cjs/hooks/props/useInputProps.d.ts.map +1 -0
  34. package/cjs/hooks/props/useInputProps.js +33 -0
  35. package/cjs/hooks/useListenRender.js +4 -4
  36. package/cjs/hooks/useTheme.d.ts.map +1 -1
  37. package/cjs/hooks/useTheme.js +3 -2
  38. package/cjs/index.d.ts +6 -3
  39. package/cjs/index.d.ts.map +1 -1
  40. package/cjs/index.js +46 -14
  41. package/cjs/providers/FlowProvider.d.ts +7 -1
  42. package/cjs/providers/FlowProvider.d.ts.map +1 -1
  43. package/cjs/providers/FlowProvider.js +33 -14
  44. package/cjs/store/PropsStore.d.ts +11 -6
  45. package/cjs/store/PropsStore.d.ts.map +1 -1
  46. package/cjs/store/PropsStore.js +55 -39
  47. package/cjs/types/props.d.ts +83 -0
  48. package/cjs/types/props.d.ts.map +1 -0
  49. package/cjs/types/props.js +5 -0
  50. package/cjs/types.d.ts +5 -1
  51. package/cjs/types.d.ts.map +1 -1
  52. package/cjs/utils/wrapNodeTypes.d.ts +30 -0
  53. package/cjs/utils/wrapNodeTypes.d.ts.map +1 -0
  54. package/cjs/utils/wrapNodeTypes.js +56 -0
  55. package/cjs/workers/manhattan.worker.js +12534 -31
  56. package/cjs/workers/manhattan.worker.js.map +7 -0
  57. package/esm/Flow.d.ts +1 -1
  58. package/esm/Flow.d.ts.map +1 -1
  59. package/esm/Flow.js +30 -16
  60. package/esm/components/Legend/index.d.ts.map +1 -1
  61. package/esm/components/Legend/index.js +3 -2
  62. package/esm/components/Popover/index.d.ts +1 -9
  63. package/esm/components/Popover/index.d.ts.map +1 -1
  64. package/esm/components/Popover/index.js +16 -87
  65. package/esm/components/Tooltip/index.d.ts +1 -10
  66. package/esm/components/Tooltip/index.d.ts.map +1 -1
  67. package/esm/components/Tooltip/index.js +14 -97
  68. package/esm/edges/manhattan.d.ts.map +1 -1
  69. package/esm/edges/manhattan.js +95 -23
  70. package/esm/hoc/createFlow.d.ts +30 -4
  71. package/esm/hoc/createFlow.d.ts.map +1 -1
  72. package/esm/hoc/createFlow.js +48 -20
  73. package/esm/hooks/index.d.ts +5 -2
  74. package/esm/hooks/index.d.ts.map +1 -1
  75. package/esm/hooks/index.js +8 -3
  76. package/esm/hooks/props/index.d.ts +12 -0
  77. package/esm/hooks/props/index.d.ts.map +1 -0
  78. package/esm/hooks/props/index.js +12 -0
  79. package/esm/hooks/props/useFlowProps.d.ts +23 -0
  80. package/esm/hooks/props/useFlowProps.d.ts.map +1 -0
  81. package/esm/hooks/props/useFlowProps.js +29 -0
  82. package/esm/hooks/props/useGetFlowProps.d.ts +19 -0
  83. package/esm/hooks/props/useGetFlowProps.d.ts.map +1 -0
  84. package/esm/hooks/props/useGetFlowProps.js +31 -0
  85. package/esm/hooks/props/useGetInputProps.d.ts +18 -0
  86. package/esm/hooks/props/useGetInputProps.d.ts.map +1 -0
  87. package/esm/hooks/props/useGetInputProps.js +31 -0
  88. package/esm/hooks/props/useInputProps.d.ts +14 -0
  89. package/esm/hooks/props/useInputProps.d.ts.map +1 -0
  90. package/esm/hooks/props/useInputProps.js +27 -0
  91. package/esm/hooks/useListenRender.js +4 -4
  92. package/esm/hooks/useTheme.d.ts.map +1 -1
  93. package/esm/hooks/useTheme.js +3 -2
  94. package/esm/index.d.ts +6 -3
  95. package/esm/index.d.ts.map +1 -1
  96. package/esm/index.js +22 -3
  97. package/esm/providers/FlowProvider.d.ts +7 -1
  98. package/esm/providers/FlowProvider.d.ts.map +1 -1
  99. package/esm/providers/FlowProvider.js +36 -15
  100. package/esm/store/PropsStore.d.ts +11 -6
  101. package/esm/store/PropsStore.d.ts.map +1 -1
  102. package/esm/store/PropsStore.js +75 -34
  103. package/esm/types/props.d.ts +83 -0
  104. package/esm/types/props.d.ts.map +1 -0
  105. package/esm/types/props.js +1 -0
  106. package/esm/types.d.ts +5 -1
  107. package/esm/types.d.ts.map +1 -1
  108. package/esm/utils/wrapNodeTypes.d.ts +30 -0
  109. package/esm/utils/wrapNodeTypes.d.ts.map +1 -0
  110. package/esm/utils/wrapNodeTypes.js +55 -0
  111. package/esm/workers/manhattan.worker.js +1 -1
  112. package/esm/workers/manhattan.worker.js.map +7 -0
  113. package/package.json +5 -3
  114. package/cjs/hooks/props/useGetProps.d.ts +0 -6
  115. package/cjs/hooks/props/useGetProps.d.ts.map +0 -1
  116. package/cjs/hooks/props/useGetProps.js +0 -29
  117. package/cjs/hooks/props/useProps.d.ts +0 -2
  118. package/cjs/hooks/props/useProps.d.ts.map +0 -1
  119. package/cjs/hooks/props/useProps.js +0 -20
  120. package/cjs/hooks/props/usePropsSelector.d.ts +0 -13
  121. package/cjs/hooks/props/usePropsSelector.d.ts.map +0 -1
  122. package/cjs/hooks/props/usePropsSelector.js +0 -37
  123. package/esm/hooks/props/useGetProps.d.ts +0 -6
  124. package/esm/hooks/props/useGetProps.d.ts.map +0 -1
  125. package/esm/hooks/props/useGetProps.js +0 -21
  126. package/esm/hooks/props/useProps.d.ts +0 -2
  127. package/esm/hooks/props/useProps.d.ts.map +0 -1
  128. package/esm/hooks/props/useProps.js +0 -14
  129. package/esm/hooks/props/usePropsSelector.d.ts +0 -13
  130. package/esm/hooks/props/usePropsSelector.d.ts.map +0 -1
  131. 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
- * @desc: 基础Graph 组件
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
- * selector 创建
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,KAAmC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAS,aAAa,EAAC,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,WAAW;;EAET,CAAC;AA8BhB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAAC,CAe1E,CAAA;AAGF;;;GAGG;AACH,eAAO,MAAM,WAAW,wBAA2B,aAAa,SAAS,aAAa,CAAC,CAAC,KAAK,CAAC,MAO7F,CAAA;AAED,eAAO,MAAM,WAAW,qKAOvB,CAAA;AAED,eAAO,MAAM,WAAW,2BAOvB,CAAA"}
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/10/16 17:28 by yanxianliang
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)(set => ({
29
- onEdgesChangeHandlers: [],
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
- * selector 创建
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/10/16 19:35 by yanxianliang
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 declare const PropsStore: <NodeType extends Node = Node, EdgeType extends Edge = Edge>({ props, children }: {
13
- props: IBaseFlowProps<NodeType, EdgeType>;
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
- }) => import("react/jsx-runtime").JSX.Element;
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;;;;;;;GAOG;AACH,OAAO,EAAC,cAAc,EAAkB,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAc,EAAC,SAAS,EAA6B,MAAM,OAAO,CAAC;AAKnE,eAAO,MAAM,UAAU;WAQZ,eAAe,QAAQ,EAAE,QAAQ,CAAC;cAC/B,SAAS;6CAqDtB,CAAA"}
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"}
@@ -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 = _interopRequireWildcard(require("react"));
9
+ var _react = require("react");
10
10
  var _uuid = require("uuid");
11
- var _ = require("./..");
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/10/16 19:35 by yanxianliang
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
- props,
53
+ inputProps,
54
+ flowProps,
26
55
  children
27
56
  }) => {
28
- const setState = (0, _.useSetState)();
29
- const getState = (0, _.useGetState)();
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
- } = props;
62
+ } = flowProps;
36
63
  const styleContentRef = (0, _react.useRef)([]);
37
64
 
38
- // TODO 怎么支持内置的 nodeTypes???
65
+ // 构建 nodeTypeMap
39
66
  const nodeTypeMap = (0, _react.useMemo)(() => {
40
- const map = new Map();
41
- styleContentRef.current = [];
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
- // TODO 更新属性怎么更好的区分
71
+ // 更新状态 - 同时存储 inputProps 和 flowProps
58
72
  (0, _ahooks.useDeepCompareEffect)(() => {
59
73
  setState({
60
- props: props,
61
- id: props.id || defaultId,
74
+ // 分别存储原始和转换后的 props
75
+ inputProps,
76
+ flowProps,
77
+ // 其他状态
78
+ id: flowProps.id || defaultId,
62
79
  nodeTypeMap
63
80
  });
64
- }, [props.edges, props.nodes, props.nodeTypes, props.loading]);
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":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,aAAa,CAC5B,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC5B,QAAQ,SAAS,IAAI,GAAG,IAAI,CAC5B,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClF,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC7B,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC5B,QAAQ,SAAS,IAAI,GAAG,IAAI;IAG5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAGhC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,mBAAmB,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAG7C,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,KAAK,GAAG,sBAAsB,CAAC;KAC3C,CAAC;IACF,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CACvB,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC5B,QAAQ,SAAS,IAAI,GAAG,IAAI,IAC1B,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAEhC,wBAAwB;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;AAE5F;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,KAAK,EACL,OAAO,EACP,KAAK,SAAS,MAAM,KAAK,GAAG,KAAK,IAC/B,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
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;
@@ -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();