@flowgram.ai/free-layout-core 0.2.11 → 0.2.13

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/index.d.mts CHANGED
@@ -182,10 +182,20 @@ declare class WorkflowOperationBaseServiceImpl extends FlowOperationBaseServiceI
182
182
  }
183
183
 
184
184
  interface NodeRenderReturnType {
185
+ id: string;
186
+ type: string | number;
185
187
  /**
186
188
  * 当前节点
187
189
  */
188
190
  node: FlowNodeEntity;
191
+ /**
192
+ * 节点 data 数据
193
+ */
194
+ data: any;
195
+ /**
196
+ * 更新节点 data 数据
197
+ */
198
+ updateData: (newData: any) => void;
189
199
  /**
190
200
  * 节点选中
191
201
  */
package/dist/index.d.ts CHANGED
@@ -182,10 +182,20 @@ declare class WorkflowOperationBaseServiceImpl extends FlowOperationBaseServiceI
182
182
  }
183
183
 
184
184
  interface NodeRenderReturnType {
185
+ id: string;
186
+ type: string | number;
185
187
  /**
186
188
  * 当前节点
187
189
  */
188
190
  node: FlowNodeEntity;
191
+ /**
192
+ * 节点 data 数据
193
+ */
194
+ data: any;
195
+ /**
196
+ * 更新节点 data 数据
197
+ */
198
+ updateData: (newData: any) => void;
189
199
  /**
190
200
  * 节点选中
191
201
  */
package/dist/index.js CHANGED
@@ -3091,6 +3091,9 @@ function useNodeRender(nodeFromProps) {
3091
3091
  const dragService = (0, import_core21.useService)(WorkflowDragService);
3092
3092
  const selectionService = (0, import_core21.useService)(WorkflowSelectService);
3093
3093
  const isDragging = (0, import_react2.useRef)(false);
3094
+ const [formValueVersion, updateFormValueVersion] = (0, import_react2.useState)(0);
3095
+ const formValueDependRef = (0, import_react2.useRef)(false);
3096
+ formValueDependRef.current = false;
3094
3097
  const nodeRef = (0, import_react2.useRef)(null);
3095
3098
  const [linkingNodeId, setLinkingNodeId] = (0, import_react2.useState)("");
3096
3099
  (0, import_react2.useEffect)(() => {
@@ -3166,36 +3169,86 @@ function useNodeRender(nodeFromProps) {
3166
3169
  const toggleExpand = (0, import_react2.useCallback)(() => {
3167
3170
  renderData.toggleExpand();
3168
3171
  }, [renderData]);
3169
- return {
3170
- node,
3171
- selected: selectionService.isSelected(node.id),
3172
- activated: selectionService.isActivated(node.id),
3173
- expanded: renderData.expanded,
3174
- startDrag,
3175
- ports: portsData.allPorts,
3176
- deleteNode,
3177
- selectNode,
3178
- readonly,
3179
- linkingNodeId,
3180
- nodeRef,
3181
- onFocus,
3182
- onBlur,
3183
- getExtInfo,
3184
- updateExtInfo,
3185
- toggleExpand,
3186
- get form() {
3187
- if (!form) return void 0;
3188
- return {
3189
- ...form,
3190
- get values() {
3172
+ const selected = selectionService.isSelected(node.id);
3173
+ const activated = selectionService.isActivated(node.id);
3174
+ const expanded = renderData.expanded;
3175
+ (0, import_react2.useEffect)(() => {
3176
+ const toDispose = form?.onFormValuesChange(() => {
3177
+ if (formValueDependRef.current) {
3178
+ updateFormValueVersion((v) => v + 1);
3179
+ }
3180
+ });
3181
+ return () => toDispose?.dispose();
3182
+ }, [form]);
3183
+ return (0, import_react2.useMemo)(
3184
+ () => ({
3185
+ id: node.id,
3186
+ type: node.flowNodeType,
3187
+ get data() {
3188
+ if (form) {
3189
+ formValueDependRef.current = true;
3191
3190
  return form.values;
3192
- },
3193
- get state() {
3194
- return formState;
3195
3191
  }
3196
- };
3197
- }
3198
- };
3192
+ return getExtInfo();
3193
+ },
3194
+ updateData(values) {
3195
+ if (form) {
3196
+ form.updateFormValues(values);
3197
+ } else {
3198
+ updateExtInfo(values);
3199
+ }
3200
+ },
3201
+ node,
3202
+ selected,
3203
+ activated,
3204
+ expanded,
3205
+ startDrag,
3206
+ get ports() {
3207
+ return portsData.allPorts;
3208
+ },
3209
+ deleteNode,
3210
+ selectNode,
3211
+ readonly,
3212
+ linkingNodeId,
3213
+ nodeRef,
3214
+ onFocus,
3215
+ onBlur,
3216
+ getExtInfo,
3217
+ updateExtInfo,
3218
+ toggleExpand,
3219
+ get form() {
3220
+ if (!form) return void 0;
3221
+ return {
3222
+ ...form,
3223
+ get values() {
3224
+ formValueDependRef.current = true;
3225
+ return form.values;
3226
+ },
3227
+ get state() {
3228
+ return formState;
3229
+ }
3230
+ };
3231
+ }
3232
+ }),
3233
+ [
3234
+ node,
3235
+ selected,
3236
+ activated,
3237
+ expanded,
3238
+ startDrag,
3239
+ deleteNode,
3240
+ selectNode,
3241
+ readonly,
3242
+ linkingNodeId,
3243
+ nodeRef,
3244
+ onFocus,
3245
+ onBlur,
3246
+ getExtInfo,
3247
+ updateExtInfo,
3248
+ toggleExpand,
3249
+ formValueVersion
3250
+ ]
3251
+ );
3199
3252
  }
3200
3253
 
3201
3254
  // src/hooks/use-current-dom-node.ts