GroupNode.d.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { h } from '@logicflow/core';
  2. import { RectResize } from '../../NodeResize';
  3. declare class GroupNodeModel extends RectResize.model {
  4. readonly isGroup = true;
  5. /**
  6. * 此分组的子节点Id
  7. */
  8. children: Set<string>;
  9. /**
  10. * 其子节点是否被禁止通过拖拽移出分组。 默认false,允许拖拽移除分组。
  11. */
  12. isRestrict: boolean;
  13. /**
  14. * 分组节点是否允许调整大小。
  15. */
  16. resizable: boolean;
  17. /**
  18. * 分组节点是否允许折叠
  19. */
  20. foldable: boolean;
  21. /**
  22. * 折叠后的宽度
  23. */
  24. foldedWidth: number;
  25. /**
  26. * 折叠后的高度
  27. */
  28. foldedHeight: number;
  29. /**
  30. * 分组折叠状态
  31. */
  32. isFolded: boolean;
  33. unfoldedWidth: number;
  34. unfoldedHight: number;
  35. initNodeData(data: any): void;
  36. getResizeOutlineStyle(): {
  37. fill: string;
  38. stroke: string;
  39. strokeWidth: number;
  40. strokeDasharray: string;
  41. };
  42. /**
  43. * 折叠分组
  44. * 1. 折叠分组的宽高
  45. * 2. 处理分组子节点
  46. * 3. 处理连线
  47. */
  48. foldGroup(isFolded: any): void;
  49. getAnchorStyle(anchorInfo: any): Record<string, any>;
  50. /**
  51. * 折叠分组的时候,处理分组自身的连线和分组内部子节点上的连线
  52. * 边的分类:
  53. * - 虚拟边:分组被收起时,表示分组本身与外部节点关系的边。
  54. * - 真实边:分组本身或者分组内部节点与外部节点节点(非收起分组)关系的边。
  55. * 如果一个分组,本身与外部节点有M条连线,且内部N个子节点与外部节点有连线,那么这个分组收起时会生成M+N条连线。
  56. * 折叠分组时:
  57. * - 原有的虚拟边删除;
  58. * - 创建一个虚拟边;
  59. * - 真实边则隐藏;
  60. * 展开分组是:
  61. * - 原有的虚拟边删除;
  62. * - 如果目外部点是收起的分组,则创建虚拟边;
  63. * - 如果外部节点是普通节点,则显示真实边;
  64. */
  65. private foldEdge;
  66. createVirtualEdge(edgeData: any): void;
  67. isInRange({ x1, y1, x2, y2 }: {
  68. x1: any;
  69. y1: any;
  70. x2: any;
  71. y2: any;
  72. }): boolean;
  73. isAllowMoveTo({ x1, y1, x2, y2 }: {
  74. x1: any;
  75. y1: any;
  76. x2: any;
  77. y2: any;
  78. }): {
  79. x: boolean;
  80. y: boolean;
  81. };
  82. setAllowAppendChild(isAllow: any): void;
  83. /**
  84. * 添加分组子节点
  85. * @param id 节点id
  86. */
  87. addChild(id: any): void;
  88. /**
  89. * 删除分组子节点
  90. * @param id 节点id
  91. */
  92. removeChild(id: any): void;
  93. getAddableOutlineStyle(): {
  94. stroke: string;
  95. strokeWidth: number;
  96. strokeDasharray: string;
  97. fill: string;
  98. };
  99. getData(): import("@logicflow/core").NodeData;
  100. getHistoryData(): import("@logicflow/core").NodeData;
  101. /**
  102. * 是否允许此节点添加到此分组中
  103. */
  104. isAllowAppendIn(nodeData: any): boolean;
  105. /**
  106. * 当groupA被添加到groupB中时,将groupB及groupB所属的group的zIndex减1
  107. */
  108. toBack(): void;
  109. }
  110. declare class GroupNode extends RectResize.view {
  111. getControlGroup(): h.JSX.Element;
  112. getAddableShape(): import("preact").VNode<any>;
  113. getFoldIcon(): import("preact").VNode<any>;
  114. getResizeShape(): import("preact").VNode<any>;
  115. }
  116. declare const _default: {
  117. type: string;
  118. view: typeof GroupNode;
  119. model: typeof GroupNodeModel;
  120. };
  121. export default _default;