@flowgram-vue/document 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +22 -0
  2. package/dist/index.cjs +3233 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.ts +1728 -0
  5. package/dist/index.js +3199 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +61 -0
  8. package/src/datas/flow-node-render-data.ts +227 -0
  9. package/src/datas/flow-node-transform-data.ts +337 -0
  10. package/src/datas/flow-node-transition-data.ts +182 -0
  11. package/src/datas/index.ts +8 -0
  12. package/src/entities/flow-document-transformer-entity.ts +125 -0
  13. package/src/entities/flow-node-entity.ts +415 -0
  14. package/src/entities/flow-renderer-state-entity.ts +127 -0
  15. package/src/entities/index.ts +8 -0
  16. package/src/flow-document-config.ts +42 -0
  17. package/src/flow-document-container-module.ts +33 -0
  18. package/src/flow-document-contribution.ts +22 -0
  19. package/src/flow-document-options.ts +79 -0
  20. package/src/flow-document.ts +766 -0
  21. package/src/flow-render-tree.ts +236 -0
  22. package/src/flow-virtual-tree.ts +244 -0
  23. package/src/index.ts +16 -0
  24. package/src/layout/horizontal-fixed-layout.ts +198 -0
  25. package/src/layout/index.ts +7 -0
  26. package/src/layout/vertical-fixed-layout.ts +198 -0
  27. package/src/services/flow-drag-service.ts +211 -0
  28. package/src/services/flow-group-service/flow-group-controller.ts +120 -0
  29. package/src/services/flow-group-service/flow-group-service.ts +107 -0
  30. package/src/services/flow-group-service/flow-group-utils.ts +104 -0
  31. package/src/services/flow-group-service/index.ts +7 -0
  32. package/src/services/flow-operation-base-service.ts +333 -0
  33. package/src/services/index.ts +8 -0
  34. package/src/typings/flow-group.ts +8 -0
  35. package/src/typings/flow-layout.ts +72 -0
  36. package/src/typings/flow-node-register.ts +356 -0
  37. package/src/typings/flow-operation.ts +312 -0
  38. package/src/typings/flow-transition.ts +104 -0
  39. package/src/typings/flow.ts +70 -0
  40. package/src/typings/index.ts +11 -0
  41. package/src/utils/get-default-spacing.ts +21 -0
  42. package/src/utils/index.ts +6 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ import {
7
+ type FlowNodeJSON,
8
+ DefaultSpacingKey,
9
+ FlowTransitionLine,
10
+ FlowTransitionLabel,
11
+ FlowNodeRegistry,
12
+ FlowNodeType,
13
+ } from './typings';
14
+ import { FlowNodeEntity } from './entities';
15
+
16
+ export const FlowDocumentOptions = Symbol('FlowDocumentOptions');
17
+
18
+ /**
19
+ * 流程画布配置
20
+ */
21
+ export interface FlowDocumentOptions {
22
+ /**
23
+ * 布局,默认 垂直布局
24
+ */
25
+ defaultLayout?: string;
26
+ /**
27
+ * 所有节点的默认展开状态
28
+ */
29
+ allNodesDefaultExpanded?: boolean;
30
+ toNodeJSON?(node: FlowNodeEntity): FlowNodeJSON;
31
+ fromNodeJSON?(node: FlowNodeEntity, json: FlowNodeJSON, isFirstCreate: boolean): void;
32
+ constants?: Record<string, any>;
33
+ formatNodeLines?: (node: FlowNodeEntity, lines: FlowTransitionLine[]) => FlowTransitionLine[];
34
+ formatNodeLabels?: (node: FlowNodeEntity, lines: FlowTransitionLabel[]) => FlowTransitionLabel[];
35
+ preNodeCreate?: (node: FlowNodeEntity) => void;
36
+ /**
37
+ * 获取默认的节点配置
38
+ */
39
+ getNodeDefaultRegistry?: (type: FlowNodeType) => FlowNodeRegistry;
40
+ }
41
+
42
+ export const FlowDocumentOptionsDefault: FlowDocumentOptions = {
43
+ allNodesDefaultExpanded: false,
44
+ };
45
+
46
+ /**
47
+ * 支持外部 constants 自定义的 key 枚举
48
+ */
49
+ export const ConstantKeys = {
50
+ ...DefaultSpacingKey,
51
+ /**
52
+ * loop 底部留白
53
+ */
54
+ INLINE_SPACING_BOTTOM: 'INLINE_SPACING_BOTTOM',
55
+ /**
56
+ * inlineBlocks 的 inlineTop
57
+ * loop 循环线条上边距
58
+ */
59
+ INLINE_BLOCKS_INLINE_SPACING_TOP: 'INLINE_BLOCKS_INLINE_SPACING_TOP',
60
+ /**
61
+ * inlineBlocks 的 inlineBottom
62
+ * loop 循环线条的下边距
63
+ *
64
+ */
65
+ INLINE_BLOCKS_INLINE_SPACING_BOTTOM: 'INLINE_BLOCKS_INLINE_SPACING_BOTTOM',
66
+ /***
67
+ * 线条、label 默认颜色
68
+ */
69
+ BASE_COLOR: 'BASE_COLOR',
70
+ /***
71
+ * 线条、label 激活后的颜色
72
+ */
73
+ BASE_ACTIVATED_COLOR: 'BASE_ACTIVATED_COLOR',
74
+ /**
75
+ * Branch bottom margin
76
+ * 分支下边距
77
+ */
78
+ INLINE_BLOCKS_PADDING_TOP: 'INLINE_BLOCKS_PADDING_TOP',
79
+ };