@dineug/erd-editor 3.3.1 → 3.5.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 (212) hide show
  1. package/README.md +197 -17
  2. package/dist/components/appContext.d.ts +8 -1
  3. package/dist/components/erd/automatic-table-placement/createAutomaticTablePlacement.d.ts +17 -1
  4. package/dist/components/erd/canvas/Canvas.d.ts +5 -0
  5. package/dist/components/erd/canvas/Canvas.styles.d.ts +11 -0
  6. package/dist/components/erd/canvas/CanvasScene.d.ts +18 -0
  7. package/dist/components/erd/canvas/EditOverlay.d.ts +8 -0
  8. package/dist/components/erd/canvas/EditOverlay.styles.d.ts +6 -0
  9. package/dist/components/erd/canvas/SceneIcon.template.d.ts +21 -0
  10. package/dist/components/erd/canvas/altDragDuplicate.d.ts +3 -0
  11. package/dist/components/erd/canvas/drag-select/DragSelect.d.ts +11 -0
  12. package/dist/components/erd/canvas/duplicate-ghost/DuplicateGhost.d.ts +9 -0
  13. package/dist/components/erd/canvas/entityDrag.d.ts +4 -0
  14. package/dist/components/erd/canvas/high-level-table/HighLevelTable.d.ts +4 -0
  15. package/dist/components/erd/canvas/memo/Memo.d.ts +2 -0
  16. package/dist/components/erd/canvas/memo/memo-sash/MemoSash.d.ts +11 -1
  17. package/dist/components/erd/canvas/memo/memoCaret.d.ts +26 -0
  18. package/dist/components/erd/canvas/memo/memoScroll.d.ts +28 -0
  19. package/dist/components/erd/canvas/memo/memoText.d.ts +33 -0
  20. package/dist/components/erd/canvas/memo/useMoveMemo.d.ts +6 -0
  21. package/dist/components/erd/canvas/relationship-group/RelationshipGroup.d.ts +15 -0
  22. package/dist/components/erd/canvas/relationship-group/relationship/Relationship.template.d.ts +17 -0
  23. package/dist/components/erd/canvas/sceneHit.d.ts +18 -0
  24. package/dist/components/erd/canvas/sceneKind.d.ts +11 -0
  25. package/dist/components/erd/canvas/sceneRetention.d.ts +31 -0
  26. package/dist/components/erd/canvas/sceneTokens.d.ts +67 -0
  27. package/dist/components/erd/canvas/shared-drag-select/SharedDragSelect.d.ts +8 -0
  28. package/dist/components/erd/canvas/shared-mouse-tracker/SharedMouseTracker.d.ts +1 -0
  29. package/dist/components/erd/canvas/shared-mouse-tracker/shared-mouse-cursor/SharedMouseCursor.d.ts +5 -0
  30. package/dist/components/erd/canvas/table/Table.d.ts +8 -0
  31. package/dist/components/erd/canvas/table/cellLayout.d.ts +63 -0
  32. package/dist/components/erd/canvas/table/column/Column.d.ts +23 -6
  33. package/dist/components/erd/canvas/table/doubleClick.d.ts +14 -0
  34. package/dist/components/erd/canvas/table/useMoveTable.d.ts +1 -1
  35. package/dist/components/erd/canvas/table/useSharedFocusTable.d.ts +6 -0
  36. package/dist/components/erd/canvas/useMoveEntity.d.ts +18 -0
  37. package/dist/components/erd/canvas/useSharedSelectEntity.d.ts +4 -0
  38. package/dist/components/erd/erd-context-menu/ErdContextMenu.d.ts +1 -2
  39. package/dist/components/erd/erd-context-menu/menus/drawRelationshipMenus.d.ts +3 -2
  40. package/dist/components/erd/erd-context-menu/menus/exportMenus.d.ts +7 -6
  41. package/dist/components/erd/erd-context-menu/menus/importMenus.d.ts +6 -6
  42. package/dist/components/erd/erd-context-menu/menus/relationshipMenus.d.ts +1 -1
  43. package/dist/components/erd/hide-sign/hideSignBounds.d.ts +9 -0
  44. package/dist/components/erd/hitTest.d.ts +22 -0
  45. package/dist/components/erd/minimap/Minimap.styles.d.ts +0 -1
  46. package/dist/components/erd/minimap/MinimapScene.d.ts +16 -0
  47. package/dist/components/erd/minimap/memo/Memo.d.ts +5 -0
  48. package/dist/components/erd/minimap/minimapGeometry.d.ts +52 -0
  49. package/dist/components/erd/minimap/table/Table.d.ts +5 -0
  50. package/dist/components/erd/table-properties/table-properties-indexes/indexes-checkbox-column/IndexesCheckboxColumn.d.ts +1 -1
  51. package/dist/components/erd/virtual-scroll/useVirtualScroll.d.ts +19 -0
  52. package/dist/components/erd-editor/ErdEditor.d.ts +4 -0
  53. package/dist/components/erd-editor/ErdEditor.stories.d.ts +1 -1
  54. package/dist/components/global-styles/GlobalStyles.d.ts +5 -0
  55. package/dist/components/primitives/button/Button.stories.d.ts +4 -4
  56. package/dist/components/primitives/code-block/CodeBlock.stories.d.ts +4 -4
  57. package/dist/components/primitives/code-block/CodeBlock.styles.d.ts +6 -1
  58. package/dist/components/primitives/color-picker/ColorPicker.d.ts +1 -1
  59. package/dist/components/primitives/color-picker/ColorPicker.stories.d.ts +1 -1
  60. package/dist/components/primitives/context-menu/ContextMenu.stories.d.ts +1 -1
  61. package/dist/components/primitives/context-menu/context-menu-item/ContextMenuItem.d.ts +1 -1
  62. package/dist/components/primitives/context-menu/menu/Menu.d.ts +2 -2
  63. package/dist/components/primitives/edit-input/EditInput.d.ts +2 -2
  64. package/dist/components/primitives/edit-input/EditInput.stories.d.ts +6 -6
  65. package/dist/components/primitives/highlighted-text/HighlightedText.stories.d.ts +1 -1
  66. package/dist/components/primitives/icon/Icon.d.ts +2 -3
  67. package/dist/components/primitives/icon/Icon.stories.d.ts +3 -1
  68. package/dist/components/primitives/icon/icons.d.ts +95 -26
  69. package/dist/components/primitives/kbd/Kbd.stories.d.ts +3 -3
  70. package/dist/components/primitives/sash/Sash.stories.d.ts +6 -6
  71. package/dist/components/primitives/separator/Separator.stories.d.ts +3 -3
  72. package/dist/components/primitives/slider/Slider.stories.d.ts +4 -4
  73. package/dist/components/primitives/switch/Switch.stories.d.ts +3 -3
  74. package/dist/components/primitives/text-input/TextInput.d.ts +1 -1
  75. package/dist/components/primitives/text-input/TextInput.stories.d.ts +7 -7
  76. package/dist/components/primitives/toast/Toast.d.ts +4 -0
  77. package/dist/components/primitives/toast/Toast.stories.d.ts +17 -4
  78. package/dist/components/primitives/toast/Toast.styles.d.ts +5 -0
  79. package/dist/components/{erd/canvas/table → table-view}/column/column-data-type/ColumnDataType.d.ts +4 -4
  80. package/dist/components/{erd/canvas/table → table-view}/column/column-not-null/ColumnNotNull.d.ts +1 -1
  81. package/dist/components/{erd/canvas/table → table-view}/column/column-option/ColumnOption.d.ts +1 -1
  82. package/dist/components/table-view/column/useColumnCell.d.ts +23 -0
  83. package/dist/components/themeContext.d.ts +9 -0
  84. package/dist/components/toast-container/openToastWhileRunning.d.ts +11 -0
  85. package/dist/components/visualization/Visualization.d.ts +6 -0
  86. package/dist/components/visualization/Visualization.styles.d.ts +6 -0
  87. package/dist/components/visualization/VisualizationScene.d.ts +21 -0
  88. package/dist/components/visualization/createVisualization.d.ts +67 -8
  89. package/dist/components/visualization/graph-node/GraphNode.d.ts +23 -0
  90. package/dist/components/visualization/table/Table.d.ts +0 -1
  91. package/dist/components/visualization/table/column/Column.d.ts +0 -1
  92. package/dist/components/visualization/visualizationView.d.ts +90 -0
  93. package/dist/constants/language.d.ts +7 -1
  94. package/dist/constants/layout.d.ts +13 -0
  95. package/dist/constants/schema.d.ts +12 -3
  96. package/dist/constants/sql/dataType/Databricks.d.ts +5 -0
  97. package/dist/constants/sql/dataType/MSSQL.d.ts +1 -1
  98. package/dist/constants/sql/dataType/MySQL.d.ts +1 -1
  99. package/dist/constants/sql/dataType/Oracle.d.ts +1 -1
  100. package/dist/constants/sql/dataType/Snowflake.d.ts +5 -0
  101. package/dist/constants/sql/database.d.ts +2 -0
  102. package/dist/engine/history.d.ts +5 -3
  103. package/dist/engine/hooks.d.ts +3 -3
  104. package/dist/engine/modules/editor/actions.d.ts +30 -1
  105. package/dist/engine/modules/editor/atom.actions.d.ts +131 -0
  106. package/dist/engine/modules/editor/generator.actions.d.ts +18 -0
  107. package/dist/engine/modules/editor/state.d.ts +43 -0
  108. package/dist/engine/modules/editor/utils/duplicate.d.ts +13 -0
  109. package/dist/engine/modules/memo/actions.d.ts +3 -0
  110. package/dist/engine/modules/memo/atom.actions.d.ts +12 -0
  111. package/dist/engine/modules/settings/atom.actions.d.ts +24 -0
  112. package/dist/engine/modules/table/actions.d.ts +1 -0
  113. package/dist/engine/modules/table/atom.actions.d.ts +4 -0
  114. package/dist/engine.js +40 -51
  115. package/dist/erd-editor.js +40775 -26895
  116. package/dist/konva/batchDraw.d.ts +41 -0
  117. package/dist/konva/host.d.ts +29 -0
  118. package/dist/konva/scene/columnDropTarget.d.ts +13 -0
  119. package/dist/konva/scene/konvaFlip.d.ts +18 -0
  120. package/dist/konva/scene/metrics.d.ts +29 -0
  121. package/dist/konva/scene/renderScene.d.ts +34 -0
  122. package/dist/konva/scene/viewport.d.ts +38 -0
  123. package/dist/konva/testHandle.d.ts +22 -0
  124. package/dist/konva/theme.d.ts +31 -0
  125. package/dist/konva/workerDomStubs.d.ts +1 -0
  126. package/dist/schemaGCService-DrlqIen8.js +17549 -0
  127. package/dist/services/export-png/ExportScene.d.ts +9 -0
  128. package/dist/services/export-png/documentScene.d.ts +20 -0
  129. package/dist/services/export-png/exportPng.shared-worker.d.ts +0 -0
  130. package/dist/services/export-png/exportPngService.d.ts +24 -0
  131. package/dist/services/export-png/index.d.ts +48 -0
  132. package/dist/services/export-png/pixelRatio.d.ts +21 -0
  133. package/dist/services/export-png/renderPng.d.ts +37 -0
  134. package/dist/services/export-png/textWidth.d.ts +27 -0
  135. package/dist/services/schema-gc/index.d.ts +5 -0
  136. package/dist/services/shikiService.d.ts +1 -1
  137. package/dist/styles/colorPicker.style.d.ts +6 -1
  138. package/dist/styles/fonts.styles.d.ts +2 -1
  139. package/dist/styles/reset.styles.d.ts +5 -1
  140. package/dist/styles/scrollbar.styles.d.ts +6 -1
  141. package/dist/styles/typography.styles.d.ts +2 -1
  142. package/dist/themes/radix-ui-theme.d.ts +1 -1
  143. package/dist/themes/tokens.d.ts +6 -2
  144. package/dist/utils/calcTable.d.ts +7 -0
  145. package/dist/utils/draw-relationship/chamfer.d.ts +2 -0
  146. package/dist/utils/draw-relationship/incremental.d.ts +70 -0
  147. package/dist/utils/draw-relationship/index.d.ts +78 -14
  148. package/dist/utils/draw-relationship/nudge.d.ts +4 -0
  149. package/dist/utils/draw-relationship/pathFinding.d.ts +7 -1
  150. package/dist/utils/draw-relationship/route.d.ts +27 -0
  151. package/dist/utils/draw-relationship/stub.d.ts +36 -0
  152. package/dist/utils/emitter.d.ts +32 -0
  153. package/dist/utils/file/exportFile.d.ts +10 -1
  154. package/dist/utils/file/importFile.d.ts +4 -1
  155. package/dist/utils/focus.d.ts +5 -3
  156. package/dist/utils/generator-code/aml.d.ts +4 -0
  157. package/dist/utils/generator-code/dbml.d.ts +4 -0
  158. package/dist/utils/generator-code/drizzle.d.ts +4 -0
  159. package/dist/utils/generator-code/go.d.ts +4 -0
  160. package/dist/utils/generator-code/sequelize.d.ts +4 -0
  161. package/dist/utils/generator-code/sqlalchemy.d.ts +4 -0
  162. package/dist/utils/generator-code/typeorm.d.ts +4 -0
  163. package/dist/utils/globalEventObservable.d.ts +13 -12
  164. package/dist/utils/icon.d.ts +9 -1
  165. package/dist/utils/keyboard-shortcut/index.d.ts +7 -1
  166. package/dist/utils/promise.d.ts +1 -0
  167. package/dist/utils/schema-aml-parser/convert.d.ts +4 -0
  168. package/dist/utils/schema-aml-parser/dataType.d.ts +12 -0
  169. package/dist/utils/schema-aml-parser/index.d.ts +3 -0
  170. package/dist/utils/schema-aml-parser/parser.d.ts +2 -0
  171. package/dist/utils/schema-aml-parser/tokenizer.d.ts +23 -0
  172. package/dist/utils/schema-aml-parser/types.d.ts +78 -0
  173. package/dist/utils/schema-dbml-parser/convert.d.ts +4 -0
  174. package/dist/utils/schema-dbml-parser/dataType.d.ts +7 -0
  175. package/dist/utils/schema-dbml-parser/index.d.ts +3 -0
  176. package/dist/utils/schema-dbml-parser/parser.d.ts +2 -0
  177. package/dist/utils/schema-dbml-parser/tokenizer.d.ts +16 -0
  178. package/dist/utils/schema-dbml-parser/types.d.ts +62 -0
  179. package/dist/utils/schema-graphql-parser/convert.d.ts +4 -0
  180. package/dist/utils/schema-graphql-parser/dataType.d.ts +7 -0
  181. package/dist/utils/schema-graphql-parser/index.d.ts +3 -0
  182. package/dist/utils/schema-graphql-parser/parser.d.ts +2 -0
  183. package/dist/utils/schema-graphql-parser/types.d.ts +58 -0
  184. package/dist/utils/schema-sql/Databricks.d.ts +5 -0
  185. package/dist/utils/schema-sql/Snowflake.d.ts +5 -0
  186. package/dist/utils/sharedColor.d.ts +2 -0
  187. package/dist/utils/table-clipboard/copy.d.ts +7 -0
  188. package/dist/utils/table-clipboard/index.d.ts +2 -0
  189. package/dist/utils/table-clipboard/paste.d.ts +3 -0
  190. package/dist/utils/table-clipboard/payload.d.ts +83 -0
  191. package/dist/utils/table-clipboard/placement.d.ts +30 -0
  192. package/dist/utils/validation.d.ts +1 -0
  193. package/package.json +34 -29
  194. package/dist/components/erd/canvas/canvas-svg/CanvasSvg.d.ts +0 -7
  195. package/dist/components/erd/canvas/canvas-svg/relationship/Relationship.template.d.ts +0 -3
  196. package/dist/components/erd/canvas/draw-relationship/DrawRelationship.styles.d.ts +0 -1
  197. package/dist/components/erd/canvas/high-level-table/HighLevelTable.styles.d.ts +0 -1
  198. package/dist/components/erd/canvas/memo/Memo.styles.d.ts +0 -6
  199. package/dist/components/erd/canvas/shared-mouse-tracker/shared-mouse-cursor/SharedMouseCursor.styles.d.ts +0 -1
  200. package/dist/components/erd/canvas/table/column/Column.styles.d.ts +0 -2
  201. package/dist/components/erd/drag-select/DragSelect.d.ts +0 -9
  202. package/dist/components/erd/drag-select/DragSelect.styles.d.ts +0 -1
  203. package/dist/schemaGCService-Br6jn6B2.js +0 -15866
  204. /package/dist/components/erd/canvas/{canvas-svg → relationship-group}/relationship/Relationship.d.ts +0 -0
  205. /package/dist/components/{erd/canvas/table → table-view}/Table.styles.d.ts +0 -0
  206. /package/dist/components/{erd/canvas/canvas-svg/CanvasSvg.styles.d.ts → table-view/column/Column.styles.d.ts} +0 -0
  207. /package/dist/components/{erd/canvas/table → table-view}/column/column-data-type/ColumnDataType.styles.d.ts +0 -0
  208. /package/dist/components/{erd/canvas/table → table-view}/column/column-key/ColumnKey.d.ts +0 -0
  209. /package/dist/components/{erd/canvas/table → table-view}/column/column-key/ColumnKey.styles.d.ts +0 -0
  210. /package/dist/components/{erd/canvas/table → table-view}/column/column-not-null/ColumnNotNull.styles.d.ts +0 -0
  211. /package/dist/components/{erd/canvas/table → table-view}/column/column-option/ColumnOption.styles.d.ts +0 -0
  212. /package/dist/{services/schema-gc/schemaGC.worker.d.ts → konva/jsx-types.test-d.d.ts} +0 -0
@@ -1,9 +1,68 @@
1
+ import { Simulation } from 'd3-force';
1
2
  import { RootState } from '../../engine/state';
2
- type Props = {
3
- onDragStart: () => void;
4
- onDragEnd: () => void;
5
- onStartPreview: (event: MouseEvent, tableId: string | null, columnId: string | null) => void;
6
- onEndPreview: () => void;
7
- };
8
- export declare function createVisualization(state: RootState, props: Props): import('d3-selection').Selection<SVGSVGElement, undefined, null, undefined>;
9
- export {};
3
+ import { ValuesType } from '../../internal-types';
4
+ export declare const Group: {
5
+ readonly table: "table";
6
+ readonly column: "column";
7
+ };
8
+ export type Group = ValuesType<typeof Group>;
9
+ /**
10
+ * One dot of the graph. d3 owns the position fields from the first step on,
11
+ * and a pinned node is one whose fixed pair is set, which is how a drag holds
12
+ * it against the forces the way the svg drag did.
13
+ */
14
+ export type VisualizationNode = {
15
+ id: string;
16
+ group: Group;
17
+ name: string;
18
+ /** The table a column hangs off; a table node has none. */
19
+ tableId: string | null;
20
+ x: number;
21
+ y: number;
22
+ fx: number | null;
23
+ fy: number | null;
24
+ };
25
+ export declare const LinkKind: {
26
+ readonly column: "column";
27
+ readonly relationship: "relationship";
28
+ };
29
+ export type LinkKind = ValuesType<typeof LinkKind>;
30
+ /**
31
+ * One line of the graph. Each end is an id when the link is built and the node
32
+ * it named once the link force has resolved it, which createVisualization does
33
+ * before it returns; linkEnds is the read that takes that for granted.
34
+ */
35
+ export type VisualizationLink = {
36
+ id: string;
37
+ kind: LinkKind;
38
+ source: VisualizationNode | string;
39
+ target: VisualizationNode | string;
40
+ };
41
+ export type VisualizationGraph = {
42
+ nodes: VisualizationNode[];
43
+ links: VisualizationLink[];
44
+ };
45
+ export type Visualization = VisualizationGraph & {
46
+ simulation: Simulation<VisualizationNode, VisualizationLink>;
47
+ };
48
+ /**
49
+ * The document as a graph: a node per table and per column, a link from each
50
+ * column to its table and one per pair of tables a relationship joins. The
51
+ * pair is ordered, so the same two tables joined both ways draw two lines.
52
+ */
53
+ export declare function convertVisualization({ doc: { tableIds, relationshipIds }, collections, }: RootState): VisualizationGraph;
54
+ /**
55
+ * Both ends of a link as nodes. The link force rewrote each id to its node when
56
+ * createVisualization installed it, and no link reaches a scene before that.
57
+ */
58
+ export declare function linkEnds(link: VisualizationLink): [VisualizationNode, VisualizationNode];
59
+ /**
60
+ * The graph with the force layout running over it. The forces are the ones the
61
+ * svg graph ran, links holding their length, nodes repelling and both axes
62
+ * pulling toward the origin, which the view puts at the middle of the stage.
63
+ *
64
+ * @example
65
+ * const { nodes, links, simulation } = createVisualization(store.state);
66
+ * simulation.on('tick', redraw);
67
+ */
68
+ export declare function createVisualization(state: RootState): Visualization;
@@ -0,0 +1,23 @@
1
+ import { FC } from '@dineug/r-html';
2
+ import { Visualization, VisualizationNode } from '../createVisualization';
3
+ import { VisualizationState } from '../visualizationView';
4
+ export type GraphNodeProps = {
5
+ node: VisualizationNode;
6
+ /**
7
+ * The node's place, handed down rather than read off the node, so a step of
8
+ * the simulation the scene saw reaches this dot as a changed prop.
9
+ */
10
+ x: number;
11
+ y: number;
12
+ /** Outside the neighbourhood of the hovered table, which the scene decides. */
13
+ dimmed: boolean;
14
+ graph: Visualization;
15
+ state: VisualizationState;
16
+ };
17
+ /**
18
+ * One dot, owning its own hover and drag. A hovered table opens its preview
19
+ * and lights its neighbourhood, a hovered column only wears a ring, and a
20
+ * press pins the node under the pointer and reheats the layout around it.
21
+ */
22
+ declare const GraphNode: FC<GraphNodeProps>;
23
+ export default GraphNode;
@@ -2,7 +2,6 @@ import { FC } from '@dineug/r-html';
2
2
  import { Table } from '../../../internal-types';
3
3
  export type TableProps = {
4
4
  table: Table;
5
- columnId: string | null;
6
5
  x: number;
7
6
  y: number;
8
7
  };
@@ -2,7 +2,6 @@ import { FC } from '@dineug/r-html';
2
2
  import { Column } from '../../../../internal-types';
3
3
  export type ColumnProps = {
4
4
  column: Column;
5
- selected: boolean;
6
5
  widthName: number;
7
6
  widthDataType: number;
8
7
  widthDefault: number;
@@ -0,0 +1,90 @@
1
+ import { Point } from '../../internal-types';
2
+ import { Group, VisualizationLink, VisualizationNode } from './createVisualization';
3
+ /** The most of a table name a label shows before it is cut. */
4
+ export declare const NAME_MAX_LENGTH = 15;
5
+ /**
6
+ * A name as its label shows it. The cut counts code points rather than UTF-16
7
+ * units, so a name ending in an emoji or a CJK glyph is never split inside one.
8
+ *
9
+ * @example
10
+ * truncateName('a_very_long_table_name'); // 'a_very_long_tab…'
11
+ */
12
+ export declare function truncateName(name: string): string;
13
+ /** The text a table's label draws: its name cut to length, or a placeholder. */
14
+ export declare function labelOf(node: Pick<VisualizationNode, 'name'>): string;
15
+ /** Whether a table has a name of its own, which is what its label is painted by. */
16
+ export declare const hasName: (node: Pick<VisualizationNode, "name">) => boolean;
17
+ export declare const TABLE_RADIUS = 8;
18
+ export declare const COLUMN_RADIUS = 4;
19
+ /** A table draws larger than the columns that hang off it. */
20
+ export declare const nodeRadius: (group: Group) => number;
21
+ /**
22
+ * What a dot, a line or a name fades to while it sits outside the lit
23
+ * neighbourhood of a hovered table, so that neighbourhood reads on its own.
24
+ */
25
+ export declare const DIM_OPACITY = 0.2;
26
+ /** The ids a hovered table lights up: nodes on one side, links on the other. */
27
+ export type Highlight = {
28
+ nodeIds: Set<string>;
29
+ linkIds: Set<string>;
30
+ };
31
+ /**
32
+ * What a hovered table lights: itself, every link at it and whatever sits at
33
+ * the other end of each, which is its own columns and the tables its
34
+ * relationships join either way round. The rest is what the scene fades.
35
+ *
36
+ * @example
37
+ * const { nodeIds, linkIds } = highlightOf(graph.links, 't1');
38
+ */
39
+ export declare function highlightOf(links: VisualizationLink[], tableId: string): Highlight;
40
+ /**
41
+ * The scale a table name is fully gone below and the one it is whole from,
42
+ * fading between the two: the graph reads as shapes from afar and as names at
43
+ * rest, as Obsidian's graph does. A column carries no name at any scale.
44
+ */
45
+ export declare const LABEL_FADE_START = 0.5;
46
+ export declare const LABEL_FADE_END = 1;
47
+ export declare function labelOpacity(scale: number): number;
48
+ export declare const ZOOM_MIN = 0.1;
49
+ export declare const ZOOM_MAX = 4;
50
+ /** Where the scene's origin sits on the stage, and how large a scene unit is. */
51
+ export type VisualizationView = {
52
+ x: number;
53
+ y: number;
54
+ scale: number;
55
+ };
56
+ /** The origin at the middle of the stage, where the forces gather the graph. */
57
+ export declare function createView(width: number, height: number): VisualizationView;
58
+ /**
59
+ * The view after a zoom about a stage point. The scene point under that point
60
+ * is held still, so whatever the pointer is over grows or shrinks around it.
61
+ *
62
+ * @example
63
+ * const next = zoomAt(view, { x: event.offsetX, y: event.offsetY }, 1.2);
64
+ */
65
+ export declare function zoomAt(view: VisualizationView, point: Point, factor: number): VisualizationView;
66
+ /**
67
+ * How much a wheel event scales the view, above one for a wheel rolled away
68
+ * from the user. Exponential in the travel, so a notch each way cancels out.
69
+ */
70
+ export declare function wheelZoomFactor(deltaY: number, deltaMode?: number): number;
71
+ /**
72
+ * Everything the panel keeps between renders, and none of it in the store: the
73
+ * view is this client's alone and a force layout is not part of the document.
74
+ */
75
+ export type VisualizationState = VisualizationView & {
76
+ /** Bumped by every simulation step, which is what redraws the moved graph. */
77
+ tick: number;
78
+ /** A node or the view is being dragged, which is when no preview opens. */
79
+ drag: boolean;
80
+ /** The dot under the pointer, table or column, the one that wears the ring. */
81
+ hoveredId: string | null;
82
+ /**
83
+ * The hovered dot when it is a table, and null over a column: the preview
84
+ * opens for it, and the graph fades around its neighbourhood.
85
+ */
86
+ hoveredTableId: string | null;
87
+ previewX: number;
88
+ previewY: number;
89
+ };
90
+ export declare function createVisualizationState(width: number, height: number): VisualizationState;
@@ -1 +1,7 @@
1
- export declare const LanguageToLangMap: Record<number, string>;
1
+ /**
2
+ * Shiki grammar names. Spelled out rather than left as string, which is what
3
+ * the annotation used to widen them to — CodeBlock's lang is a union, and
4
+ * widening here meant nothing checked that these were members of it.
5
+ */
6
+ export type Lang = 'csharp' | 'go' | 'graphql' | 'java' | 'kotlin' | 'python' | 'scala' | 'sql' | 'typescript';
7
+ export declare const LanguageToLangMap: Record<number, Lang>;
@@ -1,6 +1,7 @@
1
1
  export declare const START_X = 200;
2
2
  export declare const START_Y = 100;
3
3
  export declare const START_ADD = 50;
4
+ export declare const DUPLICATE_MIN_MOVE = 4;
4
5
  export declare const DEFAULT_WIDTH = 1200;
5
6
  export declare const DEFAULT_HEIGHT: number;
6
7
  export declare const INPUT_HEIGHT = 20;
@@ -31,3 +32,15 @@ export declare const MINIMAP_SIZE = 150;
31
32
  export declare const MINIMAP_MARGIN = 20;
32
33
  export declare const TOOLBAR_HEIGHT = 30;
33
34
  export declare const DIFF_TREE_WIDTH = 200;
35
+ /**
36
+ * How thick a relationship connector is drawn. A whole number rather than a
37
+ * fraction, so the stroke lands on pixel boundaries instead of spreading across
38
+ * two rows at partial alpha on a 1x display.
39
+ */
40
+ export declare const RELATIONSHIP_STROKE_WIDTH = 2;
41
+ /**
42
+ * The invisible band that catches the pointer for a connector, because
43
+ * hit-testing follows the painted stroke. Narrower than NUDGE_GAP, so it stays
44
+ * clear of the neighbouring corridor at the router's usual separation.
45
+ */
46
+ export declare const RELATIONSHIP_HIT_STROKE_WIDTH = 8;
@@ -34,6 +34,8 @@ export declare const Database: {
34
34
  readonly Oracle: 8;
35
35
  readonly PostgreSQL: 16;
36
36
  readonly SQLite: 32;
37
+ readonly Databricks: 64;
38
+ readonly Snowflake: 128;
37
39
  };
38
40
  export declare const DatabaseList: readonly number[];
39
41
  export declare const Language: {
@@ -44,6 +46,13 @@ export declare const Language: {
44
46
  readonly TypeScript: 16;
45
47
  readonly JPA: 32;
46
48
  readonly Scala: 64;
49
+ readonly Go: 128;
50
+ readonly SQLAlchemy: 256;
51
+ readonly TypeORM: 512;
52
+ readonly Sequelize: 1024;
53
+ readonly Drizzle: 2048;
54
+ readonly DBML: 4096;
55
+ readonly AML: 8192;
47
56
  };
48
57
  export declare const LanguageList: readonly number[];
49
58
  export declare const NameCase: {
@@ -95,12 +104,12 @@ export declare const OrderType: {
95
104
  };
96
105
  export declare const OrderTypeList: readonly number[];
97
106
  export declare const SaveSettingType: {
98
- scroll: number;
99
- zoomLevel: number;
107
+ readonly scroll: 1;
108
+ readonly zoomLevel: 2;
100
109
  };
101
110
  export declare const CANVAS_SIZE_MAX: 20000;
102
111
  export declare const CANVAS_SIZE_MIN: 2000;
103
- export declare const CANVAS_ZOOM_MAX: 1;
112
+ export declare const CANVAS_ZOOM_MAX: 1.5;
104
113
  export declare const CANVAS_ZOOM_MIN: 0.1;
105
114
  export declare const BracketTypeMap: Record<number, string>;
106
115
  export declare const ColumnTypeToName: Record<number, string>;
@@ -0,0 +1,5 @@
1
+ import { DataTypeHint } from '.';
2
+ /**
3
+ * https://docs.databricks.com/aws/en/sql/language-manual/sql-ref-datatypes
4
+ */
5
+ export declare const DatabricksTypes: DataTypeHint[];
@@ -1,5 +1,5 @@
1
1
  import { DataTypeHint } from '.';
2
2
  /**
3
- * https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15
3
+ * https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql
4
4
  */
5
5
  export declare const MSSQLTypes: DataTypeHint[];
@@ -1,5 +1,5 @@
1
1
  import { DataTypeHint } from '.';
2
2
  /**
3
- * https://dev.mysql.com/doc/refman/8.0/en/data-types.html
3
+ * https://dev.mysql.com/doc/refman/8.4/en/data-types.html
4
4
  */
5
5
  export declare const MySQLTypes: DataTypeHint[];
@@ -1,5 +1,5 @@
1
1
  import { DataTypeHint } from '.';
2
2
  /**
3
- * https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012
3
+ * https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Data-Types.html
4
4
  */
5
5
  export declare const OracleTypes: DataTypeHint[];
@@ -0,0 +1,5 @@
1
+ import { DataTypeHint } from '.';
2
+ /**
3
+ * https://docs.snowflake.com/en/sql-reference-data-types
4
+ */
5
+ export declare const SnowflakeTypes: DataTypeHint[];
@@ -1,10 +1,12 @@
1
1
  import { ValuesType } from '../../internal-types';
2
2
  export declare const DatabaseVendor: {
3
+ readonly Databricks: "Databricks";
3
4
  readonly MariaDB: "MariaDB";
4
5
  readonly MSSQL: "MSSQL";
5
6
  readonly MySQL: "MySQL";
6
7
  readonly Oracle: "Oracle";
7
8
  readonly PostgreSQL: "PostgreSQL";
9
+ readonly Snowflake: "Snowflake";
8
10
  readonly SQLite: "SQLite";
9
11
  };
10
12
  export type DatabaseVendor = ValuesType<typeof DatabaseVendor>;
@@ -1,8 +1,9 @@
1
1
  import { AnyAction } from '@dineug/r-html';
2
2
  type Dispatch = (actions: AnyAction[]) => void;
3
+ type GetNextVersion = () => number;
3
4
  export type Command = {
4
- undo: (dispatch: Dispatch) => void;
5
- redo: (dispatch: Dispatch) => void;
5
+ undo: (dispatch: Dispatch, getNextVersion: GetNextVersion) => void;
6
+ redo: (dispatch: Dispatch, getNextVersion: GetNextVersion) => void;
6
7
  };
7
8
  export type CommandKey = keyof Command;
8
9
  export type History = {
@@ -24,11 +25,12 @@ type HasHistory = {
24
25
  export type HistoryOptions = {
25
26
  notify: (has: HasHistory) => void;
26
27
  dispatch: Dispatch;
28
+ getNextVersion: GetNextVersion;
27
29
  };
28
30
  type HistoryState = {
29
31
  commands: Command[];
30
32
  cursor: number;
31
33
  limit: number;
32
34
  };
33
- export declare function createHistory({ notify, dispatch }: HistoryOptions, initialState?: HistoryState): History;
35
+ export declare function createHistory({ notify, dispatch, getNextVersion }: HistoryOptions, initialState?: HistoryState): History;
34
36
  export {};
@@ -1,8 +1,8 @@
1
- import { Channel, CoroutineCreator } from '@dineug/go';
2
1
  import { AnyAction, createAction } from '@dineug/r-html';
2
+ import { Observable, Subscription } from 'rxjs';
3
3
  import { EngineContext } from './context';
4
4
  import { RootState } from './state';
5
5
  type ActionCreator = ReturnType<typeof createAction<any>>;
6
- export type CO = (channel: Channel<AnyAction>, getState: () => RootState, ctx: EngineContext) => ReturnType<CoroutineCreator>;
7
- export type Hook = [Array<ActionCreator | string>, CO];
6
+ export type HookEffect = (action$: Observable<AnyAction>, getState: () => RootState, ctx: EngineContext) => Subscription;
7
+ export type Hook = [Array<ActionCreator | string>, HookEffect];
8
8
  export {};
@@ -2,7 +2,8 @@ import { Reducer } from '@dineug/r-html';
2
2
  import { EngineContext } from '../../context';
3
3
  import { RootState } from '../../state';
4
4
  import { LWW, ValuesType } from '../../../internal-types';
5
- import { FocusType, MoveKey, SelectType } from './state';
5
+ import { Rect } from '../../../utils/dragSelect';
6
+ import { FocusType, MoveKey, SelectType, SharedFocus } from './state';
6
7
  export declare const ActionType: {
7
8
  readonly changeHasHistory: "editor.changeHasHistory";
8
9
  readonly selectAll: "editor.selectAll";
@@ -19,6 +20,9 @@ export declare const ActionType: {
19
20
  readonly focusMoveTable: "editor.focusMoveTable";
20
21
  readonly editTable: "editor.editTable";
21
22
  readonly editTableEnd: "editor.editTableEnd";
23
+ readonly editMemo: "editor.editMemo";
24
+ readonly editMemoEnd: "editor.editMemoEnd";
25
+ readonly scrollMemo: "editor.scrollMemo";
22
26
  readonly selectAllColumn: "editor.selectAllColumn";
23
27
  readonly drawStartRelationship: "editor.drawStartRelationship";
24
28
  readonly drawStartAddRelationship: "editor.drawStartAddRelationship";
@@ -30,6 +34,10 @@ export declare const ActionType: {
30
34
  readonly dragstartColumn: "editor.dragstartColumn";
31
35
  readonly dragendColumn: "editor.dragendColumn";
32
36
  readonly sharedMouseTracker: "editor.sharedMouseTracker";
37
+ readonly sharedFocusTracker: "editor.sharedFocusTracker";
38
+ readonly sharedSelectionTracker: "editor.sharedSelectionTracker";
39
+ readonly sharedDragSelectTracker: "editor.sharedDragSelectTracker";
40
+ readonly dragSelectRect: "editor.dragSelectRect";
33
41
  readonly validationIds: "editor.validationIds";
34
42
  readonly getLWW: "editor.getLWW";
35
43
  readonly mergeLWW: "editor.mergeLWW";
@@ -73,6 +81,15 @@ export type ActionMap = {
73
81
  };
74
82
  [ActionType.editTable]: void;
75
83
  [ActionType.editTableEnd]: void;
84
+ [ActionType.editMemo]: {
85
+ id: string;
86
+ };
87
+ [ActionType.editMemoEnd]: void;
88
+ [ActionType.scrollMemo]: {
89
+ id: string;
90
+ /** How far down its body the memo is shown from, in body px. */
91
+ scrollTop: number;
92
+ };
76
93
  [ActionType.selectAllColumn]: void;
77
94
  [ActionType.drawStartRelationship]: {
78
95
  relationshipType: number;
@@ -101,6 +118,18 @@ export type ActionMap = {
101
118
  x: number;
102
119
  y: number;
103
120
  };
121
+ [ActionType.sharedFocusTracker]: {
122
+ focus: SharedFocus | null;
123
+ };
124
+ [ActionType.sharedSelectionTracker]: {
125
+ selectedIds: string[];
126
+ };
127
+ [ActionType.sharedDragSelectTracker]: {
128
+ rect: Rect | null;
129
+ };
130
+ [ActionType.dragSelectRect]: {
131
+ rect: Rect | null;
132
+ };
104
133
  [ActionType.validationIds]: void;
105
134
  [ActionType.getLWW]: void;
106
135
  [ActionType.mergeLWW]: {
@@ -1,5 +1,7 @@
1
1
  import { ReducerType } from './actions';
2
2
  import { FocusType, MoveKey, SelectType } from './state';
3
+ export declare const SHARED_FOCUS_TRACKER_TIMEOUT: number;
4
+ export declare const SHARED_DRAG_SELECT_TRACKER_TIMEOUT: number;
3
5
  export declare const changeHasHistoryAction: {
4
6
  (payload: {
5
7
  hasUndo: boolean;
@@ -119,6 +121,31 @@ export declare const editTableEndAction: {
119
121
  toString(): string;
120
122
  type: string;
121
123
  };
124
+ export declare const editMemoAction: {
125
+ (payload: {
126
+ id: string;
127
+ }): import('@dineug/r-html').AnyAction<{
128
+ id: string;
129
+ }>;
130
+ toString(): string;
131
+ type: string;
132
+ };
133
+ export declare const editMemoEndAction: {
134
+ (payload: void): import('@dineug/r-html').AnyAction<void>;
135
+ toString(): string;
136
+ type: string;
137
+ };
138
+ export declare const scrollMemoAction: {
139
+ (payload: {
140
+ id: string;
141
+ scrollTop: number;
142
+ }): import('@dineug/r-html').AnyAction<{
143
+ id: string;
144
+ scrollTop: number;
145
+ }>;
146
+ toString(): string;
147
+ type: string;
148
+ };
122
149
  export declare const selectAllColumnAction: {
123
150
  (payload: void): import('@dineug/r-html').AnyAction<void>;
124
151
  toString(): string;
@@ -208,6 +235,42 @@ export declare const sharedMouseTrackerAction: {
208
235
  toString(): string;
209
236
  type: string;
210
237
  };
238
+ export declare const sharedFocusTrackerAction: {
239
+ (payload: {
240
+ focus: import('./state').SharedFocus | null;
241
+ }): import('@dineug/r-html').AnyAction<{
242
+ focus: import('./state').SharedFocus | null;
243
+ }>;
244
+ toString(): string;
245
+ type: string;
246
+ };
247
+ export declare const sharedSelectionTrackerAction: {
248
+ (payload: {
249
+ selectedIds: string[];
250
+ }): import('@dineug/r-html').AnyAction<{
251
+ selectedIds: string[];
252
+ }>;
253
+ toString(): string;
254
+ type: string;
255
+ };
256
+ export declare const sharedDragSelectTrackerAction: {
257
+ (payload: {
258
+ rect: import('../../../utils/dragSelect').Rect | null;
259
+ }): import('@dineug/r-html').AnyAction<{
260
+ rect: import('../../../utils/dragSelect').Rect | null;
261
+ }>;
262
+ toString(): string;
263
+ type: string;
264
+ };
265
+ export declare const dragSelectRectAction: {
266
+ (payload: {
267
+ rect: import('../../../utils/dragSelect').Rect | null;
268
+ }): import('@dineug/r-html').AnyAction<{
269
+ rect: import('../../../utils/dragSelect').Rect | null;
270
+ }>;
271
+ toString(): string;
272
+ type: string;
273
+ };
211
274
  export declare const validationIdsAction: {
212
275
  (payload: void): import('@dineug/r-html').AnyAction<void>;
213
276
  toString(): string;
@@ -243,6 +306,9 @@ export declare const editorReducers: {
243
306
  "editor.focusMoveTable": ReducerType<"editor.focusMoveTable">;
244
307
  "editor.editTable": ReducerType<"editor.editTable">;
245
308
  "editor.editTableEnd": ReducerType<"editor.editTableEnd">;
309
+ "editor.editMemo": ReducerType<"editor.editMemo">;
310
+ "editor.editMemoEnd": ReducerType<"editor.editMemoEnd">;
311
+ "editor.scrollMemo": ReducerType<"editor.scrollMemo">;
246
312
  "editor.selectAllColumn": ReducerType<"editor.selectAllColumn">;
247
313
  "editor.drawStartRelationship": ReducerType<"editor.drawStartRelationship">;
248
314
  "editor.drawStartAddRelationship": ReducerType<"editor.drawStartAddRelationship">;
@@ -254,6 +320,10 @@ export declare const editorReducers: {
254
320
  "editor.dragstartColumn": ReducerType<"editor.dragstartColumn">;
255
321
  "editor.dragendColumn": ReducerType<"editor.dragendColumn">;
256
322
  "editor.sharedMouseTracker": ReducerType<"editor.sharedMouseTracker">;
323
+ "editor.sharedFocusTracker": ReducerType<"editor.sharedFocusTracker">;
324
+ "editor.sharedSelectionTracker": ReducerType<"editor.sharedSelectionTracker">;
325
+ "editor.sharedDragSelectTracker": ReducerType<"editor.sharedDragSelectTracker">;
326
+ "editor.dragSelectRect": ReducerType<"editor.dragSelectRect">;
257
327
  "editor.validationIds": ReducerType<"editor.validationIds">;
258
328
  "editor.getLWW": ReducerType<"editor.getLWW">;
259
329
  "editor.mergeLWW": ReducerType<"editor.mergeLWW">;
@@ -378,6 +448,31 @@ export declare const actions: {
378
448
  toString(): string;
379
449
  type: string;
380
450
  };
451
+ editMemoAction: {
452
+ (payload: {
453
+ id: string;
454
+ }): import('@dineug/r-html').AnyAction<{
455
+ id: string;
456
+ }>;
457
+ toString(): string;
458
+ type: string;
459
+ };
460
+ editMemoEndAction: {
461
+ (payload: void): import('@dineug/r-html').AnyAction<void>;
462
+ toString(): string;
463
+ type: string;
464
+ };
465
+ scrollMemoAction: {
466
+ (payload: {
467
+ id: string;
468
+ scrollTop: number;
469
+ }): import('@dineug/r-html').AnyAction<{
470
+ id: string;
471
+ scrollTop: number;
472
+ }>;
473
+ toString(): string;
474
+ type: string;
475
+ };
381
476
  selectAllColumnAction: {
382
477
  (payload: void): import('@dineug/r-html').AnyAction<void>;
383
478
  toString(): string;
@@ -467,6 +562,42 @@ export declare const actions: {
467
562
  toString(): string;
468
563
  type: string;
469
564
  };
565
+ sharedFocusTrackerAction: {
566
+ (payload: {
567
+ focus: import('./state').SharedFocus | null;
568
+ }): import('@dineug/r-html').AnyAction<{
569
+ focus: import('./state').SharedFocus | null;
570
+ }>;
571
+ toString(): string;
572
+ type: string;
573
+ };
574
+ sharedSelectionTrackerAction: {
575
+ (payload: {
576
+ selectedIds: string[];
577
+ }): import('@dineug/r-html').AnyAction<{
578
+ selectedIds: string[];
579
+ }>;
580
+ toString(): string;
581
+ type: string;
582
+ };
583
+ sharedDragSelectTrackerAction: {
584
+ (payload: {
585
+ rect: import('../../../utils/dragSelect').Rect | null;
586
+ }): import('@dineug/r-html').AnyAction<{
587
+ rect: import('../../../utils/dragSelect').Rect | null;
588
+ }>;
589
+ toString(): string;
590
+ type: string;
591
+ };
592
+ dragSelectRectAction: {
593
+ (payload: {
594
+ rect: import('../../../utils/dragSelect').Rect | null;
595
+ }): import('@dineug/r-html').AnyAction<{
596
+ rect: import('../../../utils/dragSelect').Rect | null;
597
+ }>;
598
+ toString(): string;
599
+ type: string;
600
+ };
470
601
  validationIdsAction: {
471
602
  (payload: void): import('@dineug/r-html').AnyAction<void>;
472
603
  toString(): string;
@@ -1,10 +1,20 @@
1
1
  import { GeneratorAction } from '../../generator.actions';
2
+ import { Point } from '../../../internal-types';
2
3
  import { Rect } from '../../../utils/dragSelect';
4
+ import { ClipboardPayload } from '../../../utils/table-clipboard';
3
5
  import { MoveKey } from './state';
4
6
  export declare const loadJsonAction$: (value: string) => GeneratorAction;
5
7
  export declare const initialLoadJsonAction$: (value: string) => GeneratorAction;
6
8
  export declare const moveAllAction$: (movementX: number, movementY: number) => GeneratorAction;
7
9
  export declare const removeSelectedAction$: () => GeneratorAction;
10
+ export type DuplicateConfig = {
11
+ tableIds?: string[];
12
+ memoIds?: string[];
13
+ offset: Point;
14
+ escapeCollision: boolean;
15
+ };
16
+ export declare const pasteEntitiesAction$: (payload: ClipboardPayload, pasteRound: number) => GeneratorAction;
17
+ export declare const duplicateAction$: ({ tableIds, memoIds, offset, escapeCollision, }: DuplicateConfig) => GeneratorAction;
8
18
  export declare const dragSelectAction$: (dragRect: Rect) => GeneratorAction;
9
19
  export declare const unselectAllAction$: () => GeneratorAction;
10
20
  export declare const focusMoveTableAction$: (moveKey: MoveKey, shiftKey: boolean) => GeneratorAction;
@@ -12,6 +22,9 @@ export declare const drawStartRelationshipAction$: (relationshipType: number) =>
12
22
  export declare const drawStartAddRelationshipAction$: (tableId: string) => GeneratorAction;
13
23
  export declare const changeColorAllAction$: (color: string) => GeneratorAction;
14
24
  export declare const loadSchemaSQLAction$: (value: string) => GeneratorAction;
25
+ export declare const loadSchemaGraphQLAction$: (value: string) => GeneratorAction;
26
+ export declare const loadSchemaDBMLAction$: (value: string) => GeneratorAction;
27
+ export declare const loadSchemaAMLAction$: (value: string) => GeneratorAction;
15
28
  export declare const dragstartColumnAction$: ($mod: boolean) => GeneratorAction;
16
29
  export declare const dragoverColumnAction$: (targetId: string, targetTableId: string) => GeneratorAction;
17
30
  export declare const columnKeyHoverStartAction$: (columnId: string) => GeneratorAction;
@@ -21,6 +34,8 @@ export declare const actions$: {
21
34
  initialLoadJsonAction$: (value: string) => GeneratorAction;
22
35
  moveAllAction$: (movementX: number, movementY: number) => GeneratorAction;
23
36
  removeSelectedAction$: () => GeneratorAction;
37
+ pasteEntitiesAction$: (payload: ClipboardPayload, pasteRound: number) => GeneratorAction;
38
+ duplicateAction$: ({ tableIds, memoIds, offset, escapeCollision, }: DuplicateConfig) => GeneratorAction;
24
39
  dragSelectAction$: (dragRect: Rect) => GeneratorAction;
25
40
  unselectAllAction$: () => GeneratorAction;
26
41
  focusMoveTableAction$: (moveKey: MoveKey, shiftKey: boolean) => GeneratorAction;
@@ -28,6 +43,9 @@ export declare const actions$: {
28
43
  drawStartAddRelationshipAction$: (tableId: string) => GeneratorAction;
29
44
  changeColorAllAction$: (color: string) => GeneratorAction;
30
45
  loadSchemaSQLAction$: (value: string) => GeneratorAction;
46
+ loadSchemaGraphQLAction$: (value: string) => GeneratorAction;
47
+ loadSchemaDBMLAction$: (value: string) => GeneratorAction;
48
+ loadSchemaAMLAction$: (value: string) => GeneratorAction;
31
49
  dragstartColumnAction$: ($mod: boolean) => GeneratorAction;
32
50
  dragoverColumnAction$: (targetId: string, targetTableId: string) => GeneratorAction;
33
51
  columnKeyHoverStartAction$: (columnId: string) => GeneratorAction;