@dineug/erd-editor 3.5.0 → 3.6.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 (430) hide show
  1. package/README.md +41 -10
  2. package/dist/components/appContext.d.ts +1 -0
  3. package/dist/components/customElementRegistry.d.ts +1 -0
  4. package/dist/components/erd/Erd.d.ts +1 -0
  5. package/dist/components/erd/Erd.styles.d.ts +1 -0
  6. package/dist/components/erd/automatic-table-placement/AutomaticTablePlacement.d.ts +16 -0
  7. package/dist/components/erd/automatic-table-placement/AutomaticTablePlacement.styles.d.ts +1 -0
  8. package/dist/components/erd/automatic-table-placement/createAutomaticTablePlacement.d.ts +1 -0
  9. package/dist/components/erd/canvas/Canvas.d.ts +1 -0
  10. package/dist/components/erd/canvas/Canvas.styles.d.ts +9 -8
  11. package/dist/components/erd/canvas/CanvasScene.d.ts +1 -0
  12. package/dist/components/erd/canvas/EditOverlay.d.ts +1 -0
  13. package/dist/components/erd/canvas/EditOverlay.styles.d.ts +1 -0
  14. package/dist/components/erd/canvas/SceneIcon.template.d.ts +1 -0
  15. package/dist/components/erd/canvas/altDragDuplicate.d.ts +1 -0
  16. package/dist/components/erd/canvas/drag-select/DragSelect.d.ts +1 -0
  17. package/dist/components/erd/canvas/draw-relationship/DrawRelationship.d.ts +1 -0
  18. package/dist/components/erd/canvas/duplicate-ghost/DuplicateGhost.d.ts +1 -0
  19. package/dist/components/erd/canvas/entityDrag.d.ts +6 -3
  20. package/dist/components/erd/canvas/high-level-table/HighLevelTable.d.ts +1 -0
  21. package/dist/components/erd/canvas/memo/Memo.d.ts +1 -0
  22. package/dist/components/erd/canvas/memo/memo-sash/MemoSash.d.ts +1 -0
  23. package/dist/components/erd/canvas/memo/memoCaret.d.ts +1 -0
  24. package/dist/components/erd/canvas/memo/memoScroll.d.ts +1 -0
  25. package/dist/components/erd/canvas/memo/memoText.d.ts +1 -0
  26. package/dist/components/erd/canvas/memo/useMoveMemo.d.ts +1 -0
  27. package/dist/components/erd/canvas/relationship-group/RelationshipGroup.d.ts +1 -0
  28. package/dist/components/erd/canvas/relationship-group/relationship/Relationship.d.ts +1 -0
  29. package/dist/components/erd/canvas/relationship-group/relationship/Relationship.template.d.ts +1 -0
  30. package/dist/components/erd/canvas/sceneHit.d.ts +1 -0
  31. package/dist/components/erd/canvas/sceneKind.d.ts +1 -0
  32. package/dist/components/erd/canvas/sceneRetention.d.ts +1 -0
  33. package/dist/components/erd/canvas/sceneTokens.d.ts +1 -0
  34. package/dist/components/erd/canvas/shared-drag-select/SharedDragSelect.d.ts +1 -0
  35. package/dist/components/erd/canvas/shared-mouse-tracker/SharedMouseTracker.d.ts +1 -0
  36. package/dist/components/erd/canvas/shared-mouse-tracker/shared-mouse-cursor/SharedMouseCursor.d.ts +1 -0
  37. package/dist/components/erd/canvas/table/Table.d.ts +1 -0
  38. package/dist/components/erd/canvas/table/cellLayout.d.ts +1 -0
  39. package/dist/components/erd/canvas/table/column/Column.d.ts +1 -0
  40. package/dist/components/erd/canvas/table/doubleClick.d.ts +1 -0
  41. package/dist/components/erd/canvas/table/useFocusTable.d.ts +1 -0
  42. package/dist/components/erd/canvas/table/useMoveTable.d.ts +1 -0
  43. package/dist/components/erd/canvas/table/useSharedFocusTable.d.ts +1 -0
  44. package/dist/components/erd/canvas/useMoveEntity.d.ts +1 -0
  45. package/dist/components/erd/canvas/useSharedSelectEntity.d.ts +1 -0
  46. package/dist/components/erd/content-compass/ContentCompass.d.ts +10 -0
  47. package/dist/components/erd/content-compass/ContentCompass.styles.d.ts +3 -0
  48. package/dist/components/erd/content-compass/compassGeometry.d.ts +24 -0
  49. package/dist/components/erd/diff-viewer/DiffViewer.d.ts +1 -0
  50. package/dist/components/erd/diff-viewer/DiffViewer.styles.d.ts +1 -0
  51. package/dist/components/erd/diff-viewer/diff.d.ts +1 -0
  52. package/dist/components/erd/diff-viewer/erd-viewer/ErdViewer.d.ts +1 -0
  53. package/dist/components/erd/diff-viewer/erd-viewer/ErdViewer.styles.d.ts +1 -0
  54. package/dist/components/erd/diff-viewer/tree-viewer/TreeViewer.d.ts +1 -0
  55. package/dist/components/erd/diff-viewer/tree-viewer/TreeViewer.styles.d.ts +1 -0
  56. package/dist/components/erd/erd-context-menu/ErdContextMenu.d.ts +1 -0
  57. package/dist/components/erd/erd-context-menu/menus/databaseMenus.d.ts +1 -0
  58. package/dist/components/erd/erd-context-menu/menus/drawRelationshipMenus.d.ts +1 -0
  59. package/dist/components/erd/erd-context-menu/menus/exportMenus.d.ts +1 -0
  60. package/dist/components/erd/erd-context-menu/menus/importMenus.d.ts +1 -0
  61. package/dist/components/erd/erd-context-menu/menus/relationshipMenus.d.ts +1 -0
  62. package/dist/components/erd/erd-context-menu/menus/showMenus.d.ts +1 -0
  63. package/dist/components/erd/erdShortcutPerformCheck.d.ts +1 -0
  64. package/dist/components/erd/floating-toolbar/FloatingToolbar.d.ts +10 -0
  65. package/dist/components/erd/floating-toolbar/FloatingToolbar.styles.d.ts +4 -0
  66. package/dist/components/erd/hitTest.d.ts +1 -0
  67. package/dist/components/erd/minimap/Minimap.d.ts +1 -0
  68. package/dist/components/erd/minimap/Minimap.styles.d.ts +1 -0
  69. package/dist/components/erd/minimap/MinimapScene.d.ts +1 -0
  70. package/dist/components/erd/minimap/memo/Memo.d.ts +6 -3
  71. package/dist/components/erd/minimap/minimapGeometry.d.ts +82 -34
  72. package/dist/components/erd/minimap/table/Table.d.ts +6 -3
  73. package/dist/components/erd/minimap/useMinimapScroll.d.ts +1 -0
  74. package/dist/components/erd/minimap/viewport/Viewport.d.ts +1 -0
  75. package/dist/components/erd/minimap/viewport/Viewport.styles.d.ts +1 -0
  76. package/dist/components/erd/table-properties/TableProperties.d.ts +1 -0
  77. package/dist/components/erd/table-properties/TableProperties.styles.d.ts +1 -0
  78. package/dist/components/erd/table-properties/table-properties-indexes/TablePropertiesIndexes.d.ts +1 -0
  79. package/dist/components/erd/table-properties/table-properties-indexes/TablePropertiesIndexes.styles.d.ts +1 -0
  80. package/dist/components/erd/table-properties/table-properties-indexes/indexes-checkbox-column/IndexesCheckboxColumn.d.ts +1 -0
  81. package/dist/components/erd/table-properties/table-properties-indexes/indexes-checkbox-column/IndexesCheckboxColumn.styles.d.ts +1 -0
  82. package/dist/components/erd/table-properties/table-properties-indexes/indexes-column/IndexesColumn.d.ts +1 -0
  83. package/dist/components/erd/table-properties/table-properties-indexes/indexes-column/IndexesColumn.styles.d.ts +1 -0
  84. package/dist/components/erd/table-properties/table-properties-indexes/indexes-index/IndexesIndex.d.ts +1 -0
  85. package/dist/components/erd/table-properties/table-properties-indexes/indexes-index/IndexesIndex.styles.d.ts +1 -0
  86. package/dist/components/erd/table-properties/table-properties-tabs/TablePropertiesTabs.d.ts +1 -0
  87. package/dist/components/erd/table-properties/table-properties-tabs/TablePropertiesTabs.styles.d.ts +1 -0
  88. package/dist/components/erd/time-travel/TimeTravel.d.ts +1 -0
  89. package/dist/components/erd/time-travel/TimeTravel.styles.d.ts +1 -0
  90. package/dist/components/erd/useErdShortcut.d.ts +1 -0
  91. package/dist/components/erd/virtual-scroll/VirtualScroll.d.ts +1 -0
  92. package/dist/components/erd/virtual-scroll/VirtualScroll.styles.d.ts +1 -0
  93. package/dist/components/erd/virtual-scroll/useVirtualScroll.d.ts +13 -6
  94. package/dist/components/erd-editor/ErdEditor.d.ts +2 -1
  95. package/dist/components/erd-editor/ErdEditor.styles.d.ts +1 -0
  96. package/dist/components/erd-editor/useErdEditorAttachElement.d.ts +1 -0
  97. package/dist/components/generator-code/GeneratorCode.d.ts +1 -0
  98. package/dist/components/generator-code/GeneratorCode.styles.d.ts +1 -0
  99. package/dist/components/generator-code/generator-code-context-menu/GeneratorCodeContextMenu.d.ts +1 -0
  100. package/dist/components/generator-code/generator-code-context-menu/menus/columnNameCaseMenus.d.ts +1 -0
  101. package/dist/components/generator-code/generator-code-context-menu/menus/languageMenus.d.ts +1 -0
  102. package/dist/components/generator-code/generator-code-context-menu/menus/tableNameCaseMenus.d.ts +1 -0
  103. package/dist/components/global-styles/GlobalStyles.d.ts +1 -0
  104. package/dist/components/primitives/button/Button.d.ts +1 -0
  105. package/dist/components/primitives/button/Button.styles.d.ts +1 -0
  106. package/dist/components/primitives/code-block/CodeBlock.d.ts +1 -0
  107. package/dist/components/primitives/code-block/CodeBlock.styles.d.ts +1 -0
  108. package/dist/components/primitives/color-picker/ColorPicker.d.ts +1 -0
  109. package/dist/components/primitives/color-picker/ColorPicker.styles.d.ts +1 -0
  110. package/dist/components/primitives/context-menu/ContextMenu.d.ts +1 -0
  111. package/dist/components/primitives/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -0
  112. package/dist/components/primitives/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +1 -0
  113. package/dist/components/primitives/context-menu/context-menu-item/ContextMenuItem.d.ts +1 -0
  114. package/dist/components/primitives/context-menu/context-menu-item/ContextMenuItem.styles.d.ts +1 -0
  115. package/dist/components/primitives/context-menu/context-menu-root/ContextMenuRoot.d.ts +1 -0
  116. package/dist/components/primitives/context-menu/context-menu-root/contextMenuRootContext.d.ts +1 -0
  117. package/dist/components/primitives/context-menu/menu/Menu.d.ts +1 -0
  118. package/dist/components/primitives/context-menu/menu/Menu.styles.d.ts +1 -0
  119. package/dist/components/primitives/edit-input/EditInput.d.ts +1 -0
  120. package/dist/components/primitives/edit-input/EditInput.styles.d.ts +1 -0
  121. package/dist/components/primitives/highlighted-text/HighlightedText.d.ts +1 -0
  122. package/dist/components/primitives/highlighted-text/HighlightedText.styles.d.ts +1 -0
  123. package/dist/components/primitives/icon/Icon.d.ts +1 -0
  124. package/dist/components/primitives/icon/Icon.styles.d.ts +1 -0
  125. package/dist/components/primitives/icon/icons.d.ts +5 -1
  126. package/dist/components/primitives/kbd/Kbd.d.ts +1 -0
  127. package/dist/components/primitives/kbd/Kbd.styles.d.ts +1 -0
  128. package/dist/components/primitives/sash/Sash.d.ts +1 -0
  129. package/dist/components/primitives/sash/Sash.styles.d.ts +1 -0
  130. package/dist/components/primitives/separator/Separator.d.ts +1 -0
  131. package/dist/components/primitives/separator/Separator.styles.d.ts +1 -0
  132. package/dist/components/primitives/slider/Slider.d.ts +1 -0
  133. package/dist/components/primitives/slider/Slider.styles.d.ts +1 -0
  134. package/dist/components/primitives/switch/Switch.d.ts +1 -0
  135. package/dist/components/primitives/switch/Switch.styles.d.ts +1 -0
  136. package/dist/components/primitives/text-input/TextInput.d.ts +1 -0
  137. package/dist/components/primitives/toast/Toast.d.ts +1 -0
  138. package/dist/components/primitives/toast/Toast.styles.d.ts +1 -0
  139. package/dist/components/quick-search/QuickSearch.d.ts +1 -0
  140. package/dist/components/quick-search/QuickSearch.styles.d.ts +1 -0
  141. package/dist/components/quick-search/actions.d.ts +1 -0
  142. package/dist/components/schema-sql/SchemaSQL.d.ts +1 -0
  143. package/dist/components/schema-sql/SchemaSQL.styles.d.ts +1 -0
  144. package/dist/components/schema-sql/schema-sql-context-menu/SchemaSQLContextMenu.d.ts +1 -0
  145. package/dist/components/schema-sql/schema-sql-context-menu/menus/bracketMenus.d.ts +1 -0
  146. package/dist/components/settings/Settings.d.ts +1 -0
  147. package/dist/components/settings/Settings.styles.d.ts +1 -0
  148. package/dist/components/settings/settings-lnb/SettingsLnb.d.ts +1 -0
  149. package/dist/components/settings/settings-lnb/SettingsLnb.styles.d.ts +1 -0
  150. package/dist/components/settings/shortcuts/Shortcuts.d.ts +1 -0
  151. package/dist/components/settings/shortcuts/Shortcuts.styles.d.ts +1 -0
  152. package/dist/components/table-view/Table.styles.d.ts +1 -0
  153. package/dist/components/table-view/column/Column.styles.d.ts +1 -0
  154. package/dist/components/table-view/column/column-data-type/ColumnDataType.d.ts +1 -0
  155. package/dist/components/table-view/column/column-data-type/ColumnDataType.styles.d.ts +1 -0
  156. package/dist/components/table-view/column/column-key/ColumnKey.d.ts +1 -0
  157. package/dist/components/table-view/column/column-key/ColumnKey.styles.d.ts +1 -0
  158. package/dist/components/table-view/column/column-not-null/ColumnNotNull.d.ts +1 -0
  159. package/dist/components/table-view/column/column-not-null/ColumnNotNull.styles.d.ts +1 -0
  160. package/dist/components/table-view/column/column-option/ColumnOption.d.ts +1 -0
  161. package/dist/components/table-view/column/column-option/ColumnOption.styles.d.ts +1 -0
  162. package/dist/components/table-view/column/useColumnCell.d.ts +1 -0
  163. package/dist/components/theme/Theme.d.ts +1 -0
  164. package/dist/components/theme-builder/ThemeBuilder.d.ts +1 -0
  165. package/dist/components/theme-builder/ThemeBuilder.styles.d.ts +1 -0
  166. package/dist/components/themeContext.d.ts +1 -0
  167. package/dist/components/toast-container/ToastContainer.d.ts +1 -0
  168. package/dist/components/toast-container/ToastContainer.styles.d.ts +1 -0
  169. package/dist/components/toast-container/openToastWhileRunning.d.ts +1 -0
  170. package/dist/components/toolbar/Toolbar.d.ts +1 -0
  171. package/dist/components/toolbar/Toolbar.styles.d.ts +1 -0
  172. package/dist/components/visualization/Visualization.d.ts +1 -0
  173. package/dist/components/visualization/Visualization.styles.d.ts +1 -0
  174. package/dist/components/visualization/VisualizationScene.d.ts +1 -0
  175. package/dist/components/visualization/createVisualization.d.ts +1 -0
  176. package/dist/components/visualization/graph-node/GraphNode.d.ts +1 -0
  177. package/dist/components/visualization/table/Table.d.ts +1 -0
  178. package/dist/components/visualization/table/column/Column.d.ts +1 -0
  179. package/dist/components/visualization/table/column/Column.styles.d.ts +1 -0
  180. package/dist/components/visualization/visualizationView.d.ts +1 -0
  181. package/dist/constants/language.d.ts +1 -0
  182. package/dist/constants/layout.d.ts +1 -0
  183. package/dist/constants/open.d.ts +1 -0
  184. package/dist/constants/schema.d.ts +1 -0
  185. package/dist/constants/sql/dataType/Databricks.d.ts +1 -0
  186. package/dist/constants/sql/dataType/MSSQL.d.ts +1 -0
  187. package/dist/constants/sql/dataType/MariaDB.d.ts +1 -0
  188. package/dist/constants/sql/dataType/MySQL.d.ts +1 -0
  189. package/dist/constants/sql/dataType/Oracle.d.ts +1 -0
  190. package/dist/constants/sql/dataType/PostgreSQL.d.ts +1 -0
  191. package/dist/constants/sql/dataType/SQLite.d.ts +1 -0
  192. package/dist/constants/sql/dataType/Snowflake.d.ts +1 -0
  193. package/dist/constants/sql/dataType/index.d.ts +1 -0
  194. package/dist/constants/sql/database.d.ts +1 -0
  195. package/dist/engine/actions.d.ts +1 -0
  196. package/dist/engine/clock.d.ts +1 -0
  197. package/dist/engine/context.d.ts +1 -0
  198. package/dist/engine/generator.actions.d.ts +1 -0
  199. package/dist/engine/history.actions.d.ts +1 -0
  200. package/dist/engine/history.d.ts +1 -0
  201. package/dist/engine/hooks.d.ts +1 -0
  202. package/dist/engine/index.d.ts +1 -0
  203. package/dist/engine/index.js +44 -0
  204. package/dist/engine/modules/editor/actions.d.ts +9 -0
  205. package/dist/engine/modules/editor/atom.actions.d.ts +39 -0
  206. package/dist/engine/modules/editor/generator.actions.d.ts +1 -0
  207. package/dist/engine/modules/editor/history.d.ts +1 -0
  208. package/dist/engine/modules/editor/state.d.ts +11 -0
  209. package/dist/engine/modules/editor/utils/duplicate.d.ts +5 -2
  210. package/dist/engine/modules/editor/utils/findRelationshipColumn.d.ts +1 -0
  211. package/dist/engine/modules/editor/utils/focus.d.ts +1 -0
  212. package/dist/engine/modules/editor/utils/selectRangeColumn.d.ts +1 -0
  213. package/dist/engine/modules/index/actions.d.ts +1 -0
  214. package/dist/engine/modules/index/atom.actions.d.ts +1 -0
  215. package/dist/engine/modules/index/generator.actions.d.ts +1 -0
  216. package/dist/engine/modules/index/history.d.ts +1 -0
  217. package/dist/engine/modules/index-column/actions.d.ts +1 -0
  218. package/dist/engine/modules/index-column/atom.actions.d.ts +1 -0
  219. package/dist/engine/modules/index-column/generator.actions.d.ts +1 -0
  220. package/dist/engine/modules/index-column/history.d.ts +1 -0
  221. package/dist/engine/modules/memo/actions.d.ts +1 -0
  222. package/dist/engine/modules/memo/atom.actions.d.ts +1 -0
  223. package/dist/engine/modules/memo/generator.actions.d.ts +1 -0
  224. package/dist/engine/modules/memo/history.d.ts +1 -0
  225. package/dist/engine/modules/relationship/actions.d.ts +1 -0
  226. package/dist/engine/modules/relationship/atom.actions.d.ts +1 -0
  227. package/dist/engine/modules/relationship/generator.actions.d.ts +1 -0
  228. package/dist/engine/modules/relationship/history.d.ts +1 -0
  229. package/dist/engine/modules/relationship/hooks.d.ts +1 -0
  230. package/dist/engine/modules/settings/actions.d.ts +3 -7
  231. package/dist/engine/modules/settings/atom.actions.d.ts +39 -49
  232. package/dist/engine/modules/settings/generator.actions.d.ts +1 -0
  233. package/dist/engine/modules/settings/history.d.ts +1 -1
  234. package/dist/engine/modules/settings/scrollRange.d.ts +18 -0
  235. package/dist/engine/modules/table/actions.d.ts +1 -0
  236. package/dist/engine/modules/table/atom.actions.d.ts +1 -0
  237. package/dist/engine/modules/table/generator.actions.d.ts +1 -0
  238. package/dist/engine/modules/table/history.d.ts +1 -0
  239. package/dist/engine/modules/table/hooks.d.ts +1 -0
  240. package/dist/engine/modules/table-column/actions.d.ts +1 -0
  241. package/dist/engine/modules/table-column/atom.actions.d.ts +1 -0
  242. package/dist/engine/modules/table-column/generator.actions.d.ts +1 -0
  243. package/dist/engine/modules/table-column/history.d.ts +1 -0
  244. package/dist/engine/modules/table-column/hooks.d.ts +1 -0
  245. package/dist/engine/modules/table-column/utils/dataType.d.ts +1 -0
  246. package/dist/engine/replication-store.d.ts +1 -0
  247. package/dist/engine/rx-operators/actionsFilter.d.ts +1 -0
  248. package/dist/engine/rx-operators/bufferCircuitBreaker.d.ts +1 -0
  249. package/dist/engine/rx-operators/groupByStreamActions.d.ts +1 -0
  250. package/dist/engine/rx-operators/ignoreTagFilter.d.ts +1 -0
  251. package/dist/engine/rx-operators/index.d.ts +1 -0
  252. package/dist/engine/rx-operators/notEmptyActions.d.ts +1 -0
  253. package/dist/engine/rx-operators/readonlyIgnoreFilter.d.ts +1 -0
  254. package/dist/engine/rx-operators/sharedStreamActionsCompressor.d.ts +1 -0
  255. package/dist/engine/rx-store.d.ts +1 -0
  256. package/dist/engine/shared-store.d.ts +1 -0
  257. package/dist/engine/state.d.ts +1 -0
  258. package/dist/engine/store-hooks.d.ts +1 -0
  259. package/dist/engine/store.d.ts +1 -0
  260. package/dist/engine/tag.d.ts +1 -0
  261. package/dist/erd-editor.umd.js +5259 -0
  262. package/dist/hooks/useDarkMode.d.ts +1 -0
  263. package/dist/hooks/useFlipAnimation.d.ts +1 -0
  264. package/dist/hooks/useKeyBindingMap.d.ts +1 -0
  265. package/dist/hooks/useUnmounted.d.ts +1 -0
  266. package/dist/index.d.ts +1 -0
  267. package/dist/index.dev.d.ts +1 -0
  268. package/dist/index.js +19991 -0
  269. package/dist/internal-types/index.d.ts +1 -0
  270. package/dist/konva/batchDraw.d.ts +1 -0
  271. package/dist/konva/host.d.ts +1 -0
  272. package/dist/konva/jsx-types.test-d.d.ts +1 -0
  273. package/dist/konva/scene/columnDropTarget.d.ts +1 -0
  274. package/dist/konva/scene/contentBounds.d.ts +29 -0
  275. package/dist/konva/scene/konvaFlip.d.ts +1 -0
  276. package/dist/konva/scene/metrics.d.ts +1 -0
  277. package/dist/konva/scene/renderScene.d.ts +1 -0
  278. package/dist/konva/scene/viewFreeze.d.ts +20 -0
  279. package/dist/konva/scene/viewport.d.ts +14 -7
  280. package/dist/konva/testHandle.d.ts +1 -0
  281. package/dist/konva/theme.d.ts +1 -0
  282. package/dist/konva/workerDomStubs.d.ts +1 -0
  283. package/dist/schemaGCService--wGet5O7.js +9636 -0
  284. package/dist/services/export-png/ExportScene.d.ts +11 -4
  285. package/dist/services/export-png/documentScene.d.ts +16 -3
  286. package/dist/services/export-png/exportBox.d.ts +27 -0
  287. package/dist/services/export-png/exportPng.shared-worker.d.ts +1 -0
  288. package/dist/services/export-png/exportPngService.d.ts +1 -0
  289. package/dist/services/export-png/index.d.ts +11 -4
  290. package/dist/services/export-png/pixelRatio.d.ts +1 -0
  291. package/dist/services/export-png/renderPng.d.ts +4 -1
  292. package/dist/services/export-png/textWidth.d.ts +1 -0
  293. package/dist/services/schema-gc/index.d.ts +6 -3
  294. package/dist/services/schema-gc/procGC.d.ts +1 -0
  295. package/dist/services/schema-gc/schemaGC.shared-worker.d.ts +1 -0
  296. package/dist/services/schema-gc/schemaGCService.d.ts +1 -0
  297. package/dist/services/shikiService.d.ts +1 -0
  298. package/dist/styles/colorPicker.style.d.ts +1 -0
  299. package/dist/styles/fonts.styles.d.ts +1 -0
  300. package/dist/styles/reset.styles.d.ts +1 -0
  301. package/dist/styles/scrollbar.styles.d.ts +1 -0
  302. package/dist/styles/typography.styles.d.ts +1 -0
  303. package/dist/themes/radix-ui-theme.config.d.ts +1 -0
  304. package/dist/themes/radix-ui-theme.d.ts +1 -0
  305. package/dist/themes/tokens.d.ts +1 -0
  306. package/dist/utils/arrayHas.d.ts +3 -0
  307. package/dist/utils/attribute.d.ts +1 -0
  308. package/dist/utils/bit.d.ts +1 -0
  309. package/dist/utils/calcMemo.d.ts +1 -0
  310. package/dist/utils/calcTable.d.ts +1 -0
  311. package/dist/utils/clipboard.d.ts +1 -0
  312. package/dist/utils/collection/index.entity.d.ts +1 -0
  313. package/dist/utils/collection/indexColumn.entity.d.ts +1 -0
  314. package/dist/utils/collection/memo.entity.d.ts +1 -0
  315. package/dist/utils/collection/relationship.entity.d.ts +1 -0
  316. package/dist/utils/collection/sequence.d.ts +1 -0
  317. package/dist/utils/collection/table.entity.d.ts +1 -0
  318. package/dist/utils/collection/tableColumn.entity.d.ts +1 -0
  319. package/dist/utils/device-detect/index.d.ts +1 -0
  320. package/dist/utils/domEvent.d.ts +1 -0
  321. package/dist/utils/dragSelect.d.ts +1 -8
  322. package/dist/utils/draw-relationship/calc.d.ts +1 -0
  323. package/dist/utils/draw-relationship/chamfer.d.ts +1 -0
  324. package/dist/utils/draw-relationship/draw.d.ts +1 -0
  325. package/dist/utils/draw-relationship/incremental.d.ts +1 -0
  326. package/dist/utils/draw-relationship/index.d.ts +1 -0
  327. package/dist/utils/draw-relationship/nudge.d.ts +1 -0
  328. package/dist/utils/draw-relationship/pathFinding.d.ts +1 -0
  329. package/dist/utils/draw-relationship/route.d.ts +1 -0
  330. package/dist/utils/draw-relationship/sort.d.ts +1 -0
  331. package/dist/utils/draw-relationship/stub.d.ts +1 -0
  332. package/dist/utils/emitter.d.ts +1 -0
  333. package/dist/utils/file/exportFile.d.ts +5 -4
  334. package/dist/utils/file/importFile.d.ts +1 -0
  335. package/dist/utils/flipAnimation.d.ts +1 -0
  336. package/dist/utils/focus.d.ts +1 -0
  337. package/dist/utils/generator-code/aml.d.ts +1 -0
  338. package/dist/utils/generator-code/csharp.d.ts +1 -0
  339. package/dist/utils/generator-code/dbml.d.ts +1 -0
  340. package/dist/utils/generator-code/drizzle.d.ts +1 -0
  341. package/dist/utils/generator-code/go.d.ts +1 -0
  342. package/dist/utils/generator-code/graphql.d.ts +1 -0
  343. package/dist/utils/generator-code/index.d.ts +1 -0
  344. package/dist/utils/generator-code/java.d.ts +1 -0
  345. package/dist/utils/generator-code/jpa.d.ts +1 -0
  346. package/dist/utils/generator-code/kotlin.d.ts +1 -0
  347. package/dist/utils/generator-code/scala.d.ts +1 -0
  348. package/dist/utils/generator-code/sequelize.d.ts +1 -0
  349. package/dist/utils/generator-code/sqlalchemy.d.ts +1 -0
  350. package/dist/utils/generator-code/typeorm.d.ts +1 -0
  351. package/dist/utils/generator-code/typescript.d.ts +1 -0
  352. package/dist/utils/generator-code/utils.d.ts +1 -0
  353. package/dist/utils/globalEmitter.d.ts +1 -0
  354. package/dist/utils/globalEventObservable.d.ts +1 -0
  355. package/dist/utils/icon.d.ts +1 -0
  356. package/dist/utils/index.d.ts +2 -1
  357. package/dist/utils/internalEvents.d.ts +1 -0
  358. package/dist/utils/keyboard-shortcut/index.d.ts +10 -1
  359. package/dist/utils/keyboard-shortcut/utils.d.ts +1 -0
  360. package/dist/utils/promise.d.ts +1 -0
  361. package/dist/utils/rx-operators/fromCopy.d.ts +1 -0
  362. package/dist/utils/rx-operators/fromDraggable.d.ts +1 -0
  363. package/dist/utils/rx-operators/fromPaste.d.ts +1 -0
  364. package/dist/utils/rx-operators/fromShadowDraggable.d.ts +1 -0
  365. package/dist/utils/rx-operators/takeUnsubscribe.d.ts +1 -0
  366. package/dist/utils/safeCallback.d.ts +5 -0
  367. package/dist/utils/schema-aml-parser/convert.d.ts +1 -0
  368. package/dist/utils/schema-aml-parser/dataType.d.ts +1 -0
  369. package/dist/utils/schema-aml-parser/index.d.ts +1 -0
  370. package/dist/utils/schema-aml-parser/parser.d.ts +1 -0
  371. package/dist/utils/schema-aml-parser/tokenizer.d.ts +1 -0
  372. package/dist/utils/schema-aml-parser/types.d.ts +1 -0
  373. package/dist/utils/schema-dbml-parser/convert.d.ts +1 -0
  374. package/dist/utils/schema-dbml-parser/dataType.d.ts +1 -0
  375. package/dist/utils/schema-dbml-parser/index.d.ts +1 -0
  376. package/dist/utils/schema-dbml-parser/parser.d.ts +1 -0
  377. package/dist/utils/schema-dbml-parser/tokenizer.d.ts +1 -0
  378. package/dist/utils/schema-dbml-parser/types.d.ts +1 -0
  379. package/dist/utils/schema-graphql-parser/convert.d.ts +1 -0
  380. package/dist/utils/schema-graphql-parser/dataType.d.ts +1 -0
  381. package/dist/utils/schema-graphql-parser/index.d.ts +1 -0
  382. package/dist/utils/schema-graphql-parser/parser.d.ts +1 -0
  383. package/dist/utils/schema-graphql-parser/types.d.ts +1 -0
  384. package/dist/utils/schema-sql/Databricks.d.ts +1 -0
  385. package/dist/utils/schema-sql/MSSQL.d.ts +1 -0
  386. package/dist/utils/schema-sql/MariaDB.d.ts +1 -0
  387. package/dist/utils/schema-sql/MySQL.d.ts +1 -0
  388. package/dist/utils/schema-sql/Oracle.d.ts +1 -0
  389. package/dist/utils/schema-sql/PostgreSQL.d.ts +1 -0
  390. package/dist/utils/schema-sql/SQLite.d.ts +1 -0
  391. package/dist/utils/schema-sql/Snowflake.d.ts +1 -0
  392. package/dist/utils/schema-sql/index.d.ts +1 -0
  393. package/dist/utils/schema-sql/utils.d.ts +1 -0
  394. package/dist/utils/schema-sql-parser/index.d.ts +1 -0
  395. package/dist/utils/schema-sql-parser/utils.d.ts +1 -0
  396. package/dist/utils/sharedColor.d.ts +1 -0
  397. package/dist/utils/table-clipboard/copy.d.ts +15 -2
  398. package/dist/utils/table-clipboard/index.d.ts +1 -0
  399. package/dist/utils/table-clipboard/paste.d.ts +1 -0
  400. package/dist/utils/table-clipboard/payload.d.ts +30 -1
  401. package/dist/utils/table-clipboard/placement.d.ts +1 -0
  402. package/dist/utils/text.d.ts +1 -0
  403. package/dist/utils/validation.d.ts +2 -1
  404. package/dist/workers/exportPng.shared-worker.js +54 -0
  405. package/dist/workers/schemaGC.shared-worker.js +1 -0
  406. package/dist/workers/spawn.d.ts +8 -0
  407. package/dist/workers/spawn.inline.d.ts +8 -0
  408. package/package.json +52 -51
  409. package/dist/components/erd/hide-sign/HideSign.d.ts +0 -6
  410. package/dist/components/erd/hide-sign/HideSign.styles.d.ts +0 -1
  411. package/dist/components/erd/hide-sign/hideSignBounds.d.ts +0 -9
  412. package/dist/components/erd-editor/ErdEditor.stories.d.ts +0 -17
  413. package/dist/components/primitives/button/Button.stories.d.ts +0 -26
  414. package/dist/components/primitives/code-block/CodeBlock.stories.d.ts +0 -25
  415. package/dist/components/primitives/color-picker/ColorPicker.stories.d.ts +0 -26
  416. package/dist/components/primitives/context-menu/ContextMenu.stories.d.ts +0 -16
  417. package/dist/components/primitives/edit-input/EditInput.stories.d.ts +0 -36
  418. package/dist/components/primitives/highlighted-text/HighlightedText.stories.d.ts +0 -23
  419. package/dist/components/primitives/icon/Icon.stories.d.ts +0 -10
  420. package/dist/components/primitives/kbd/Kbd.stories.d.ts +0 -17
  421. package/dist/components/primitives/sash/Sash.stories.d.ts +0 -30
  422. package/dist/components/primitives/separator/Separator.stories.d.ts +0 -25
  423. package/dist/components/primitives/slider/Slider.stories.d.ts +0 -23
  424. package/dist/components/primitives/switch/Switch.stories.d.ts +0 -21
  425. package/dist/components/primitives/text-input/TextInput.stories.d.ts +0 -41
  426. package/dist/components/primitives/toast/Toast.stories.d.ts +0 -33
  427. package/dist/engine.js +0 -42
  428. package/dist/erd-editor.js +0 -41824
  429. package/dist/schemaGCService-DrlqIen8.js +0 -17549
  430. package/dist/themes/textColor.d.ts +0 -2
@@ -0,0 +1,54 @@
1
+ import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER as i,NAMESPACE as a,RULESET as o,alloc as s,dealloc as c,parse as l}from"stylis";import{Container as u}from"konva/lib/Container";import{Group as d}from"konva/lib/Group";import{Layer as f}from"konva/lib/Layer";import{Node as p}from"konva/lib/Node";import{Circle as m}from"konva/lib/shapes/Circle";import{Line as h}from"konva/lib/shapes/Line";import{Path as g}from"konva/lib/shapes/Path";import{Rect as ee}from"konva/lib/shapes/Rect";import{Text as _}from"konva/lib/shapes/Text";import{Stage as te}from"konva/lib/Stage";import{DD as ne}from"konva/lib/DragAndDrop";import{Konva as re}from"konva/lib/Global";import{camelCase as ie,clamp as ae,cloneDeep as oe,difference as se,groupBy as ce,head as le,isBoolean as ue,isFunction as de,isNil as v,isNotNil as fe,isNumber as y,isPlainObject as pe,isString as b,last as me,lowerFirst as he,noop as ge,omit as _e,pick as ve,range as ye,snakeCase as be,uniq as xe,upperFirst as Se}from"es-toolkit";import{Observable as Ce,Subject as we,animationFrames as Te,asapScheduler as Ee,buffer as De,debounceTime as Oe,defer as ke,filter as Ae,fromEvent as je,groupBy as Me,map as Ne,merge as Pe,mergeMap as Fe,observeOn as Ie,share as Le,takeUntil as Re,tap as ze,throttleTime as Be}from"rxjs";import{get as Ve,isEmpty as He,round as Ue}from"es-toolkit/compat";import{nanoid as x}from"nanoid";import We from"deepmerge";import{Kind as Ge,TokenKind as Ke,parse as qe}from"graphql";import Je,{getAccurateAgent as Ye}from"@egjs/agent";import{ArrowRight as Xe,Atom as Ze,Braces as Qe,Brackets as $e,CaseSensitive as et,Check as tt,ChevronRight as nt,Code as rt,Contrast as it,Copy as at,Database as ot,Diff as st,Eye as ct,FileDiff as lt,FileImage as ut,FileInput as dt,FileOutput as ft,GripVertical as pt,Hand as mt,KeyRound as ht,Maximize as gt,Minimize as _t,Minus as vt,MoonStar as yt,MousePointer2 as bt,Palette as xt,Plus as St,Redo2 as Ct,RefreshCw as wt,RotateCcwClock as Tt,Search as Et,Settings as Dt,Share2 as Ot,Spline as kt,StickyNote as At,Sun as jt,Table as Mt,TableProperties as Nt,Undo2 as Pt,Workflow as Ft,X as It}from"lucide";import{amber as Lt,amberA as Rt,amberDark as zt,amberDarkA as Bt,blue as Vt,blueA as Ht,blueDark as Ut,blueDarkA as Wt,bronze as Gt,bronzeA as Kt,bronzeDark as qt,bronzeDarkA as Jt,brown as Yt,brownA as Xt,brownDark as Zt,brownDarkA as Qt,crimson as $t,crimsonA as en,crimsonDark as tn,crimsonDarkA as nn,cyan as rn,cyanA as an,cyanDark as on,cyanDarkA as sn,gold as cn,goldA as ln,goldDark as un,goldDarkA as dn,grass as fn,grassA as pn,grassDark as mn,grassDarkA as hn,gray as gn,grayA as _n,grayDark as vn,grayDarkA as yn,green as bn,greenA as xn,greenDark as Sn,greenDarkA as Cn,indigo as wn,indigoA as Tn,indigoDark as En,indigoDarkA as Dn,iris as On,irisA as kn,irisDark as An,irisDarkA as jn,jade as Mn,jadeA as Nn,jadeDark as Pn,jadeDarkA as Fn,lime as In,limeA as Ln,limeDark as Rn,limeDarkA as zn,mauve as Bn,mauveA as Vn,mauveDark as Hn,mauveDarkA as Un,mint as Wn,mintA as Gn,mintDark as Kn,mintDarkA as qn,olive as Jn,oliveA as Yn,oliveDark as Xn,oliveDarkA as Zn,orange as Qn,orangeA as $n,orangeDark as er,orangeDarkA as tr,pink as nr,pinkA as rr,pinkDark as ir,pinkDarkA as ar,plum as or,plumA as sr,plumDark as cr,plumDarkA as lr,purple as ur,purpleA as dr,purpleDark as fr,purpleDarkA as pr,red as mr,redA as hr,redDark as gr,redDarkA as _r,ruby as vr,rubyA as yr,rubyDark as br,rubyDarkA as xr,sage as Sr,sageA as Cr,sageDark as wr,sageDarkA as Tr,sand as Er,sandA as Dr,sandDark as Or,sandDarkA as kr,sky as Ar,skyA as jr,skyDark as Mr,skyDarkA as Nr,slate as Pr,slateA as Fr,slateDark as Ir,slateDarkA as Lr,teal as Rr,tealA as zr,tealDark as Br,tealDarkA as Vr,tomato as Hr,tomatoA as Ur,tomatoDark as Wr,tomatoDarkA as Gr,violet as Kr,violetA as qr,violetDark as Jr,violetDarkA as Yr,yellow as Xr,yellowA as Zr,yellowDark as Qr,yellowDarkA as $r}from"@radix-ui/colors";import{layoutWithLines as ei,prepareWithSegments as ti}from"@chenglou/pretext";import{Easings as ni,Tween as ri}from"konva/lib/Tween";function ii(e){"@babel/helpers - typeof";return ii=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},ii(e)}function ai(e,t){if(ii(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(ii(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function oi(e){var t=ai(e,`string`);return ii(t)==`symbol`?t:t+``}function si(e,t,n){return(t=oi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ci=class extends EventTarget{constructor(...e){super(...e),si(this,`textContent`,``)}},li=class{};function ui(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{createElement:e=>e===`canvas`?ui():new ci}),Reflect.set(globalThis,`Node`,li),Reflect.set(globalThis,`HTMLElement`,li));function di(e,t){return Object.freeze({key:t??Symbol(),value:e})}var fi={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function pi(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var mi=pi(fi.subscribe,{bubbles:!0,composed:!0}),hi=pi(fi.unsubscribe,{bubbles:!0,composed:!0});function gi(e,t){let n=e=>{let n=e;t.dispatchEvent(mi(n.detail))},r=e=>{let n=e;t.dispatchEvent(hi(n.detail))};return e.addEventListener(mi.type,n),e.addEventListener(hi.type,r),()=>{e.removeEventListener(mi.type,n),e.removeEventListener(hi.type,r)}}function _i(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var vi=queueMicrotask??(e=>{Promise.resolve().then(e)}),yi=e=>t=>typeof t===e,bi=yi(`object`),xi=yi(`bigint`),Si=yi(`boolean`),Ci=yi(`function`),wi=yi(`number`),Ti=yi(`string`),Ei=yi(`symbol`),Di=yi(`undefined`),Oi=e=>e===null,{isArray:ki}=Array,Ai=e=>bi(e)&&!Oi(e)&&!ki(e),ji=e=>xi(e)||Si(e)||wi(e)||Ti(e)||Ei(e)||Di(e)||Oi(e);function Mi(){let e=new Set,t=t=>(e.has(t)||e.add(t),()=>{e.delete(t)});return{subscribe:t,next:t=>{e.forEach(e=>e(t))},asReadonly:()=>({subscribe:t})}}var Ni=`...`,Pi=`@@r-html-${Math.random().toString().substring(2,8)}`,Fi=`${Ni}${Pi}`,Ii=RegExp(`${Pi}_(\\d+)_`,`g`),Li=RegExp(`^${Pi}_\\d+_$`),Ri=/^\n/,S=function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),zi=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Bi=Symbol.for(`https://github.com/dineug/r-html#mounted`),Vi=Symbol.for(`https://github.com/dineug/r-html#unmounted`),Hi=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),Ui=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),Wi=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),Gi=Symbol.for(`https://github.com/dineug/r-html#updated`),Ki=[zi,Bi,Vi,Hi,Ui,Wi,Gi],qi=Symbol.for(`https://github.com/dineug/r-html#Directive`),Ji=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),Yi=null;function Xi(e){Yi=e}var Zi=e=>t=>{Yi&&(Yi[e]??(Yi[e]=[])).push(t)},Qi=Zi(zi),$i=Zi(Bi),ea=Zi(Vi);function ta(e,t){let n=Reflect.get(e,t,e);ki(n)&&n.forEach(_i)}function na(e){Ki.forEach(t=>Reflect.set(e,t,null,e))}function ra(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function C(e,t,n){ra(e,t),t.set(e,n)}function ia(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function w(e,t,n){return e.set(ia(e,t),n),n}function T(e,t){return e.get(ia(e,t))}var aa=Mi(),oa=e=>e,sa=e=>{var t,n;return t=new WeakMap,n=new WeakMap,class extends e{constructor(e,r,i,a){super(e,r,i,a),C(this,t,[]),C(this,n,null),this.hmr()}commit(e){let n=oa(e);super.commit(n),w(t,this,e)}hmr(){w(n,this,aa.subscribe(e=>T(t,this).includes(e)&&this.commit(T(t,this))))}destroy(){T(n,this)?.call(this),super.destroy?.()}}},ca=new WeakMap,la=new WeakMap,ua=new WeakMap,da=new WeakMap,fa=new WeakMap,pa={shallow:!1},ma=null;function ha(e){return ma=e,_i(e),ma=null,()=>ga(e)}function ga(e){Aa(e);let t=fa.get(e);if(t)for(let[n]of t.entries())la.get(n)?.delete(e);t&&fa.delete(e)}function _a(e){if(!ma)return;let t=la.get(e);t?t.has(ma)||t.add(ma):la.set(e,new Set([ma]))}function va(e,t){if(!ma)return;let n=fa.get(ma);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,new Set([t]))}else fa.set(ma,new Map([[e,new Set([t])]]))}var ya=e=>e instanceof Node||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof RegExp||e instanceof Date||e instanceof Promise||(ki(e)||Ai(e))&&Object.isFrozen(e);function ba(e,t={}){let{shallow:n}=Object.assign({},pa,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return ya(o)?o:(_a(e),va(e,i),!n&&(Ai(o)||ki(o))&&!ua.has(o)?ca.has(o)?ca.get(o):ba(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!ki(e)&&i!==n||t===`length`)&&(ja(e,t),Pa(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return ja(e,t),Pa(e,t),n}});return ca.set(e,r),ua.set(r,e),r}function xa(e){return(da.get(e)??da.set(e,Mi()).get(e)).asReadonly()}var Sa=[],Ca=new Map,wa=new Map,Ta=!0;function Ea(e,t,n){let r=fa.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var Da=e=>t=>{let n=Ca.get(t),r=()=>{},i=n?.promise?n.promise:new Promise(e=>{r=e});if(!n){let n={type:e,promise:i,fn:t,resolve:()=>{r()}};Sa.push(n),Ca.set(t,n)}return Ta&&=(vi(Na),!1),i},Oa=Da(`observer`),ka=Da(`nextTick`);function Aa(e){let t=Ca.get(e);if(!t)return;let n=Sa.indexOf(t);n===-1||Sa.splice(n,1),Ca.delete(e),t.resolve()}var ja=(e,t)=>la.get(e)?.forEach(n=>Ea(e,t,n)&&Oa(n));function Ma(){let e=Sa.shift();if(e){if(Ca.delete(e.fn),e.type===`observer`)ga(e.fn),ha(e.fn),e.resolve();else if(e.type===`nextTick`){let t=_i(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function Na(){for(;Sa.length;)Ma();Ta=!0}function Pa(e,t){let n=ca.get(e);if(!n)return;let r=da.get(n);if(!r)return;let i=wa.get(n);i?i.has(t)||i.add(t):(wa.set(n,new Set([t])),ka(()=>{let e=wa.get(n);e&&(wa.delete(n),e.forEach(e=>r.next(e)))}))}function Fa(e,t){let n=ba({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(mi({context:t,observer:r}))};return a(),Qi(a),ea(()=>{i().dispatchEvent(hi({context:t,observer:r}))}),n}function Ia(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=Mi(),a=new Map,o=e=>{let r=e;r.detail?.context?.key===t.key&&(r.stopPropagation(),r.detail.observer(n),a.set(r.detail.observer,i.subscribe(r.detail.observer)))},s=e=>{let n=e;n.detail?.context?.key===t.key&&(n.stopPropagation(),a.get(n.detail.observer)?.(),a.delete(n.detail.observer))};return r.addEventListener(mi.type,o),r.addEventListener(hi.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(mi.type,o),r.removeEventListener(hi.type,s);for(let e of a.values())e();a.clear()}}}var La=function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function Ra(e,t){return Reflect.set(t,qi,e),t}function za(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Ba(e,t){return(...n)=>Ra(La.node,[e(...n),t])}var Va=function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),Ha=new Set(Object.values(Va)),Ua=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),Wa=new WeakMap,Ga=new WeakMap,Ka=new Set([Va.svg]),qa=e=>`${Pi}_${e}_`,Ja=e=>ki(e)&&ki(e.raw),Ya=e=>Ai(e)&&Ja(e.strings)&&ki(e.values)&&Ha.has(Reflect.get(e,Ji)??``),Xa=e=>Ya(e)&&e[Ji]===Va.css,Za=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),Qa=Za(Fi),$a=Za(`.`),eo=Za(`?`),to=Za(`@`),no=Za(`on`),ro=Za(Pi,!1),io=e=>ro(e)&&Li.test(e?.trim()??``),ao=({type:e,value:t})=>e===S.spread||e===S.directive||ro(t),oo=e=>Ka.has(e),so=e=>io(e)?S.directive:Qa(e)?S.spread:$a(e)?S.property:to(e)||no(e)?S.event:eo(e)?S.boolean:S.attribute,co=e=>Qa(e)?e.substring(3):io(e)?e:$a(e)||to(e)||eo(e)?e.substring(1):no(e)?e.substring(2):e;function lo(e){let t=[],n=Ii.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=Ii.exec(e)}return t}var uo=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function fo(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,uo,n)}return()=>{Reflect.deleteProperty(e,uo)}}function po(e){return Reflect.get(e,uo)??null}function mo(e){return ji(e)&&!Oi(e)&&!Di(e)||Xa(e)?String(e):``}var ho={createElement:(e,t=!1)=>t?document.createElementNS(`http://www.w3.org/2000/svg`,e):document.createElement(e),createText:e=>document.createTextNode(e),createMarker:e=>document.createComment(e),createFragment:()=>document.createDocumentFragment(),createEventBus:()=>document.createElement(`div`),insertBefore(e,t){let n=t.parentNode;n&&n.insertBefore(e,t)},appendChild(e,t){e.appendChild(t)},prependChild(e,t){e.prepend(t)},removeChild(e){e.parentNode?.removeChild(e)},parentOf:e=>e.parentNode,nextSiblingOf:e=>e.nextSibling,setText(e,t){e.data=t},setAttribute(e,t,n,r){e.setAttribute(t,r?mo(n).trim():n)},removeAttribute(e,t){e.removeAttribute(t)},isHostNode:e=>e instanceof Node,isMarker:e=>e instanceof Comment,isText:e=>e instanceof Text,isElement:e=>e instanceof Element,isFragment:e=>e instanceof DocumentFragment,addEventListener(e,t,n,r){e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){e.removeEventListener(t,n,r)},getRoot:e=>e.getRootNode(),createComponentContext(e,t){let n={host:document.body,get parentElement(){return e.parentElement},dispatchEvent:e=>t.dispatchEvent(e)},r=e.getRootNode();if(r instanceof ShadowRoot)n.host=r.host;else if(r instanceof DocumentFragment){let e=po(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=gi(e,t),r=fo(e,t);return()=>{n(),r()}}};function go(e){"@babel/helpers - typeof";return go=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},go(e)}function _o(e,t){if(go(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(go(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function vo(e){var t=_o(e,`string`);return go(t)==`symbol`?t:t+``}function yo(e,t,n){return(t=vo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bo,xo=function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});bo=Symbol.iterator;var So=class{constructor(e={}){yo(this,`type`,`comment`),yo(this,`value`,``),yo(this,`attrs`,void 0),yo(this,`parent`,null),yo(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[bo](){if(yield this,this.children)for(let e of this.children)yield*e}},Co=e=>!!e&&e!==`false`;function wo(e){let t=({type:t,value:n},r=!1)=>t===xo.element?e.createElement(n,r):t===xo.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case S.attribute:e.setAttribute(t,r,i??``,!1);break;case S.boolean:Co(i)&&e.setAttribute(t,r,``,!1);break;case S.property:Reflect.set(t,r,i,t)}},r=(t,n)=>{e.insertBefore(t,n)},i=(t,n)=>{let r=e.parentOf(n);if(!r)return;let i=e.nextSiblingOf(n);i?e.insertBefore(t,i):e.appendChild(r,t)},a=t=>e.parentOf(t)?(e.removeChild(t),t):null,o=(t,n)=>{let r=[],i=e.nextSiblingOf(t);for(;i&&i!==n;)r.push(i),i=e.nextSiblingOf(i);return r},s=(e,t)=>{o(e,t).forEach(a)};return{...e,createNode:t,setAttr:n,insertBeforeNode:r,insertAfterNode:i,removeNode:a,rangeNodes:o,removeRange:s}}var E=wo(ho);E.setAttr,E.insertBeforeNode,E.insertAfterNode,E.removeNode,E.rangeNodes,E.removeRange;var To=E.isHostNode;function Eo(e,{type:t,name:n,value:r}){switch(t){case S.attribute:case S.property:Reflect.set(e,n,r);break;case S.boolean:Reflect.set(e,n,Co(r))}}var Do=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function Oo(e,t){if(e===t)return!0;let n=Ai(e)?e:{},r=Ai(t)?t:{},i=Object.keys(n),a=Object.keys(r);return i.length===a.length&&a.every(e=>Reflect.get(n,e)===Reflect.get(r,e))}var ko=e=>ki(e)&&Ci(e[0])&&(Di(e[1])||Si(e[1])||Ai(e[1])),Ao=()=>{},jo=e=>e instanceof HTMLElement,Mo=e=>e instanceof SVGElement,No=e=>e instanceof Promise,Po=new WeakMap,Fo=new WeakMap,Io=new WeakMap,Lo=new WeakMap,Ro=new WeakMap,zo=new WeakMap,Bo=new WeakMap,Vo=new WeakMap,Ho=new WeakMap,Uo=class{constructor(e,{name:t,value:n},r=E){C(this,Po,void 0),C(this,Fo,void 0),C(this,Io,void 0),C(this,Lo,void 0),C(this,Ro,[]),C(this,zo,[]),C(this,Bo,void 0),C(this,Vo,null),C(this,Ho,null),w(Po,this,r),w(Fo,this,e),w(Io,this,t),w(Lo,this,n),w(Ro,this,lo(n??``)),w(Bo,this,T(Ro,this).length===1&&(n??``).trim()===T(Ro,this)[0][0])}commit(e){let t=T(Ro,this).map(([t,n])=>e[n]);if(Do(T(zo,this),t))return;let n=t[t.length-1];if(T(Io,this)===`class`)this.classCommit(n);else if(T(Io,this)===`style`)this.styleCommit(n);else if(T(Bo,this))T(Po,this).setAttribute(T(Fo,this),T(Io,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(T(Ro,this)[n][0]),mo(t)),T(Lo,this)??``);T(Po,this).setAttribute(T(Fo,this),T(Io,this),e.trim(),!1)}w(zo,this,t)}classCommit(e){let t=T(Fo,this);if(!jo(t)&&!Mo(t))return;let n=T(zo,this)[T(zo,this).length-1];if(n===e||ki(n)&&ki(e)&&Do(n,e)||Ai(n)&&Ai(e)&&Oo(n,e))return;let r=[...t.classList],i=Go(e);if(Oi(T(Ho,this)))w(Ho,this,r);else{let e=T(Ho,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=T(Fo,this);if(!jo(t)&&!Mo(t))return;let n=T(zo,this)[T(zo,this).length-1];if(Oo(n,e))return;let r=Wo(t),i=Ai(e)?e:{};if(Oi(T(Vo,this)))w(Vo,this,r);else{let e=T(Vo,this);Object.keys(r).filter(t=>!e[t]&&!i[t]).forEach(e=>t.style.removeProperty(e))}for(let e of Object.keys(i))t.style.setProperty(e,i[e])}};function Wo(e){let t={};for(let n=0;n<e.style.length;n++){let r=e.style.item(n);t[r]=e.style.getPropertyValue(r)}return t}function Go(e,t=[]){if(!e)return t;if(Xa(e))return t.push(mo(e)),t;if(ji(e))t.push(mo(e));else if(bi(e)){if(ki(e))for(let n=0;n<e.length;n++)e[n]&&Go(e[n],t);else for(let n in e)e[n]&&t.push(mo(n))}return t}var Ko=new WeakMap,qo=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,Zo=class{constructor(e,{name:t,value:n},r=E){C(this,Ko,void 0),C(this,qo,void 0),C(this,Jo,void 0),C(this,Yo,[]),C(this,Xo,[]),w(Ko,this,r),w(qo,this,e),w(Jo,this,t),w(Yo,this,lo(n??``))}commit(e){let t=T(Yo,this).map(([t,n])=>e[n]);if(Do(T(Xo,this),t))return;let n=t[t.length-1];Co(n)?T(Ko,this).setAttribute(T(qo,this),T(Jo,this),``,!1):T(Ko,this).removeAttribute(T(qo,this),T(Jo,this)),w(Xo,this,t)}},Qo=e=>ki(e)&&Reflect.get(e,qi)===La.attribute,$o=new WeakMap,es=new WeakMap,ts=new WeakMap,ns=new WeakMap,rs=new WeakMap,is=class{constructor(e,{name:t}){C(this,$o,void 0),C(this,es,void 0),C(this,ts,null),C(this,ns,null),C(this,rs,null),w($o,this,e),w(es,this,lo(t)[0])}commit(e){let[,t]=T(es,this),n=e[t];if(!Qo(n))return;let[r,i]=n;if(T(ts,this)!==i)T(rs,this)?.call(this),w(ns,this,i({node:T($o,this)})),w(ts,this,i),w(rs,this,T(ns,this)?.call(this,r));else{let e=T(ns,this)?.call(this,r);T(rs,this)!==e&&(T(rs,this)?.call(this),w(rs,this,e))}}destroy(){T(rs,this)?.call(this)}},as=new WeakMap,os=new WeakMap,ss=new WeakMap,cs=new WeakMap,ls=new WeakMap,us=class{constructor(e,{name:t,value:n},r=E){C(this,as,void 0),C(this,os,void 0),C(this,ss,void 0),C(this,cs,[]),C(this,ls,[]),w(as,this,r),w(os,this,e),w(ss,this,t),w(cs,this,lo(n??``))}commit(e){let t=T(cs,this).map(([t,n])=>e[n]).filter(e=>Ci(e)||ko(e));Do(T(ls,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=ds(e);T(as,this).addEventListener(T(os,this),T(ss,this),t,n)}),w(ls,this,t))}clear(){T(ls,this).forEach(e=>{let[t,n]=ds(e);T(as,this).removeEventListener(T(os,this),T(ss,this),t,n)})}destroy(){this.clear()}};function ds(e){return Ci(e)?[e,void 0]:e}var fs=new WeakMap,ps=new WeakMap,ms=new WeakMap,hs=new WeakMap,gs=class{constructor(e,{name:t,value:n}){C(this,fs,void 0),C(this,ps,void 0),C(this,ms,[]),C(this,hs,[]),w(fs,this,e),w(ps,this,t),w(ms,this,lo(n??``))}commit(e){let t=T(ms,this).map(([t,n])=>e[n]);if(Do(T(hs,this),t))return;let n=t[t.length-1];Reflect.set(T(fs,this),T(ps,this),n,T(fs,this)),w(hs,this,t)}},_s=new WeakMap,vs=new WeakMap,ys=new WeakMap,bs=class{constructor(e,{name:t}){C(this,_s,void 0),C(this,vs,void 0),C(this,ys,null),w(_s,this,e),w(vs,this,lo(t)[0])}commit(e){let[,t]=T(vs,this),n=e[t];!Ai(n)||Oo(T(ys,this),n)||(Object.keys(n).forEach(e=>Reflect.set(T(_s,this),e,n[e],T(_s,this))),w(ys,this,n))}},xs=(e,t,n=E)=>t.type===S.attribute?new Uo(e,t,n):t.type===S.boolean?new Zo(e,t,n):t.type===S.event?new us(e,t,n):t.type===S.property?new gs(e,t):t.type===S.spread?new bs(e,t):new is(e,t),Ss=new WeakMap,Cs=new WeakMap,ws=new WeakMap,Ts=new WeakMap,Es=new WeakMap,Ds=class{constructor(e,{value:t},n=E){C(this,Ss,void 0),C(this,Cs,void 0),C(this,ws,void 0),C(this,Ts,[]),C(this,Es,[]),w(Ss,this,n),w(Cs,this,e),w(ws,this,t),Ti(t)&&w(Ts,this,lo(t))}commit(e){let t=T(Ts,this).map(([t,n])=>e[n]);if(Do(T(Es,this),t))return;w(Es,this,t);let n=T(Es,this).reduce((e,t,n)=>e.replace(new RegExp(T(Ts,this)[n][0]),ji(t)&&!Oi(t)&&!Di(t)?String(t):``),T(ws,this)??``);T(Ss,this).setText(T(Cs,this),n)}},Os=new WeakMap,ks=new WeakMap,As=new WeakMap,js=new WeakMap,Ms=class{constructor(e,{name:t,value:n}){C(this,Os,void 0),C(this,ks,void 0),C(this,As,[]),C(this,js,[]),w(Os,this,e),w(ks,this,t),w(As,this,lo(n??``))}commit(e){let t=T(As,this).map(([t,n])=>e[n]);if(Do(T(js,this),t))return;let n=t[t.length-1];Reflect.set(T(Os,this),T(ks,this),n),w(js,this,t)}},Ns=function(e){return e.create=`create`,e.move=`move`,e}({});function Ps(e){let t=[],n=new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===bc.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function Fs(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=Ac(e),a={type:i,key:i===bc.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function Is(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=new Set,o=[],s=e.items,c=t.items;return s.forEach((e,t)=>{let n=c.findIndex((t,n)=>e.type===t.type&&e.key===t.key&&!a.has(n));n===-1?r?i.delete.push({from:t}):o.push(e):(a.add(n),i.update.push({action:`move`,from:t,to:n}))}),o.forEach(n=>{let r=e.itemToIndex.get(n),o=c.find((e,t)=>n.type===e.type&&!a.has(t));if(o){let e=t.itemToIndex.get(o);a.add(e),i.update.push({action:`move`,from:r,to:e})}else i.delete.push({from:r})}),c.forEach((e,n)=>{a.has(n)||i.update.push({action:`create`,from:-1,to:t.itemToIndex.get(e)})}),i.update.sort((e,t)=>e.to-t.to),i}var Ls=new WeakMap,Rs=new WeakMap,zs=new WeakMap,Bs=new WeakMap,Vs=class{constructor(e,t,n=E){C(this,Ls,void 0),C(this,Rs,void 0),C(this,zs,void 0),C(this,Bs,[]),w(Rs,this,e),w(zs,this,t),w(Ls,this,n)}commit(e){let t=Is(Ps(T(Bs,this)),Fs(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case Ns.create:let t=T(Ls,this).createMarker(``);i===0?T(Ls,this).insertAfterNode(t,T(Rs,this)):T(Bs,this).length?T(Ls,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:T(Bs,this)[i-1].endNode):T(Ls,this).insertBeforeNode(t,T(zs,this)),n[i]=new Ws(t,e[i],T(Ls,this));break;case Ns.move:if(n[i]=T(Bs,this)[r],i===r)return;i===0?T(Bs,this)[r].insert(`after`,T(Rs,this)):T(Bs,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:T(Bs,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>T(Bs,this)[e].destroy()),w(Bs,this,Array.from(n)),T(Bs,this).forEach((t,n)=>t.commit(e[n]))}destroy(){T(Bs,this).forEach(e=>e.destroy())}},Hs=new WeakMap,Us=new WeakMap,Ws=class{constructor(e,t,n=E){C(this,Hs,void 0),C(this,Us,void 0),yo(this,`startNode`,void 0),yo(this,`endNode`,void 0),yo(this,`type`,void 0),yo(this,`value`,void 0),w(Us,this,n),this.startNode=n.createMarker(``),this.endNode=n.createMarker(``),n.insertBeforeNode(this.startNode,e),n.insertAfterNode(this.endNode,e),n.removeNode(e),this.value=t,this.type=Ac(t),w(Hs,this,Pc(this.type,this.startNode,this.endNode,n))}commit(e){T(Hs,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...T(Us,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>T(Us,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>T(Us,this).insertAfterNode(e,t))}destroy(){T(Hs,this).destroy?.(),T(Us,this).removeRange(this.startNode,this.endNode),T(Us,this).removeNode(this.startNode),T(Us,this).removeNode(this.endNode)}},Gs=new WeakMap,Ks=new WeakMap,qs=new WeakMap,Js=new WeakMap,Ys=new WeakMap,Xs=new WeakMap,Zs=class{constructor(e,t,n=E){C(this,Gs,void 0),C(this,Ks,void 0),C(this,qs,void 0),C(this,Js,null),C(this,Ys,null),C(this,Xs,void 0),w(Ks,this,e),w(qs,this,t),w(Gs,this,n)}commit(e){if(!xc(e))return;let[t,n]=e;if(T(Js,this)!==n)this.clear(),w(Ys,this,n(za(T(Ks,this),T(qs,this),T(Gs,this)))),w(Js,this,n),w(Xs,this,T(Ys,this)?.call(this,t));else{let e=T(Ys,this)?.call(this,t);T(Xs,this)!==e&&(this.clear(),w(Xs,this,e))}}clear(){T(Xs,this)?.call(this),T(Gs,this).removeRange(T(Ks,this),T(qs,this))}destroy(){this.clear()}},Qs=class{constructor(e,t){}commit(e){}},$s=new WeakMap,ec=new WeakMap,tc=new WeakMap,nc=class{constructor(e,t,n=E){C(this,$s,void 0),C(this,ec,void 0),C(this,tc,null),w(ec,this,t),w($s,this,n)}commit(e){T(tc,this)!==e&&(T(tc,this)&&T($s,this).removeNode(T(tc,this)),T($s,this).insertBeforeNode(e,T(ec,this)),w(tc,this,e))}},rc=new WeakMap,ic=new WeakMap,ac=new WeakMap,oc=new WeakMap,sc=new WeakMap,cc=new WeakMap,lc=class{constructor(e,t,n=E){C(this,rc,void 0),C(this,ic,void 0),C(this,ac,void 0),C(this,oc,null),C(this,sc,null),C(this,cc,Ao),w(ic,this,e),w(ac,this,t),w(rc,this,n)}commit(e){T(oc,this)!==e&&(this.clear(),No(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=uc(e);w(cc,this,n),t.then(e=>{let t=Ac(e);w(sc,this,Pc(t,T(ic,this),T(ac,this),T(rc,this))),T(sc,this)?.commit(e)}),w(oc,this,e)}partClear(){T(sc,this)?.destroy?.(),T(rc,this).removeRange(T(ic,this),T(ac,this))}clear(){T(cc,this).call(this),this.partClear(),w(cc,this,Ao)}destroy(){this.clear()}};function uc(e){let t=Ao,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var dc=new WeakMap,fc=new WeakMap,pc=new WeakMap,mc=class{constructor(e,t,n=E){C(this,dc,void 0),C(this,fc,void 0),C(this,pc,null),w(dc,this,n),w(fc,this,n.createText(``)),n.insertAfterNode(T(fc,this),e)}commit(e){T(pc,this)!==e&&(T(dc,this).setText(T(fc,this),Oi(e)||Di(e)?``:String(e)),w(pc,this,e))}},hc=new WeakMap,gc=new WeakMap,_c=new WeakMap,vc=new WeakMap,yc=class{constructor(e,t,n=E){C(this,hc,void 0),C(this,gc,void 0),C(this,_c,void 0),C(this,vc,null),w(gc,this,e),w(_c,this,t),w(hc,this,n)}commit(e){let{strings:t,values:n}=e;T(vc,this)&&!T(vc,this).equalStrings(t)&&(T(vc,this).destroy(),w(vc,this,null)),T(vc,this)||(w(vc,this,new hl(e,T(gc,this),T(_c,this),T(hc,this))),T(vc,this).insert(`before`,T(_c,this))),T(vc,this).commit(n)}destroy(){T(vc,this)?.destroy()}},bc=function(e){return e.primitive=`primitive`,e.templateLiterals=`templateLiterals`,e.array=`array`,e.node=`node`,e.object=`object`,e.function=`function`,e.directive=`directive`,e}({}),xc=e=>ki(e)&&Reflect.get(e,qi)===La.node,Sc=e=>t=>t instanceof e,Cc=Sc(mc),wc=Sc(yc),Tc=Sc(Vs),Ec=Sc(nc),Dc=Sc(lc),Oc=Sc(Qs),kc=Sc(Zs),Ac=e=>ji(e)?`primitive`:Ya(e)?`templateLiterals`:xc(e)?`directive`:ki(e)?`array`:To(e)?`node`:Ci(e)?`function`:`object`,jc={primitive:Cc,templateLiterals:wc,array:Tc,node:Ec,function:Oc,object:Dc,directive:kc},Mc={primitive:mc,templateLiterals:yc,array:Vs,node:nc,function:Qs,object:lc,directive:Zs},Nc=(e,t)=>jc[e](t),Pc=(e,t,n,r=E)=>new Mc[e](t,n,r),Fc=new WeakMap,Ic=new WeakMap,Lc=new WeakMap,Rc=new WeakMap,zc=new WeakMap,Bc=new WeakMap,Vc=new WeakMap,Hc=new WeakMap,Uc=new WeakMap,Wc=new WeakMap,Gc=new WeakMap,Kc=new WeakMap,qc=class{constructor(e,t,n,r,i=E){C(this,Fc,void 0),C(this,Ic,void 0),C(this,Lc,void 0),C(this,Rc,void 0),C(this,zc,void 0),C(this,Bc,[]),C(this,Vc,[]),C(this,Hc,null),C(this,Uc,ba({},{shallow:!0})),C(this,Wc,null),C(this,Gc,null),C(this,Kc,void 0),w(Fc,this,i),w(Kc,this,i.createEventBus()),w(Ic,this,e),w(Lc,this,t),w(zc,this,n),w(Rc,this,lo(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>Eo(T(Uc,this),e)),n.attrs?.forEach(e=>{e.type===S.directive?T(Bc,this).push(e):e.type===S.spread?r.push(new bs(T(Uc,this),e)):e.type===S.event?r.push(new us(T(Kc,this),e,i)):r.push(new Ms(T(Uc,this),e))})}createContext(){return T(Fc,this).createComponentContext(T(Ic,this),T(Kc,this))}commit(e){let[,t]=T(Rc,this),n=e[t];if(!Ci(n)||T(Wc,this)===n){T(Vc,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),Xi(this);let i=n.call(r,T(Uc,this),r);Xi(null),T(Bc,this).length&&T(Vc,this).push(...T(Bc,this).map(e=>new is(r,e))),ta(this,zi);let a=!1;w(Gc,this,ha(()=>{let e=i(),t=Ac(e);Nc(t,T(Hc,this))||(this.partClear(),w(Hc,this,Pc(t,T(Ic,this),T(Lc,this),T(Fc,this)))),ta(this,a?Ui:Hi),T(Hc,this)?.commit(e),a?ta(this,Gi):(ta(this,Wi),a=!0)})),T(Vc,this).forEach(t=>t.commit(e)),ta(this,Bi),w(Wc,this,n)}partClear(){T(Hc,this)?.destroy?.(),T(Fc,this).removeRange(T(Ic,this),T(Lc,this))}clear(){T(Fc,this).removeRange(T(Ic,this),T(Lc,this)),ta(this,Vi),T(Vc,this).forEach(e=>e.destroy?.()),T(Gc,this)?.call(this),w(Vc,this,[]),w(Gc,this,null),na(this)}destroy(){this.clear(),this.partClear()}},Jc,Yc,Xc,Zc,Qc=sa((Jc=new WeakMap,Yc=new WeakMap,Xc=new WeakMap,Zc=new WeakMap,class{constructor(e,t,n,r=E){C(this,Jc,void 0),C(this,Yc,void 0),C(this,Xc,void 0),C(this,Zc,void 0),w(Jc,this,r),w(Yc,this,r.createMarker(``)),w(Xc,this,r.createMarker(``)),w(Zc,this,new qc(T(Yc,this),T(Xc,this),t,n,r)),r.insertBeforeNode(T(Yc,this),e),r.insertAfterNode(T(Xc,this),e),r.removeNode(e)}commit(e){T(Zc,this).commit(e)}destroy(){T(Zc,this).destroy?.(),T(Jc,this).removeNode(T(Yc,this)),T(Jc,this).removeNode(T(Xc,this))}})),$c=new WeakMap,el=new WeakMap,tl=new WeakMap,nl=new WeakMap,rl=new WeakMap,il=new WeakMap,al=class{constructor(e,{value:t},n=E){C(this,$c,void 0),C(this,el,void 0),C(this,tl,void 0),C(this,nl,void 0),C(this,rl,null),C(this,il,null),w($c,this,n),w(el,this,n.createMarker(``)),w(tl,this,n.createMarker(``)),w(nl,this,lo(t)[0]),n.insertBeforeNode(T(el,this),e),n.insertAfterNode(T(tl,this),e),n.removeNode(e)}commit(e){let[,t]=T(nl,this),n=e[t];if(T(rl,this)===n)return;let r=Ac(n);Nc(r,T(il,this))||(Oi(T(il,this))||this.clear(),w(il,this,Pc(r,T(el,this),T(tl,this),T($c,this)))),T(il,this)?.commit(n),w(rl,this,n)}clear(){T(il,this)?.destroy?.(),T($c,this).removeRange(T(el,this),T(tl,this))}destroy(){this.clear(),T($c,this).removeNode(T(el,this)),T($c,this).removeNode(T(tl,this))}};function ol(e=[],t,n=!1,r=[],i=E){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new Qc(n,e,r,i));return}let a=i.createNode(e,e.isSvg||n);i.appendChild(t,a),i.isMarker(a)&&e.isMarker&&r.push(new Ds(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new al(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>xs(a,e,i))),e.children&&ol(e.children,a,e.isSvg||n,r,i))}),r}function sl(e,t=!1,n=E){let r=n.createFragment();return[r,ol(e.children,r,t,[],n)]}var cl=new WeakMap,ll=new WeakMap,ul=new WeakMap,dl=new WeakMap,fl=new WeakMap,pl=new WeakMap,ml=new WeakMap,hl=class{constructor(e,t,n,r=E){if(C(this,cl,void 0),C(this,ll,void 0),C(this,ul,void 0),C(this,dl,null),C(this,fl,[]),C(this,pl,void 0),C(this,ml,!1),w(cl,this,r),w(ll,this,r.createMarker(``)),w(ul,this,r.createMarker(``)),w(pl,this,e.strings),e[Ji]!==Va.html&&e[Ji]!==Va.svg)return;let[i,a]=sl(e.template.node,oo(e[Ji]),r);w(dl,this,i),w(fl,this,a),t&&n?(w(ll,this,t),w(ul,this,n),w(ml,this,!0)):(r.prependChild(i,T(ll,this)),r.appendChild(i,T(ul,this)))}equalStrings(e){return T(pl,this)===e}commit(e){T(fl,this).forEach(t=>t.commit(e))}insert(e,t){T(dl,this)&&(e===`before`?T(cl,this).insertBeforeNode(T(dl,this),t):e===`after`?T(cl,this).insertAfterNode(T(dl,this),t):T(cl,this).appendChild(t,T(dl,this)),w(dl,this,null))}destroy(){T(fl,this).forEach(e=>e.destroy?.()),T(cl,this).removeRange(T(ll,this),T(ul,this)),T(ml,this)||(T(cl,this).removeNode(T(ll,this)),T(cl,this).removeNode(T(ul,this)))}},gl=function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),_l={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},vl=e=>t=>e===t,yl=e=>t=>e.test(t),bl={doubleQuote:vl(_l.doubleQuote),singleQuote:vl(_l.singleQuote),whiteSpace:yl(_l.whiteSpace),string:yl(_l.string),breakString:yl(_l.breakString),lt:vl(_l.lt),gt:vl(_l.gt),slash:vl(_l.slash),equal:vl(_l.equal),hyphen:vl(_l.hyphen),exclamationPoint:vl(_l.exclamationPoint)},xl=e=>t=>bl.lt(e[t])&&bl.exclamationPoint(e[t+1])&&bl.hyphen(e[t+2])&&bl.hyphen(e[t+3]);function Sl(e){let t=[],n=0,r=()=>n<e.length,i=xl(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(bl.whiteSpace(s)){let i=``;for(;r()&&bl.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(bl.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(bl.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(bl.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(bl.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(bl.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!bl.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(bl.singleQuote(s)){let i=``;for(s=e[++n];r()&&!bl.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(bl.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(bl.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(bl.lt(s)){a(i(n)?`comment`:`element`);continue}if(bl.string(s)){let i=``;for(;r()&&bl.string(s)&&!bl.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var Cl=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,wl=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,Tl=wl(`type`),El=wl(`value`),Dl=Tl(gl.lt),Ol=Tl(gl.gt),kl=Tl(gl.slash),Al=Tl(gl.equal),jl=Tl(gl.string),Ml=Tl(gl.whiteSpace),Nl=El(`!--`),Pl=El(`--`),Fl=e=>{let t=Dl(e),n=jl(e);return e=>t(e)&&n(e+1)},Il=e=>{let t=Dl(e),n=kl(e),r=jl(e),i=Ol(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},Ll=e=>{let t=Dl(e),n=kl(e),r=Ol(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},Rl=e=>{let t=kl(e),n=Ol(e);return e=>t(e)&&n(e+1)},zl=e=>Cl.test(e),Bl=e=>{let t=Dl(e),n=jl(e),r=Nl(e);return e=>t(e)&&n(e+1)&&r(e+1)},Vl=e=>{let t=jl(e),n=Pl(e),r=Ol(e);return e=>t(e)&&n(e)&&r(e+1)},Hl=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},Ul=Hl(`attrs`),Wl=Hl(`children`);function Gl(e){let t=new So({type:xo.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=Fl(e),a=Il(e),o=Ll(e),s=Rl(e),c=Bl(e),l=Vl(e),u=Dl(e),d=Ol(e),f=Al(e),p=Ml(e),m=jl(e),h=()=>{let t=e[n],r={name:t.value};return t=e[++n],f(n)&&(t=e[++n],m(n)&&(r.value=t.value,n++)),r},g=t=>{let f=e[n];if(p(n)||m(n)){let i=f.value;for(f=e[++n];r()&&!u(n);)i+=f.value,f=e[++n];return i=i.trim(),i.length?new So({parent:t,type:xo.text,value:i}):null}if(c(n)){let i=``;for(n+=2,f=e[n];r()&&!l(n);)i+=f.value,f=e[++n];return l(n)&&(n+=2),new So({parent:t,type:xo.comment,value:i})}if(i(n)){f=e[++n];let i=zl(f.value),c=new So({parent:t,type:xo.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){Ul(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)Wl(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)Wl(t)(g(t));return t}var Kl=e=>Gl(Sl(e)),ql=(e,t)=>e.reduce((e,n)=>{let r=t(n),i=e[r];return i?i.push(n):e[r]=[n],e},Object.create(null)),Jl=Symbol.iterator,Yl=class e{get isMarker(){return ro(this.value)}get isMarkerOnly(){return io(this.value)}get isSvg(){return this.type===xo.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===xo.element&&this.isMarkerOnly}constructor(t,n=null){if(yo(this,`type`,xo.comment),yo(this,`value`,``),yo(this,`staticAttrs`,void 0),yo(this,`attrs`,void 0),yo(this,`parent`,null),yo(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=Ql(t.attrs);e.length&&(this.staticAttrs=e),n.length&&(this.attrs=n)}t.children&&(this.children=t.children.map(t=>new e(t,this)))}insert(e,t,n){if(this.children){let r=e===`before`?0:1;this.children.includes(n)&&this.children.splice(this.children.indexOf(n)+r,0,t)}else this.children=[t]}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[Jl](){if(yield this,this.children)for(let e of this.children)yield*e}};function Xl(e){let t=new Yl(e);for(let e of t)e.type===xo.text&&!io(e.value)&&Zl(e);return t}function Zl(e){let t=lo(e.value);e.value.replace(Ii,Pi).split(Pi).reduce((n,r,i)=>(i<t.length?n.push(new Yl(new So({type:xo.text,value:r}),e.parent),new Yl(new So({type:xo.text,value:t[i][0]}),e.parent)):n.push(new Yl(new So({type:xo.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&Ri.test(e.value))).reverse().forEach((t,n,{length:r})=>n===r-1?e.value=t.value:e.parent&&e.parent.insert(`after`,t,e))}function Ql(e=[]){let t=ql(e,e=>co(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=so(i.name);if(a===S.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:so(e.name),name:co(e.name),value:e.value})));else if(a===S.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:co(i.name)};e&&(o.value=e),ao(o)?r.push(o):n.push(o)}else{let e={type:a,name:co(i.name)};i.value&&(e.value=i.value),ao(e)?r.push(e):n.push(e)}return e},[[],[]])}var $l=e=>(t,...n)=>{let r={strings:t,values:n,[Ji]:e};if(Wa.has(t))return r.template=Wa.get(t),r;let i=Xl(Kl(t.reduce((e,t,r)=>(r<n.length?e.push(t,qa(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),Wa.set(t,r.template),r},eu=$l(Va.html),tu=$l(Va.svg);function nu(e){let t=wo(e),n=new WeakMap;return{html:eu,svg:tu,render:(e,r)=>{if(!Ya(r)){n.has(e)&&(n.get(e)?.destroy(),n.delete(e));return}let{strings:i,values:a}=r,o=n.get(e);if(o?.equalStrings(i))o?.commit(a);else{let i=new hl(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var ru=Ba((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=E})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=cu(a,o,s),l=c.values,u=Is(su(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case Ns.create:let i=n.createMarker(``);o===0?n.insertAfterNode(i,e):r.length?n.insertAfterNode(i,d[o-1]?d[o-1].endNode:r[o-1].endNode):n.insertBeforeNode(i,t),d[o]=new ou(i,l[o].value,l[o].key,n);break;case Ns.move:if(d[o]=r[a],o===a)return;o===0?r[a].insert(`after`,e):r[a].insert(`after`,d[o-1]?d[o-1].endNode:r[o-1].endNode)}}),u.delete.forEach(({from:e})=>r[e].destroy()),r=Array.from(d),r.forEach((e,t)=>e.commit(l[t].value)),i}}),iu=new WeakMap,au=new WeakMap,ou=class{constructor(e,t,n,r=E){C(this,iu,void 0),C(this,au,void 0),yo(this,`startNode`,void 0),yo(this,`endNode`,void 0),yo(this,`type`,void 0),yo(this,`key`,void 0),w(au,this,r),this.startNode=r.createMarker(``),this.endNode=r.createMarker(``),r.insertBeforeNode(this.startNode,e),r.insertAfterNode(this.endNode,e),r.removeNode(e),this.key=n,this.type=Ac(t),w(iu,this,Pc(this.type,this.startNode,this.endNode,r))}commit(e){T(iu,this).commit(e)}insert(e,t){let n=[this.startNode,...T(au,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>T(au,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>T(au,this).insertAfterNode(e,t))}destroy(){T(iu,this).destroy?.(),T(au,this).removeRange(this.startNode,this.endNode),T(au,this).removeNode(this.startNode),T(au,this).removeNode(this.endNode)}};function su(e){let t=[],n=new Map;return e.forEach(({type:e,key:r},i)=>{let a={type:e,key:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function cu(e,t,n){let r=[],i=new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:Ac(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var lu={vCSSStyleSheetMap:new Map,hostContextMap:new Map,globalOrder:[],orderedSheets:null},uu=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,du=null;function fu(){return du===null&&(du=pu()),du}function pu(){try{let e=document.createElement(`div`).attachShadow({mode:`open`}),t=new CSSStyleSheet;return e.adoptedStyleSheets.push(t),e.adoptedStyleSheets.length===1&&e.adoptedStyleSheets[0]===t}catch{return!1}}function mu(){return lu}function hu(e){let t=mu(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=uu?new CSSStyleSheet:null,o=uu?null:document.createElement(`style`);a?a.replaceSync(r):o&&(o.textContent=r);let s={identifier:n,cssText:r,mode:i,sheet:a,styleElement:o};return t.vCSSStyleSheetMap.set(n,s),bu(s),n}function gu(e){let t=[],n=[];for(let r of e.vCSSStyleSheetMap.values())(r.mode===`global`?t:n).push(r);if(e.globalOrder.length>0){let n=({identifier:t})=>{let n=e.globalOrder.indexOf(t);return n===-1?e.globalOrder.length:n};t.sort((e,t)=>n(e)-n(t))}return[...t,...n]}function _u(e){return e.orderedSheets||=gu(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function vu(e,t){e.adoptedStyleSheets=[...t]}function yu(){let e=mu(),t=_u(e);e.hostContextMap.forEach((e,n)=>vu(n,t))}function bu(e){if(!uu){xu();return}let t=mu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,yu();return}if(i.push(r),!fu()){yu();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function xu(){let e=mu(),t=gu(e);Array.from(e.hostContextMap).forEach(([e,{styleElements:n}])=>{t.forEach((r,i)=>{if(n.has(r)||!r.styleElement)return;let a=document.importNode(r.styleElement,!0),o=Su(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function Su(e,t,n){for(let r=t;r<e.length;r++){let t=n.get(e[r]);if(t)return t}return null}function D(e){function t(t){return{type:e,payload:t}}return t.toString=()=>`${e}`,t.type=e,t}function*Cu(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*Cu(e,t,r):Ci(r)?yield*Cu(e,t,r(e,t)):yield r}var wu=(e,t,n)=>[...Cu(e,t,n)],Tu=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*Eu(e){yield e}var Du=function*(e){for(let t of e)t.length&&(yield t)};function Ou({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?ba(t):t,a=Mi(),o=Mi(),s=Tu(Du),c=t=>{_i(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=wu(i,e,t);a.next(n)},u=(...e)=>{vi(()=>l(...e))},d=a.subscribe(e=>{let t=s(Eu(e));for(let e of t)o.next(e)}),f=o.subscribe(e=>e.forEach(c));return{context:e,state:i,dispatch:u,dispatchSync:l,subscribe:o.subscribe,pipe:(...e)=>(s=Tu(...e,Du),()=>{s=Tu(Du)}),destroy:()=>{d(),f()}}}var ku=`__RHTML_CSS_DIAGNOSTICS__`,Au=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,ju=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${Au(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)},Mu;function Nu(){if(Mu!==void 0)return Mu;let e=Reflect.get(globalThis,ku);return e?typeof e==`function`?e:ju:null}function Pu(){return Nu()!==null}function Fu(e,t){if(e.length===0)return;let n=Nu();if(n)for(let r of e)n(r,t)}var Iu=[``];function Lu(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function Ru(e,t={}){let n=t.rules??Iu,r=t.rules===void 0?null:Lu(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var zu=`rhtml-scope`;function Bu(e,t){return e.split(zu).join(t)}var Vu=/^(?::host\b|::slotted\()/;function Hu(e){return Vu.test(e.trim())}function Uu(e){return e.type===o}function Wu(e){return e.type===n}function Gu(e){return e.type.charCodeAt(0)===64}function Ku(e){return Array.isArray(e.children)?e.children:[]}function qu(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function Ju(e){let t=[];for(let n of Ku(e))Wu(n)&&t.push(qu(n));return t}function Yu(e){return Ku(e).filter(Uu)}function Xu(e){let t=e.charCodeAt(1);return t===100||t===109||t===115||t===99&&e.charCodeAt(3)===110?!0:t===99||t===108?e.charCodeAt(2)===97:!1}var Zu=new Set([r,t,a,i]);function Qu(e,t,n){let i=[],a=new Set,o=!1,s=(e,t)=>{for(let n of e){if(Uu(n)){o=!0,$u(n,t,i);continue}if(Gu(n)){if(Ku(n).length===0){if(!Zu.has(n.type))continue;i.push({code:`unsupported-at-rule`,severity:`error`,message:`\`${n.value}\` is not supported and was dropped. A constructed stylesheet strips \`@import\` by spec, and happy-dom discards the entire sheet when it sees any body-less at-rule — with one sheet per template that would erase the whole component. Move it to a \`<link>\`.`,line:n.line,column:n.column}),n.type===r&&o&&i.push({code:`import-after-rule`,severity:`warning`,message:`\`${n.value}\` follows a rule. Even where \`@import\` is supported it has to precede every rule in the sheet, so this one could not have applied.`,line:n.line,column:n.column});continue}if(o=!0,Xu(n.type)){s(Ku(n),t);continue}Yu(n).length>0&&ed(n,a,i),s(Ku(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(Wu)&&i.push({code:`rule-without-selector`,severity:`warning`,message:`Declarations at the top level of a global block have no selector and were dropped. Wrap them in one.`}),td(t,i);let c=rd(n.source);return c&&i.push(c),i}function $u(e,t,n){if(e.props.every(e=>e.length===0)){let t=Ju(e);t.length>0&&n.push({code:`rule-without-selector`,severity:`warning`,message:`A rule with no selector was dropped: \`{${t.join(`;`)}}\`.`,line:e.line,column:e.column})}if(t)for(let t of nd(e.value)){let r=t.trim();if(Hu(r)){n.push({code:`shadow-boundary`,severity:`warning`,message:`\`${r}\` crosses a shadow boundary, but a scoped block prepends the component class to it, so it can never match. Use \`css.global\` for this rule.`,line:e.line,column:e.column});continue}r.charCodeAt(0)===58&&n.push({code:`implicit-descendant`,severity:`warning`,message:`\`${r}\` becomes a descendant of the scope, not a qualifier on it. Prefix it with \`&\` to attach it: \`&${r}\`.`,line:e.line,column:e.column})}}function ed(e,t,n){if(t.has(e.value)){n.push({code:`duplicate-keyframes`,severity:`warning`,message:`\`${e.value}\` is defined more than once. The name is global and unscoped, so the last definition wins for every template that animates with it.`,line:e.line,column:e.column});return}t.add(e.value)}function td(e,t){for(let n of e)for(let e of n.declarations)e.includes(`rhtml-scope`)&&t.push({code:`scope-in-declaration`,severity:`warning`,message:`\`${e}\` contains \`${zu}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function nd(e){let t=[],n=0,r=0,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);r===0?o===34||o===39?r=o:o===40||o===91?n++:o===41||o===93?n--:o===44&&n===0&&(t.push(e.slice(i,a)),i=a+1):o===r&&e.charCodeAt(a-1)!==92&&(r=0)}return t.push(e.slice(i)),t}function rd(e){let t=1,n=1,r=0,i=()=>{e.charCodeAt(r)===10?(t++,n=1):n++,r++};for(;r<e.length;){let a=e.charCodeAt(r),o=e.charCodeAt(r+1);if(a===47&&o===42){let a=t,o=n;for(i(),i();r<e.length&&(e.charCodeAt(r)!==42||e.charCodeAt(r+1)!==47);)i();if(r>=e.length)return{code:`unterminated-comment`,severity:`warning`,message:`Unterminated block comment. The scanner consumed the rest of the source, so every rule after it was lost.`,line:a,column:o};i(),i();continue}if(a===47&&o===47){for(;r<e.length&&e.charCodeAt(r)!==10;)i();continue}if(a===34||a===39){let o=t,s=n;for(i();r<e.length&&e.charCodeAt(r)!==a;)e.charCodeAt(r)===92&&i(),i();if(r>=e.length)return{code:`unterminated-string`,severity:`warning`,message:`Unterminated string. The scanner consumed the rest of the source, so every rule after it was lost.`,line:o,column:s};i();continue}i()}return null}function id(e,t={}){let n=``,r=[];for(let i of e){let{conditions:e}=i,a=0;for(;a<r.length&&a<e.length&&r[a]===e[a];)a++;for(let e=a;e<r.length;e++)n+=`}`;for(let t=a;t<e.length;t++)n+=`${e[t]}{`;r=e,n+=ad(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function ad(e,t){return e.body===void 0?`${e.prelude??od(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function od(e,t){return(t===void 0?e:e.map(e=>Bu(e,t))).join(`,`)}var sd=[],cd=e=>e.length>0;function ld(e,t){let n=[];return dd(e,sd,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(ud)}function ud(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function dd(e,t,n,r){let i=r.length,a=[];for(let i of e)Wu(i)?a.push(qu(i)):Uu(i)?fd(i,t,r):Gu(i)&&pd(i,t,n,r);if(a.length===0)return;let o=n.filter(cd);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function fd(e,t,n){let r=e.props.filter(cd);if(r.length===0)return;let i=Ju(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function pd(e,t,n,r){let i=Ku(e);if(i.length===0)return;if(Xu(e.type)){let a=[];if(dd(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=Yu(e);if(a.length>0){let n=[];for(let e of a)fd(e,sd,n);let i=id(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=Ju(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function md(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var hd=7;function gd(e){return`_${md(e).toString(36).padStart(hd,`0`)}`}var _d=[];function vd(e,t={}){let n=t.mode!==`global`,r=n?[zu]:[``],i=Ru(e,{rules:r}),a=ld(i,{rules:r,plugins:t.plugins}),o=id(a),s=gd(o);return{rules:a,canonicalText:o,identifier:s,cssText:id(a,{scope:`.${s}`}),diagnostics:t.dev?Qu(i,a,{source:e,scoped:n}):_d}}function yd(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function bd(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function xd(e){let t=[];for(let n=0;n<e.length-1;n++){let r=yd(e[n]),i=bd(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function Sd(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function Cd(e,t){return Xa(e)?t===`statement`?Sd(e[Ua]??``):`.${String(e)}`:ji(e)&&!Oi(e)&&!Di(e)?String(e):``}function wd(e,t,n){if(Xa(t)){e.kind===`statement`&&!e.provable&&console.error("[r-html] a css literal follows unterminated text, so it is spliced in as a statement. End the declaration in front of it with a `;`.");return}if(n.includes(`{`)||n.includes(`}`)){console.warn(`[r-html] interpolated value contains a brace and is substituted before compiling, so it can change the rule structure: ${n}`);return}(Td(n,`'`)||Td(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function Td(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function Ed(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=Cd(n[i],t[i].kind);wd(t[i],n[i],a),r+=a}return r}var Dd=32,Od=`\0`;function kd(e){return(t,...n)=>{let r=jd(t,e),i=Md(r.node,n),a=hu(i);return{strings:t,values:n,template:r,[Ji]:Va.css,[Ua]:i.source,toString:()=>a}}}var Ad=Object.assign(kd(`scoped`),{global:kd(`global`)});function jd(e,t){let n=Ga.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:xd(r),mode:t,memo:new Map},a=Object.freeze({node:i});return Ga.set(e,a),a}function Md(e,t){let n=e.slots.map((e,n)=>Cd(t[n],e.kind)).join(Od),r=e.memo.get(n);if(r)return r;let i=Ed(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=vd(i,{mode:e.mode,dev:Pu()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(Fu(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>Dd){let[t]=e.memo.keys();e.memo.delete(t)}return u}re.autoDrawEnabled=!1,Reflect.set(re,`DD`,ne);const Nd=new Set,Pd=new Set,Fd=new Map,Id=[],Ld=[],Rd=new Set;let zd=!1,Bd=!1,Vd=0;function Hd(){return Vd}function Ud(){Vd+=1;try{Rd.forEach(e=>e())}finally{zd=!1,Bd=!1;for(let e of Nd){if(Fd.has(e)){Pd.add(e);continue}e.getStage()instanceof te&&e.batchDraw()}Nd.clear(),Id.splice(0).forEach(e=>e())}}function Wd(e){return Rd.add(e),()=>{Rd.delete(e)}}function Gd(){queueMicrotask(()=>{if(Bd){Bd=!1,Gd();return}Ud()})}function Kd(){Bd=!0,!zd&&(zd=!0,Gd())}function qd(e){if(Fd.has(e)){Pd.add(e);return}Nd.add(e),Kd()}function Jd(e){Fd.set(e,(Fd.get(e)??0)+1)}function Yd(e){let t=(Fd.get(e)??0)-1;t>0?Fd.set(e,t):Fd.delete(e),Ld.splice(0).forEach(e=>e()),t<=0&&Pd.delete(e)&&qd(e)}function Xd(){return new Promise(e=>{Ld.push(()=>e())})}function Zd(){return Fd.size?Xd().then(Zd):zd?new Promise(e=>{Id.push(()=>e())}):Promise.resolve()}const Qd=Symbol(`r-html/konva-slot`),$d=Symbol(`r-html/konva-ledger`),ef=Symbol(`r-html/konva-virtual`),tf=Symbol(`r-html/konva-fragment`),nf=new Set([`class`,`style`,`zIndex`]),rf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},af={"k-layer":()=>new f,"k-group":()=>new d,"k-rect":()=>new ee,"k-text":()=>new _,"k-path":()=>new g,"k-line":()=>new h,"k-circle":()=>new m};function of(){}function sf(){throw Error(`[konva-host] a DOM-only directive reached the konva host. innerHTML and vCSSStyleSheet read the DOM through the module helpers, which a konva node has nothing to answer with`)}function cf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,ef,e),Object.defineProperty(n,"nextSibling",{get:sf}),Object.defineProperty(n,"parentNode",{get:sf}),n}const lf=e=>e&&typeof e==`object`?Reflect.get(e,ef)??null:null,uf=e=>e instanceof p,df=e=>uf(e)&&Reflect.get(e,tf)===!0,ff=e=>Reflect.get(e,Qd);function pf(e){let t=ff(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,Qd,n),n}function mf(e){let t=Reflect.get(e,$d);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,$d,n),n}const hf=e=>ff(e)?.parent??null,gf=e=>ff(e)?.next?.node??null,_f=new Set,vf=new WeakMap;function yf(e){let t=e;for(;t;){if(t instanceof f)return t;t=hf(t)}return null}function bf(e){let t=yf(e);t&&qd(t)}function xf(e){mf(e).dirty=!0,_f.add(e),bf(e),Kd()}function Sf(e){let t=e.parent;if(!t)return;let n=mf(t);e.prev?e.prev.next=e.next:n.first=e.next,e.next?e.next.prev=e.prev:n.last=e.prev,e.parent=null,e.prev=null,e.next=null,xf(t)}function Cf(e,t,n){Sf(t);let r=mf(e);t.parent=e,t.doomed=!1,t.prev=n?n.prev:r.last,t.next=n,t.prev?t.prev.next=t:r.first=t,t.next?t.next.prev=t:r.last=t,xf(e)}function wf(e,t){if(!(!uf(t)||df(e))){if(e instanceof te){if(!(t instanceof f))throw Error(`[konva-host] a Stage holds layers only, so ${t.getClassName()} cannot sit at a template root. Make k-layer the root`);return}if(t instanceof f)throw Error(`[konva-host] k-layer nests in nothing but a Stage`);if(uf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function Tf(e,t,n){if(t===n)return;let r=n?pf(n):null;if(!df(t)){wf(e,t),Cf(e,pf(t),r);return}let i=[];for(let e=mf(t).first;e;e=e.next)i.push(e);for(let t of i)wf(e,t.node),Cf(e,t,r)}function Ef(e){_f.delete(e),Reflect.deleteProperty(e,Qd),Reflect.deleteProperty(e,$d),e.destroy()}function Df(e,t){let n=t.getParent();n!==e&&(n&&_f.has(n)&&Mf(n),rf.attach+=1,e.add(t))}function Of(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function kf(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(rf.setZIndex+=1,t.setZIndex(n))})}function Af(e,t){let n=e.children;n.length=0;for(let e=0;e<t.length;e++){let r=t[e];n.push(r),r.index=e}}function jf(e){if(rf.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=mf(e).first;n;n=n.next)rf.scan+=1,uf(n.node)&&t.push(n.node);for(let n of t)Df(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(!(!r.length&&Of(e.children,t))){rf.order+=1,e instanceof te?(r.forEach(e=>e.remove()),kf(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),Af(e,t));for(let e of r)rf.drop+=1,pf(e).doomed&&Ef(e)}}function Mf(e){let t=mf(e);!t.dirty&&t.reconciledAt===Hd()||(t.dirty=!1,t.reconciledAt=Hd(),jf(e))}Wd(()=>{for(let e of _f)Mf(e);_f.clear()});function Nf(e){let t=e,n=hf(t);for(;n;)t=n,n=hf(t);return vf.get(t)??t}function Pf(e,t){if(!t)return;let n=Nf(e);if(uf(n)&&n.hasName(`minimap`))throw Error(`[konva-host] id "${t}" is not the minimap's to carry. Locate a minimap node by name plus a tableId attr`)}const Ff=nu({createElement(e){let t=af[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>cf(`text`,e),createMarker:e=>cf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,tf,!0),Reflect.set(e,`_validateAdd`,of),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=hf(t);n&&Tf(n,e,t)},appendChild(e,t){Tf(e,t,null)},prependChild(e,t){Tf(e,t,mf(e).first?.node??null)},removeChild(e){let t=pf(e);Sf(t),uf(e)&&(t.doomed=!0,e.getParent()||Ef(e))},parentOf:hf,nextSiblingOf:gf,setText(e,t){if(lf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!uf(e))return;if(nf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&Pf(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),bf(e))},removeAttribute(e,t){!uf(e)||e.attrs[t]===void 0||(e.setAttrs({[t]:void 0}),bf(e))},isHostNode:e=>uf(e)||lf(e)!==null,isMarker:e=>lf(e)===`marker`,isText:e=>lf(e)===`text`,isElement:e=>uf(e)&&!df(e),isFragment:e=>df(e),addEventListener(e,t,n,r){uf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){uf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:Nf,createComponentContext(e,t){return{get host(){let n=Nf(e);return n instanceof te?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return vf.set(e,t),()=>{vf.delete(e)}}}),O=Ff.html;function If(e,t){if(!(e instanceof te))throw Error(`[konva-host] a konva template renders into a Stage`);Ff.render(e,t)}var Lf=(e,t)=>e*(1-t)/2;function Rf(e){return{originX:Ue(e.scrollLeft+Lf(e.width,e.zoomLevel),4),originY:Ue(e.scrollTop+Lf(e.height,e.zoomLevel),4)}}function k(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function zf(e){return t=>b(t)&&e.includes(t)}function Bf(e){return t=>y(t)&&e.includes(t)}function Vf(e,t,n){return Reflect.get(e,t)??n}function Hf(){let e=Date.now();return{updateAt:e,createAt:e}}function Uf(e,t){let n=k(y,e,t);n(`updateAt`),n(`createAt`)}var Wf=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[]});function Gf(e){let t=Wf();if(!pe(e)||v(e))return t;let n=k(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),t}var Kf=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:Hf()});function qf(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Kf(),r=k(b,e,n),i=k(ue,e,n),a=k(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Jf={ASC:1,DESC:2},Yf=Object.values(Jf),Xf=()=>({id:``,indexId:``,columnId:``,orderType:Jf.ASC,meta:Hf()});function Zf(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Xf(),r=k(b,e,n);r(`id`),r(`indexId`),r(`columnId`),k(Bf(Yf),e,n)(`orderType`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Qf=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:Hf()});function $f(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Qf(),r=k(b,e,n),i=k(y,e.ui,n.ui),a=k(b,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var ep={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},tp=Object.values(ep),np={ring:1,dash:2},rp=Object.values(np),ip={left:1,right:2,top:4,bottom:8},ap=Object.values(ip),op=()=>({id:``,identification:!1,relationshipType:ep.ZeroN,startRelationshipType:np.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:ip.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:ip.bottom},meta:Hf()});function sp(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=op(),r=k(b,e,n),i=k(ue,e,n),a=k(y,e.start,n.start),o=k(b,e.start,n.start),s=k(y,e.end,n.end),c=k(b,e.end,n.end);r(`id`),i(`identification`),k(Bf(tp),e,n)(`relationshipType`),k(Bf(rp),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),k(Bf(ap),e.start,n.start)(`direction`),k(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),k(Bf(ap),e.end,n.end)(`direction`),k(Array.isArray,e.end,n.end)(`columnIds`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var cp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},lp=Object.values(cp),up={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256},dp={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},fp=Object.values(dp),pp={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},mp=Object.values(pp),hp={GraphQL:1,csharp:2,Java:4,Kotlin:8,TypeScript:16,JPA:32,Scala:64,Go:128,SQLAlchemy:256,TypeORM:512,Sequelize:1024,Drizzle:2048,DBML:4096,AML:8192},gp=Object.values(hp),_p={none:1,camelCase:2,pascalCase:4,snakeCase:8},vp=Object.values(_p),yp={none:1,doubleQuote:2,singleQuote:4,backtick:8},bp=Object.values(yp),xp={scroll:1,zoomLevel:2},Sp=.1,Cp=1.5,wp=2e3,Tp=2e4,Ep=up.tableComment|up.columnComment|up.columnDataType|up.columnDefault|up.columnPrimaryKey|up.columnNotNull|up.relationship,Dp=()=>({width:2e3,height:2e3,scrollTop:0,scrollLeft:0,originX:0,originY:0,zoomLevel:1,show:Ep,database:pp.MySQL,databaseName:``,canvasType:cp.ERD,language:hp.GraphQL,tableNameCase:_p.pascalCase,columnNameCase:_p.camelCase,bracketType:yp.none,relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[dp.columnName,dp.columnDataType,dp.columnNotNull,dp.columnUnique,dp.columnAutoIncrement,dp.columnDefault,dp.columnComment],maxWidthComment:-1,ignoreSaveSettings:0}),Op=e=>ae(e,wp,Tp),kp=e=>ae(e,Sp,Cp),Ap=e=>ae(e,60,200);function jp(e){let t=Dp();if(!pe(e)||v(e))return t;let n=k(y,t,e),r=k(b,t,e),i=k(ue,t,e);if(y(e.width)&&(t.width=Op(e.width)),y(e.height)&&(t.height=Op(e.height)),y(e.zoomLevel)&&(t.zoomLevel=kp(e.zoomLevel)),y(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=Ap(e.maxWidthComment)),n(`scrollTop`),n(`scrollLeft`),n(`show`),n(`ignoreSaveSettings`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),i(`relationshipOptimization`),k(Bf(mp),t,e)(`database`),k(Bf(gp),t,e)(`language`),k(Bf(vp),t,e)(`tableNameCase`),k(Bf(vp),t,e)(`columnNameCase`),k(Bf(bp),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&fp.length===e.columnOrder.length&&se(fp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),y(e.originX)&&y(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:e,originY:n}=Rf(t);t.originX=e,t.originY=n}return t}var Mp=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:Hf()});function Np(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Mp(),r=k(b,e,n),i=k(Array.isArray,e,n),a=k(y,e.ui,n.ui),o=k(b,e.ui,n.ui);r(`id`),r(`name`),r(`comment`),i(`columnIds`),i(`seqColumnIds`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`widthName`),a(`widthComment`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Pp=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:Hf()});function Fp(e){let t={};if(!pe(e)||v(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Pp(),r=k(b,e,n),i=k(y,e,n),a=k(y,e.ui,n.ui);r(`id`),r(`tableId`),r(`name`),r(`comment`),r(`dataType`),r(`default`),i(`options`),a(`keys`),a(`widthName`),a(`widthComment`),a(`widthDataType`),a(`widthDefault`),Uf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}function Ip(e){let t=e;return{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:jp(t.settings),doc:Gf(t.doc),collections:{tableEntities:Np(t.collections?.tableEntities),tableColumnEntities:Fp(t.collections?.tableColumnEntities),relationshipEntities:sp(t.collections?.relationshipEntities),indexEntities:qf(t.collections?.indexEntities),indexColumnEntities:Zf(t.collections?.indexColumnEntities),memoEntities:$f(t.collections?.memoEntities)}}}var A={CanvasType:cp,CanvasTypeList:lp,Show:up,ColumnType:dp,ColumnTypeList:fp,Database:pp,DatabaseList:mp,Language:hp,LanguageList:gp,NameCase:_p,NameCaseList:vp,BracketType:yp,BracketTypeList:bp,RelationshipType:ep,RelationshipTypeList:tp,StartRelationshipType:np,StartRelationshipTypeList:rp,Direction:ip,DirectionList:ap,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:Jf,OrderTypeList:Yf,SaveSettingType:xp,CANVAS_SIZE_MAX:Tp,CANVAS_SIZE_MIN:wp,CANVAS_ZOOM_MAX:Cp,CANVAS_ZOOM_MIN:Sp};function Lp(e){return[e,-1,-1,{}]}function Rp(e,t,n){return e[t]||(e[t]=Lp(n),e[t])}function zp(e,t,n,r,i){let a=Rp(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Bp(e,t,n,r,i){let a=Rp(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function Vp(e,t,n,r,i,a){let o=Rp(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function Hp(e){"@babel/helpers - typeof";return Hp=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Hp(e)}function Up(e,t){if(Hp(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Hp(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Wp(e){var t=Up(e,`string`);return Hp(t)==`symbol`?t:t+``}function Gp(e,t,n){return(t=Wp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Kp=class{constructor(e){Gp(this,`collections`,void 0),this.collections=e}collection(e){return new qp(this.collections[e],e)}},qp=class{constructor(e,t){Gp(this,`collection`,void 0),Gp(this,`collectionKey`,void 0),this.collection=e,this.collectionKey=t}selectById(e){return this.collection[e]}selectByIds(e){return e.length,e.map(e=>this.selectById(e)).filter(Boolean)}selectEntities(){return this.collection}selectAll(){return Object.values(this.collection)}setOne(e){return this.collection[e.id]=e,this}setMany(e){return e.forEach(e=>this.setOne(e)),this}setAll(e){return this.removeAll(),this.setMany(e),this}addOne(e){return this.selectById(e.id)||this.setOne(e),this}addMany(e){return e.forEach(e=>this.addOne(e)),this}removeOne(e){return this.selectById(e)&&Reflect.deleteProperty(this.collection,e),this}removeMany(e){return e.forEach(e=>this.removeOne(e)),this}removeAll(){return this.collection={},this}updateOne(e,t){let n=this.selectById(e);return n&&(t(n),n.meta.updateAt=Date.now()),this}updateMany(e,t){return e.forEach(e=>this.updateOne(e,t)),this}getOrCreate(e,t){let n=this.selectById(e);if(n)return n;let r=t(e);return this.setOne(r),this.selectById(e)}addOperator(e,t,n,r){return zp(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Bp(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return Vp(e,t,n,this.collectionKey,r,i),this}},j=e=>new Kp(e),Jp=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),Yp=Object.values({ERD:`ERD`,"@vuerd/builtin-sql-ddl":`@vuerd/builtin-sql-ddl`,"@vuerd/builtin-grid":`@vuerd/builtin-grid`,"@vuerd/builtin-generator-code":`@vuerd/builtin-generator-code`,"@vuerd/builtin-visualization":`@vuerd/builtin-visualization`}),Xp=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),Zp=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),Qp=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),$p=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),em=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),tm=.1,nm=2e3,rm=2e4,im=()=>({version:`2.2.11`,width:2e3,height:2e3,scrollTop:0,scrollLeft:0,zoomLevel:1,show:{tableComment:!0,columnComment:!0,columnDataType:!0,columnDefault:!0,columnAutoIncrement:!1,columnPrimaryKey:!0,columnUnique:!1,columnNotNull:!0,relationship:!0},database:`MySQL`,databaseName:``,canvasType:`ERD`,language:`GraphQL`,tableCase:`pascalCase`,columnCase:`camelCase`,highlightTheme:`VS2015`,bracketType:`none`,setting:{relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[`columnName`,`columnDataType`,`columnNotNull`,`columnUnique`,`columnAutoIncrement`,`columnDefault`,`columnComment`]},pluginSerializationMap:{}}),am=e=>ae(e,nm,rm),om=e=>ae(e,tm,1);function sm(e){let t=im();if(v(e))return t;let n=k(y,t,e),r=k(b,t,e),i=k(ue,t.show,e.show),a=k(ue,t.setting,e.setting);if(y(e.width)&&(t.width=am(e.width)),y(e.height)&&(t.height=am(e.height)),y(e.zoomLevel)&&(t.zoomLevel=om(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),k(zf(Xp),t,e)(`database`),k(zf(Yp),t,e)(`canvasType`),k(zf(Zp),t,e)(`language`),k(zf(Qp),t,e)(`tableCase`),k(zf(Qp),t,e)(`columnCase`),k(zf($p),t,e)(`highlightTheme`),k(zf(em),t,e)(`bracketType`),i(`tableComment`),i(`columnComment`),i(`columnDataType`),i(`columnDefault`),i(`columnAutoIncrement`),i(`columnPrimaryKey`),i(`columnUnique`),i(`columnNotNull`),i(`relationship`),a(`relationshipDataTypeSync`),a(`relationshipOptimization`),e.setting?.columnOrder&&Jp.length===e.setting.columnOrder.length&&se(Jp,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),pe(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];b(r)&&(t.pluginSerializationMap[e]=r)}}return t}var cm=()=>({memos:[]}),lm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function um(e){let t=cm();if(v(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=lm(),r=k(b,e,n),i=k(y,e.ui,n.ui),a=k(ue,e.ui,n.ui),o=k(b,e.ui,n.ui);r(`id`),r(`value`),a(`active`),o(`color`),i(`left`),i(`top`),i(`zIndex`),i(`width`),i(`height`),t.memos.push(e)}return t}var dm=[`ZeroOneN`,`One`,`N`],fm={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},pm=e=>dm.includes(e)?fm[e]:e,mm=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),hm=Object.values({Ring:`Ring`,Dash:`Dash`}),gm=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),_m=()=>({relationships:[]}),vm=()=>({id:``,identification:!1,relationshipType:`ZeroN`,startRelationshipType:`Dash`,start:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},end:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},constraintName:``,visible:!0});function ym(e){let t=_m();if(v(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=vm(),r=k(b,e,n),i=k(ue,e,n),a=k(y,e.start,n.start),o=k(b,e.start,n.start),s=k(y,e.end,n.end),c=k(b,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),k(zf(mm),e,n)(`relationshipType`),e.relationshipType=pm(e.relationshipType),k(zf(hm),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),k(zf(gm),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(b)),c(`tableId`),s(`x`),s(`y`),k(zf(gm),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(b)),t.relationships.push(e)}return t}var bm={ASC:`ASC`,DESC:`DESC`},xm=Object.values(bm),Sm=()=>({tables:[],indexes:[]}),Cm=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),wm=()=>({id:``,name:``,comment:``,dataType:``,default:``,option:{autoIncrement:!1,primaryKey:!1,unique:!1,notNull:!1},ui:{active:!1,pk:!1,fk:!1,pfk:!1,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}}),Tm=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),Em=()=>({id:``,orderType:bm.ASC});function Dm(e){let t=Sm();if(v(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=Cm(),r=k(b,e,n),i=k(ue,e,n),a=k(y,e.ui,n.ui),o=k(ue,e.ui,n.ui),s=k(b,e.ui,n.ui);if(r(`id`),r(`name`),r(`comment`),i(`visible`),o(`active`),s(`color`),a(`left`),a(`top`),a(`zIndex`),a(`widthName`),a(`widthComment`),Array.isArray(n.columns))for(let t of n.columns){let n=wm(),r=k(b,n,t),i=k(y,n.ui,t.ui),a=k(ue,n.ui,t.ui),o=k(ue,n.option,t.option);r(`id`),r(`name`),r(`comment`),r(`dataType`),r(`default`),o(`autoIncrement`),o(`primaryKey`),o(`unique`),o(`notNull`),a(`active`),a(`pk`),a(`fk`),a(`pfk`),i(`widthName`),i(`widthComment`),i(`widthDataType`),i(`widthDefault`),e.columns.push(n)}t.tables.push(e)}if(Array.isArray(e.indexes))for(let n of e.indexes){let e=Tm(),r=k(b,e,n),i=k(ue,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=Em();k(b,n,t)(`id`),k(zf(xm),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function Om(e){let t=e;return{canvas:sm(t.canvas),table:Dm(t.table),relationship:ym(t.relationship),memo:um(t.memo)}}function km(e){let t=Ip({});return Am(t.settings,e.canvas),jm(t,e.table),Mm(t,e.memo),Nm(t,e.relationship),t}function Am(e,t){e.width=t.width,e.height=t.height,e.scrollTop=t.scrollTop,e.scrollLeft=t.scrollLeft,e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=Rf(e);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=A.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>Vf(t.show,n,!1)?e|Vf(A.Show,n,0):e,0),e.database=Reflect.get(A.Database,t.database)??A.Database.MySQL,e.language=t.language===`C#`?A.Language.csharp:Vf(A.Language,t.language,A.Language.GraphQL),e.tableNameCase=Vf(A.NameCase,t.tableCase,A.NameCase.pascalCase),e.columnNameCase=Vf(A.NameCase,t.columnCase,A.NameCase.camelCase),e.bracketType=Vf(A.BracketType,t.bracketType,A.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync,e.relationshipOptimization=t.setting.relationshipOptimization;let i=t.setting.columnOrder.map(e=>A.ColumnType[e]);se(A.ColumnTypeList,i).length===0&&(e.columnOrder=i)}function jm(e,t){let n=t.tables.filter(({id:e})=>!!e),r=t.indexes.filter(({id:e})=>!!e);e.doc.tableIds=n.map(({id:e})=>e),e.doc.indexIds=r.map(({id:e})=>e);for(let t of n){let n=Mp();n.id=t.id,n.name=t.name,n.comment=t.comment,n.columnIds=t.columns.map(({id:e})=>e),n.seqColumnIds=[...n.columnIds],n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.zIndex=t.ui.zIndex,n.ui.widthName=t.ui.widthName,n.ui.widthComment=t.ui.widthComment,n.ui.color=t.ui.color??``;for(let n of t.columns){let r=Pp();r.id=n.id,r.tableId=t.id,r.name=n.name,r.comment=n.comment,r.dataType=n.dataType,r.default=n.default,r.options=Object.keys(n.option).reduce((e,t)=>Vf(n.option,t,!1)?e|Vf(A.ColumnOption,t,0):e,0),r.ui.widthName=n.ui.widthName,r.ui.widthComment=n.ui.widthComment,r.ui.widthDataType=n.ui.widthDataType,r.ui.widthDefault=n.ui.widthDefault,n.ui.pfk?r.ui.keys=A.ColumnUIKey.primaryKey|A.ColumnUIKey.foreignKey:n.ui.pk?r.ui.keys=A.ColumnUIKey.primaryKey:n.ui.fk&&(r.ui.keys=A.ColumnUIKey.foreignKey),e.collections.tableColumnEntities[r.id]=r}e.collections.tableEntities[n.id]=n}for(let t of r){let n=Kf();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=x(),a=Xf();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=Vf(A.OrderType,r.orderType,A.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Mm(e,t){let n=t.memos.filter(({id:e})=>!!e);e.doc.memoIds=n.map(({id:e})=>e);for(let t of n){let n=Qf();n.id=t.id,n.value=t.value,n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.width=t.ui.width,n.ui.height=t.ui.height,n.ui.zIndex=t.ui.zIndex,n.ui.color=t.ui.color??``,e.collections.memoEntities[n.id]=n}}function Nm(e,t){let n=t.relationships.filter(({id:e})=>!!e);e.doc.relationshipIds=n.map(({id:e})=>e);for(let t of n){let n=op();n.id=t.id,n.identification=t.identification,n.relationshipType=Vf(A.RelationshipType,t.relationshipType,A.RelationshipType.ZeroN),n.startRelationshipType=Vf(A.StartRelationshipType,t.startRelationshipType===`Ring`?`ring`:`dash`,A.StartRelationshipType.dash),n.start.tableId=t.start.tableId,n.start.columnIds=t.start.columnIds,n.start.x=t.start.x,n.start.y=t.start.y,n.start.direction=Vf(A.Direction,t.start.direction,A.Direction.bottom),n.end.tableId=t.end.tableId,n.end.columnIds=t.end.columnIds,n.end.x=t.end.x,n.end.y=t.end.y,n.end.direction=Vf(A.Direction,t.end.direction,A.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Pm(e,t){return(e&t)===t}function Fm(e){let t=JSON.parse(e);return Reflect.get(t,`version`)===`3.0.0`?Ip(t):km(Om(t))}function Im(e){let t=ve(e,[`$schema`,`version`,`settings`,`doc`,`collections`]),n={...t.settings};return t.settings=n,Pm(n.ignoreSaveSettings,A.SaveSettingType.scroll)&&(n.originX=0,n.originY=0),Pm(n.ignoreSaveSettings,A.SaveSettingType.zoomLevel)&&(n.zoomLevel=1),JSON.stringify(t,null,2)}const M={changeHasHistory:`editor.changeHasHistory`,selectAll:`editor.selectAll`,unselectAll:`editor.unselectAll`,select:`editor.select`,changeViewport:`editor.changeViewport`,clear:`editor.clear`,loadJson:`editor.loadJson`,initialClear:`editor.initialClear`,initialLoadJson:`editor.initialLoadJson`,focusTable:`editor.focusTable`,focusColumn:`editor.focusColumn`,focusTableEnd:`editor.focusTableEnd`,focusMoveTable:`editor.focusMoveTable`,editTable:`editor.editTable`,editTableEnd:`editor.editTableEnd`,editMemo:`editor.editMemo`,editMemoEnd:`editor.editMemoEnd`,scrollMemo:`editor.scrollMemo`,selectAllColumn:`editor.selectAllColumn`,drawStartRelationship:`editor.drawStartRelationship`,drawStartAddRelationship:`editor.drawStartAddRelationship`,drawEndRelationship:`editor.drawEndRelationship`,drawRelationship:`editor.drawRelationship`,hoverColumnMap:`editor.hoverColumnMap`,hoverRelationshipMap:`editor.hoverRelationshipMap`,changeOpenMap:`editor.changeOpenMap`,changeHandTool:`editor.changeHandTool`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,validationIds:`editor.validationIds`,getLWW:`editor.getLWW`,mergeLWW:`editor.mergeLWW`},Lm=A.CanvasType,Rm=A.CanvasTypeList,N=A.Show,P=A.ColumnType,zm=A.ColumnTypeList,F=A.Database,Bm=A.DatabaseList;A.Language;const Vm=A.LanguageList;A.NameCase;const Hm=A.NameCaseList,Um=A.BracketType,Wm=A.BracketTypeList,Gm=A.RelationshipType;A.RelationshipTypeList;const Km=A.StartRelationshipType;A.StartRelationshipTypeList;const I=A.Direction;A.DirectionList;const L=A.ColumnOption,R=A.ColumnUIKey,qm=A.OrderType;A.OrderTypeList,A.SaveSettingType;const Jm=A.CANVAS_SIZE_MAX,Ym=A.CANVAS_SIZE_MIN,Xm=A.CANVAS_ZOOM_MAX,Zm=A.CANVAS_ZOOM_MIN;Um.none,Um.backtick,Um.doubleQuote,Um.singleQuote,P.columnName,P.columnDataType,P.columnDefault,P.columnComment,P.columnAutoIncrement,P.columnUnique,P.columnNotNull;const Qm={shared:1,changeOnly:2,following:4};function $m(e,t){return{...oe(t),tags:y(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function eh(e,t){return t.map(t=>$m(e,t))}(e=>(...t)=>function*(n,r){yield eh(e,wu(n,r,t))})(Qm.changeOnly);const th=1200;function nh(e){return 9+e.ui.width+8+1}function rh(e){return 25+e.ui.height+8+1}function z(e,t){return(e&t)===t}const ih={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},ah=Object.values(ih);ih.Databricks,F.Databricks,ih.MariaDB,F.MariaDB,ih.MSSQL,F.MSSQL,ih.MySQL,F.MySQL,ih.Oracle,F.Oracle,ih.PostgreSQL,F.PostgreSQL,ih.Snowflake,F.Snowflake,ih.SQLite,F.SQLite;function B(e){let t=new Set(e);return e=>t.has(e)}const oh=/[^0-9]/g,sh=e=>e.replace(oh,``),ch=e=>ae(e,Ym,Jm),lh=e=>ae(e,Zm,Xm),uh=e=>ae(e,60,200);function dh(e){let t=b(e)?Number(sh(e)):e;return ch(t)}function fh(e){return Ue(lh(e),2)}const ph=B(Bm),mh=B(Hm),hh=B(Wm),gh=B(Vm),_h=B(zm);B(ah);const vh=B(Rm);function V(e){return Math.max(e,60)}function yh(e){return b(e)?e.trim():``}function bh(e){return e<=.7}let xh=0;function Sh(){return xh}function Ch(){xh++}function wh(e,{settings:{show:t,maxWidthComment:n},collections:r}){let i=e.ui.widthName+8;if(z(t,N.tableComment)){let t=n===-1?e.ui.widthComment:n<e.ui.widthComment?n:e.ui.widthComment;i+=t+8}let a=Eh(t);i<a&&(i=a);let o=Dh(j(r).collection(`tableColumnEntities`).selectByIds(e.columnIds),t,n);return i<o.width&&(i=o.width),{...o,width:9+i+8+1}}const Th=[{key:N.columnComment,width:60},{key:N.columnDataType,width:60},{key:N.columnDefault,width:60},{key:N.columnNotNull,width:35},{key:N.columnAutoIncrement,width:15},{key:N.columnUnique,width:22}];function Eh(e){return Th.reduce((t,{key:n,width:r})=>z(e,n)?t+r+8:t,100)}function Dh(e,t,n){let r={width:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0};for(let i of e)r.name<i.ui.widthName&&(r.name=i.ui.widthName),z(t,N.columnComment)&&r.comment<i.ui.widthComment&&(r.comment=n===-1?i.ui.widthComment:n<i.ui.widthComment?n:i.ui.widthComment),z(t,N.columnDataType)&&r.dataType<i.ui.widthDataType&&(r.dataType=i.ui.widthDataType),z(t,N.columnDefault)&&r.default<i.ui.widthDefault&&(r.default=i.ui.widthDefault);return z(t,N.columnNotNull)&&(r.notNull=35),z(t,N.columnAutoIncrement)&&(r.autoIncrement=15),z(t,N.columnUnique)&&(r.unique=22),r.width=Object.entries(r).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),r}function Oh(e){return 47+e.columnIds.length*24+8+1}function kh({doc:{tableIds:e},collections:t},{toWidth:n}){Ch();let r=j(t).collection(`tableEntities`).selectByIds(e),i=j(t).collection(`tableColumnEntities`);for(let e of r){e.ui.widthName=V(n(e.name)),e.ui.widthComment=V(n(e.comment));let t=i.selectByIds(e.columnIds);for(let e of t)e.ui.widthName=V(n(e.name)),e.ui.widthDataType=V(n(e.dataType)),e.ui.widthDefault=V(n(e.default)),e.ui.widthComment=V(n(e.comment))}}const Ah=new WeakMap;function jh(e,t){let{settings:n}=e,r=`${Sh()}|${n.show}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`,i=Ah.get(t);if(i?.key===r)return i;let a={key:r,width:wh(t,e).width,height:Oh(t)};return Ah.set(t,a),a}function Mh(e,t){let{width:n,height:r}=jh(e,t),{x:i,y:a}=t.ui;return{width:n,height:r,top:{x:i+n/2,y:a},bottom:{x:i+n/2,y:a+r},left:{x:i,y:a+r/2},right:{x:i+n,y:a+r/2},lt:{x:i,y:a},rt:{x:i+n,y:a},lb:{x:i,y:a+r},rb:{x:i+n,y:a+r}}}function Nh(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function Ph(e,t){let{width:n,height:r}=Mh(e,t),{x:i,y:a}=t.ui;return{x:i,y:a,width:n,height:r}}function Fh(e,t){return wh(t,e)}function Ih(e,t,n){let{x:r,y:i,width:a}=Ph(e,t);return{x:r+9,y:i+9+38+n*24,width:a-18,height:24}}function Lh(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:nh(e),height:rh(e)}}function Rh(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,width:Math.max(e.x+e.width,t.x+t.width)-n,height:Math.max(e.y+e.height,t.y+t.height)-r}}function zh(e){return Vh(e,[])}function Bh(e,t=[]){let{doc:n,collections:r}=e,i=new Map(t.map(e=>[e.id,e])),a=j(r).collection(`tableEntities`).selectByIds(n.tableIds),o=j(r).collection(`memoEntities`).selectByIds(n.memoIds);return[...a.map(t=>{let n=i.get(t.id);return n?Ph(e,{...t,ui:{...t.ui,x:n.x,y:n.y}}):Ph(e,t)}),...o.map(Lh)]}function Vh(e,t){let n=Bh(e,t);return n.length?n.reduce(Rh):null}const Hh=ba({frozen:{}}),Uh=e=>e.editor.id,Wh=e=>Hh.frozen[Uh(e)]??null;function Gh(e){let{originX:t,originY:n}=e.settings;Hh.frozen[Uh(e)]={content:zh(e),origin:{x:t,y:n}}}function Kh(e){Reflect.deleteProperty(Hh.frozen,Uh(e))}function qh(e){let t=Wh(e);return t?t.content:zh(e)}const H={changeDatabaseName:`settings.changeDatabaseName`,changeZoomLevel:`settings.changeZoomLevel`,streamZoomLevel:`settings.streamZoomLevel`,scrollTo:`settings.scrollTo`,streamScrollTo:`settings.streamScrollTo`,changeShow:`settings.changeShow`,changeDatabase:`settings.changeDatabase`,changeCanvasType:`settings.changeCanvasType`,changeLanguage:`settings.changeLanguage`,changeTableNameCase:`settings.changeTableNameCase`,changeColumnNameCase:`settings.changeColumnNameCase`,changeBracketType:`settings.changeBracketType`,changeRelationshipDataTypeSync:`settings.changeRelationshipDataTypeSync`,changeRelationshipOptimization:`settings.changeRelationshipOptimization`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`},Jh=e=>e+0;function Yh(e,t,n,r){let i=-t*r,a=n-e*r;return{min:Jh(Math.min(i,a)),max:Jh(Math.max(i,a))}}function Xh(e,t,n,r,i){let{min:a,max:o}=Yh(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return Jh(Math.min(Math.max(e,a+s),o-s))}const Zh=D(H.changeDatabaseName),Qh=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{Vp(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},$h=D(H.changeZoomLevel),eg=({settings:e},{payload:{value:t},tags:n})=>{!v(n)&&z(n,Qm.following)||(e.zoomLevel=fh(t))},tg=D(H.streamZoomLevel),ng=({settings:e},{payload:{value:t},tags:n})=>{!v(n)&&z(n,Qm.following)||(e.zoomLevel=fh(e.zoomLevel+t))},rg=({width:e,height:t})=>e>0&&t>0;function ig(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=qh(e);return!a||!rg(i)?{x:t,y:n}:{x:Xh(t,a.x,a.x+a.width,i.width,r),y:Xh(n,a.y,a.y+a.height,i.height,r)}}const ag=D(H.scrollTo),og=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{!v(r)&&z(r,Qm.following)||(e.originX=Ue(t,4),e.originY=Ue(n,4))},sg=D(H.streamScrollTo),cg=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{!v(r)&&z(r,Qm.following)||(e.originX=Ue(e.originX+t,4),e.originY=Ue(e.originY+n,4))},lg=D(H.changeShow),ug=({settings:e},{payload:{show:t,value:n}})=>{e.show=n?e.show|t:e.show&~t},dg=D(H.changeDatabase),fg=({settings:e},{payload:{value:t}})=>{ph(t)&&(e.database=t)},pg=D(H.changeCanvasType),mg=({settings:e},{payload:{value:t},tags:n})=>{!v(n)&&z(n,Qm.following)||(e.canvasType=t)},hg=D(H.changeLanguage),gg=({settings:e},{payload:{value:t}})=>{gh(t)&&(e.language=t)},_g=D(H.changeTableNameCase),vg=({settings:e},{payload:{value:t}})=>{mh(t)&&(e.tableNameCase=t)},yg=D(H.changeColumnNameCase),bg=({settings:e},{payload:{value:t}})=>{mh(t)&&(e.columnNameCase=t)},xg=D(H.changeBracketType),Sg=({settings:e},{payload:{value:t}})=>{hh(t)&&(e.bracketType=t)},Cg=D(H.changeRelationshipDataTypeSync),wg=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},Tg=D(H.changeRelationshipOptimization),Eg=({settings:e},{payload:{value:t}})=>{e.relationshipOptimization=t},Dg=D(H.changeColumnOrder),Og=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!_h(t)||!_h(n))return;let r=e.columnOrder.indexOf(t),i=e.columnOrder.indexOf(n);r!==-1&&i!==-1&&(e.columnOrder.splice(r,1),e.columnOrder.splice(i,0,t))},kg=D(H.changeMaxWidthComment),Ag=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:uh(t)},jg=D(H.changeIgnoreSaveSettings),Mg=({settings:e},{payload:{saveSettingType:t,value:n}})=>{e.ignoreSaveSettings=n?e.ignoreSaveSettings|t:e.ignoreSaveSettings&~t},Ng={[H.changeDatabaseName]:Qh,[H.changeZoomLevel]:eg,[H.streamZoomLevel]:ng,[H.scrollTo]:og,[H.streamScrollTo]:cg,[H.changeShow]:ug,[H.changeDatabase]:fg,[H.changeCanvasType]:mg,[H.changeLanguage]:gg,[H.changeTableNameCase]:vg,[H.changeColumnNameCase]:bg,[H.changeBracketType]:Sg,[H.changeRelationshipDataTypeSync]:wg,[H.changeRelationshipOptimization]:Eg,[H.changeColumnOrder]:Og,[H.changeMaxWidthComment]:Ag,[H.changeIgnoreSaveSettings]:Mg},Pg={changeDatabaseNameAction:Zh,changeZoomLevelAction:$h,streamZoomLevelAction:tg,scrollToAction:ag,streamScrollToAction:sg,changeShowAction:lg,changeDatabaseAction:dg,changeCanvasTypeAction:pg,changeLanguageAction:hg,changeTableNameCaseAction:_g,changeColumnNameCaseAction:yg,changeBracketTypeAction:xg,changeRelationshipDataTypeSyncAction:Cg,changeRelationshipOptimizationAction:Tg,changeColumnOrderAction:Dg,changeMaxWidthCommentAction:kg,changeIgnoreSaveSettingsAction:jg},U={left:`left`,right:`right`,top:`top`,bottom:`bottom`},Fg=Object.values(U);B([U.top,U.bottom,U.left,U.right]);const Ig=[0,0],Lg=new WeakMap;function Rg(e,t){Lg.set(e,t)}function zg(e){return Lg.get(e)??Ig}const Bg=new WeakMap;function Vg(e,t){Bg.set(e,{points:t,epoch:Ug})}function Hg(e){return Bg.get(e)?.points}let Ug=0;function Wg(){Ug+=1}function Gg(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),o<n&&(n=o),a>r&&(r=a),o>i&&(i=o);return{x:t,y:n,width:r-t,height:i-n}}function Kg({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function qg(e,t=2){let{start:n,end:r}=e,i=Bg.get(e),a=i&&i.epoch===Ug?i.points:null;return Kg(Gg(a?[...a,n,r]:[n,r]),25+t+(a?0:86))}function Jg({originX:e,originY:t}){return{x:e,y:t}}const Yg=e=>e>0?e:1;function Xg(e,t){let n=Jg(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function Zg(e,t){let n=Yg(e.zoomLevel),r=Jg({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function Qg(e){let{viewportWidth:t,viewportHeight:n}=e,r=Yg(e.zoomLevel),i=Jg({...e,zoomLevel:r}),a=(t>0?t:th)/r,o=(n>0?n:675)/r;return{x:-i.x/r-a,y:-i.y/r-o,width:a*3,height:o*3}}function $g(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e;return Qg({originX:t,originY:n,zoomLevel:r,viewportWidth:i.width,viewportHeight:i.height})}function e_(e,t){return!(t.x>e.x+e.width||t.x+t.width<e.x||t.y>e.y+e.height||t.y+t.height<e.y)}function t_(e,t,n){return e_(e,Ph(t,n))}function n_(e,t,n){return e_(e,qg(t,n))}const r_={table:`table`,memo:`memo`},W={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},i_={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};B(Object.values(i_));const a_=()=>({id:x(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:th,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null}),o_=e=>e.ui.zIndex,s_=(e,t)=>Math.max(1,...e.map(o_),...t.map(o_))+1,c_=e=>t=>e.y===t.y&&e.x===t.x;function l_(e,t,n){let r=Zg(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(c_(r));)r.x+=50,r.y+=50;return r}function u_(){let e=Date.now();return{updateAt:e,createAt:e}}function d_(e,t){return e<t?ye(e,t+1):ye(t,e+1)}function f_(e){return Se(ie(e??``))}function p_(e,t){return xe([...e,t])}function m_(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:d_(r,i).map(t=>e[t])}function h_(e,t,n,r){return xe([...t,...m_(e,n,r)])}const g_={[P.columnName]:!0,[P.columnDataType]:N.columnDataType,[P.columnNotNull]:N.columnNotNull,[P.columnUnique]:N.columnUnique,[P.columnAutoIncrement]:N.columnAutoIncrement,[P.columnDefault]:N.columnDefault,[P.columnComment]:N.columnComment},__={[P.columnName]:W.columnName,[P.columnDataType]:W.columnDataType,[P.columnNotNull]:W.columnNotNull,[P.columnUnique]:W.columnUnique,[P.columnAutoIncrement]:W.columnAutoIncrement,[P.columnDefault]:W.columnDefault,[P.columnComment]:W.columnComment},v_=[W.tableName,W.tableComment];function y_({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=g_[t];return n===!0||z(e,n)}).map(e=>__[e])}function b_({collections:e,editor:{focusTable:t}}){return t?!!j(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function x_(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=y_(e);return n.indexOf(t.focusType)===n.length-1}function S_(e){let{editor:{focusTable:t}}=e;return!t||y_(e).indexOf(t.focusType)===0}function C_({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=j(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===n.columnIds.length-1}function w_({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=j(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===0}function T_(e){let t=y_(e);return t[t.length-1]}function E_(e){return y_(e)[0]}function D_(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=y_(e),r=n.indexOf(t.focusType);return x_(e)?n[0]:n[r+1]}function O_(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=y_(e),r=n.indexOf(t.focusType);return S_(e)?n[n.length-1]:n[r-1]}function k_(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r?.columnId)return null;let i=j(n).collection(`tableEntities`).selectById(r.tableId);if(!i)return null;let a=i.columnIds.indexOf(r.columnId);if(a<=0)return null;let o=null;for(let e=a;e>=0;e--){let n=i.columnIds[e];if(!t.includes(n)){o=n;break}}return o}function A_({settings:{show:e}}){return z(e,N.tableComment)?v_:[W.tableName]}function j_(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=A_(e);return n.indexOf(t.focusType)===n.length-1}function M_(e){let{editor:{focusTable:t}}=e;return!t||A_(e).indexOf(t.focusType)===0}const N_=B(v_);function P_(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=A_(e),r=n.indexOf(t.focusType);return j_(e)?n[0]:n[r+1]}function F_(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=A_(e),r=n.indexOf(t.focusType);return M_(e)?n[n.length-1]:n[r-1]}function I_(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=j(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(N_(r.focusType)){if(b_(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=T_(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(w_(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e-1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==i_.Tab?p_(r.selectColumnIds,n):[n]}}}function L_(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=j(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(N_(r.focusType)){if(b_(e)){let t=i.columnIds[0];r.focusType=E_(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(C_(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e+1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==i_.Tab?p_(r.selectColumnIds,n):[n]}}}function R_(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=j(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(N_(r.focusType)){if(M_(e)){if(b_(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=T_(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=F_(e)}else r.focusType=F_(e)}else if(S_(e)){if(w_(e))r.focusType=z(e.settings.show,N.tableComment)?W.tableComment:W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n-1];r.focusType=T_(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==i_.Tab?p_(r.selectColumnIds,a):[a]}}else r.focusType=O_(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function z_(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=j(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(N_(r.focusType)){if(j_(e)){if(b_(e)){let t=i.columnIds[0];r.focusType=E_(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=P_(e)}else r.focusType=P_(e)}else if(x_(e)){if(C_(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n+1];r.focusType=E_(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==i_.Tab?p_(r.selectColumnIds,a):[a]}}else r.focusType=D_(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const B_=3e4,V_=9e4,H_=3e3,U_=D(M.changeHasHistory),W_=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},G_=D(M.selectAll),K_=({editor:e,doc:t})=>{let n=t.tableIds.reduce((e,t)=>(e[t]=r_.table,e),{});e.selectedMap={...t.memoIds.reduce((e,t)=>(e[t]=r_.memo,e),{}),...n}},q_=D(M.unselectAll),J_=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},Y_=D(M.select),X_=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},Z_=D(M.changeViewport),Q_=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&tv(e)},$_=D(M.clear),ev=e=>{let{doc:t,collections:n}=Ip({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1};function tv(e){let{settings:t,editor:n}=e;if(!rg(n.viewport)){n.scrollPullPending=!0;return}let r=ig(e);t.originX=Ue(r.x,4),t.originY=Ue(r.y,4),n.scrollPullPending=!1}const nv=D(M.loadJson),rv=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Fm(t);vh(r.canvasType)||(r.canvasType=Lm.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,tv(e)},iv=D(M.initialClear),av=e=>{let{doc:t,collections:n}=Ip({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1},ov=D(M.initialLoadJson),sv=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Fm(t);vh(r.canvasType)||(r.canvasType=Lm.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,tv(e)},cv=D(M.focusTable),lv=({editor:e,collections:t},{payload:n})=>{let r=j(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId&&n.focusType)e.focusTable.focusType=n.focusType,e.focusTable.columnId=null,e.focusTable.prevSelectColumnId=null,e.focusTable.selectColumnIds=[];else if(n.focusType){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}else if(e.focusTable?.tableId!==n.tableId){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:W.tableName,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},uv=D(M.focusColumn),dv=({editor:e,collections:t},{payload:n})=>{let r=j(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId){let t=r.selectById(n.tableId);if(!t)return;let i=e.focusTable;i.columnId=n.columnId,i.focusType=n.focusType,i.selectColumnIds=n.$mod&&n.shiftKey?h_(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?m_(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?p_(i.selectColumnIds,n.columnId):[n.columnId],i.prevSelectColumnId=n.columnId}else{let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:n.columnId,prevSelectColumnId:n.columnId,selectColumnIds:[n.columnId],edit:!1}}},fv=D(M.focusTableEnd),pv=({editor:e})=>{e.focusTable=null},mv=D(M.focusMoveTable),hv=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case i_.ArrowUp:I_(e,t);break;case i_.ArrowDown:L_(e,t);break;case i_.ArrowLeft:R_(e,t);break;case i_.ArrowRight:z_(e,t);break;case i_.Tab:t.shiftKey?R_(e,t):z_(e,t)}},gv=D(M.editTable),_v=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},vv=D(M.editTableEnd),yv=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},bv=D(M.editMemo),xv=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},Sv=D(M.editMemoEnd),Cv=({editor:e})=>{e.editMemoId=null},wv=D(M.scrollMemo),Tv=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},Ev=D(M.selectAllColumn),Dv=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=j(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},Ov=D(M.drawStartRelationship),kv=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}}},Av=D(M.drawStartAddRelationship),jv=({editor:{drawRelationship:e},collections:t},{payload:{tableId:n}})=>{if(!e)return;let r=j(t).collection(`tableEntities`).selectById(n);r&&(e.start={tableId:n,x:r.ui.x,y:r.ui.y})},Mv=D(M.drawEndRelationship),Nv=({editor:e})=>{e.drawRelationship=null},Pv=D(M.drawRelationship),Fv=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=Zg(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},Iv=D(M.hoverColumnMap),Lv=({editor:e},{payload:{columnIds:t}})=>{Object.keys(e.hoverColumnMap).forEach(t=>{Reflect.deleteProperty(e.hoverColumnMap,t)});for(let n of t)e.hoverColumnMap[n]=!0},Rv=D(M.hoverRelationshipMap),zv=({editor:e},{payload:{relationshipIds:t}})=>{Object.keys(e.hoverRelationshipMap).forEach(t=>{Reflect.deleteProperty(e.hoverRelationshipMap,t)});for(let n of t)e.hoverRelationshipMap[n]=!0},Bv=D(M.changeOpenMap),Vv=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},Hv=D(M.changeHandTool),Uv=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null)},Wv=D(M.changeZenMode),Gv=({editor:e},{payload:{value:t}})=>{e.zenMode=t},Kv=D(M.dragstartColumn),qv=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Jv=D(M.dragendColumn),Yv=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},Xv=D(M.sharedMouseTracker),Zv=({editor:e},{payload:t,tags:n,meta:r})=>{if(v(n)||!z(n,Qm.shared)||!b(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!b(r.nickname)||He(r.nickname.trim())?`user`:r.nickname.trim();i?(i.x=t.x,i.y=t.y,i.nickname=a,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},B_)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},B_)}},Qv=D(M.sharedFocusTracker),$v=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(v(n)||!z(n,Qm.shared)||!b(r?.editorId)||e.id===r.editorId)return;let i=e.sharedFocusTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId));return}i?(i.tableId=t.tableId,i.columnId=t.columnId,i.focusType=t.focusType,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},V_)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},V_)}},ey=D(M.sharedSelectionTracker),ty=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(v(n)||!z(n,Qm.shared)||!b(r?.editorId)||e.id===r.editorId)return;let i=e.sharedSelectionTrackerMap[r.editorId];if(!t.length){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId));return}i?(i.selectedIds=t,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},V_)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},V_)}},ny=D(M.sharedDragSelectTracker),ry=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(v(n)||!z(n,Qm.shared)||!b(r?.editorId)||e.id===r.editorId)return;let i=e.sharedDragSelectTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId));return}i?(i.x=t.x,i.y=t.y,i.w=t.w,i.h=t.h,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},H_)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},H_)}},iy=D(M.dragSelectRect),ay=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},oy=D(M.validationIds),sy=({doc:e,collections:t})=>{let n=j(t).collection(`tableEntities`),r=j(t).collection(`tableColumnEntities`),i=j(t).collection(`indexEntities`),a=j(t).collection(`indexColumnEntities`),o=j(t).collection(`relationshipEntities`),s=j(t).collection(`memoEntities`),c=e.tableIds.filter(e=>!n.selectById(e)),l=e.relationshipIds.filter(e=>!o.selectById(e)),u=e.indexIds.filter(e=>!i.selectById(e)),d=e.memoIds.filter(e=>!s.selectById(e));e.tableIds=e.tableIds.filter(e=>!c.includes(e)),e.relationshipIds=e.relationshipIds.filter(e=>!l.includes(e)),e.indexIds=e.indexIds.filter(e=>!u.includes(e)),e.memoIds=e.memoIds.filter(e=>!d.includes(e)),n.selectAll().forEach(e=>{let t=e.columnIds.filter(e=>!r.selectById(e)),n=e.seqColumnIds.filter(e=>!r.selectById(e));e.columnIds=e.columnIds.filter(e=>!t.includes(e)),e.seqColumnIds=e.seqColumnIds.filter(e=>!n.includes(e))}),i.selectAll().forEach(e=>{let t=e.indexColumnIds.filter(e=>!a.selectById(e)),n=e.seqIndexColumnIds.filter(e=>!a.selectById(e));e.indexColumnIds=e.indexColumnIds.filter(e=>!t.includes(e)),e.seqIndexColumnIds=e.seqIndexColumnIds.filter(e=>!n.includes(e))})},cy=D(M.getLWW),ly=ge,uy=D(M.mergeLWW),dy=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{zp(e,r,t,n,ge),Bp(e,i,t,n,ge),Object.entries(a).forEach(([r,i])=>{Vp(e,i,t,n,r,ge)})})},fy={[M.changeHasHistory]:W_,[M.selectAll]:K_,[M.unselectAll]:J_,[M.select]:X_,[M.changeViewport]:Q_,[M.clear]:ev,[M.loadJson]:rv,[M.initialClear]:av,[M.initialLoadJson]:sv,[M.focusTable]:lv,[M.focusColumn]:dv,[M.focusTableEnd]:pv,[M.focusMoveTable]:hv,[M.editTable]:_v,[M.editTableEnd]:yv,[M.editMemo]:xv,[M.editMemoEnd]:Cv,[M.scrollMemo]:Tv,[M.selectAllColumn]:Dv,[M.drawStartRelationship]:kv,[M.drawStartAddRelationship]:jv,[M.drawEndRelationship]:Nv,[M.drawRelationship]:Fv,[M.hoverColumnMap]:Lv,[M.hoverRelationshipMap]:zv,[M.changeOpenMap]:Vv,[M.changeHandTool]:Uv,[M.changeZenMode]:Gv,[M.dragstartColumn]:qv,[M.dragendColumn]:Yv,[M.sharedMouseTracker]:Zv,[M.sharedFocusTracker]:$v,[M.sharedSelectionTracker]:ty,[M.sharedDragSelectTracker]:ry,[M.dragSelectRect]:ay,[M.validationIds]:sy,[M.getLWW]:ly,[M.mergeLWW]:dy},py={changeHasHistoryAction:U_,selectAllAction:G_,unselectAllAction:q_,selectAction:Y_,changeViewportAction:Z_,clearAction:$_,loadJsonAction:nv,initialClearAction:iv,initialLoadJsonAction:ov,focusTableAction:cv,focusColumnAction:uv,focusTableEndAction:fv,focusMoveTableAction:mv,editTableAction:gv,editTableEndAction:vv,editMemoAction:bv,editMemoEndAction:Sv,scrollMemoAction:wv,selectAllColumnAction:Ev,drawStartRelationshipAction:Ov,drawStartAddRelationshipAction:Av,drawEndRelationshipAction:Mv,drawRelationshipAction:Pv,hoverColumnMapAction:Iv,hoverRelationshipMapAction:Rv,changeOpenMapAction:Bv,changeHandToolAction:Hv,changeZenModeAction:Wv,dragstartColumnAction:Kv,dragendColumnAction:Jv,sharedMouseTrackerAction:Xv,sharedFocusTrackerAction:Qv,sharedSelectionTrackerAction:ey,sharedDragSelectTrackerAction:ny,dragSelectRectAction:iy,validationIdsAction:oy,getLWWAction:cy,mergeLWWAction:uy},my=(e,t,n)=>{e.push($_(),nv({value:Im(n)}))},hy=(e,t,n)=>{e.push(nv({value:Im(n)}))},gy={[M.loadJson]:my,[M.clear]:hy},_y={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},vy=e=>We({id:x(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:u_()},e??{}),yy=D(_y.addIndex),by=({doc:e,collections:t,lww:n},{payload:{id:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion();j(t).collection(`indexEntities`).addOne(vy({id:r,tableId:i})).addOperator(n,s,r,()=>{B(e.indexIds)(r)||e.indexIds.push(r)})},xy=D(_y.removeIndex),Sy=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();j(t).collection(`indexEntities`).removeOperator(n,o,r,()=>{let t=e.indexIds.indexOf(r);t!==-1&&e.indexIds.splice(t,1)})},Cy=D(_y.changeIndexName),wy=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=j(e).collection(`indexEntities`);c.getOrCreate(n,e=>vy({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},Ty=D(_y.changeIndexUnique),Ey=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=j(e).collection(`indexEntities`);c.getOrCreate(n,e=>vy({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},Dy={[_y.addIndex]:by,[_y.removeIndex]:Sy,[_y.changeIndexName]:wy,[_y.changeIndexUnique]:Ey},Oy={addIndexAction:yy,removeIndexAction:xy,changeIndexNameAction:Cy,changeIndexUniqueAction:Ty},ky=(e,{payload:{id:t}})=>{e.push(xy({id:t}))},Ay=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`indexEntities`).selectById(t);r&&e.push(yy({id:t,tableId:r.tableId}))},jy=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=j(r).collection(`indexEntities`).selectById(t);i&&e.push(Cy({id:t,tableId:n,value:i.name}))},My=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{j(i).collection(`indexEntities`).selectById(t)&&e.push(Ty({id:t,tableId:n,value:!r}))},Ny={[_y.addIndex]:ky,[_y.removeIndex]:Ay,[_y.changeIndexName]:jy,[_y.changeIndexUnique]:My},Py={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},Fy=e=>We({id:x(),indexId:``,columnId:``,orderType:qm.ASC,meta:u_()},e??{});function Iy(e,t,n){if(B(t)(n)){let r=t.reduce((e,t,n)=>(e[t]=n,e),{});e.push(n),e.sort((e,t)=>{let n=r[e],i=r[t];return n===void 0?1:i===void 0?-1:n-i})}else e.push(n),t.push(n)}const Ly=D(Py.addIndexColumn),Ry=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i,columnId:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=j(e).collection(`indexEntities`),u=l.getOrCreate(r,e=>vy({id:e,tableId:i}));j(e).collection(`indexColumnEntities`).addOne(Fy({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{B(u.indexColumnIds)(n)||l.updateOne(r,e=>{Iy(e.indexColumnIds,e.seqIndexColumnIds,n)})})},zy=D(Py.removeIndexColumn),By=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=j(e).collection(`indexEntities`),l=c.getOrCreate(r,e=>vy({id:e,tableId:i}));j(e).collection(`indexColumnEntities`).removeOperator(t,s,n,()=>{let e=l.indexColumnIds.indexOf(n);e!==-1&&c.updateOne(r,t=>{t.indexColumnIds.splice(e,1)})})},Vy=D(Py.moveIndexColumn),Hy=({collections:e},{payload:{id:t,indexId:n,tableId:r,targetId:i}})=>{if(t===i)return;let a=j(e).collection(`indexEntities`),o=a.getOrCreate(n,e=>vy({id:e,tableId:r})),s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);c!==-1&&a.updateOne(n,e=>{e.indexColumnIds.splice(s,1),e.indexColumnIds.splice(c,0,t);let n=e.seqIndexColumnIds.indexOf(t),r=e.seqIndexColumnIds.indexOf(i);n!==-1&&r!==-1&&(e.seqIndexColumnIds.splice(n,1),e.seqIndexColumnIds.splice(r,0,t))})},Uy=D(Py.changeIndexColumnOrderType),Wy=({collections:e,lww:t},{payload:{id:n,indexId:r,columnId:i,value:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=j(e).collection(`indexColumnEntities`);l.getOrCreate(n,e=>Fy({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},Gy={[Py.addIndexColumn]:Ry,[Py.removeIndexColumn]:By,[Py.moveIndexColumn]:Hy,[Py.changeIndexColumnOrderType]:Wy},Ky={addIndexColumnAction:Ly,removeIndexColumnAction:zy,moveIndexColumnAction:Vy,changeIndexColumnOrderTypeAction:Uy},qy=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(zy({id:t,indexId:n,tableId:r}))},Jy=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=j(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Ly({id:t,indexId:n,tableId:r,columnId:a.columnId}))},Yy=(e,{payload:{id:t,indexId:n,tableId:r,targetId:i}},{collections:a})=>{let o=j(a).collection(`indexEntities`).selectById(n);if(!o)return;let s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);if(c===-1)return;let l=s<c?s+1:s-1,u=o.indexColumnIds[l];e.push(Vy({indexId:n,tableId:r,id:t,targetId:u}))},Xy=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=j(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Uy({id:t,indexId:n,columnId:r,value:a.orderType}))},Zy={[Py.addIndexColumn]:qy,[Py.removeIndexColumn]:Jy,[Py.moveIndexColumn]:Yy,[Py.changeIndexColumnOrderType]:Xy},Qy={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},$y=e=>We({id:x(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:u_()},e??{}),eb=D(Qy.addMemo),tb=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();j(t).collection(`memoEntities`).addOne($y({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.memoIds)(r)||e.memoIds.push(r)})},nb=D(Qy.moveMemo),rb=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=j(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>$y({id:e}));i.updateMany(t,e=>{e.ui.x=Ue(e.ui.x+n,4),e.ui.y=Ue(e.ui.y+r,4)})},ib=D(Qy.moveToMemo),ab=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=j(e).collection(`memoEntities`);i.getOrCreate(t,e=>$y({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},ob=D(Qy.removeMemo),sb=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();j(t).collection(`memoEntities`).removeOperator(n,o,r,()=>{let t=e.memoIds.indexOf(r);t!==-1&&e.memoIds.splice(t,1)})},cb=D(Qy.changeMemoValue),lb=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`memoEntities`);s.getOrCreate(n,e=>$y({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},ub=D(Qy.changeMemoColor),db=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`memoEntities`);s.getOrCreate(n,e=>$y({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},fb=D(Qy.resizeMemo),pb=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=j(e).collection(`memoEntities`);o.getOrCreate(t,e=>$y({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},mb=D(Qy.changeZIndex),hb=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=j(e).collection(`memoEntities`);r.getOrCreate(t,e=>$y({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},gb={[Qy.addMemo]:tb,[Qy.moveMemo]:rb,[Qy.moveToMemo]:ab,[Qy.removeMemo]:sb,[Qy.changeMemoValue]:lb,[Qy.changeMemoColor]:db,[Qy.resizeMemo]:pb,[Qy.changeZIndex]:hb},_b={addMemoAction:eb,moveMemoAction:nb,moveToMemoAction:ib,removeMemoAction:ob,changeMemoValueAction:cb,changeMemoColorAction:ub,resizeMemoAction:fb,changeZIndexAction:mb},vb=(e,{payload:{id:t}})=>{e.push(ob({id:t}))},yb=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`memoEntities`).selectById(t);r&&e.push(eb({id:r.id,ui:ve(r.ui,[`x`,`y`,`zIndex`])}))},bb=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`memoEntities`).selectById(t);r&&e.push(cb({id:t,value:r.value}))},xb=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`memoEntities`).selectById(t);r&&e.push(ib({id:t,x:r.ui.x,y:r.ui.y}))},Sb={[Qy.addMemo]:vb,[Qy.removeMemo]:yb,[Qy.changeMemoValue]:bb,[Qy.moveToMemo]:xb},Cb=(e,t,n)=>{let r=n.filter(e=>e.type===nb.type);if(!r.length)return;let i=ce(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=le(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(nb({ids:r,movementX:-1*i,movementY:-1*a})),t.push(nb({ids:r,movementX:i,movementY:a})))}},wb=(e,t,n)=>{let r=n.filter(({type:e})=>e===ub.type);if(!r.length)return;let i=ce(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=le(r),a=me(r);e.push(ub({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(ub({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},Tb=(e,t,n)=>{let r=n.filter(e=>e.type===fb.type);if(!r.length)return;let i=ce(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=le(n),i=me(n);e.push(r),t.push(i)}},Eb={[Qy.moveMemo]:Cb,[Qy.changeMemoColor]:wb,[Qy.resizeMemo]:Tb},Db={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`},Ob=e=>We({id:x(),identification:!1,relationshipType:Gm.ZeroN,startRelationshipType:Km.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:I.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:I.bottom},meta:u_()},e??{}),kb=D(Db.addRelationship),Ab=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,start:a,end:o},version:s},{clock:c})=>{let l=s??c.getVersion();j(t).collection(`relationshipEntities`).addOne(Ob({id:r,relationshipType:i,start:{tableId:a.tableId,columnIds:a.columnIds},end:{tableId:o.tableId,columnIds:o.columnIds}})).addOperator(n,l,r,()=>{B(e.relationshipIds)(r)||e.relationshipIds.push(r)})},jb=D(Db.removeRelationship),Mb=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();j(t).collection(`relationshipEntities`).removeOperator(n,o,r,()=>{let t=e.relationshipIds.indexOf(r);t!==-1&&e.relationshipIds.splice(t,1)})},Nb=D(Db.changeRelationshipType),Pb=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`relationshipType`,()=>{s.updateOne(n,e=>{e.relationshipType=r})})},Fb={[Db.addRelationship]:Ab,[Db.removeRelationship]:Mb,[Db.changeRelationshipType]:Pb},Ib={addRelationshipAction:kb,removeRelationshipAction:jb,changeRelationshipTypeAction:Nb},Lb=(e,{payload:{id:t}})=>{e.push(jb({id:t}))},Rb=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`relationshipEntities`).selectById(t);r&&e.push(kb({id:r.id,relationshipType:r.relationshipType,start:ve(r.start,[`tableId`,`columnIds`]),end:ve(r.end,[`tableId`,`columnIds`])}))},zb=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`relationshipEntities`).selectById(t);r&&e.push(Nb({id:t,value:r.relationshipType}))},Bb={[Db.addRelationship]:Lb,[Db.removeRelationship]:Rb,[Db.changeRelationshipType]:zb},Vb=(e,t,{settings:n})=>{e.push(ag({originX:n.originX,originY:n.originY}))},Hb=(e,{payload:{show:t,value:n}})=>{e.push(lg({show:t,value:!n}))},Ub=(e,t,{settings:n})=>{e.push($h({value:n.zoomLevel}))},Wb={[H.scrollTo]:Vb,[H.changeShow]:Hb,[H.changeZoomLevel]:Ub},Gb=(e,t,n)=>{let r=n.filter(e=>e.type===sg.type);if(!r.length)return;let{x:i,y:a}=r.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(sg({movementX:-1*i,movementY:-1*a})),t.push(sg({movementX:i,movementY:a})))},Kb=(e,t,n)=>{let r=n.filter(e=>e.type===tg.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(tg({value:-1*i})),t.push(tg({value:i}))},qb={[H.streamScrollTo]:Gb,[H.streamZoomLevel]:Kb},G={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`},Jb=e=>We({id:x(),name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:u_()},e??{}),Yb=D(G.addTable),Xb=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();j(t).collection(`tableEntities`).addOne(Jb({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.tableIds)(r)||e.tableIds.push(r)})},Zb=D(G.moveTable),Qb=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=j(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>Jb({id:e}));i.updateMany(t,e=>{e.ui.x=Ue(e.ui.x+n,4),e.ui.y=Ue(e.ui.y+r,4)})},$b=D(G.moveToTable),ex=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=j(e).collection(`tableEntities`);i.getOrCreate(t,e=>Jb({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},tx=D(G.removeTable),nx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();j(t).collection(`tableEntities`).removeOperator(n,o,r,()=>{let t=e.tableIds.indexOf(r);t!==-1&&e.tableIds.splice(t,1)})},rx=D(G.changeTableName),ix=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableEntities`);c.getOrCreate(n,e=>Jb({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=V(a(r))})})},ax=D(G.changeTableComment),ox=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableEntities`);c.getOrCreate(n,e=>Jb({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=V(a(r))})})},sx=D(G.changeTableColor),cx=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableEntities`);s.getOrCreate(n,e=>Jb({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},lx=D(G.changeZIndex),ux=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=j(e).collection(`tableEntities`);r.getOrCreate(t,e=>Jb({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},dx=D(G.sortTable),fx=e=>{let{doc:t,settings:n,collections:r}=e,i=n.width,a=j(r).collection(`tableEntities`).selectByIds(t.tableIds);a.sort((e,t)=>e.columnIds.length-t.columnIds.length);let o=50,s=50,c=50;a.forEach(t=>{let n=wh(t,e).width+80,r=Oh(t)+80;o+n>i&&(s+=c,c=0,o=50),c<r&&(c=r),t.ui.y=s,t.ui.x=o,o+=n})},px={[G.addTable]:Xb,[G.moveTable]:Qb,[G.moveToTable]:ex,[G.removeTable]:nx,[G.changeTableName]:ix,[G.changeTableComment]:ox,[G.changeTableColor]:cx,[G.changeZIndex]:ux,[G.sortTable]:fx},mx={addTableAction:Yb,moveTableAction:Zb,moveToTableAction:$b,removeTableAction:tx,changeTableNameAction:rx,changeTableCommentAction:ax,changeTableColorAction:sx,changeZIndexAction:lx,sortTableAction:dx},hx=(e,{payload:{id:t}})=>{e.push(tx({id:t}))},gx=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`tableEntities`).selectById(t);r&&e.push(Yb({id:r.id,ui:ve(r.ui,[`x`,`y`,`zIndex`])}))},_x=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`tableEntities`).selectById(t);r&&e.push(rx({id:t,value:r.name}))},vx=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`tableEntities`).selectById(t);r&&e.push(ax({id:t,value:r.comment}))},yx=(e,{payload:{id:t}},{collections:n})=>{let r=j(n).collection(`tableEntities`).selectById(t);r&&e.push($b({id:t,x:r.ui.x,y:r.ui.y}))},bx=()=>{},xx={[G.addTable]:hx,[G.removeTable]:gx,[G.changeTableName]:_x,[G.changeTableComment]:vx,[G.moveToTable]:yx,[G.sortTable]:bx},Sx=(e,t,n)=>{let r=n.filter(e=>e.type===Zb.type);if(!r.length)return;let i=ce(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=le(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(Zb({ids:r,movementX:-1*i,movementY:-1*a})),t.push(Zb({ids:r,movementX:i,movementY:a})))}},Cx=(e,t,n)=>{let r=n.filter(({type:e})=>e===sx.type);if(!r.length)return;let i=ce(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=le(r),a=me(r);e.push(sx({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(sx({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},wx={[G.moveTable]:Sx,[G.changeTableColor]:Cx},K={addColumn:`column.add`,removeColumn:`column.remove`,changeColumnName:`column.changeName`,changeColumnComment:`column.changeComment`,changeColumnDataType:`column.changeDataType`,changeColumnDefault:`column.changeDefault`,changeColumnAutoIncrement:`column.changeAutoIncrement`,changeColumnPrimaryKey:`column.changePrimaryKey`,changeColumnUnique:`column.changeUnique`,changeColumnNotNull:`column.changeNotNull`,moveColumn:`column.move`},Tx=e=>We({id:x(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:u_()},e??{}),Ex=D(K.addColumn),Dx=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>Jb({id:e}));j(e).collection(`tableColumnEntities`).addOne(Tx({id:n,tableId:r})).addOperator(t,o,n,()=>{B(c.columnIds)(n)||s.updateOne(r,e=>{Iy(e.columnIds,e.seqColumnIds,n)})})},Ox=D(K.removeColumn),kx=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>Jb({id:e}));j(e).collection(`tableColumnEntities`).removeOperator(t,o,n,()=>{let e=c.columnIds.indexOf(n);e!==-1&&s.updateOne(r,t=>{t.columnIds.splice(e,1)})})},Ax=D(K.changeColumnName),jx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>Tx({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=V(a(r))})})},Mx=D(K.changeColumnComment),Nx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>Tx({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=V(a(r))})})},Px=D(K.changeColumnDataType),Fx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>Tx({id:e})),c.replaceOperator(t,s,n,`dataType`,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=V(a(r))})})},Ix=D(K.changeColumnDefault),Lx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=j(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>Tx({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=V(a(r))})})},Rx=D(K.changeColumnAutoIncrement),zx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>Tx({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.autoIncrement:e.options&~L.autoIncrement})})},Bx=D(K.changeColumnPrimaryKey),Vx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>Tx({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.primaryKey:e.options&~L.primaryKey,e.ui.keys=r?e.ui.keys|R.primaryKey:e.ui.keys&~R.primaryKey})})},Hx=D(K.changeColumnUnique),Ux=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>Tx({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.unique:e.options&~L.unique})})},Wx=D(K.changeColumnNotNull),Gx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=j(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>Tx({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.notNull:e.options&~L.notNull})})},Kx=D(K.moveColumn),qx=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=j(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>Jb({id:e})),o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);s!==-1&&i.updateOne(n,e=>{e.columnIds.splice(o,1),e.columnIds.splice(s,0,t);let n=e.seqColumnIds.indexOf(t),i=e.seqColumnIds.indexOf(r);n!==-1&&i!==-1&&(e.seqColumnIds.splice(n,1),e.seqColumnIds.splice(i,0,t))})},Jx={[K.addColumn]:Dx,[K.removeColumn]:kx,[K.changeColumnName]:jx,[K.changeColumnComment]:Nx,[K.changeColumnDataType]:Fx,[K.changeColumnDefault]:Lx,[K.changeColumnAutoIncrement]:zx,[K.changeColumnPrimaryKey]:Vx,[K.changeColumnUnique]:Ux,[K.changeColumnNotNull]:Gx,[K.moveColumn]:qx},Yx={addColumnAction:Ex,removeColumnAction:Ox,changeColumnNameAction:Ax,changeColumnCommentAction:Mx,changeColumnDataTypeAction:Px,changeColumnDefaultAction:Ix,changeColumnAutoIncrementAction:Rx,changeColumnPrimaryKeyAction:Bx,changeColumnUniqueAction:Hx,changeColumnNotNullAction:Wx,moveColumnAction:Kx},Xx=(e,{payload:{id:t,tableId:n}})=>{e.push(Ox({id:t,tableId:n}))},Zx=(e,{payload:{id:t,tableId:n}})=>{e.push(Ex({id:t,tableId:n}))},Qx=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=j(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Ax({id:t,tableId:n,value:i.name}))},$x=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=j(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Px({id:t,tableId:n,value:i.dataType}))},eS=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=j(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Ix({id:t,tableId:n,value:i.default}))},tS=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=j(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Mx({id:t,tableId:n,value:i.comment}))},nS=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{j(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Rx({id:t,tableId:n,value:!r}))},rS=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{j(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Wx({id:t,tableId:n,value:!r}))},iS=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{j(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Bx({id:t,tableId:n,value:!r}))},aS=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{j(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Hx({id:t,tableId:n,value:!r}))},oS=(e,{payload:{id:t,tableId:n,targetId:r}},{collections:i})=>{let a=j(i).collection(`tableEntities`).selectById(n);if(!a)return;let o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);if(s===-1)return;let c=o<s?o+1:o-1,l=a.columnIds[c];e.push(Kx({id:t,tableId:n,targetId:l}))},sS={[K.addColumn]:Xx,[K.removeColumn]:Zx,[K.changeColumnName]:Qx,[K.changeColumnDataType]:$x,[K.changeColumnDefault]:eS,[K.changeColumnComment]:tS,[K.changeColumnAutoIncrement]:nS,[K.changeColumnNotNull]:rS,[K.changeColumnPrimaryKey]:iS,[K.changeColumnUnique]:aS,[K.moveColumn]:oS};function cS(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const lS={...xx,...sS,...Bb,...Sb,...Wb,...gy,...Ny,...Zy},uS={...wx,...Eb,...qb};function dS(e,t,n){let r=[],i=[];for(let t of n){let n=lS[t.type];n&&(n(r,t,e.state),i.push(oe(t)))}for(let e of Object.keys(uS))uS[e](r,i,n);!r.length||!i.length||t.push({undo:(e,t)=>{e(r.map(fS(t())))},redo:(e,t)=>{e(i.map(fS(t())))}})}function fS(e){return t=>({...oe(t),version:e})}const pS=(e,t)=>n=>{cS(dS,e,t,n)},mS=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=j(r).collection(`tableEntities`).selectByIds(t),a=j(r).collection(`memoEntities`).selectByIds(n),o=l_(e,i,a),s=x();yield sk(),yield Y_({[s]:r_.memo}),yield eb({id:s,ui:{...o,zIndex:s_(i,a)}})},hS=e=>function*({editor:{selectedMap:t}}){if(e){yield ob({id:e});return}let n=Object.entries(t).filter(([,e])=>e===r_.memo);for(let[e]of n)yield ob({id:e})},gS=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i}){let a=j(i).collection(`tableEntities`).selectByIds(n),o=j(i).collection(`memoEntities`).selectByIds(r);t||(yield sk()),yield Y_({[e]:r_.memo}),yield mb({id:e,zIndex:s_(a,o)})},_S={addMemoAction$:mS,removeMemoAction$:hS,selectMemoAction$:gS};B(Object.values({tables:`tables`,columns:`columns`}));const vS=({x:e,y:t})=>`${e},${t}`,yS=(e,t)=>e<t?-1:+(e>t),bS=e=>e.ui.zIndex??0;function xS({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>vS(e))),l=new Map,u=[];for(let n of e){let e=o(n.sourceId);e?l.set(n.sourceId,{x:e.ui.x+t.x,y:e.ui.y+t.y}):u.push(n)}if(u.length!==0){let e=l_(r,i,a),t=u.reduce((e,t)=>t.ui.x<e.ui.x||t.ui.x===e.ui.x&&t.ui.y<e.ui.y?t:e);for(let n of u)l.set(n.sourceId,{x:e.x+(n.ui.x-t.ui.x),y:e.y+(n.ui.y-t.ui.y)})}if(n){let t=[...e].sort((e,t)=>yS(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(vS(t));)t.x+=50,t.y+=50;c.add(vS(t))}}}let d=s_(i,a);return[...e].sort((e,t)=>bS(e)-bS(t)||yS(e.sourceId,t.sourceId)).forEach(({sourceId:e},t)=>{let n=l.get(e);n&&s.set(e,{x:n.x,y:n.y,zIndex:d+t})}),s}B(Object.values({columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`}));function SS(e,t){return t.filter(t=>{switch(t){case P.columnName:return!0;case P.columnDataType:return z(e,N.columnDataType);case P.columnDefault:return z(e,N.columnDefault);case P.columnComment:return z(e,N.columnComment);case P.columnAutoIncrement:return z(e,N.columnAutoIncrement);case P.columnUnique:return z(e,N.columnUnique);case P.columnNotNull:return z(e,N.columnNotNull);default:return!1}})}const CS=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=j(r).collection(`tableEntities`).selectByIds(t),a=j(r).collection(`memoEntities`).selectByIds(n),o=l_(e,i,a),s=x();yield q_(),yield Y_({[s]:r_.table}),yield Yb({id:s,ui:{...o,zIndex:s_(i,a)}}),yield cv({tableId:s})},wS=e=>function*({doc:{relationshipIds:t,indexIds:n},editor:{selectedMap:r},collections:i}){let a=j(i).collection(`relationshipEntities`).selectByIds(t),o=j(i).collection(`indexEntities`).selectByIds(n);if(e){let t=a.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=o.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield xy({id:e});for(let{id:e}of t)yield jb({id:e});yield tx({id:e});return}let s=Object.entries(r).filter(([,e])=>e===r_.table).map(([e])=>e),c=B(s),l=a.filter(({start:e,end:t})=>c(e.tableId)||c(t.tableId)),u=o.filter(({tableId:e})=>c(e));for(let{id:e}of u)yield xy({id:e});for(let{id:e}of l)yield jb({id:e});for(let e of s)yield tx({id:e})},TS=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a}}){let o=j(i).collection(`tableEntities`),s=o.selectByIds(n),c=j(i).collection(`memoEntities`).selectByIds(r);if(t||(yield q_()),yield Y_({[e]:r_.table}),yield lx({id:e,zIndex:s_(s,c)}),yield cv({tableId:e}),a){if(a.start){let t=o.selectById(a.start.tableId),n=o.selectById(e);if(!t||!n)return;let r=j(i).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>z(e,L.primaryKey));if(!r.length)return;let s=r.map(()=>x());for(let e=0;e<r.length;e++){let t=r[e],i={id:s[e],tableId:n.id};yield[Ex(i),Wx({...i,value:!0}),Ax({...i,value:t.name}),Px({...i,value:t.dataType}),Ix({...i,value:t.default}),Mx({...i,value:t.comment})]}yield kb({id:x(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:r.map(({id:e})=>e)},end:{tableId:n.id,columnIds:s}}),yield Mv()}else yield uk(e)}},ES={addTableAction$:CS,removeTableAction$:wS,selectTableAction$:TS,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!N_(n.focusType),s=Object.entries(t).filter(([,e])=>e===r_.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:x(),tableId:t};yield[Ex(e),Ax({...e,value:n.name}),Px({...e,value:n.dataType}),Ix({...e,value:n.default}),Mx({...e,value:n.comment}),Wx({...e,value:z(n.options,L.notNull)}),Hx({...e,value:z(n.options,L.unique)}),Rx({...e,value:z(n.options,L.autoIncrement)})]}if(!n||!o)return;let c=j(a).collection(`tableEntities`).selectById(n.tableId);if(!c)return;let l=c.columnIds.filter(B(n.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=SS(r,i);yield fv();for(let t=0;t<d.length;t++){let r=d[t],i=e[t];if(!i)break;let a={id:r,tableId:c.id};yield[...f.map(e=>{switch(e){case P.columnName:return Ax({...a,value:i.name});case P.columnDataType:return Px({...a,value:i.dataType});case P.columnDefault:return Ix({...a,value:i.default});case P.columnComment:return Mx({...a,value:i.comment});case P.columnAutoIncrement:return Rx({...a,value:z(i.options,L.autoIncrement)});case P.columnUnique:return Hx({...a,value:z(i.options,L.unique)});case P.columnNotNull:return Wx({...a,value:z(i.options,L.notNull)});default:return null}}).filter(Boolean),uv({tableId:c.id,columnId:r,focusType:n.focusType,$mod:!0,shiftKey:!1})]}let p=e.slice(d.length);for(let e of p){let t=x(),r={id:t,tableId:c.id};yield[Ex(r),...f.map(t=>{switch(t){case P.columnName:return Ax({...r,value:e.name});case P.columnDataType:return Px({...r,value:e.dataType});case P.columnDefault:return Ix({...r,value:e.default});case P.columnComment:return Mx({...r,value:e.comment});case P.columnAutoIncrement:return Rx({...r,value:z(e.options,L.autoIncrement)});case P.columnUnique:return Hx({...r,value:z(e.options,L.unique)});case P.columnNotNull:return Wx({...r,value:z(e.options,L.notNull)});default:return null}}).filter(Boolean),uv({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}}};function DS(e,t,n,r=[]){let{doc:{relationshipIds:i},collections:a}=t,o=e.pop();return o&&(r.some(({id:e})=>e===o.id)||(r.push(o),j(a).collection(`relationshipEntities`).selectByIds(i).forEach(({start:t,end:r})=>{let i=t.columnIds.indexOf(o.id);if(i!==-1){let t=r.columnIds[i];e.push({id:t,tableId:r.tableId,value:n.value})}else{let i=r.columnIds.indexOf(o.id);if(i!==-1){let r=t.columnIds[i];e.push({id:r,tableId:t.tableId,value:n.value})}}})),DS(e,t,n,r)),r}const OS=B([W.columnNotNull,W.columnUnique,W.columnAutoIncrement]),kS=B([W.columnName,W.columnDataType,W.columnDefault,W.columnComment]),AS=e=>function*({editor:{selectedMap:t}}){if(e){let t=x();yield Ex({id:t,tableId:e}),yield uv({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===r_.table).map(([e])=>({tableId:e,id:x()}));for(let e of n)yield Ex(e);let r=me(n);r&&(yield uv({tableId:r.tableId,columnId:r.id,focusType:W.columnName,$mod:!1,shiftKey:!1}))},jS=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=k_(n,t);e?yield uv({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield cv({tableId:a.tableId,focusType:W.tableName})}let s=B(t),c=j(o).collection(`relationshipEntities`).selectByIds(r).filter(({start:t,end:n})=>t.tableId===e&&t.columnIds.some(s)||n.tableId===e&&n.columnIds.some(s)),l=j(o).collection(`indexEntities`).selectByIds(i).filter(t=>t.tableId===e&&j(o).collection(`indexColumnEntities`).selectByIds(t.indexColumnIds).map(({columnId:e})=>e).some(s));for(let{id:e}of l)yield xy({id:e});for(let{id:e}of c)yield jb({id:e});for(let n of t)yield Ox({id:n,tableId:e})},MS=(e,t,n)=>function*({collections:r}){if(!OS(e))return;let i=j(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case W.columnNotNull:yield Wx({id:n,tableId:t,value:!z(i.options,L.notNull)});break;case W.columnUnique:yield Hx({id:n,tableId:t,value:!z(i.options,L.unique)});break;case W.columnAutoIncrement:yield Rx({id:n,tableId:t,value:!z(i.options,L.autoIncrement)})}},NS=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=DS([e],t,e)),yield r.map(Px)},PS={addColumnAction$:AS,removeColumnAction$:jS,toggleColumnValueAction$:MS,changeColumnDataTypeAction$:NS,changeColumnValueAction$:(e,t,n,r)=>function*({collections:i}){if(!kS(e)||!j(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case W.columnName:yield Ax(a);break;case W.columnDataType:yield NS(a);break;case W.columnDefault:yield Ix(a);break;case W.columnComment:yield Mx(a)}},changeColumnPrimaryKeyAction$:(e,t)=>function*({collections:n}){let r=j(n).collection(`tableColumnEntities`).selectById(t);if(!r)return;let i=z(r.options,L.primaryKey);yield Bx({tableId:e,id:t,value:!i})}};function FS(e,t){return!(e.x>t.x+t.w||e.x+e.w<t.x||e.y>t.y+t.h||e.y+e.h<t.y)}function IS(e){return e.filter(({options:e})=>z(e,L.primaryKey))}function LS(e,t,n,r=1){let i=!0;for(let r of e)if(n===r.name&&r.id!==t&&n!==``){i=!1;break}return i?n:LS(e,t,n.replace(/[0-9]/g,``)+r,r+1)}function RS(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const zS={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`};function BS(e,t,n,r=[]){let i=US(e,n,r);return i.members?HS(i.members,t)??zS[t]??i.typeName:i.typeName}function VS(e,t,n,r=[]){let{members:i}=US(e,t,r);return!i||HS(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function HS(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function US(e,t,n){if(n.length)return{typeName:e,members:n};let r=new Set,i=e;for(;!r.has(i);){r.add(i);let e=WS(i,t);if(!e)break;if(e.values.length)return{typeName:i,members:e.values};if(!e.alias)break;i=e.alias}return{typeName:i,members:null}}function WS(e,t){let n=t.types[e];if(n)return n;let r=Object.keys(t.types).find(t=>t.slice(t.lastIndexOf(`.`)+1)===e);return r===void 0?void 0:t.types[r]}const GS={database:``,catalog:``,schema:``},KS=YS(GS);function qS(e,t,n){let r=Ip({}),i=JS(e.entities),a=e.entities.map(a=>QS(r,t,e,n,a,i(a)));return tC(r,t,a,e,ZS(e.entities,a)),oC(r,a),r}function JS(e){let t=new Set(e.map(e=>YS(e.namespace)));return e=>{let n=YS(e.namespace);return t.size>1&&n!==KS?`${XS(e.namespace)}_${e.name}`:e.name}}function YS({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function XS({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function ZS(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=YS(e.namespace);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=YS(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===KS?n.get(e.entityName.toLowerCase())??null:null)}}function QS({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=yh(o),l=yh(a.comment),u=Jb({name:c,comment:l,ui:{widthName:V(s(c)),widthComment:V(s(l))}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=yh(e.path),a=BS(e.typeName,i,r,e.enumValues),o=`${yh(e.comment)}${VS(e.typeName,r,i,e.enumValues)}`.trim(),c=yh(e.default);eC(t,d,Tx({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?L.autoIncrement:0)|(e.primaryKey?L.primaryKey:0)|($S(e)?L.unique:0)|(e.notNull?L.notNull:0),ui:{widthName:V(s(n)),widthComment:V(s(o)),widthDataType:V(s(a)),widthDefault:V(s(c)),keys:e.primaryKey?R.primaryKey:0}}))}),e.tableIds.push(u.id),j(t).collection(`tableEntities`).setOne(u),d}function $S(e){return e.indexes.some(e=>e.unique&&e.name===``)}function eC(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),j(e).collection(`tableColumnEntities`).setOne(n)}function tC(e,t,n,r,i){let a=new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=nC(o,r.src),l=nC(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){iC(e,t,n,o,s);return}rC(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`})}})}function nC(e,t){if(t.attributePaths.length===0)return IS(e.columns);let n=[];for(let r of t.attributePaths){let t=RS(e.columns,r);if(!t)return[];n.push(t)}return n}function rC({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c}){let l=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(l))return;r.add(l);let u=s.every(e=>z(e.options,L.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=V(n(r))}e.ui.keys=z(e.ui.keys,R.primaryKey)?e.ui.keys|R.foreignKey:R.foreignKey});let d=Ob({identification:s.every(e=>z(e.ui.keys,R.primaryKey)&&z(e.ui.keys,R.foreignKey)),relationshipType:c?u?Gm.OneN:Gm.ZeroN:u?Gm.OneOnly:Gm.ZeroOne,start:{tableId:i.table.id,columnIds:a.map(e=>e.id)},end:{tableId:o.table.id,columnIds:s.map(e=>e.id)}});e.relationshipIds.push(d.id),j(t).collection(`relationshipEntities`).setOne(d)}function iC(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=IS(r.columns),l=IS(i.columns);if(!c.length||!l.length)return;let u=LS(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=Jb({name:u,comment:d,ui:{widthName:V(s(u)),widthComment:V(s(d))}}),p={source:{namespace:GS,name:u,alias:``,comment:d,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),j(o).collection(`tableEntities`).setOne(f),n.push(p),aC(e,t,p,r,c),aC(e,t,p,i,l)}function aC(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=LS(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=Tx({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return eC(o,n,s),s}),c=Ob({identification:!0,relationshipType:Gm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),j(o).collection(`relationshipEntities`).setOne(c)}function oC({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=new Map;n.attributes.forEach((e,t)=>{let n=i[t];n&&e.indexes.forEach((e,i)=>{if(e.unique&&e.name===``)return;let o=e.name===``?`b:${t}:${i}`:`n:${e.name}`,s=a.get(o)??{index:vy({name:yh(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(Fy({indexId:s.index.id,columnId:n.id,orderType:qm.ASC})),a.set(o,s)})}),a.forEach(({index:n,indexColumns:r})=>{r.forEach(e=>{n.indexColumnIds.push(e.id),n.seqIndexColumnIds.push(e.id),j(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(n.id),j(t).collection(`indexEntities`).setOne(n)})})}const q={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},sC=/[ \t\f\v]/,cC=/[0-9]/,lC=/[A-Za-z_\u0080-\uffff]/,uC=/[0-9A-Za-z_#\u0080-\uffff]/,dC=/^[ \t]*/,fC=/\\#/g,pC={n:`
2
+ `};function mC(e){let t=[],n=0,r=1,i=hC(e,0),a=(e,n)=>{t.push({kind:e,value:n,line:r,depth:i})};for(t.push({kind:q.newline,value:``,line:0,depth:i});n<e.length;){let t=e[n];if(sC.test(t)){n+=1;continue}if(t===`\r`||t===`
3
+ `){t===`\r`&&e[n+1]===`
4
+ `&&(n+=1),n+=1,i=hC(e,n),a(q.newline,`
5
+ `),r+=1;continue}if(t===`#`){let t=n+1;for(;t<e.length&&e[t]!==`
6
+ `&&e[t]!==`\r`;)t+=1;a(q.comment,e.slice(n+1,t).trim()),n=t;continue}if(t===`|`){if(e.startsWith(`|||`,n)){let t=_C(e,n+3);a(q.doc,bC(t.value)),n=t.index,r+=t.lines;continue}let t=gC(e,n+1);a(q.doc,t.value),n=t.index;continue}if(t===`"`){let t=vC(e,n+1,`"`,!0,!1);a(q.quoted,t.value),n=t.index;continue}if(t===`'`){let t=vC(e,n+1,`'`,!0,!1);a(q.string,t.value),n=t.index;continue}if(t==="`"){let t=vC(e,n+1,"`",!1,!0);a(q.expression,t.value),n=t.index,r+=t.lines;continue}if(cC.test(t)){let t=n;for(;t<e.length&&cC.test(e[t]);)t+=1;if(e[t]===`.`&&cC.test(e[t+1]??``))for(t+=1;t<e.length&&cC.test(e[t]);)t+=1;a(q.number,e.slice(n,t)),n=t;continue}if(lC.test(t)){let t=n+1;for(;t<e.length&&uC.test(e[t]);)t+=1;for(;t>n&&e[t-1]===`#`;)--t;a(q.identifier,e.slice(n,t)),n=t;continue}a(q.punctuation,t),n+=1}return t}function hC(e,t){let n=0;for(let r=t;r<e.length;r++){let t=e[r];if(t===` `)n+=1;else if(t===` `)n+=.5;else break}return Math.round(n)-1}function gC(e,t){let n=t;for(;n<e.length&&sC.test(e[n]);)n+=1;if(n>t&&e[n]===`"`){let t=vC(e,n+1,`"`,!0,!1);if(t.terminated)return{value:t.value,index:t.index}}let r=[];for(n=t;n<e.length;){let t=e[n];if(t===`
7
+ `||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value:yC(r.join(``).trim().replace(fC,`#`)),index:n}}function _C(e,t){let n=e.indexOf(`|||`,t),r=n===-1?e.length:n,i=e.slice(t,r);return{value:i,index:n===-1?e.length:n+3,lines:i.split(`
8
+ `).length-1}}function vC(e,t,n,r,i){let a=[],o=t,s=0;for(;o<e.length;){if(e.startsWith(n,o))return{value:a.join(``),index:o+n.length,lines:s,terminated:!0};let t=e[o];if(!i&&(t===`
9
+ `||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(pC[c]??c),o+=2;continue}t===`
10
+ `&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function yC(e){let t=e[0];return e.length>1&&(t===`"`||t===`'`)&&e.endsWith(t)?e.slice(1,-1):e}function bC(e){let t=e.replace(/\r\n|\r/g,`
11
+ `).split(`
12
+ `);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(dC.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
13
+ `)}const xC=new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),SC=new Set([`false`,`null`,`true`]),CC=/^-?\d+$/;function wC(e){try{return{ok:!0,model:DC(TC(mC(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function TC(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===q.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function EC(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function DC(e){let t={entities:[],relations:[],types:{},skipped:[]},n=new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=GS,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=EC(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&kC(n,e.depth,a,o,t,r);return}let c=s.kind===q.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=WC(n);return}if(c===`rel`||c===`fk`){n.next();let e=FC(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),UC(n,i,t,r);return}if(!rw(s))return;let l=OC(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function OC(e,t,n){let r=GC(e);if(r.name===``)return null;let i=e.peek();i&&J(i,`*`)&&(e.next(),n(`view`));let a=qC(e),o=JC(e,n);return{namespace:ew(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,attributes:[]}}function kC(e,t,n,r,i,a){let o=$C(e);if(o===``)return;let s=jC(e),c={path:AC(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&iw(l,`nullable`)&&(e.next(),c.notNull=!1),MC(e,c,n,i,a);let u=JC(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function AC(e,t,n){if(t===0||e.path.length===0)e.depth=0,e.path=[n];else if(t>e.depth)e.depth+=1,e.path=[...e.path,n];else{let r=e.depth-t;e.depth=t,e.path=[...e.path.slice(0,-(r+1)),n]}return e.path.join(`.`)}function jC(e){let t=$C(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&J(i,`(`)){e.next();let{values:i,numeric:a}=ZC(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&J(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:QC(e)}):{typeName:n,enumValues:r,default:``}}function MC(e,t,n,r,i){let a=()=>{let i=IC(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===q.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),PC(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:PC(e),unique:r===`unique`});continue}if(r===`check`){e.next(),NC(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(aw(n)&&a()))return}}function NC(e){let t=e.peek();t&&J(t,`(`)&&(e.next(),nw(e,`(`,`)`)),PC(e)}function PC(e){let t=e.peek();return!t||!J(t,`=`)?``:(e.next(),$C(e))}function FC(e,t,n){let r=zC(e),i=IC(e);return JC(e,n),!i||r.entityName===``?null:{src:tw(r.namespace)?{...r,namespace:t}:r,...i}}function IC(e){let t=e.peek();if(t&&iw(t,`fk`)){e.next();let t=zC(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=LC(e);if(n===null)return null;let r=RC(e);r&&(VC(e),e.next(),QC(e));let i=LC(e)??`n`,a=zC(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function LC(e){let t=e.peek();return!t||!aw(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function RC(e){let t=0;for(;;){let n=e.peek(t);if(!n||!rw(n))return!1;t+=1;let r=e.peek(t);if(!r||!J(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&J(n,`=`)}function zC(e){let t=GC(e),n=e.peek();if(n&&J(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:BC(e)};if(t.namespace.schema===``)return{namespace:GS,entityName:t.name,attributePaths:[]};let r=[t.name,...HC(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function BC(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||J(n,`)`)){e.next();break}if(rw(n)){t.push(VC(e));continue}e.next()}return t}function VC(e){let t=[$C(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!J(n,`.`))break;e.next();let r=$C(e);if(r===``)break;t.push(r)}return t.join(`.`)}function HC(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!J(n,`:`))break;e.next();let r=$C(e);if(r===``)break;t.push(r)}return t}function UC(e,t,n,r){let i=GC(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&J(o,`(`)?(e.next(),a.values=ZC(e).values):o&&J(o,`{`)?(e.next(),nw(e,`{`,`}`),r(`struct type`)):o&&o.kind===q.expression?(e.next(),r(`custom type`)):o&&rw(o)&&(a.alias=$C(e)),JC(e,r);let s=ew(t,i.namespace),c=[s.database,s.catalog,s.schema,i.name].filter(e=>e!==``).join(`.`);n.types[c]=a,c!==i.name&&!(i.name in n.types)&&(n.types[i.name]=a)}function WC(e){let t=$C(e);if(t===``)return GS;let n=KC(e),r=KC(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function GC(e){let t=$C(e);if(t===``)return{namespace:GS,name:``};let n=KC(e),r=KC(e),i=KC(e);return n&&r&&i&&i.name!==``?{namespace:{database:t,catalog:n.name,schema:r.name},name:i.name}:n&&r&&r.name!==``?{namespace:{database:``,catalog:t,schema:n.name},name:r.name}:n&&n.name!==``?{namespace:{database:``,catalog:``,schema:t},name:n.name}:{namespace:GS,name:t}}function KC(e){let t=e.peek();return!t||!J(t,`.`)?null:(e.next(),{name:$C(e)})}function qC(e){let t=e.peek();return!t||!iw(t,`as`)?``:(e.next(),$C(e))}function JC(e,t){let n={autoIncrement:!1,doc:``,comment:``};for(;!e.atEnd();){let r=e.next();if(!r)break;if(J(r,`{`)){YC(e,n,t);continue}if(r.kind===q.doc&&n.doc===``){n.doc=r.value;continue}r.kind===q.comment&&n.comment===``&&(n.comment=r.value)}return n}function YC(e,t,n){for(;!e.atEnd();){let r=e.next();if(!r||J(r,`}`))return;if(r.kind!==q.identifier&&r.kind!==q.quoted)continue;let i=e.peek();i&&(J(i,`:`)||J(i,`=`))&&(e.next(),XC(e)),r.value.toLowerCase()===`autoincrement`?t.autoIncrement=!0:n(r.value)}}function XC(e){let t=0;for(;!e.atEnd();){let n=e.peek();if(!n||t===0&&(J(n,`,`)||J(n,`}`)))return;e.next(),J(n,`[`)?t+=1:J(n,`]`)&&--t}}function ZC(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||J(r,`)`)){e.next();break}if(J(r,`,`)){e.next();continue}let i=QC(e);t.push(i),n=n&&r.kind!==q.quoted&&CC.test(i)}return{values:t,numeric:n}}function QC(e){let t=e.peek();if(!t)return``;if(J(t,`-`)&&e.peek(1)?.kind===q.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case q.expression:return`\`${t.value}\``;case q.string:return`'${t.value}'`;case q.identifier:return SC.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function $C(e){let t=e.peek();return!t||!rw(t)?``:(e.next(),t.value)}function ew(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function tw(e){return e.database===``&&e.catalog===``&&e.schema===``}function nw(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;J(i,t)?r+=1:J(i,n)&&--r}}function rw(e){return e.kind===q.quoted||e.kind===q.identifier&&!xC.has(e.value.toLowerCase())}function iw(e,t){return e.kind===q.identifier&&e.value.toLowerCase()===t}function aw(e){return e.kind===q.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function J(e,t){return e.kind===q.punctuation&&e.value===t}const ow={entities:[],relations:[],types:{},skipped:[]};function sw(e,t,n){let r=wC(e),i=r.ok?r.model:ow,a=Ip({}),o=dh(i.entities.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=qS(i,t,s.database);return c.settings=s,Im(c)}const cw={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`};function lw(e,t,n,r){let i=fw(e,t,r);return i?dw(i,n)??cw[n]??e:e}function uw(e,t,n,r){let i=fw(e,t,n);return!i||dw(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function dw(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function fw(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const pw=`public`;function mw(e,t,n){let r=Ip({}),i=hw(e.tables),a=e.tables.map(a=>vw(r,t,e,n,a,i(a)));return bw(r,t,a,e,_w(e.tables,a)),Tw(r,a),r}function hw(e){let t=new Set(e.map(e=>gw(e.schemaName)));return e=>{let n=gw(e.schemaName);return t.size>1&&n!==pw?`${n}_${e.name}`:e.name}}function gw(e){return e===``?pw:e}function _w(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=gw(e.schemaName);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=gw(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function vw({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=yh(o),l=yh(a.comment),u=Jb({name:c,comment:l,ui:{widthName:V(s(c)),widthComment:V(s(l))}}),d={source:a,table:u,columns:[]},f=new Set(a.indexes.filter(e=>e.primaryKey).flatMap(e=>e.columnNames).map(e=>e.toUpperCase()));return a.columns.forEach(e=>{let n=yh(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=lw(e.typeName,e.typeSchemaName,i,r),c=`${yh(e.comment)}${uw(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=yh(e.default);yw(t,d,Tx({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?L.autoIncrement:0)|(a?L.primaryKey:0)|(e.unique?L.unique:0)|(e.notNull?L.notNull:0),ui:{widthName:V(s(n)),widthComment:V(s(c)),widthDataType:V(s(o)),widthDefault:V(s(l)),keys:a?R.primaryKey:0}}))}),e.tableIds.push(u.id),j(t).collection(`tableEntities`).setOne(u),d}function yw(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),j(e).collection(`tableColumnEntities`).setOne(n)}function bw(e,t,n,r,i){let a=new Set,o=t=>Sw(e,a,t);n.forEach(r=>{r.source.columns.forEach((a,s)=>{let c=r.columns[s];c&&a.inlineRefs.forEach(a=>{let s=i(a.target);if(!s)return;let l=xw(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){Cw(e,t,n,r,s);return}let u=a.operator!==`<`;o(u?{parent:s,parentColumns:l,child:r,childColumns:[c],toMany:a.operator===`>`}:{parent:r,parentColumns:[c],child:s,childColumns:l,toMany:!0})})})}),r.refs.forEach(r=>{let a=i(r.left),s=i(r.right);if(!a||!s)return;let c=xw(a,r.left),l=xw(s,r.right);if(c.length===0||c.length!==r.left.columnNames.length||l.length!==r.right.columnNames.length||c.length!==l.length)return;if(r.operator===`<>`){Cw(e,t,n,a,s);return}let u=r.operator!==`>`;o({parent:u?a:s,parentColumns:u?c:l,child:u?s:a,childColumns:u?l:c,toMany:r.operator!==`-`})})}function xw(e,t){let n=[];for(let r of t.columnNames){let t=RS(e.columns,r);if(!t)return[];n.push(t)}return n}function Sw({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s}){if(i.length===0||o.length===0)return;let c=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(c))return;n.add(c);let l=o.every(e=>z(e.options,L.notNull));o.forEach(e=>{e.ui.keys=z(e.ui.keys,R.primaryKey)?e.ui.keys|R.foreignKey:R.foreignKey});let u=Ob({identification:o.every(e=>z(e.ui.keys,R.primaryKey)&&z(e.ui.keys,R.foreignKey)),relationshipType:s?l?Gm.OneN:Gm.ZeroN:l?Gm.OneOnly:Gm.ZeroOne,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:a.table.id,columnIds:o.map(e=>e.id)}});e.relationshipIds.push(u.id),j(t).collection(`relationshipEntities`).setOne(u)}function Cw(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=IS(r.columns),l=IS(i.columns);if(!c.length||!l.length)return;let u=LS(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=Jb({name:u,comment:d,ui:{widthName:V(s(u)),widthComment:V(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),j(o).collection(`tableEntities`).setOne(f),n.push(p),ww(e,t,p,r,c),ww(e,t,p,i,l)}function ww(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=LS(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=Tx({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return yw(o,n,s),s}),c=Ob({identification:!0,relationshipType:Gm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),j(o).collection(`relationshipEntities`).setOne(c)}function Tw({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=vy({name:yh(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=RS(i,e);t&&o.push(Fy({indexId:a.id,columnId:t.id,orderType:qm.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),j(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),j(t).collection(`indexEntities`).setOne(a))})})}const Y={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},Ew=/[ \t\f\v]/,Dw=/[0-9]/,Ow=/[A-Za-z_\u0080-\uffff]/,kw=/[0-9A-Za-z_\u0080-\uffff]/,Aw=/^[ \t]*/,jw={n:`
14
+ `,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function Mw(e){let t=[],n=0,r=1,i=0,a=(e,n)=>{t.push({kind:e,value:n,line:r})},o=()=>{i===0&&a(Y.newline,`
15
+ `)};for(;n<e.length;){let t=e[n];if(Ew.test(t)){n+=1;continue}if(t===`\r`||t===`
16
+ `){t===`\r`&&e[n+1]===`
17
+ `&&(n+=1),n+=1,o(),r+=1;continue}if(t===`/`&&e[n+1]===`/`){for(n+=2;n<e.length&&e[n]!==`
18
+ `;)n+=1;continue}if(t===`/`&&e[n+1]===`*`){n+=2;let t=!1;for(;n<e.length;){if(e[n]===`*`&&e[n+1]===`/`){n+=2;break}e[n]===`
19
+ `&&(t=!0,r+=1),n+=1}t&&o();continue}if(t===`"`){let t=Pw(e,n+1,`"`,!0);n=t.index,r+=t.lines,a(Y.quoted,t.value);continue}if(t===`'`){if(e.startsWith(`'''`,n)){let t=Pw(e,n+3,`'''`,!0);n=t.index,r+=t.lines,a(Y.string,Fw(t.value));continue}let t=Pw(e,n+1,`'`,!0);n=t.index,r+=t.lines,a(Y.string,t.value);continue}if(t==="`"){let t=Pw(e,n+1,"`",!1);n=t.index,r+=t.lines,a(Y.expression,t.value);continue}if(Dw.test(t)){let t=n;for(;t<e.length&&Dw.test(e[t]);)t+=1;if(e[t]===`.`&&Dw.test(e[t+1]??``))for(t+=1;t<e.length&&Dw.test(e[t]);)t+=1;if((e[t]===`e`||e[t]===`E`)&&Dw.test(e[t+1]??``))for(t+=2;t<e.length&&Dw.test(e[t]);)t+=1;a(Y.number,e.slice(n,t)),n=t;continue}if(Ow.test(t)){let t=n+1;for(;t<e.length&&kw.test(e[t]);)t+=1;a(Y.identifier,e.slice(n,t)),n=t;continue}let s=Nw(e,n);if(s){a(Y.operator,s),n+=s.length;continue}t===`[`||t===`(`?i+=1:(t===`]`||t===`)`)&&(i=Math.max(0,i-1)),a(Y.punctuation,t),n+=1}return t}function Nw(e,t){let n=e[t];if(n===`-`)return e[t+1]===`?`?`-?`:``;if(n!==`<`&&n!==`>`&&n!==`?`)return``;let r=/^\??(?:<>|<|>|-)\??/.exec(e.slice(t));return r&&/[<>-]/.test(r[0])?r[0]:``}function Pw(e,t,n,r){let i=[],a=t,o=0;for(;a<e.length;){if(e.startsWith(n,a))return{value:i.join(``),index:a+n.length,lines:o};let t=e[a];if(r&&t===`\\`&&a+1<e.length){let t=e[a+1];i.push(jw[t]??t),a+=2;continue}t===`
20
+ `&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function Fw(e){let t=e.replace(/\r\n|\r/g,`
21
+ `).split(`
22
+ `);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(Aw.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
23
+ `)}const Iw=/^[0-9a-z ]+$/,Lw=/'/g,Rw=/\?/g;function zw(e){try{return{ok:!0,model:Vw(Mw(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function Bw(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function Vw(e){let t=Bw(e),n={tables:[],refs:[],enums:{},skipped:[]},r=new Map,i=new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e)),fT(t)};for(;!t.atEnd();){if(mT(t))continue;let e=t.peek();if(!e)break;if(!hT(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===Y.identifier){t.next();let e=Hw(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===Y.identifier){t.next();let e=Hw(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===Y.identifier){t.next(),n.refs.push(...Jw(t));continue}if(i===`enum`&&e.kind===Y.identifier){t.next(),Qw(t,n.enums);continue}a(i)}return n}function Hw(e,t){let{schemaName:n,name:r}=oT(e),i={schemaName:n,name:r,alias:``,comment:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===Y.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=sT(e)),nT(i,$w(e)),!uT(e))return r===``?null:i;for(;!e.atEnd();){if(mT(e))continue;let n=e.peek();if(!n)break;if(n.kind===Y.punctuation&&n.value===`}`){e.next();break}if(n.kind===Y.punctuation&&n.value===`~`){e.next();let n=t.get(sT(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===Y.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&X(r,`:`)){e.next(),e.next(),i.comment=cT(e);continue}if(t===`note`&&r&&X(r,`{`)){e.next(),e.next(),i.comment=lT(e);continue}if(t===`indexes`&&r&&X(r,`{`)){e.next(),e.next(),i.indexes.push(...Kw(e));continue}if(r&&X(r,`{`)){e.next(),e.next(),dT(e);continue}}let r=Uw(e);r&&i.columns.push(r)}return i}function Uw(e){let t=e.peek();if(!t||!hT(t))return pT(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=Ww(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,eT(n,$w(e)),pT(e),n.typeName===``?null:n}function Ww(e){let{schemaName:t,name:n}=oT(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&X(i,`(`)&&(e.next(),r.push(`(${Gw(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&X(a,`[`)&&X(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function Gw(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||X(n,`)`))break;n.kind!==Y.newline&&t.push(n.kind===Y.string?`'${n.value}'`:n.value)}return t.join(``)}function Kw(e){let t=[];for(;!e.atEnd();){if(mT(e))continue;let n=e.peek();if(!n)break;if(X(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};X(n,`(`)?(e.next(),r.columnNames.push(...qw(e))):hT(n)?(e.next(),r.columnNames.push(n.value)):e.next(),tT(r,$w(e)),pT(e),r.columnNames.length!==0&&t.push(r)}return t}function qw(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||X(n,`)`))break;hT(n)&&t.push(n.value)}return t}function Jw(e){let t=e.peek();if(t&&hT(t)){let t=e.peek(1);t&&(X(t,`:`)||X(t,`{`))&&e.next()}let n=e.peek();if(n&&X(n,`:`)){e.next();let t=Yw(e);return pT(e),t?[t]:[]}if(!uT(e))return pT(e),[];let r=[];for(;!e.atEnd();){if(mT(e))continue;let t=e.peek();if(!t)break;if(X(t,`}`)){e.next();break}let n=Yw(e);n?r.push(n):pT(e)}return r}function Yw(e){let t=Zw(e),n=Xw(e);if(n===``)return null;let r=Zw(e);return $w(e),t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r}}function Xw(e){let t=e.peek();return t?t.kind===Y.operator?(e.next(),t.value.replace(Rw,``)):X(t,`-`)?(e.next(),`-`):``:``}function Zw(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!hT(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!X(i,`.`))break;e.next();let a=e.peek();if(a&&X(a,`(`)){e.next(),n.push(...qw(e));break}}n.length===0&&t.length!==0&&n.push(t.pop());let r=t.pop()??``;return{schemaName:t.pop()??``,tableName:r,columnNames:n}}function Qw(e,t){let{schemaName:n,name:r}=oT(e);if($w(e),!uT(e)){pT(e);return}let i=[];for(;!e.atEnd();){if(mT(e))continue;let t=e.peek();if(!t)break;if(X(t,`}`)){e.next();break}hT(t)?(e.next(),i.push(t.value),$w(e)):e.next(),pT(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function $w(e){let t=e.peek();if(!t||!X(t,`[`))return[];e.next();let n=[],r=[],i=[],a=!1,o=()=>{let e=r.join(` `).toLowerCase();(e!==``||i.length!==0)&&n.push({key:e,tokens:i}),r=[],i=[],a=!1};for(;!e.atEnd();){let t=e.next();if(!t||X(t,`]`))break;if(X(t,`,`)){o();continue}if(!a&&X(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(hT(t)&&Iw.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function eT(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`pk`:case`primary key`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`not null`:e.notNull=!0;break;case`increment`:e.autoIncrement=!0;break;case`note`:e.comment=iT(n);break;case`default`:e.default=aT(n);break;case`ref`:{let t=rT(n);t&&e.inlineRefs.push(t);break}}})}function tT(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=iT(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function nT(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`&&(e.comment=iT(n))})}function rT(e){let t=Bw(e),n=Xw(t);if(n===``)return null;let r=Zw(t);return r.tableName===``?null:{operator:n,target:r}}function iT(e){let t=e.find(e=>e.kind===Y.string||e.kind===Y.quoted||e.kind===Y.identifier);return t?t.value:``}function aT(e){let t=e.filter(e=>e.kind!==Y.newline),n=t[0];if(!n)return``;if(X(n,`-`)&&t[1]?.kind===Y.number)return`-${t[1].value}`;switch(n.kind){case Y.string:return`'${n.value.replace(Lw,`''`)}'`;case Y.expression:case Y.number:case Y.identifier:case Y.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function oT(e){let t=sT(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!X(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:sT(e)})}function sT(e){let t=e.peek();return!t||!hT(t)?``:(e.next(),t.value)}function cT(e){let t=e.peek();return t&&(t.kind===Y.string||t.kind===Y.quoted)?(e.next(),t.value):``}function lT(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||X(n,`}`))break;t===``&&n.kind===Y.string&&(t=n.value)}return t}function uT(e){let t=0;for(;e.peek(t)?.kind===Y.newline;)t+=1;let n=e.peek(t);if(!n||!X(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function dT(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;X(n,`{`)?t+=1:X(n,`}`)&&--t}}function fT(e){if(uT(e)){dT(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===Y.newline)return;if(X(t,`{`)){dT(e);return}}}function pT(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===Y.newline){e.next();return}if(X(t,`}`))return;e.next()}}function mT(e){let t=e.peek();return t&&t.kind===Y.newline?(e.next(),!0):!1}function hT(e){return e.kind===Y.identifier||e.kind===Y.quoted}function X(e,t){return e.kind===Y.punctuation&&e.value===t}const gT={tables:[],refs:[],enums:{},skipped:[]};function _T(e,t,n){let r=zw(e),i=r.ok?r.model:gT,a=Ip({}),o=dh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=mw(i,t,s.database);return c.settings=s,Im(c)}const vT={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`},yT={[F.MariaDB]:`INT`,[F.MSSQL]:`int`,[F.MySQL]:`INT`,[F.Oracle]:`INTEGER`,[F.PostgreSQL]:`integer`,[F.SQLite]:`INTEGER`,[F.Databricks]:`INT`,[F.Snowflake]:`INT`},bT={[F.MariaDB]:`SMALLINT`,[F.MSSQL]:`smallint`,[F.MySQL]:`SMALLINT`,[F.Oracle]:`SMALLINT`,[F.PostgreSQL]:`smallint`,[F.SQLite]:`SMALLINT`,[F.Databricks]:`SMALLINT`,[F.Snowflake]:`SMALLINT`},xT={[F.MariaDB]:`BIGINT`,[F.MSSQL]:`bigint`,[F.MySQL]:`BIGINT`,[F.Oracle]:`NUMBER(19)`,[F.PostgreSQL]:`bigint`,[F.SQLite]:`BIGINT`,[F.Databricks]:`BIGINT`,[F.Snowflake]:`BIGINT`},ST={[F.MariaDB]:`DOUBLE`,[F.MSSQL]:`float`,[F.MySQL]:`DOUBLE`,[F.Oracle]:`BINARY_DOUBLE`,[F.PostgreSQL]:`double precision`,[F.SQLite]:`REAL`,[F.Databricks]:`DOUBLE`,[F.Snowflake]:`FLOAT`},CT={[F.MariaDB]:`DECIMAL`,[F.MSSQL]:`decimal`,[F.MySQL]:`DECIMAL`,[F.Oracle]:`DECIMAL`,[F.PostgreSQL]:`numeric`,[F.SQLite]:`DECIMAL`,[F.Databricks]:`DECIMAL`,[F.Snowflake]:`DECIMAL`},wT={[F.MariaDB]:`BOOLEAN`,[F.MSSQL]:`bit`,[F.MySQL]:`BOOLEAN`,[F.Oracle]:`BOOLEAN`,[F.PostgreSQL]:`boolean`,[F.SQLite]:`BOOLEAN`,[F.Databricks]:`BOOLEAN`,[F.Snowflake]:`BOOLEAN`},TT={[F.MariaDB]:`DATE`,[F.MSSQL]:`date`,[F.MySQL]:`DATE`,[F.Oracle]:`DATE`,[F.PostgreSQL]:`date`,[F.SQLite]:`DATE`,[F.Databricks]:`DATE`,[F.Snowflake]:`DATE`},ET={[F.MariaDB]:`TIME`,[F.MSSQL]:`time`,[F.MySQL]:`TIME`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`time`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`TIME`},DT={[F.MariaDB]:`DATETIME`,[F.MSSQL]:`datetime2`,[F.MySQL]:`DATETIME`,[F.Oracle]:`TIMESTAMP`,[F.PostgreSQL]:`timestamp`,[F.SQLite]:`DATETIME`,[F.Databricks]:`TIMESTAMP`,[F.Snowflake]:`TIMESTAMP_NTZ`},OT={[F.MariaDB]:`TIMESTAMP`,[F.MSSQL]:`datetimeoffset`,[F.MySQL]:`TIMESTAMP`,[F.Oracle]:`TIMESTAMP WITH TIME ZONE`,[F.PostgreSQL]:`timestamptz`,[F.SQLite]:`DATETIME`,[F.Databricks]:`TIMESTAMP`,[F.Snowflake]:`TIMESTAMP_TZ`},kT={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`INTERVAL DAY TO SECOND`,[F.PostgreSQL]:`interval`,[F.SQLite]:`TEXT`,[F.Databricks]:`INTERVAL DAY TO SECOND`,[F.Snowflake]:`VARCHAR(255)`},AT={[F.MariaDB]:`JSON`,[F.MSSQL]:`json`,[F.MySQL]:`JSON`,[F.Oracle]:`JSON`,[F.PostgreSQL]:`jsonb`,[F.SQLite]:`TEXT`,[F.Databricks]:`VARIANT`,[F.Snowflake]:`VARIANT`},jT={[F.MariaDB]:`UUID`,[F.MSSQL]:`uniqueidentifier`,[F.MySQL]:`CHAR(36)`,[F.Oracle]:`VARCHAR2(36)`,[F.PostgreSQL]:`uuid`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`UUID`},MT={[F.MariaDB]:`BLOB`,[F.MSSQL]:`varbinary(max)`,[F.MySQL]:`BLOB`,[F.Oracle]:`BLOB`,[F.PostgreSQL]:`bytea`,[F.SQLite]:`BLOB`,[F.Databricks]:`BINARY`,[F.Snowflake]:`BINARY`},NT={id:vT,string:vT,boolean:wT,int:yT,float:ST,positiveint:yT,nonnegativeint:yT,unsignedint:yT,short:bT,smallint:bT,positivefloat:ST,nonnegativefloat:ST,bigint:xT,biginteger:xT,long:xT,int8:xT,safeint:xT,decimal:CT,bigdecimal:CT,numeric:CT,money:CT,datetime:DT,datetimeiso:DT,localdatetime:DT,timestamp:DT,timestamptz:OT,date:TT,localdate:TT,time:ET,localtime:ET,timetz:ET,duration:kT,iso8601duration:kT,interval:kT,json:AT,jsonb:AT,jsonobject:AT,uuid:jT,guid:jT,byte:MT,bytes:MT,bytea:MT,binary:MT,email:vT,emailaddress:vT,url:vT,uri:vT,void:vT};function PT(e,t,n){let r=vT[t]??``,i=RT(n.enums,e);return i?IT(i,t)??r:RT(n.unions,e)?r:NT[e.toLowerCase()]?.[t]??r}function FT(e,t,n){let r=RT(t.enums,e);if(r)return n!==void 0&&IT(r,n)!==void 0?``:LT(e,r);let i=RT(t.unions,e);return i?LT(e,i):``}function IT(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function LT(e,t){return` ${e}: ${t.join(` | `)}`}function RT(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}function zT(e,t,n){let r=Ip({}),i=BT(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>VT(r,t,e,n,o,i,a));return KT(r,t,o),nE(r,o),r}function BT(e){let t=new Map,n=new Map;for(let r of e){t.set(r.name,r);let e=r.name.toLowerCase();n.has(e)||n.set(e,r)}return e=>t.get(e)??n.get(e.toLowerCase())??null}function VT({doc:e,collections:t},n,r,i,a,o,s){let{toWidth:c}=n,l=[],u=[];for(let e of a.fields){let{named:t}=e.typeRef;s.has(t)||(o(t)?u.push(e):l.push(e))}let d=new Set(HT(l)),f=yh(a.name),p=yh(a.comment),m=Jb({name:f,comment:p,ui:{widthName:V(c(f)),widthComment:V(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{GT(t,h,UT(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),j(t).collection(`tableEntities`).setOne(m),h}function HT(e){let t=e.filter(e=>e.primaryKey);if(t.length)return t;let n=e.find(e=>e.typeRef.named===`ID`&&!e.typeRef.isList);if(n)return[n];let r=e.find(e=>e.name.toLowerCase()===`id`);return r?[r]:[]}function UT({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=yh(i.name),l=yh(i.dataType)||PT(o,n,t),u=yh(i.default),d=WT(i,t,n);return Tx({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?L.autoIncrement:0)|(a?L.primaryKey:0)|(i.unique?L.unique:0)|(s?L.notNull:0),ui:{widthName:V(e(c)),widthComment:V(e(d)),widthDataType:V(e(l)),widthDefault:V(e(u)),keys:a?R.primaryKey:0}})}function WT(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=yh(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${FT(r,t,n)}`.trim()}function GT(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),j(e).collection(`tableColumnEntities`).setOne(n)}function KT(e,t,n){let r=BT(n),i=[];n.forEach(e=>{e.referenceFields.forEach(t=>{let n=r(t.typeRef.named);n&&i.push({source:e,target:n,field:t,consumed:!1})})});let a={claimedColumnIds:new Set,relationshipKeys:new Set},o=i.filter(e=>!e.field.typeRef.isList);[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed)return;let r=qT(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;YT(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?Gm.OneN:Gm.OneOnly:o?Gm.ZeroN:Gm.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=JT(i,r);if(r.consumed=!0,o){o.consumed=!0,eE(e,t,n,r);return}YT(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?Gm.OneN:Gm.ZeroN})})}function qT(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;if(r)return n.find(e=>e.field.relationName===r)??null;if(t.source===t.target)return n.length===1?n[0]:null;let i=e.filter(e=>!e.consumed&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function JT(e,t){if(e.some(e=>!e.field.typeRef.isList&&(e.source===t.source&&e.target===t.target||e.source===t.target&&e.target===t.source)))return null;let n=e.filter(e=>e!==t&&!e.consumed&&e.field.typeRef.isList&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;return r?n.find(e=>e.field.relationName===r)??null:n[0]}function YT(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=IS(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=XT(e,t,n,r,l);if(!d.length)return;let f=`${o.table.id}:${s.table.id}:${d.map(e=>e.id).join(`,`)}`;if(n.relationshipKeys.has(f))return;n.relationshipKeys.add(f),d.forEach(e=>{z(e.ui.keys,R.primaryKey)?e.ui.keys|=R.foreignKey:e.ui.keys=R.foreignKey,n.claimedColumnIds.add(e.id)});let p=Ob({identification:d.every(e=>z(e.ui.keys,R.primaryKey)&&z(e.ui.keys,R.foreignKey)),relationshipType:c,start:{tableId:o.table.id,columnIds:u.map(e=>e.id)},end:{tableId:s.table.id,columnIds:d.map(e=>e.id)}});i.relationshipIds.push(p.id),j(a).collection(`relationshipEntities`).setOne(p)}function XT(e,t,n,{parent:r,child:i,field:a,childSide:o},s){if(o&&a.relationFields.length){let e=[],t=[];if(a.relationFields.forEach((n,o)=>{let c=RS(i.columns,n),l=a.relationReferences[o],u=l?RS(r.columns,l):s[o]??null;!c||!u||(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?yh(a.name):he(r.name),l=new Set,u=[],d=[];return s.forEach(o=>{let s=ZT(c,r.name,o.name),f=QT(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??$T(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function ZT(e,t,n){return[`${e}${f_(n)}`,`${be(e)}_${be(n)}`,`${t}${f_(n)}`,`${be(t)}_${be(n)}`,`${e}Id`,`${be(e)}_id`]}function QT(e,t,n){for(let r of t){let t=RS(e,r);if(t&&!n(t.id))return t}return null}function $T({collections:e},{toWidth:t},n,r,i,a){let o=LS(n.columns,``,a),{dataType:s}=i,c=Tx({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?L.notNull:0,ui:{keys:R.foreignKey,widthName:V(t(o)),widthDataType:V(t(s))}});return GT(e,n,c),c}function eE(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=IS(s.columns),u=IS(c.columns);if(!l.length||!u.length)return;let d=LS(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=Jb({name:d,comment:f,ui:{widthName:V(o(d)),widthComment:V(o(f))}}),m={name:d,source:{name:d,comment:f,fields:[],indexes:[]},table:p,columns:[],referenceFields:[]};i.tableIds.push(p.id),j(a).collection(`tableEntities`).setOne(p),n.push(m),tE(e,t,m,s,l),tE(e,t,m,c,u)}function tE(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=LS(n.columns,``,`${he(r.name)}${f_(e.name)}`),{dataType:a}=e,s=Tx({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return GT(o,n,s),s}),c=Ob({identification:!0,relationshipType:Gm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),j(o).collection(`relationshipEntities`).setOne(c)}function nE({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=vy({name:yh(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=RS(i,e);t&&o.push(Fy({indexId:a.id,columnId:t.id,orderType:qm.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),j(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),j(t).collection(`indexEntities`).setOne(a))})})}const rE=[`Query`,`Mutation`,`Subscription`],iE=[`PageInfo`],aE=[`Connection`,`Edge`],oE=[`_aggregate`,`_aggregate_fields`,`_mutation_response`,`_max_fields`,`_min_fields`,`_sum_fields`,`_avg_fields`,`_stddev_fields`,`_variance_fields`,`_bool_exp`,`_order_by`,`_insert_input`,`_set_input`,`_on_conflict`,`_constraint`,`_update_column`,`_select_column`],sE=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],cE=[`autoincrement`,`autoincrement()`],lE=/[_A-Za-z]/,uE=/[_0-9A-Za-z]/;function dE(e){try{return{ok:!0,model:mE(fE(e))}}catch(e){return{ok:!1,message:pE(e)}}}function fE(e){try{return qe(e)}catch(t){let n=NE(e);if(n===e)throw t;try{return qe(n)}catch{throw t}}}function pE(e){let t=e instanceof Error?e.message:String(e),n=e?.locations?.[0];if(!n)return t;let r=t.replace(/^Syntax Error:\s*/,``);return`Syntax Error at line ${n.line}, column ${n.column}: ${r}`}function mE(e){let t={},n={},r=[],i=new Map,a=new Map,o=new Set;for(let s of e.definitions)switch(s.kind){case Ge.OBJECT_TYPE_DEFINITION:case Ge.OBJECT_TYPE_EXTENSION:gE(a,s);break;case Ge.INTERFACE_TYPE_DEFINITION:case Ge.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case Ge.SCHEMA_DEFINITION:case Ge.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case Ge.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case Ge.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case Ge.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(rE),c=[],l=[],u=new Map;for(let e of a.values()){if(kE(e.name,s)){l.push(e.name);continue}let t=_E(e,i);if(!t.fields.length){l.push(e.name);continue}t.name!==e.name&&u.set(e.name,t.name),c.push(t)}return hE(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function hE(e,t){if(t.size)for(let n of e)for(let e of n.fields){let n=t.get(e.typeRef.named);n&&(e.typeRef.named=n)}}function gE(e,t){let n=t.name.value,r=(t.interfaces??[]).map(e=>e.name.value),i=e.get(n);if(i){i.fieldNodes.push(...t.fields??[]),i.interfaceNames.push(...r),i.directives.push(...t.directives??[]),i.comment||=jE(t);return}e.set(n,{name:n,comment:jE(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function _E(e,t){let n=vE(e.fieldNodes),r=new Set(n.map(e=>e.name.value)),i=[];for(let n of e.interfaceNames)for(let e of t.get(n)??[]){let t=e.name.value;r.has(t)||(r.add(t),i.push(e))}let a={name:e.name,comment:e.comment,fields:[...i,...n].map(yE).filter(fe),indexes:[]};for(let t of e.directives)SE(a,t);return a}function vE(e){let t=new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function yE(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:jE(e),typeRef:bE(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])xE(t,n);return t}function bE(e){let t=e.kind===Ge.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===Ge.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===Ge.NON_NULL_TYPE,o=i;for(;o.kind!==Ge.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function xE(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=CE(n,t);return}switch(n){case`id`:case`primaryKey`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`autoincrement`:case`autoIncrement`:e.autoIncrement=!0;break;case`default`:{let n=wE(t,`value`);if(!n)break;let r=DE(n);cE.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=TE(t,`name`)||TE(t,`value`);n&&(e.name=n);break}case`relation`:{let n=TE(t,`name`)||TE(t,`value`);n&&(e.relationName=n);let r=wE(t,`fields`);r&&(e.relationFields=OE(r));let i=wE(t,`references`);i&&(e.relationReferences=OE(i));break}case`column`:{let n=TE(t,`name`);n&&(e.name=n);let r=TE(t,`dataType`);r&&(e.dataType=r);let i=wE(t,`default`);i&&(e.default=DE(i));let a=EE(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=EE(t,`unique`);o!==null&&(e.unique=o);let s=EE(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function SE(e,t){switch(t.name.value){case`map`:{let n=TE(t,`name`)||TE(t,`value`);n&&(e.name=n);break}case`table`:{let n=TE(t,`name`);n&&(e.name=n);let r=wE(t,`comment`);r&&(e.comment=DE(r));break}case`index`:{let n=wE(t,`fields`),r=n?OE(n):[];if(!r.length)break;let i={name:TE(t,`name`),unique:EE(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function CE(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>DE(e.value)).join(`, `)})`:n}function wE(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function TE(e,t){let n=wE(e,t);return n?DE(n):``}function EE(e,t){let n=wE(e,t);return n?DE(n)===`true`:null}function DE(e){switch(e.kind){case Ge.STRING:case Ge.INT:case Ge.FLOAT:case Ge.ENUM:return e.value;case Ge.BOOLEAN:return e.value?`true`:`false`;case Ge.NULL:return`null`;case Ge.LIST:return e.values.map(DE).join(`, `);default:return``}}function OE(e){return(e.kind===Ge.LIST?e.values:[e]).map(DE).filter(e=>e!==``)}function kE(e,t){return t.has(e)||e.startsWith(`__`)||sE.includes(e)||iE.includes(e)||aE.some(t=>AE(e,t))||oE.some(t=>AE(e,t))}function AE(e,t){return e.length>t.length&&e.endsWith(t)}function jE(e){if(e.description)return ME(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===Ke.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return ME(t.join(` `))}function ME(e){return e.replace(/\s+/g,` `).trim()}function NE(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=IE(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=LE(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!lE.test(e[n+1]??``)){t+=i,n+=1;continue}let a=FE(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&lE.test(e[a+1]??``);){let t=FE(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=zE(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=zE(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=PE(e,n);o===-1?(t+=i===0?`value: `:`value${i}: `,r=!0):(t+=e.slice(n,o+1),n=o+1);let s=Math.max(RE(e,zE(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function PE(e,t){if(!lE.test(e[t]??``))return-1;let n=zE(e,FE(e,t));return e[n]===`:`?n:-1}function FE(e,t){let n=t;for(;n<e.length&&uE.test(e[n]);)n+=1;return n}function IE(e,t){let n=e.indexOf(`
24
+ `,t);return n===-1?e.length:n}function LE(e,t){if(e.startsWith(`"""`,t)){let n=e.indexOf(`"""`,t+3);return n===-1?e.length:n+3}let n=t+1;for(;n<e.length;){let t=e[n];if(t===`\\`){n+=2;continue}if(t===`
25
+ `)return n;if(t===`"`)return n+1;n+=1}return n}function RE(e,t){let n=[],r=t;for(;r<e.length;){let t=e[r];if(t===`"`){r=LE(e,r);continue}if(t===`[`||t===`{`){n.push(t),r+=1;continue}if(t===`]`||t===`}`){if(!n.length)break;if(n.pop(),r+=1,!n.length)return r;continue}if(!n.length&&(t===`)`||t===`,`||t===`#`)||!n.length&&/\s/.test(t))break;r+=1}return r}function zE(e,t){let n=t;for(;n<e.length;){let t=e[n];if(t===`#`){n=IE(e,n);continue}if(!/[\s,]/.test(t))break;n+=1}return n}const BE={tables:[],enums:{},customScalars:[],unions:{},skipped:[]};function VE(e,t,n){let r=dE(e),i=r.ok?r.model:BE,a=Ip({}),o=dh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=zT(i,t,s.database);return c.settings=s,Im(c)}var HE={createTable:`create.table`,createIndex:`create.index`,alterTableAddUnique:`alter.table.add.unique`,alterTableAddPrimaryKey:`alter.table.add.primaryKey`,alterTableAddForeignKey:`alter.table.add.foreignKey`,commentOnTable:`comment.on.table`,commentOnColumn:`comment.on.column`},UE={asc:`ASC`,desc:`DESC`},WE={string:`string`,leftParent:`leftParent`,rightParent:`rightParent`,leftBracket:`leftBracket`,rightBracket:`rightBracket`,comma:`comma`,period:`period`,equal:`equal`,semicolon:`semicolon`},GE={doubleQuote:`"`,dash:`-`,slash:`/`,asterisk:`*`,newLine:`
26
+ `,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},KE=e=>t=>e===t,qE=e=>t=>e.test(t),Z={doubleQuote:KE(GE.doubleQuote),dash:KE(GE.dash),slash:KE(GE.slash),asterisk:KE(GE.asterisk),newLine:KE(GE.newLine),singleQuote:KE(GE.singleQuote),backtick:KE(GE.backtick),whiteSpace:qE(GE.whiteSpace),string:qE(GE.string),breakString:qE(GE.breakString),equal:KE(GE.equal),period:KE(GE.period),comma:KE(GE.comma),semicolon:KE(GE.semicolon),leftParent:KE(GE.leftParent),rightParent:KE(GE.rightParent),leftBracket:KE(GE.leftBracket),rightBracket:KE(GE.rightBracket)};function JE(e){let t=[],n=0,r=()=>n<e.length;for(;r();){let i=e[n];if(Z.whiteSpace(i)){let t=``;for(;r()&&Z.whiteSpace(i);)t+=i,i=e[++n];continue}if(Z.dash(i)&&Z.dash(e[n+1])){for(;r()&&!Z.newLine(i);)i=e[++n];continue}if(Z.slash(i)&&Z.asterisk(e[n+1])){for(n+=2,i=e[n];r()&&!(Z.asterisk(i)&&Z.slash(e[n+1]));)i=e[++n];n+=2;continue}if(Z.leftParent(i)){t.push({type:WE.leftParent,value:i}),n++;continue}if(Z.rightParent(i)){t.push({type:WE.rightParent,value:i}),n++;continue}if(Z.comma(i)){t.push({type:WE.comma,value:i}),n++;continue}if(Z.period(i)){t.push({type:WE.period,value:i}),n++;continue}if(Z.equal(i)){t.push({type:WE.equal,value:i}),n++;continue}if(Z.semicolon(i)){t.push({type:WE.semicolon,value:i}),n++;continue}if(Z.rightBracket(i)){t.push({type:WE.rightBracket,value:i}),n++;continue}if(Z.leftBracket(i)){let a=``;for(i=e[++n];r()&&!Z.rightBracket(i);)a+=i,i=e[++n];t.push({type:WE.string,value:a,quoted:!0}),n++;continue}if(Z.doubleQuote(i)){let a=``;for(i=e[++n];r()&&!Z.doubleQuote(i);)a+=i,i=e[++n];t.push({type:WE.string,value:a,quoted:!0}),n++;continue}if(Z.singleQuote(i)){let a=``;for(i=e[++n];r()&&!Z.singleQuote(i);)a+=i,i=e[++n];t.push({type:WE.string,value:a,quoted:!0}),n++;continue}if(Z.backtick(i)){let a=``;for(i=e[++n];r()&&!Z.backtick(i);)a+=i,i=e[++n];t.push({type:WE.string,value:a,quoted:!0}),n++;continue}if(Z.string(i)){let a=``;for(;r()&&Z.string(i)&&!Z.breakString(i)&&!(Z.dash(i)&&Z.dash(e[n+1]))&&!(Z.slash(i)&&Z.asterisk(e[n+1]));)a+=i,i=e[++n];t.push({type:WE.string,value:a});continue}n++}return t}var YE=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTE.CHAR.DATE.DEC.DECIMAL.DOUBLE.FLOAT.GEOGRAPHY.GEOMETRY.INT.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.LONG.MAP.NUMERIC.OBJECT.REAL.SHORT.SMALLINT.STRING.STRUCT.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP.TINYINT.VARCHAR.VARIANT.VOID`.split(`.`),XE=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMETRY.GEOMETRYCOLLECTION.INET4.INET6.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG CHAR VARYING.LONG CHARACTER VARYING.LONG VARBINARY.LONG VARCHAR.LONG VARCHARACTER.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NATIONAL VARCHARACTER.NCHAR VARCHAR.NCHAR VARCHARACTER.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.POINT.POLYGON.RAW.REAL.SERIAL.SET.SMALLINT.SQL_TSI_YEAR.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.UUID.VARBINARY.VARCHAR.VARCHAR2.VARCHARACTER.VECTOR.XMLTYPE.YEAR`.split(`.`),ZE=`BIGINT.BINARY VARYING.BINARY.BIT.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DATETIME2.DATETIMEOFFSET.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.GEOGRAPHY.GEOMETRY.HIERARCHYID.IMAGE.INT.INTEGER.JSON.MONEY.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL TEXT.NCHAR.NTEXT.NUMERIC.NVARCHAR.REAL.ROWVERSION.SMALLDATETIME.SMALLINT.SMALLMONEY.SQL_VARIANT.TEXT.TIME.TIMESTAMP.TINYINT.UNIQUEIDENTIFIER.VARBINARY.VARCHAR.VECTOR.XML`.split(`.`),QE=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMCOLLECTION.GEOMETRY.GEOMETRYCOLLECTION.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG VARBINARY.LONG VARCHAR.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NCHAR VARCHAR.NCHAR.NUMERIC.NVARCHAR.POINT.POLYGON.REAL.SERIAL.SET.SMALLINT.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.VARBINARY.VARCHAR.VARCHARACTER.YEAR`.split(`.`),$E=`ANYDATA.BFILE.BINARY_DOUBLE.BINARY_FLOAT.BLOB.BOOL.BOOLEAN.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.INT.INTEGER.INTERVAL DAY TO SECOND.INTERVAL YEAR TO MONTH.JSON.LONG RAW.LONG VARCHAR.LONG.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NCHAR VARYING.NCHAR.NCLOB.NUMBER.NUMERIC.NVARCHAR2.RAW.REAL.ROWID.SDO_GEOMETRY.SDO_GEORASTER.SDO_TOPO_GEOMETRY.SMALLINT.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP.URIType.UROWID.VARCHAR.VARCHAR2.VECTOR.XMLType`.split(`.`),eD=`BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DECIMAL.DOUBLE PRECISION.FLOAT.FLOAT4.FLOAT8.INET.INT.INT2.INT4.INT4MULTIRANGE.INT4RANGE.INT8.INT8MULTIRANGE.INT8RANGE.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.JSON.JSONB.JSONPATH.LINE.LSEG.MACADDR.MACADDR8.MONEY.NAME.NUMERIC.NUMMULTIRANGE.NUMRANGE.OID.PATH.PG_LSN.PG_SNAPSHOT.POINT.POLYGON.REAL.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.SERIAL.SERIAL2.SERIAL4.SERIAL8.SMALLINT.SMALLSERIAL.TEXT.TID.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.TIME.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP.TIMESTAMPTZ.TIMETZ.TSMULTIRANGE.TSQUERY.TSRANGE.TSTZMULTIRANGE.TSTZRANGE.TSVECTOR.TXID_SNAPSHOT.UUID.VARBIT.VARCHAR.XID.XID8.XML`.split(`.`),tD=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTEINT.CHAR VARYING.CHAR.CHARACTER.DATE.DATETIME.DEC.DECFLOAT.DECIMAL.DOUBLE PRECISION.DOUBLE.FILE.FLOAT.FLOAT4.FLOAT8.GEOGRAPHY.GEOMETRY.INT.INTEGER.MAP.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.NVARCHAR2.OBJECT.REAL.SMALLINT.STRING.TEXT.TIME.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP_TZ.TIMESTAMP.TIMESTAMPLTZ.TIMESTAMPNTZ.TIMESTAMPTZ.TINYINT.UNKNOWN.UUID.VARBINARY.VARCHAR.VARCHAR2.VARIANT.VECTOR`.split(`.`),nD=`BIGINT.BLOB.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),rD=e=>t=>n=>t[n]?t[n].type===e:!1,Q=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},iD=rD(WE.string),aD=rD(WE.equal),oD=rD(WE.period),sD=rD(WE.comma),cD=rD(WE.semicolon),lD=rD(WE.leftParent),uD=rD(WE.rightParent);WE.leftBracket,WE.rightBracket;var dD=Q(`CREATE`),fD=Q(`ALTER`),pD=Q(`DROP`),mD=Q(`USE`),hD=Q(`RENAME`),gD=Q(`DELETE`),_D=Q(`SELECT`),vD=Q(`TABLE`),yD=Q(`INDEX`),bD=Q(`UNIQUE`),xD=Q(`ADD`),SD=Q(`PRIMARY`),CD=Q(`KEY`),wD=Q(`CONSTRAINT`),TD=Q(`FOREIGN`),ED=Q(`NOT`),DD=Q(`NULL`),OD=Q(`DEFAULT`),kD=Q(`COMMENT`),AD=Q(`REFERENCES`),jD=Q(`ASC`),MD=Q(`DESC`),ND=Q(`ON`),PD=Q(`AUTO_INCREMENT`),FD=Q(`AUTOINCREMENT`),ID=Q(`IF`),LD=Q(`EXISTS`),RD=Q(`ONLY`),zD=Q(`IS`),BD=Q(`COLUMN`),VD=Q(`CHARACTER`),HD=Q(`SET`),UD=Q(`COLLATE`),WD=Q(`ENFORCED`),GD=Q(`RELY`),KD=Q(`NORELY`),qD=Q(`DEFERRABLE`),JD=Q(`INITIALLY`),YD=Q(`DEFERRED`),XD=Q(`IMMEDIATE`),ZD=Q(`IDENTITY`),QD=Q(`FUNCTION`),$D=Q(`CLUSTER`),eO=Q(`BY`),tO=e=>{let t=WD(e),n=GD(e),r=KD(e),i=qD(e),a=JD(e),o=YD(e),s=XD(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},nO=[`ARRAY`,`MAP`,`STRUCT`],rO=e=>{let t=iD(e),n=e=>{let t=0;for(let n of e)n===`<`?t++:n===`>`&&t--;return t};return r=>{let i=e[r];if(!i||i.quoted||!t(r))return 0;let a=i.value.indexOf(`<`);if(a===-1||!nO.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(o+=n(e[t].value),o<=0)return t-r+1;return e.length-r}},iO=e=>{let t=PD(e),n=FD(e),r=ZD(e);return e=>t(e)||n(e)||r(e)},aO=e=>{let t=$D(e),n=eO(e);return e=>t(e)&&n(e+1)},oO=e=>{let t=kD(e),n=ND(e);return e=>t(e)&&n(e+1)},sO=e=>{let t=oO(e),n=vD(e);return e=>t(e)&&n(e+2)},cO=e=>{let t=oO(e),n=BD(e);return e=>t(e)&&n(e+2)},lO=e=>{let t=dD(e),n=fD(e),r=pD(e),i=mD(e),a=hD(e),o=gD(e),s=_D(e),c=oO(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)},uO=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],dO=e=>{let t=dD(e),n=vD(e),r=iD(e),i=QD(e),a=ID(e),o=ED(e),s=LD(e);return c=>{if(!t(c))return 0;let l=c+1;for(;l<e.length&&!n(l);){let t=e[l];if(!r(l)||t.quoted||!uO.includes(t.value.toUpperCase()))return 0;l++}return!n(l)||i(l+1)?0:(l++,a(l)&&o(l+1)&&s(l+2)&&(l+=3),l-c)}},fO=e=>{let t=VD(e),n=HD(e);return e=>t(e)&&n(e+1)},pO=e=>{let t=dO(e);return e=>t(e)>0},mO=e=>{let t=dD(e),n=yD(e),r=bD(e);return e=>t(e)&&r(e+1)&&n(e+2)},hO=e=>{let t=dD(e),n=yD(e),r=mO(e);return e=>t(e)&&n(e+1)||r(e)},gO=e=>{let t=fD(e),n=vD(e);return e=>t(e)&&n(e+1)},_O=e=>{let t=iD(e),n=oD(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},vO=e=>{let t=gO(e),n=RD(e),r=xD(e),i=wD(e),a=iD(e),o=_O(e),s=(e,t)=>{let n=t,s=o(n);return!s||(n+=s,!r(n))?0:(n++,i(n)&&a(n+1)&&(n+=2),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=s(e,r+1);if(t)return{length:t,only:!0}}return{length:s(e,r),only:!1}}},yO=e=>{let t=vO(e);return e=>t(e).length},bO=e=>{let t=vO(e);return e=>t(e).only},xO=e=>{let t=yO(e),n=SD(e),r=CD(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},SO=e=>{let t=yO(e),n=TD(e),r=CD(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},CO=e=>{let t=yO(e),n=bD(e);return e=>{let r=t(e);return r>0&&n(e+r)}},wO=Array.from(new Set([...YE,...XE,...ZE,...QE,...$E,...eD,...tD,...nD].map(e=>e.toUpperCase()))),TO=(e=>{let t=new Map;for(let n of e){let e=n.split(` `),r=t.get(e[0])??[];r.push(e),t.set(e[0],r)}for(let e of t.values())e.sort((e,t)=>t.length-e.length);return t})(wO),EO=e=>{let t=iD(e),n=lD(e),r=uD(e),i=t=>{let i=0;for(let a=t;a<e.length;a++)if(n(a))i++;else if(r(a)&&(i--,i===0))return a+1;return e.length},a=(r,a)=>{let o=r;for(let[r,s]of a.entries()){let a=e[o];if(!a||!t(o)||r>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=i(o))}return o-r};return n=>{let r=e[n];if(!r||!t(n))return 0;let i=r.value.toUpperCase();for(let e of TO.get(i)??[]){let t=a(n,e);if(t)return t}return+!!wO.includes(i)}};function DO(e,t){let n=lO(e),r=iD(e),i=lD(e),a=uD(e),o=oD(e),s=cD(e),c=aD(e),l=kD(e),u=aO(e),d=dO(e),f=()=>t.value<e.length,p={type:HE.createTable,name:``,comment:``,columns:[],indexes:[],foreignKeys:[]},m=d(t.value);t.value+=m===0?2:m;let h=!1,g=!0;for(;f()&&!n(t.value);){let n=e[t.value];if(s(t.value)){t.value++;break}if(p.name&&u(t.value)){if(t.value+=2,r(t.value)&&i(t.value+1)&&t.value++,i(t.value)){let e=0;for(;f();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(i(t.value)){if(t.value++,h||!g){let e=1;for(;f()&&e>0;)i(t.value)?e++:a(t.value)&&e--,t.value++;continue}let{columns:n,indexes:r,foreignKeys:o}=OO(e,t);p.columns=n,p.indexes=r,p.foreignKeys=o,h=!0;continue}if(r(t.value)&&!p.name){for(p.name=n.value,g=!0,t.value++;o(t.value);){if(!r(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(l(t.value)){n=e[++t.value],c(t.value)&&(n=e[++t.value]),r(t.value)&&(p.comment=n.value,t.value++),g=!1;continue}g=!1,t.value++}return p}function OO(e,t){let n=iD(e),r=lD(e),i=uD(e),a=sD(e),o=wD(e),s=yD(e),c=SD(e),l=TD(e),u=iO(e),d=bD(e),f=DD(e),p=ED(e),m=OD(e),h=kD(e),g=MD(e),ee=jD(e),_=CD(e),te=aD(e),ne=fO(e),re=UD(e),ie=tO(e),ae=EO(e),oe=rO(e),se=()=>t.value<e.length,ce=[],le=[],ue=[],de=[],v=[],fe={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0};for(;se();){let y=e[t.value],pe=oe(t.value);if(pe){let n=t.value+pe,r=[];for(;t.value<n;)r.push(a(t.value)?`,`:e[t.value].value),t.value++;fe.dataType=r.reduce((e,t)=>!e||t===`,`?e+t:`${e} ${t}`,``);continue}if(n(t.value)&&!fe.name&&!o(t.value)&&!c(t.value)&&!l(t.value)&&!d(t.value)&&!s(t.value)&&!_(t.value)&&!p(t.value)&&!ie(t.value)){fe.name=y.value,t.value++;continue}if(r(t.value)){let e=0;for(;se();){if(r(t.value))e++;else if(i(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(o(t.value)){y=e[++t.value],n(t.value)&&t.value++;continue}if(c(t.value)){if(y=e[++t.value],_(t.value)){if(y=e[++t.value],r(t.value)){for(y=e[++t.value];se()&&!i(t.value);)n(t.value)&&de.push(y.value.toUpperCase()),y=e[++t.value];t.value++}else fe.primaryKey=!0}continue}if(l(t.value)){let n=kO(e,t);n&&ue.push(n);continue}if(s(t.value)||_(t.value)){if(y=e[++t.value],n(t.value)){let o=y.value,s=[];if(y=e[++t.value],r(t.value)){y=e[++t.value];let r={name:``,sort:UE.asc};for(;se()&&!i(t.value);)n(t.value)&&!g(t.value)&&!ee(t.value)&&(r.name=y.value),g(t.value)&&(r.sort=UE.desc),a(t.value)&&(s.push(r),r={name:``,sort:UE.asc}),y=e[++t.value];!s.includes(r)&&r.name!==``&&s.push(r),s.length&&le.push({name:o,unique:!1,columns:s}),t.value++}}continue}if(d(t.value)){if(y=e[++t.value],_(t.value)&&(y=e[++t.value]),n(t.value)&&(y=e[++t.value]),r(t.value)){for(y=e[++t.value];se()&&!i(t.value);)n(t.value)&&v.push(y.value.toUpperCase()),y=e[++t.value];t.value++}else fe.unique=!0;continue}if(p(t.value)){y=e[++t.value],f(t.value)?(fe.nullable=!1,t.value++):ie(t.value)&&t.value++;continue}if(ie(t.value)){t.value++;continue}if(m(t.value)){y=e[++t.value],n(t.value)&&(fe.default=y.value,t.value++);continue}if(h(t.value)){y=e[++t.value],te(t.value)&&(y=e[++t.value]),n(t.value)&&(fe.comment=y.value,t.value++);continue}if(u(t.value)){fe.autoIncrement=!0,t.value++;continue}if(ne(t.value)){t.value+=2,n(t.value)&&t.value++;continue}if(re(t.value)){t.value++,te(t.value)&&t.value++,n(t.value)&&t.value++;continue}let b=ae(t.value);if(b){let a=t.value+b,o=``,s=0;for(;t.value<a;)y=e[t.value],r(t.value)?(o+=`(`,s++):i(t.value)?(o+=`)`,s--):o+=s?n(t.value)&&(n(t.value-1)||i(t.value-1))?` ${y.value}`:y.value:o?` ${y.value}`:y.value,t.value++;for(;s>0;)o+=`)`,s--;fe.dataType=o;continue}if(a(t.value)){(fe.name||fe.dataType)&&ce.push(fe),fe={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},t.value++;continue}if(i(t.value)){t.value++;break}t.value++}return!ce.includes(fe)&&(fe.name||fe.dataType)&&ce.push(fe),ce.forEach(e=>{de.includes(e.name.toUpperCase())&&(e.primaryKey=!0),v.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:ce,indexes:le,foreignKeys:ue}}function kO(e,t){let n=iD(e),r=lD(e),i=uD(e),a=AD(e),o=oD(e),s=CD(e),c=()=>t.value<e.length,l={columnNames:[],refTableName:``,refColumnNames:[]},u=e[++t.value];if(s(t.value)){if(u=e[++t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.columnNames.push(u.value),u=e[++t.value];u=e[++t.value]}if(a(t.value)&&(u=e[++t.value],n(t.value))){for(l.refTableName=u.value,t.value++;o(t.value);){if(!n(t.value+1)){t.value++;break}l.refTableName=e[t.value+1].value,t.value+=2}if(u=e[t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.refColumnNames.push(u.value),u=e[++t.value];u=e[++t.value]}}if(l.columnNames.length&&l.columnNames.length===l.refColumnNames.length)return l}return null}function AO(e,t){let n=lO(e),r=cD(e),i=iD(e),a=wD(e),o=oD(e),s=vD(e),c=TD(e),l=bO(e)(t.value),u=()=>t.value<e.length,d={type:HE.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[]};for(t.value++;u()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],l&&(n=e[++t.value]),i(t.value))for(d.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}d.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){let n=kO(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames);continue}t.value++}return d}function jO(e,t){let n=lO(e),r=cD(e),i=iD(e),a=lD(e),o=uD(e),s=wD(e),c=SD(e),l=oD(e),u=CD(e),d=vD(e),f=bO(e)(t.value),p=()=>t.value<e.length,m={type:HE.alterTableAddPrimaryKey,name:``,columnNames:[]};for(t.value++;p()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(d(t.value)){if(n=e[++t.value],f&&(n=e[++t.value]),i(t.value))for(m.name=n.value,t.value++;l(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(s(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],u(t.value)&&(n=e[++t.value],a(t.value))){for(n=e[++t.value];p()&&!o(t.value);)i(t.value)&&m.columnNames.push(n.value),n=e[++t.value];n=e[++t.value]}continue}t.value++}return m}function MO(e,t){let n=lO(e),r=cD(e),i=iD(e),a=wD(e),o=oD(e),s=vD(e),c=bD(e),l=lD(e),u=uD(e),d=bO(e)(t.value),f=()=>t.value<e.length,p={type:HE.alterTableAddUnique,name:``,columnNames:[]};for(t.value++;f()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],d&&(n=e[++t.value]),i(t.value))for(p.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],l(t.value)){for(n=e[++t.value];f()&&!u(t.value);)i(t.value)&&p.columnNames.push(n.value),n=e[++t.value];t.value++}continue}t.value++}return p}function NO(e,t){let n=lO(e),r=iD(e),i=oD(e),a=cD(e),o=zD(e),s=DD(e),c=()=>t.value<e.length,l={type:HE.commentOnColumn,tableName:``,columnName:``,comment:``};t.value+=3;let u=[],d=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(d=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!d){u.push(n.value),t.value++;continue}t.value++}return l.columnName=u.length?u[u.length-1]:``,l.tableName=u.length>1?u[u.length-2]:``,l}function PO(e,t){let n=lO(e),r=iD(e),i=oD(e),a=cD(e),o=zD(e),s=DD(e),c=()=>t.value<e.length,l={type:HE.commentOnTable,name:``,comment:``};t.value+=3;let u=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(u=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!u){l.name=n.value,t.value++;continue}t.value++}return l}function FO(e,t){let n=lO(e),r=cD(e),i=bD(e),a=iD(e),o=lD(e),s=uD(e),c=sD(e),l=yD(e),u=ND(e),d=MD(e),f=jD(e),p=mO(e),m=()=>t.value<e.length,h={type:HE.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=p(t.value)?2:1;m()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(l(t.value)){n=e[++t.value],a(t.value)&&(h.name=n.value);continue}if(u(t.value)){if(n=e[++t.value],a(t.value)&&(h.tableName=n.value,n=e[++t.value],o(t.value))){n=e[++t.value];let r={name:``,sort:UE.asc};for(;m()&&!s(t.value);)a(t.value)&&!d(t.value)&&!f(t.value)&&(r.name=n.value),d(t.value)&&(r.sort=UE.desc),c(t.value)&&(h.columns.push(r),r={name:``,sort:UE.asc}),n=e[++t.value];!h.columns.includes(r)&&r.name!==``&&h.columns.push(r),t.value++}continue}t.value++}return h}function IO(e){let t=[],n={value:0},r=()=>n.value<e.length,i=pO(e),a=hO(e),o=xO(e),s=SO(e),c=CO(e),l=sO(e),u=cO(e);for(;r();){if(i(n.value)){t.push(DO(e,n));continue}if(a(n.value)){t.push(FO(e,n));continue}if(o(n.value)){t.push(jO(e,n));continue}if(s(n.value)){t.push(AO(e,n));continue}if(c(n.value)){t.push(MO(e,n));continue}if(l(n.value)){t.push(PO(e,n));continue}if(u(n.value)){t.push(NO(e,n));continue}n.value++}return t}var LO=e=>IO(JE(e));function RO(e,t,n){let r=Ip({}),i=BO(zO(LO(e))),a=dh(i.length*100);return r.settings.width=a,r.settings.height=a,i.forEach(e=>VO(r,e,t)),HO(r,i),UO(r,i),Im(n?n(r):r)}function zO(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case HE.createTable:n.name&&t.tables.push(n);break;case HE.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case HE.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case HE.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&n.refColumnNames.length&&n.columnNames.length===n.refColumnNames.length&&t.foreignKeys.push(n);break;case HE.alterTableAddUnique:n.name&&n.columnNames.length&&t.uniques.push(n);break;case HE.commentOnTable:n.name&&t.tableComments.push(n);break;case HE.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function BO({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,tableComments:a,columnComments:o}){return t.forEach(t=>{let n=RS(e,t.tableName);n&&n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=RS(e,t.name);n&&t.columnNames.forEach(e=>{let t=RS(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=RS(e,t.name);n&&t.columnNames.forEach(e=>{let t=RS(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=RS(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames})}),a.forEach(({name:t,comment:n})=>{let r=RS(e,t);r&&(r.comment=n)}),o.forEach(({tableName:t,columnName:n,comment:r})=>{let i=RS(e,t);if(!i)return;let a=RS(i.columns,n);a&&(a.comment=r)}),e}function VO({doc:e,collections:t},n,{toWidth:r}){let i=Jb({name:n.name,comment:n.comment,ui:{widthName:V(r(n.name)),widthComment:V(r(n.comment))}});n.columns.forEach(e=>{let n=Tx({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?L.autoIncrement:0)|(e.primaryKey?L.primaryKey:0)|(e.unique?L.unique:0)|(e.nullable?0:L.notNull),ui:{widthName:V(r(e.name)),widthComment:V(r(e.comment)),widthDataType:V(r(e.dataType)),widthDefault:V(r(e.default)),keys:e.primaryKey?R.primaryKey:0}});i.columnIds.push(n.id),i.seqColumnIds.push(n.id),j(t).collection(`tableColumnEntities`).setOne(n)}),e.tableIds.push(i.id),j(t).collection(`tableEntities`).setOne(i)}function HO({doc:e,collections:t},n){let r=j(t).collection(`tableEntities`).selectByIds(e.tableIds),i=j(t).collection(`tableColumnEntities`);n.forEach(n=>{if(!n.foreignKeys.length)return;let a=RS(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=RS(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];n.refColumnNames.forEach(e=>{let t=RS(c,e);t&&l.push(t)}),n.columnNames.forEach(e=>{let t=RS(o,e);t&&(u.push(t),z(t.ui.keys,R.primaryKey)?t.ui.keys|=R.foreignKey:t.ui.keys=R.foreignKey)});let d=Ob({identification:!u.some(e=>!(z(e.ui.keys,R.primaryKey)&&z(e.ui.keys,R.foreignKey))),relationshipType:Gm.ZeroN,start:{tableId:s.id,columnIds:l.map(e=>e.id)},end:{tableId:a.id,columnIds:u.map(e=>e.id)}});e.relationshipIds.push(d.id),j(t).collection(`relationshipEntities`).setOne(d)})})}function UO({doc:e,collections:t},n){let r=j(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=RS(r,n.name);if(!a)return;let o=j(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=vy({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=RS(o,e.name);if(!t)return;let n=Fy({indexId:c.id,columnId:t.id,orderType:e.sort===UE.asc?qm.ASC:qm.DESC});s.push(n)}),s.length!==0&&(s.forEach(e=>{c.indexColumnIds.push(e.id),c.seqIndexColumnIds.push(e.id),j(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(c.id),j(t).collection(`indexEntities`).setOne(c))})})}function WO({doc:e,collections:t},n){let r=B(n);return j(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds).filter(({start:e,end:t})=>r(e.tableId)&&r(t.tableId)).map(({relationshipType:e,start:t,end:n})=>({relationshipType:e,start:{tableId:t.tableId,columnIds:[...t.columnIds]},end:{tableId:n.tableId,columnIds:[...n.columnIds]}}))}function GO({doc:e,collections:t},n){let r=B(n),i=j(t).collection(`indexColumnEntities`),a=[];for(let n of j(t).collection(`indexEntities`).selectByIds(e.indexIds)){if(!r(n.tableId))continue;let e=[],t=!0;for(let r of n.indexColumnIds){let n=i.selectById(r);if(!n){t=!1;break}e.push({columnId:n.columnId,orderType:n.orderType})}t&&a.push({tableId:n.tableId,name:n.name,unique:n.unique,indexColumns:e})}return a}new TextEncoder;function KO({tables:e,columns:t,memos:n,relationships:r,indexes:i},a){let o=[],s=[],c=[],l=new Map(t.map(e=>[e.sourceId,e])),u=new Map,d=new Map;for(let t of e){let e=a.get(t.sourceId);if(!e)continue;let n=x();s.push(n),u.set(t.sourceId,n),o.push(Yb({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}}),rx({id:n,value:t.name}),ax({id:n,value:t.comment}));for(let e of t.columnIds){let t=l.get(e);if(!t)continue;let r={id:x(),tableId:n};d.set(e,r.id),o.push(Ex(r),Ax({...r,value:t.name}),Px({...r,value:t.dataType}),Ix({...r,value:t.default}),Mx({...r,value:t.comment}),Bx({...r,value:z(t.options,L.primaryKey)}),Wx({...r,value:z(t.options,L.notNull)}),Hx({...r,value:z(t.options,L.unique)}),Rx({...r,value:z(t.options,L.autoIncrement)}))}}for(let e of r){let t=u.get(e.start.tableId),n=u.get(e.end.tableId);if(!t||!n)continue;let r=qO(e.start.columnIds,d),i=qO(e.end.columnIds,d);!r||!i||o.push(kb({id:x(),relationshipType:e.relationshipType,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=u.get(e.tableId);if(!t)continue;let n=qO(e.indexColumns.map(({columnId:e})=>e),d);if(!n)continue;let r=x();o.push(yy({id:r,tableId:t}),Cy({id:r,tableId:t,value:e.name}),Ty({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=x(),s=n[i];o.push(Ly({id:a,indexId:r,tableId:t,columnId:s}),Uy({id:a,indexId:r,columnId:s,value:e}))})}for(let e of n){let t=a.get(e.sourceId);if(!t)continue;let n=x();c.push(n),o.push(eb({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}}),cb({id:n,value:e.value}))}return{actions:o,tableIds:s,memoIds:c}}function qO(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function JO(e,t,n=[]){let{doc:{relationshipIds:r},collections:i}=t,a=e.pop();return a&&(n.some(({columnId:e})=>e===a.columnId)||(n.push(a),j(i).collection(`relationshipEntities`).selectByIds(r).forEach(({id:t,start:n,end:r})=>{let i=n.columnIds.indexOf(a.columnId);if(i!==-1){let n=r.columnIds[i];e.push({columnId:n,relationshipIds:[t]})}else{let i=r.columnIds.indexOf(a.columnId);if(i!==-1){let r=n.columnIds[i];e.push({columnId:r,relationshipIds:[t]})}}})),JO(e,t,n)),n}function YO(e){return Object.entries(e).reduce((e,[t,n])=>(n===r_.table?e.tableIds.push(t):n===r_.memo&&e.memoIds.push(t),e),{tableIds:[],memoIds:[]})}const XO=e=>function*(){yield $_(),yield nv({value:e})},ZO=e=>function*(){yield iv(),yield ov({value:e})},QO=(e,t)=>function*({editor:{selectedMap:n},settings:{zoomLevel:r}}){let{tableIds:i,memoIds:a}=YO(n),o=e/r,s=t/r;i.length&&(yield Zb({ids:i,movementX:o,movementY:s})),a.length&&(yield nb({ids:a,movementX:o,movementY:s}))},$O=()=>function*(){yield wS(),yield hS()},ek=(e,t)=>function*(n){yield*nk(n,{input:{tables:e.tables,columns:e.columns,memos:e.memos,relationships:e.relationships??[],indexes:e.indexes??[]},offset:{x:50*t,y:50*t},escapeCollision:!0})},tk=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*nk(i,{input:ak(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:Ue(n.x,4),y:Ue(n.y,4)},escapeCollision:r})};function*nk(e,{input:t,offset:n,escapeCollision:r}){if(t.tables.length===0&&t.memos.length===0)return;let{settings:i,doc:{tableIds:a,memoIds:o},collections:s}=e,c=j(s).collection(`tableEntities`),l=j(s).collection(`memoEntities`),{actions:u,tableIds:d,memoIds:f}=KO(t,ik(xS({entities:[...t.tables.map(rk),...t.memos.map(rk)],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield sk(),yield u,yield Y_({...d.reduce((e,t)=>(e[t]=r_.table,e),{}),...f.reduce((e,t)=>(e[t]=r_.memo,e),{})})}const rk=({sourceId:e,ui:{x:t,y:n,zIndex:r}})=>({sourceId:e,ui:{x:t,y:n,zIndex:r}});function ik(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:Ue(t,4),y:Ue(n,4),zIndex:r}]))}function ak(e,{tableIds:t,memoIds:n}){let{collections:r}=e,i=j(r).collection(`tableEntities`).selectByIds(t),a=j(r).collection(`memoEntities`).selectByIds(n),o=i.flatMap(e=>j(r).collection(`tableColumnEntities`).selectByIds(e.columnIds)),s=i.map(({id:e})=>e);return{tables:i.map(e=>({sourceId:e.id,name:e.name,comment:e.comment,columnIds:[...e.columnIds],ui:{x:e.ui.x,y:e.ui.y,zIndex:e.ui.zIndex,widthName:e.ui.widthName,widthComment:e.ui.widthComment,color:e.ui.color}})),columns:o.map(e=>({sourceId:e.id,tableId:e.tableId,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:e.options,ui:{keys:e.ui.keys,widthName:e.ui.widthName,widthComment:e.ui.widthComment,widthDataType:e.ui.widthDataType,widthDefault:e.ui.widthDefault}})),memos:a.map(e=>({sourceId:e.id,value:e.value,ui:{x:e.ui.x,y:e.ui.y,width:e.ui.width,height:e.ui.height,zIndex:e.ui.zIndex,color:e.ui.color}})),relationships:WO(e,s),indexes:GO(e,s)}}const ok=e=>function*(t){let{doc:{tableIds:n,memoIds:r},collections:i}=t,a={...j(i).collection(`tableEntities`).selectByIds(n).reduce((n,r)=>{let i=wh(r,t).width,a=Oh(r);return FS(e,{x:r.ui.x+i/2-15,y:r.ui.y+a/2-15,w:15,h:15})&&(n[r.id]=r_.table),n},{}),...j(i).collection(`memoEntities`).selectByIds(r).reduce((t,n)=>{let r=nh(n),i=rh(n);return FS(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=r_.memo),t},{})};yield sk(),He(a)||(yield Y_(a))},sk=()=>function*(){yield q_(),yield fv()},ck=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===i_.Tab&&!t&&(N_(r.focusType)&&j_(n)&&!b_(n)||!N_(r.focusType)&&x_(n)&&C_(n))?yield AS(r.tableId):yield mv({moveKey:e,shiftKey:t}))},lk=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield Mv():yield Ov({relationshipType:e})},uk=e=>function*({collections:t}){let n=j(t).collection(`tableEntities`).selectById(e);if(n){if(!j(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>z(e.options,L.primaryKey))){let t=x();yield Ex({tableId:e,id:t}),yield Bx({tableId:e,id:t,value:!0}),yield uv({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1})}yield Av({tableId:e})}},dk=e=>function*({editor:{selectedMap:t},collections:n}){let{tableIds:r,memoIds:i}=YO(t),a=j(n).collection(`tableEntities`).selectByIds(r),o=j(n).collection(`memoEntities`).selectByIds(i);yield a.map(t=>sx({id:t.id,color:e,prevColor:t.ui.color})),yield o.map(t=>ub({id:t.id,color:e,prevColor:t.ui.color}))},fk=e=>function*({settings:t},n){yield XO(RO(e,n,e=>(e.settings={...e.settings,..._e(oe(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield dx()},pk=e=>function*({settings:t},n){yield XO(VE(e,n,e=>(e.settings={...e.settings,..._e(oe(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield dx()},mk=e=>function*({settings:t},n){yield XO(_T(e,n,e=>(e.settings={...e.settings,..._e(oe(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield dx()},hk=e=>function*({settings:t},n){yield XO(sw(e,n,e=>(e.settings={...e.settings,..._e(oe(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield dx()},gk=e=>function*({editor:{focusTable:t}}){!t||!t.columnId||(yield Kv({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))},_k=(e,t)=>function*({editor:{draggableColumn:n},collections:r}){if(!n||n.columnIds.length===0)return;let{tableId:i,columnIds:a}=n,o=j(r).collection(`tableEntities`),s=o.selectById(i);if(!s)return;if(t===i){let t=s.columnIds.indexOf(a[0]);if(t===-1)return;let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>Kx({tableId:i,id:t,targetId:e}));t<n&&r.reverse(),yield r;return}if(!o.selectById(t))return;let c=j(r).collection(`tableColumnEntities`).selectByIds(a);if(c.length===0)return;yield jS(i,a);let l=c.map(()=>x());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[Ex(a),Ax({...a,value:r.name}),Px({...a,value:r.dataType}),Ix({...a,value:r.default}),Mx({...a,value:r.comment}),Bx({...a,value:z(r.options,L.primaryKey)}),Wx({...a,value:z(r.options,L.notNull)}),Hx({...a,value:z(r.options,L.unique)}),Rx({...a,value:z(r.options,L.autoIncrement)}),Kx({...a,targetId:e}),uv({tableId:t,columnId:i,focusType:W.columnName,$mod:!0,shiftKey:!1})]}yield Kv({tableId:t,columnIds:l})},vk=e=>function*(t){let{columnIds:n,relationshipIds:r}=JO([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield Iv({columnIds:xe(n)}),yield Rv({relationshipIds:xe(r)})},yk=()=>function*(){yield Iv({columnIds:[]}),yield Rv({relationshipIds:[]})},bk={loadJsonAction$:XO,initialLoadJsonAction$:ZO,moveAllAction$:QO,removeSelectedAction$:$O,pasteEntitiesAction$:ek,duplicateAction$:tk,dragSelectAction$:ok,unselectAllAction$:sk,focusMoveTableAction$:ck,drawStartRelationshipAction$:lk,drawStartAddRelationshipAction$:uk,changeColorAllAction$:dk,loadSchemaSQLAction$:fk,loadSchemaGraphQLAction$:pk,loadSchemaDBMLAction$:mk,loadSchemaAMLAction$:hk,dragstartColumnAction$:gk,dragoverColumnAction$:_k,columnKeyHoverStartAction$:vk,columnKeyHoverEndAction$:yk},xk={addIndexAction$:e=>function*(){yield yy({id:x(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=j(t).collection(`indexEntities`).selectById(e);n&&(yield Ty({id:e,tableId:n.tableId,value:!n.unique}))}},Sk={addIndexColumnAction$:(e,t)=>function*({collections:n}){let r=j(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=j(n).collection(`indexColumnEntities`).selectByIds(r.seqIndexColumnIds).find(e=>e.columnId===t);i?yield Ly({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield Ly({id:x(),indexId:e,tableId:r.tableId,columnId:t})},removeIndexColumnAction$:(e,t)=>function*({collections:n}){let r=j(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=j(n).collection(`indexColumnEntities`).selectByIds(r.indexColumnIds).filter(e=>e.columnId===t);for(let t of i)yield zy({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=j(t).collection(`indexColumnEntities`).selectById(e);n&&(yield Uy({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===qm.ASC?qm.DESC:qm.ASC}))},moveIndexColumnAction$:(e,t)=>function*({collections:n}){if(e===t)return;let r=j(n).collection(`indexColumnEntities`).selectById(e);if(!r)return;let i=j(n).collection(`indexEntities`).selectById(r.indexId);i&&(yield Vy({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},Ck={};function wk({editor:{viewport:e},settings:{originX:t,originY:n,zoomLevel:r}},i){let a={originX:t,originY:n,zoomLevel:r},o={x:e.width/2,y:e.height/2},s=Zg(a,o),c=Xg({...a,zoomLevel:i},s);return{movementX:Ue(o.x-c.x,4),movementY:Ue(o.y-c.y,4)}}const Tk={changeZoomLevelAction$:e=>function*(t){let{settings:{originX:n,originY:r}}=t,{movementX:i,movementY:a}=wk(t,fh(e));yield $h({value:e}),yield ag({originX:n+i,originY:r+a})},streamZoomLevelAction$:e=>function*(t){let{settings:{zoomLevel:n}}=t,{movementX:r,movementY:i}=wk(t,fh(n+e));yield tg({value:e}),yield sg({movementX:r,movementY:i})}},Ek=Object.freeze({...py,...bk,...Oy,...xk,...Ky,...Sk,..._b,..._S,...Ib,...Ck,...Pg,...Tk,...mx,...ES,...Yx,...PS}),Dk=`table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.sort,column.add,column.remove,column.changeName,column.changeComment,column.changeDataType,column.changeDefault,column.changeAutoIncrement,column.changePrimaryKey,column.changeUnique,column.changeNotNull,column.move,relationship.add,relationship.remove,relationship.changeType,index.add,index.remove,index.changeName,index.changeUnique,indexColumn.add,indexColumn.remove,indexColumn.move,indexColumn.changeOrderType,memo.add,memo.move,memo.moveTo,memo.remove,memo.changeValue,memo.changeColor,memo.resize,settings.changeDatabaseName,settings.changeZoomLevel,settings.streamZoomLevel,settings.scrollTo,settings.streamScrollTo,settings.changeShow,settings.changeDatabase,settings.changeCanvasType,settings.changeLanguage,settings.changeTableNameCase,settings.changeColumnNameCase,settings.changeBracketType,settings.changeRelationshipDataTypeSync,settings.changeRelationshipOptimization,settings.changeColumnOrder,settings.changeMaxWidthComment,settings.changeIgnoreSaveSettings,editor.loadJson,editor.clear`.split(`,`),Ok=B([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),kk=[...Dk.filter(e=>!Ok(e))],Ak=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...Dk,...Ak];const jk=[`table.move`,`memo.move`],Mk=[`table.changeColor`,`memo.changeColor`],Nk=[`settings.streamZoomLevel`,`settings.streamScrollTo`],Pk=[...Object.keys(uS)],Fk=[...Object.keys(lS),...Pk];function Ik(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function Lk(e,t,n){Ik(e,t),t.set(e,n)}function Rk(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function zk(e,t){return e.get(Rk(e,t))}function Bk(e,t,n){return e.set(Rk(e,t),n),n}var Vk=new WeakMap,Hk=class{constructor(){Lk(this,Vk,0),si(this,`getVersion`,()=>zk(Vk,this)),si(this,`getNextVersion`,()=>this.getVersion()+1),si(this,`merge`,e=>(!y(e)||!Number.isInteger(e)||this.getVersion()<e&&Bk(Vk,this,e),this))}};function Uk(e){return{...e,clock:new Hk}}function Wk({notify:e,dispatch:t,getNextVersion:n},r){let i=r?.commands??[],a=r?.cursor??-1,o=r?.limit??0,s=!0,c=()=>a!==-1,l=()=>a<i.length-1,u=e=>o=e,d=()=>({hasRedo:l(),hasUndo:c()}),f=(e,r)=>{s=!1,e[r](t,n),s=!0};return Object.freeze({get cursor(){return a},get size(){return i.length},hasUndo:c,hasRedo:l,push:t=>{s&&(i.splice(a+1,i.length-a),i.push(t),o!==0&&i.length>o&&(i=i.slice(i.length-o,i.length)),a=i.length-1,e(d()))},undo:()=>{if(!c())return;let t=i[a];f(t,`undo`),a--,e(d())},redo:()=>{if(!l())return;let t=i[a+1];f(t,`redo`),a++,e(d())},clear:()=>{let t=i.length;i=[],a=-1,t>0&&e(d())},setLimit:u,clone:e=>Wk(e,{commands:[...i],cursor:a,limit:o})})}const Gk=Ae(e=>!!e.length),Kk=e=>{let t=B(e);return e=>new Ce(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gk)},qk=`@@none-stream`,Jk=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n)?n:qk},Yk=(e,t=[],n=Oe(200))=>{let r=B(e),i=t.map(([e,t])=>[e,B(t)]),a=Jk(r,i);return e=>new Ce(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t.type);return e[n]||(e[n]=[]),e[n].push(t),e},{});Object.values(n).forEach(e=>t.next(e))},error:e=>t.error(e),complete:()=>t.complete()})).pipe(Gk,Me(e=>a(e[0].type)),Fe(e=>e.key===qk?e:e.pipe(De(e.pipe(n)),Ne(e=>e.flat()))))},Xk=e=>{let t=t=>v(t.tags)||!e.some(e=>z(t.tags,e));return e=>new Ce(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gk)};B(Pk),B(Ak);const Zk=(e,t=[])=>{let n=B(kk),r=e=>!v(e.tags)&&t.some(t=>z(e.tags,t))||!n(e.type);return t=>new Ce(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gk)};function Qk(e,t){return Ou({context:e,state:{...Ip({}),editor:a_(),lww:{}},reducers:{...fy,...px,...Jx,...gb,...Fb,...Ng,...Dy,...Gy},enableObservable:t??!0})}const $k=new WeakMap;function eA(e){let t=$k.get(e);return t||(t={boxes:new Map,entries:new Map},$k.set(e,t)),t}function tA(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function nA(e,t){return{left:Math.min(e.left,t.left),top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom)}}function rA(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function iA(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),a>r&&(r=a),o<n&&(n=o),o>i&&(i=o);return{left:t,top:n,right:r,bottom:i}}function aA(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function oA(e,t){let n={left:e.left-40,top:e.top-40,right:e.right+40,bottom:e.bottom+40};for(let e of t)if(aA(n,e))return!0;return!1}function sA(){let e=new Map,t=new Map,n=(n,r,i,a,o)=>{let s=n?e:t,c=Math.floor(Math.min(r,i)/64),l=Math.floor(Math.max(r,i)/64);for(let e=c;e<=l;e++){let t=s.get(e);t?t.push(r,i,a,o):s.set(e,[r,i,a,o])}};return{markSpan:n,markBox(e){n(!0,e.left,e.right,e.top,e.bottom),n(!1,e.top,e.bottom,e.left,e.right)},hits(n,r,i,a,o){let s=n?e:t;if(!s.size)return!1;let c=Math.min(r,i)-64,l=Math.max(r,i)+64,u=Math.floor(c/64),d=Math.floor(l/64);for(let e=u;e<=d;e++){let t=s.get(e);if(t){for(let e=0;e<t.length;e+=4)if(!(t[e+1]<c||t[e]>l)&&!(t[e+3]<a-16)&&!(t[e+2]>o+16))return!0}}return!1}}}function cA(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n];Math.abs(r.x-i.x)<.5?e.markSpan(!0,r.x,i.x,Math.min(r.y,i.y),Math.max(r.y,i.y)):e.markSpan(!1,r.y,i.y,Math.min(r.x,i.x),Math.max(r.x,i.x))}}function lA(e,t){let n=e.boxes,r=new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=tA(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?rA(c,s)||i.push(nA(c,s)):i.push(s),i.length>64&&(a=!0)}if(!a){for(let[e,t]of n)if(!r.has(e)&&(i.push(t),i.length>64)){a=!0;break}}return e.boxes=r,a||n.size===0?null:i}function uA(e){return 50+e%4*12}function dA(e,t){return e.tableId===t.tableId?null:e.direction===I.right&&t.direction===I.left?t.x-e.x:e.direction===I.left&&t.direction===I.right?e.x-t.x:e.direction===I.bottom&&t.direction===I.top?t.y-e.y:e.direction===I.top&&t.direction===I.bottom?e.y-t.y:null}function fA(e,t){return t===null||t<=0?e:Math.max(36,Math.min(e,t/2-1))}function pA(e){return e===I.left||e===I.right}function mA(e){return e===I.right||e===I.bottom?1:-1}function hA(e,t,n){let r=mA(t);return pA(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function gA(e){let{start:t,end:n}=e,[r,i]=zg(e),a=dA(t,n),o=fA(uA(r),a),s=fA(uA(i),a);return{m:hA(t,t.direction,o),l:hA(n,n.direction,s),startStub:o,endStub:s}}function _A(e){let{doc:{tableIds:t},collections:n}=e,r=j(n).collection(`tableEntities`).selectByIds(t),i=r.length,a={ids:Array(i),left:new Float64Array(i),top:new Float64Array(i),right:new Float64Array(i),bottom:new Float64Array(i)};return r.forEach((t,n)=>{let r=Mh(e,t);a.ids[n]=t.id,a.left[n]=r.lt.x+2,a.top[n]=r.lt.y+2,a.right[n]=r.rb.x-2,a.bottom[n]=r.rb.y-2}),a}function vA(e,t,n,r,i,a,o,s){let c=0,l=1,u=n-e,d=r-t,f=(e,t)=>{if(e===0)return t>=0;let n=t/e;if(e<0){if(n>l)return!1;n>c&&(c=n)}else{if(n<c)return!1;n<l&&(l=n)}return!0};return f(-u,e-i)&&f(u,o-e)&&f(-d,t-a)&&f(d,s-t)&&c<=l}function yA(e,t,n,r){let i=0,a=1/0,o=-1/0,s=1/0,c=-1/0;for(let t=0;t<e.length;t++){let n=e[t];n.x<a&&(a=n.x),n.x>o&&(o=n.x),n.y<s&&(s=n.y),n.y>c&&(c=n.y)}for(let l=0;l<t.ids.length;l++){let u=t.left[l],d=t.right[l],f=t.top[l],p=t.bottom[l];if(o<u||a>d||c<f||s>p)continue;let m=t.ids[l];if(m!==n&&m!==r)for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(Math.max(n.x,r.x)<u||Math.min(n.x,r.x)>d)&&!(Math.max(n.y,r.y)<f||Math.min(n.y,r.y)>p)&&vA(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function bA(e){let t=0;for(let n=1;n<e.length;n++)t+=Math.abs(e[n].x-e[n-1].x)+Math.abs(e[n].y-e[n-1].y);return t}function xA(e,t,n,r,i,a){let o=(e+t)/2,s=n[r?`left`:`top`],c=n[r?`right`:`bottom`],l=n[r?`top`:`left`],u=n[r?`bottom`:`right`],d=[];for(let e=0;e<n.ids.length;e++)u[e]<i||l[e]>a||d.push(s[e]-16,c[e]+16);return d.sort((e,t)=>Math.abs(e-o)-Math.abs(t-o)),[o,...d.slice(0,6)]}function SA(e,t,n,r,i){let a=pA(t),o=pA(r),s=mA(t),c=mA(r),l=Math.min(e.x,n.x,e.y,n.y),u=Math.max(e.x,n.x,e.y,n.y),d=[],f=e=>{let t=[e[0]];for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n];Math.abs(i.x-r.x)<.5&&Math.abs(i.y-r.y)<.5||t.push(i)}t.length<2||d.push({points:t,bends:t.length-2})};if(a&&o){let t=xA(e.x,n.x,i,!0,l,u);for(let r of t)(r-e.x)*s<0||(r-n.x)*c<0||f([e,{x:r,y:e.y},{x:r,y:n.y},n]);let r=xA(e.y,n.y,i,!1,l,u);for(let t of r){let r=e.x+s*16,i=n.x+c*16;f([e,{x:r,y:e.y},{x:r,y:t},{x:i,y:t},{x:i,y:n.y},n])}}else if(!a&&!o){let t=xA(e.y,n.y,i,!1,l,u);for(let r of t)(r-e.y)*s<0||(r-n.y)*c<0||f([e,{x:e.x,y:r},{x:n.x,y:r},n]);let r=xA(e.x,n.x,i,!0,l,u);for(let t of r){let r=e.y+s*16,i=n.y+c*16;f([e,{x:e.x,y:r},{x:t,y:r},{x:t,y:i},{x:n.x,y:i},n])}}else if(a){(n.x-e.x)*s>=0&&(e.y-n.y)*c>=0&&f([e,{x:n.x,y:e.y},n]);let t=xA(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=xA(e.y,n.y,i,!1,l,u).filter(e=>(e-n.y)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:i,y:e.y},{x:i,y:t},{x:n.x,y:t},n])}else{(n.y-e.y)*s>=0&&(e.x-n.x)*c>=0&&f([e,{x:e.x,y:n.y},n]);let t=xA(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=xA(e.x,n.x,i,!0,l,u).filter(e=>(e-n.x)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:e.x,y:i},{x:t,y:i},{x:t,y:n.y},n])}return d}function CA(e,t,n,r,i,a,o){let s=SA(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=yA(e.points,i,a,o)*1e5+e.bends*36+bA(e.points);t<l&&(l=t,c=e.points)}return c||(pA(t)?[e,{x:(e.x+n.x)/2,y:e.y},{x:(e.x+n.x)/2,y:n.y},n]:[e,{x:e.x,y:(e.y+n.y)/2},{x:n.x,y:(e.y+n.y)/2},n])}const wA=[10,7,4],TA=wA[wA.length-1]-.5;function EA(e){let t=[];for(let[n,r]of e)for(let e=0;e<r.length-1;e++){let i=r[e],a=r[e+1],o=Math.abs(i.x-a.x)<.5;o!==Math.abs(i.y-a.y)<.5&&t.push({relationshipId:n,points:r,index:e,movable:e>0&&e<r.length-2,vertical:o,coordinate:o?i.x:i.y,low:o?Math.min(i.y,a.y):Math.min(i.x,a.x),high:o?Math.max(i.y,a.y):Math.max(i.x,a.x)})}return t}function DA(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function OA(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function kA(e){for(let t of e){let e=t.points[t.index],n=t.points[t.index+1];t.low=t.vertical?Math.min(e.y,n.y):Math.min(e.x,n.x),t.high=t.vertical?Math.max(e.y,n.y):Math.max(e.x,n.x)}}function AA(e,t){let n=e.points[e.index],r=e.points[e.index+1];e.vertical?(n.x=t,r.x=t):(n.y=t,r.y=t)}function jA(e,t,n,r){let i=[],a=[];for(let t of EA(e))(t.vertical?i:a).push(t);for(let e of[i,a]){kA(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||DA(e,t));let a=[],o=()=>{a.length>1&&MA(a,e,t,n,r),a=[]};for(let e of i){let t=a[a.length-1];t&&e.coordinate-t.coordinate>10.5&&o(),a.push(e)}o()}}function MA(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||DA(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&RA(a,t,n,r,i),a=[],o=-1/0};for(let t of e)a.length&&t.low>=o&&s(),a.push(t),o=Math.max(o,t.high);s()}function NA(e,t){return e.high+10>t.low&&t.high+10>e.low}function PA(e,t){return Math.abs(e.coordinate-t.coordinate)>=TA?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function FA(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r];for(let t=r+1;t<e.length;t++)n+=PA(i,e[t]);for(let e of t)n+=PA(i,e)}return n}function IA(e,t){let n=new Set(e),r=1/0,i=-1/0;for(let t of e)t.coordinate<r&&(r=t.coordinate),t.coordinate>i&&(i=t.coordinate);let a=10*(e.length-1)/2+TA,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function LA(e){let t=[];for(let n of e){let e=t.find(e=>!NA(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function RA(e,t,n,r,i){if(!i){zA(e,t,n,r);return}if(BA(e,i))return;let a=e.map(e=>e.coordinate);zA(e,t,n,r),VA(e,a,i)}function zA(e,t,n,r){let i=IA(e,t),a=FA(e,i);if(!a)return;let o=new Map,s=e.map(e=>(o.set(e,JA(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=HA(e),u=null,d=1/0;for(let t of wA){let a=null,f=1/0;for(let p of l){qA(p,t,c,o,n,r);let l=FA(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=GA(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}KA(e,s)}if(a){KA(e,a);return}}u&&d<a&&KA(e,u)}function BA(e,t){let n=[];for(let r of e){if(t.dirty.has(r.relationshipId))return!1;let e=t.coordinate(r.relationshipId,r.index,r.vertical);if(e===void 0||t.lanes.hits(r.vertical,r.coordinate,e,r.low,r.high))return!1;n.push(e)}return KA(e,n),!0}function VA(e,t,n){e.forEach((e,r)=>{let i=t[r],a=e.coordinate;if(Math.abs(a-i)<.5)return;n.lanes.markSpan(e.vertical,i,a,e.low,e.high);let o=e.points[e.index],s=e.points[e.index+1],c=Math.min(i,a),l=Math.max(i,a),u=e.vertical?o.y:o.x,d=e.vertical?s.y:s.x;n.lanes.markSpan(!e.vertical,u,u,c,l),n.lanes.markSpan(!e.vertical,d,d,c,l)})}function HA(e){let t=LA(e),n=UA(t);return t.length===e.length?n:[...n,...UA(e.map(e=>[e]))]}function UA(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,OA)-t(n,OA)||t(e,WA)-t(n,WA)||DA(e[0],n[0])),r=[...e].sort((e,n)=>t(e,WA)-t(n,WA)||t(e,OA)-t(n,OA)||DA(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function WA(e){return e.coordinate}function GA(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function KA(e,t){e.forEach((e,n)=>{AA(e,t[n]),e.coordinate=t[n]})}function qA(e,t,n,r,i,a){let o=n-t*(e.length-1)/2,s=e.map(()=>[]);e.forEach((n,c)=>{for(let l of n){let n=r.get(l);if(!n)continue;let u=r=>{if(r<0||r>=e.length||s[r].some(e=>NA(l,e)))return!1;let c=o+r*t;return AA(l,c),QA(l,i,a,n)?(l.coordinate=c,s[r].push(l),!0):!1},d=!1;for(let e=0;e<=3&&!d;e++)d=u(c-e)||e>0&&u(c+e);d||AA(l,l.coordinate)}})}function JA(e,t,n){let r=n.get(e.relationshipId),i=[];for(let e=0;e<t.ids.length;e++){let n=t.ids[e];(n===r?.[0]||n===r?.[1])&&i.push(e)}return{blocked:yA(e.points,t,r?.[0]??``,r?.[1]??``),crossed:$A(e.points),own:i,intruded:ZA(e.points,t,i),beforeDelta:YA(e,-1),afterDelta:YA(e,1)}}function YA(e,t){let n=e.points[t<0?e.index:e.index+1],r=e.points[t<0?e.index-1:e.index+2];return e.vertical?r.x-n.x:r.y-n.y}function XA(e,t){return Math.abs(t)>=.5&&e*t<=0}function ZA(e,t,n){let r=0;for(let i of n){let n=t.left[i],a=t.top[i],o=t.right[i],s=t.bottom[i];for(let t=1;t<e.length;t++){let i=e[t-1],c=e[t];if(vA(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function QA(e,t,n,r){let i=e.points[e.index-1],a=e.points[e.index],o=e.points[e.index+1],s=e.points[e.index+2];if((e.vertical?Math.abs(i.x-a.x)<.5||Math.abs(s.x-o.x)<.5:Math.abs(i.y-a.y)<.5||Math.abs(s.y-o.y)<.5)||e.index===1&&XA(YA(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&XA(YA(e,1),r.afterDelta)||ZA(e.points,t,r.own)>r.intruded||!r.crossed&&$A(e.points))return!1;let c=n.get(e.relationshipId);return yA(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function $A(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(ej(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function ej(e,t,n,r){let i=Math.abs(e.x-t.x)<.5;if(i===Math.abs(n.x-r.x)<.5)return!1;let a=i?e:n,o=i?t:r,s=i?n:e,c=i?r:t;return a.x>Math.min(s.x,c.x)&&a.x<Math.max(s.x,c.x)&&s.y>Math.min(a.y,o.y)&&s.y<Math.max(a.y,o.y)}const tj={[U.top]:I.top,[U.bottom]:I.bottom,[U.left]:I.left,[U.right]:I.right},nj=Math.PI*2,rj=.15,ij={[U.top]:-Math.PI,[U.right]:-Math.PI/2,[U.bottom]:0,[U.left]:Math.PI/2},aj={[U.top]:!1,[U.right]:!1,[U.bottom]:!0,[U.left]:!0};function oj(e){Wg();let{doc:{tableIds:t,relationshipIds:n},collections:r}=e,i=B(t),a=j(r).collection(`tableEntities`),o=j(r).collection(`relationshipEntities`).selectByIds(n).filter(({start:e,end:t})=>i(e.tableId)&&i(t.tableId)),s=new Map,c=new Map,l=new Map,u=_j(o);for(let t of o){let n=gj(t),{start:r,end:i}=n,o=a.selectById(r.tableId),d=a.selectById(i.tableId);if(!(!o||!d)){if(c.set(t,n),l.set(n.id,[0,0]),r.tableId===i.tableId)fj(dj(e,s,o),n);else{let t=dj(e,s,o),a=dj(e,s,d),[c,l]=xj(t.objectPoint,a.objectPoint,n);t[c].push({id:n.id,isStart:!0,point:r,angle:bj(c,t,a),tie:u.tieAt(n.id,r.tableId,i.tableId)}),a[l].push({id:n.id,isStart:!1,point:i,angle:bj(l,a,t),tie:u.tieAt(n.id,i.tableId,r.tableId)})}}}for(let e of s.values())for(let t of Fg)Sj(t,e,l);for(let[e,t]of c.entries())Rg(e,l.get(t.id)??[0,0]),e.start.direction=t.start.direction,e.start.x=t.start.x,e.start.y=t.start.y,e.end.direction=t.end.direction,e.end.x=t.end.x,e.end.y=t.end.y;sj(e,c)}function sj(e,t){let n=_A(e),r=eA(e),i=lA(r,n),a=r.entries,o=new Map,s=new Set,c=sA();if(i)for(let e of i)c.markBox(e);let l=new Map,u=new Map,d=new Map;for(let e of t.keys()){let{start:t,end:r}=e;if(t.tableId===r.tableId)continue;let{m:f,l:p}=gA(e),m=a.get(e.id),h,g;i!==null&&m!==void 0&&uj(m,f,p,t,r)&&!oA(m.bounds,i)?(h=m.pristine,g=cj(h)):(g=CA(f,t.direction,p,r.direction,n,t.tableId,r.tableId),h=cj(g),s.add(e.id),m&&cA(c,m.nudged),cA(c,h)),l.set(e.id,g),u.set(e.id,[t.tableId,r.tableId]),d.set(e.id,e),o.set(e.id,{mx:f.x,my:f.y,mDirection:t.direction,lx:p.x,ly:p.y,lDirection:r.direction,startTableId:t.tableId,endTableId:r.tableId,pristine:h,nudged:g,bounds:iA(h)})}if(i)for(let[e,t]of a)o.has(e)||cA(c,t.nudged);jA(l,n,u,i===null?void 0:lj(a,s,c));for(let[e,t]of l){let n=d.get(e);n&&Vg(n,t)}r.entries=o}function cj(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function lj(e,t,n){return{dirty:t,lanes:n,coordinate(t,n,r){let i=e.get(t)?.nudged[n];if(i)return r?i.x:i.y}}}function uj(e,t,n,r,i){return e.mx===t.x&&e.my===t.y&&e.lx===n.x&&e.ly===n.y&&e.mDirection===r.direction&&e.lDirection===i.direction&&e.startTableId===r.tableId&&e.endTableId===i.tableId}function dj(e,t,n){let r=t.get(n.id);if(!r){let i=Mh(e,n);r={tableId:n.id,centerX:i.top.x,centerY:i.left.y,objectPoint:i,selfCount:0,top:[],bottom:[],left:[],right:[]},t.set(n.id,r)}return r}function fj(e,t){let{rt:n,width:r,height:i}=e.objectPoint,a=e.selfCount++,o=hj(Math.min(r,i)*rj,20,60)+a*14;t.start.direction=I.top,t.start.x=n.x-o,t.start.y=n.y,t.end.direction=I.right,t.end.x=n.x,t.end.y=n.y+o}function pj(e,t){let{width:n,height:r}=e.objectPoint;return hj(Math.min(n,r)*rj,20,60)+t*14}function mj(e){return e.selfCount?pj(e,e.selfCount-1)+8:0}function hj(e,t,n){return Math.min(Math.max(e,t),n)}function gj(e){return{id:e.id,start:{tableId:e.start.tableId,x:e.start.x,y:e.start.y,direction:e.start.direction},end:{tableId:e.end.tableId,x:e.end.x,y:e.end.y,direction:e.end.direction}}}function _j(e){let t=new Map;for(let{id:n,start:r,end:i}of e){let e=vj(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=new Map,r=new Map,i=!1;for(let e of t.values())e.length<2||(i=!0,e.sort(),e.forEach((t,i)=>{n.set(t,i),r.set(t,e.length)}));return{tieAt(e,t,a){if(!i)return 0;let o=n.get(e)??0;return t<=a?o:(r.get(e)??1)-1-o}}}function vj(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function yj(e){let t=e%nj;return t<0?t+nj:t}function bj(e,t,n){return yj(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-ij[e])}function xj(e,t,n){let r=[U.bottom,U.bottom],i=Nh(e.bottom,t.bottom);n.start.x=e.bottom.x,n.start.y=e.bottom.y,n.end.x=t.bottom.x,n.end.y=t.bottom.y,n.start.direction=I.bottom,n.end.direction=I.bottom;for(let a of Fg)for(let o of Fg){let s=a,c=o,l=Nh(e[s],t[c]);i<=l||(i=l,r[0]=s,r[1]=c,n.start.x=e[s].x,n.start.y=e[s].y,n.start.direction=tj[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=tj[c])}return r}function Sj(e,t,n){let r=t[e];if(!r.length)return;r.sort((e,t)=>e.angle-t.angle||e.tie-t.tie||(e.id<t.id?-1:1));let{objectPoint:i}=t,a=e===U.top||e===U.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=mj(t);if(c&&(e===U.top?s-=c:e===U.right&&(o+=c)),s<o){let e=(o+s)/2;o=e,s=e}let l=s-o,u=(o+s)/2,d=r.length,f=d>1?Math.min(l/(d-1),120):0,p=u-f*(d-1)/2;r.forEach((t,r)=>{let o=aj[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===U.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===U.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}const Cj=(e,t)=>e.pipe(Be(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=j(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,identification:r}=e,i=j(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=B(i.columnIds),o=j(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>z(e.options,L.primaryKey));s!==r&&(e.identification=s)}}),wj=(e,t)=>e.pipe(Be(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=j(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,startRelationshipType:r}=e,i=j(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=B(i.columnIds),o=j(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>z(e.options,L.notNull))?Km.dash:Km.ring;s!==r&&(e.startRelationshipType=s)}}),Tj=B([Zb.type,$b.type,nb.type]),Ej=[[[Ox,Bx,nv,ov],Cj],[[Ox,Wx,nv,ov],wj],[[lg,kg,kb,jb,nb,Yb,tx,Zb,$b,rx,ax,Ex,Ox,Ax,Mx,Px,Ix,dx],(e,t)=>e.pipe(ze(e=>{Tj(e.type)||Ch()}),Be(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{oj(t())})]],Dj=[[[nv,ov],(e,t,n)=>e.pipe(Be(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let e=t();kh(e,n),oj(e)})]],Oj=e=>e.pipe(Ie(Ee)),kj=[[[Bx],(e,t)=>Oj(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=j(n).collection(`tableColumnEntities`).selectById(e);r&&z(r.options,L.primaryKey)&&(z(r.options,L.notNull)||(r.options|=L.notNull))})],[[kb],(e,t)=>Oj(e).subscribe(({payload:{id:e,end:n}})=>{let{doc:{relationshipIds:r},collections:i}=t();if(!r.includes(e))return;let a=j(i).collection(`tableColumnEntities`).selectByIds(n.columnIds);for(let e of a)e.ui.keys=e.ui.keys|R.foreignKey})],[[jb],(e,t)=>Oj(e).subscribe(({payload:{id:e}})=>{let{doc:{relationshipIds:n},collections:r}=t();if(n.includes(e))return;let i=j(r).collection(`relationshipEntities`).selectById(e);if(!i)return;let a=j(r).collection(`tableColumnEntities`).selectByIds(i.end.columnIds);for(let e of a)e.ui.keys=e.ui.keys&~R.foreignKey})],[[nv,ov],(e,t)=>Oj(e).subscribe(()=>{let{doc:e,collections:n}=t(),r=j(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds),i=j(n).collection(`tableEntities`).selectByIds(e.tableIds),a=new Set,o=j(n).collection(`tableColumnEntities`);for(let{end:e}of r){let t=o.selectByIds(e.columnIds);for(let e of t)e.ui.keys=e.ui.keys|R.foreignKey,a.add(e.id)}for(let e of i){let t=o.selectByIds(e.columnIds);for(let e of t)z(e.ui.keys,R.foreignKey)&&!a.has(e.id)&&(e.ui.keys=e.ui.keys&~R.foreignKey)}})]],Aj=[...Dj,...kj,...Ej];function jj(e){let t=()=>e.state,n=Aj.map(([n,r])=>{let i=new we;return{pattern:B(n.map(String)),action$:i,subscription:r(i,t,e.context)}}),r=e.subscribe(e=>{for(let t of e)for(let e of n)e.pattern(t.type)&&e.action$.next(t)});return{destroy:()=>{n.forEach(({action$:e,subscription:t})=>{t.unsubscribe(),e.complete()}),n.splice(0,n.length),r()}}}function Mj(e,{getReadonly:t=()=>!1,getHistory:n}={}){let r=new Set,i=Qk(e),a=jj(i),o={notify:e=>i.dispatch(U_(e)),dispatch:i.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},s=n?.(o)??Wk(o);s.setLimit(2048);let c=new we,l=c.pipe(Kk(Fk),Xk([Qm.changeOnly,Qm.shared]),Zk(t),Yk(Pk,[[`@@move`,jk],[`@@scroll`,Nk],[`@@color`,Mk]])),u=new Ce(e=>i.subscribe(t=>e.next(t))).pipe(Kk(Dk),Zk(t,[Qm.shared]),Oe(200)),d=(...t)=>{let n=e.clock.getNextVersion();return wu(i.state,i.context,t).map(e=>(v(e.version)&&(e.version=n),e))},f=(...e)=>{let t=d(e);c.next(t)},p=(...e)=>{queueMicrotask(()=>f(e))},m=()=>{Array.from(r).forEach(e=>de(e)?e():e.unsubscribe()),r.clear(),i.destroy(),a.destroy(),s.clear(),c.complete()},h=()=>{t()||s.undo()},g=()=>{t()||s.redo()};return r.add(l.subscribe(pS(i,s))).add(c.pipe(Zk(t,[Qm.shared])).subscribe(i.dispatchSync)).add(i.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...i,dispatch:p,dispatchSync:f,destroy:m,undo:h,redo:g,history:s,change$:u})}const Nj={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,loadShikiService:`loadShikiService`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,schemaGC:`schemaGC`,toggleSearch:`toggleSearch`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var Pj=new WeakMap,Fj=class{constructor(){Lk(this,Pj,new Set)}on(e){return zk(Pj,this).has(e)||zk(Pj,this).add(e),()=>{zk(Pj,this).delete(e)}}emit(e){zk(Pj,this).forEach(t=>{cS(Reflect.get(t,e.type),e)})}clear(){zk(Pj,this).clear()}};const Ij=D(Nj.openColorPicker);D(Nj.closeColorPicker),D(Nj.openToast),D(Nj.loadShikiService),D(Nj.openTableProperties);const Lj=D(Nj.dragendColumnAll);D(Nj.copy),D(Nj.paste),D(Nj.schemaGC),D(Nj.toggleSearch),D(Nj.openThemeBuilder),D(Nj.setThemeOptions),D(Nj.mouseTrackerStart),D(Nj.mouseTrackerEnd),D(Nj.openDiffViewer);const Rj=D(Nj.duplicateDragStart);D(Nj.dragSelectStart);const zj=Je();let Bj=zj.os.name===`mac`,Vj=zj.os.name===`ios`;zj.os.name,zj.os.name,zj.browser.name,zj.browser.name,zj.browser.name,Ye(e=>{Bj=e.os.name===`mac`,Vj=e.os.name===`ios`,e.os.name,e.os.name,e.browser.name,e.browser.name,e.browser.name});const Hj=()=>Bj||Vj,$={edit:`edit`,stop:`stop`,search:`search`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,removeTable:`removeTable`,removeColumn:`removeColumn`,primaryKey:`primaryKey`,selectAllTable:`selectAllTable`,selectAllColumn:`selectAllColumn`,relationshipZeroOne:`relationshipZeroOne`,relationshipZeroN:`relationshipZeroN`,relationshipOneOnly:`relationshipOneOnly`,relationshipOneN:`relationshipOneN`,tableProperties:`tableProperties`,zoomIn:`zoomIn`,zoomOut:`zoomOut`,zoomReset:`zoomReset`,handTool:`handTool`,zenMode:`zenMode`};Object.values($);const Uj=()=>({[$.edit]:[{shortcut:`Enter`}],[$.stop]:[{shortcut:`Escape`}],[$.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[$.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[$.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[$.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[$.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[$.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[$.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[$.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[$.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[$.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[$.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[$.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[$.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[$.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[$.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[$.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[$.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[$.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[$.zoomReset]:[{shortcut:`$mod+KeyO`,preventDefault:!0,stopPropagation:!0}],[$.handTool]:[{shortcut:`Space`,preventDefault:!0}],[$.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0}]}),Wj={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};Wj.Shift,Wj.Meta,Wj.Alt,Wj.Control,Wj.Shift,Wj.Meta,Wj.Alt,Wj.Control;function Gj(e){return Hj()?e.metaKey:e.ctrlKey}function Kj(e,t){let{devtools:n=!0,...r}=t??{},i=Uk(e),a=Mj(i,r),o=ba(Uj(),{shallow:!0}),s=new we,c=new we,l=new Fj;return Object.freeze({...i,actions:Ek,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l})}const qj=di({}),Jj=(e,t)=>Fa(e,{...qj,value:t??qj.value});function Yj(e){e.store.dispatchSync(iv()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const Xj=[`table`,`memo`,`relationship`],Zj=e=>typeof e==`string`&&Xj.includes(e);function Qj(e){let t=e;if(typeof t.clientX==`number`)return{x:t.clientX,y:t.clientY};let n=e.touches?.[0];return n?{x:n.clientX,y:n.clientY}:null}const $j=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),eM=new WeakMap,tM=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function nM(e){return e.on(tM,t=>{let n=t.evt,r=Qj(n),i=eM.get(e),a=t.target===e?null:iM(t.target),o=n.type===`contextmenu`&&$j(i?.point,r)?i?.hit??null:null;eM.set(e,{evt:n,hit:a??o,point:r})}),()=>{e.off(tM),eM.delete(e)}}function rM(e,t){let n=`${t}-`,r=e.id();if(r.startsWith(n))return r.slice(n.length);let[i,a=``]=e.name().split(/\s+/);return i===t?a:``}function iM(e){let t=e;for(;t;){let e=t.getAttr(`kind`);if(Zj(e))return{kind:e,id:rM(t,e)};t=t.getParent()}return null}const aM=di({}),oM=e=>Fa(e,aM);function sM({app:e,container:t,scene:n,width:r,height:i,theme:a}){let o=new te({container:t,width:r,height:i}),s={host:o.container(),parentElement:null},c=Ia(s,qj,e),l=a?Ia(s,aM,a):null,u=nM(o);return If(o,n),{stage:o,destroy:()=>{u(),If(o,null),l?.destroy(),c.destroy(),o.destroy()}}}const cM=e=>new Promise(t=>setTimeout(t,e)),lM=32767;function uM(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,lM/r,16384/Math.sqrt(i))}function dM({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function fM(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=zh(e);if(z(t,N.relationship)){let e=j(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=qg(t);i=i?Rh(i,e):e}}return dM(i??{x:0,y:0,width:0,height:0},80)}function pM({width:e,height:t},n=1){let r=n>0?n:1,i=Math.max(e,t),a=e*t;return i<=0||a<=0?r:Math.min(r,lM/i,Math.sqrt(268435456/a))}const mM={"arrow-right":Xe,atom:Ze,braces:Qe,brackets:$e,"case-sensitive":et,check:tt,"chevron-right":nt,code:rt,contrast:it,copy:at,database:ot,diff:st,eye:ct,"file-diff":lt,"file-image":ut,"file-input":dt,"file-output":ft,"grip-vertical":pt,hand:mt,"key-round":ht,maximize:gt,minimize:_t,minus:vt,"moon-star":yt,"mouse-pointer-2":bt,palette:xt,plus:St,"redo-2":Ct,"refresh-cw":wt,"rotate-ccw-clock":Tt,search:Et,settings:Dt,"share-2":Ot,spline:kt,"sticky-note":At,sun:jt,table:Mt,"table-properties":Nt,"undo-2":Pt,workflow:Ft,x:It},hM={ZeroOneN:[[`circle`,{cx:`7`,cy:`12`,r:`5`}],[`path`,{d:`M12 12h10`}],[`path`,{d:`M15 6v12`}],[`path`,{d:`M16 12l6-6`}],[`path`,{d:`M16 12l6 6`}]],ZeroOne:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M20 6v12`}]],ZeroN:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],OneOnly:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M19 6v12`}]],OneN:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],One:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}]],N:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]]},gM={};_M();function _M(){for(let e of Object.keys(mM))gM[e]={name:e,node:mM[e]};for(let e of Object.keys(hM))gM[e]={name:e,node:hM[e]}}function vM(e){return gM[e]}const yM=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`;Ad.global`
27
+ :host {
28
+ --text-font-family: ${yM};
29
+ --code-font-family: ${`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`};
30
+ }
31
+ `;const bM=yM,xM=`normal normal 12px ${bM}`,SM={ascent:0,descent:0};let CM=null;function wM(){if(CM)return CM;if(typeof document>`u`)return SM;let e=document.createElement(`canvas`).getContext(`2d`);if(!e)return SM;e.font=xM;let t=e.measureText(`M`),n=t.fontBoundingBoxAscent??t.actualBoundingBoxAscent,r=t.fontBoundingBoxDescent??t.actualBoundingBoxDescent;return!Number.isFinite(n)||!Number.isFinite(r)?SM:(CM={ascent:n,descent:r},CM)}const TM=[20,24,28,35,60],EM=1.5,DM=Number(`0 0 24 24`.split(` `)[2]),OM=`transparent`,kM=OM,AM=`pointer`;function jM(e,t){let n=e.target?.getStage()?.container();n&&(n.style.cursor=t)}function MM(e){return e instanceof MouseEvent}function NM(e,t,n,r){if(!MM(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===r_.memo?gS(n,!1):TS(n,!1)),t.preventDefault(),a.emit(Rj()),!0}const PM=ba({active:{}});function FM(e){PM.active[e.editor.id]=!0,Gh(e)}function IM(e){Reflect.deleteProperty(PM.active,e.editor.id),Kh(e)}function LM(e,t){let n=e??null;for(;n;){let e=n.getAttr(`kind`);if(typeof e==`string`&&t.includes(e))return!0;n=n.getParent()}return!1}const RM={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function zM(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}zM(RM.focus),zM(RM.forceFocus);const BM=zM(RM.forwardMoveStart,{bubbles:!0,composed:!0});function VM(e){return ke(()=>je(window,e))}VM(`keyup`);const HM=VM(`mousedown`),UM=VM(`mousemove`),WM=VM(`mouseup`),GM=VM(`touchstart`),KM=VM(`touchmove`),qM=VM(`touchend`);Te().pipe(Le());const JM=VM(BM.type).pipe(Ne(e=>e.detail.originEvent)),YM=Pe(HM,GM,JM),XM=Pe(WM,qM);let ZM=0,QM=0;typeof window<`u`&&YM.subscribe(e=>{MM(e)?(ZM=e.clientX,QM=e.clientY):(ZM=e.touches[0].clientX,QM=e.touches[0].clientY)});const $M=Pe(UM.pipe(Ne(e=>{let t=e.clientX,n=e.clientY,r=t-ZM,i=n-QM;return ZM=t,QM=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),KM.pipe(Ae(e=>e.touches.length===1),Ne(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-ZM,i=n-QM;return ZM=t,QM=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(Re(XM));function eN(e,t){let n=Jj(e),r=({event:e,movementX:t,movementY:r})=>{e.type===`mousemove`&&e.preventDefault();let{store:i}=n.value;i.dispatch(QO(t,r))};return{onMoveStart:e=>{if(!e?.target)return;let{store:i}=n.value,a=t.entityId(),o=!LM(e.target,t.blockedKinds);if(o&&NM(n.value,e.evt,a,t.selectType))return;let s=Gj(e.evt)||!!i.state.editor.selectedMap[a];i.dispatch(t.selectType===r_.memo?gS(a,s):TS(a,s)),o&&(FM(i.state),$M.subscribe(r).add(()=>IM(i.state)))}}}const tN=[`table-header-color`,`column-row`,`icon`,`input-padding`];function nN(e,t){return eN(e,{entityId:()=>t.table.id,selectType:r_.table,blockedKinds:tN})}function rN(){let e=new Set;return ea(()=>{Array.from(e).forEach(e=>de(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}function iN(e,t,n,r=null){if(!e||n!==e.tableId)return!1;switch(t){case`tableName`:case`tableComment`:return t===e.focusType}return r===e.columnId&&t===e.focusType}const aN=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function oN(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case W.tableName:case W.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}const sN={grayColor1:`gray-1`,grayColor2:`gray-2`,grayColor3:`gray-3`,grayColor4:`gray-4`,grayColor5:`gray-5`,grayColor6:`gray-6`,grayColor7:`gray-7`,grayColor8:`gray-8`,grayColor9:`gray-9`,grayColor10:`gray-10`,grayColor11:`gray-11`,grayColor12:`gray-12`,accentColor1:`accent-1`,accentColor2:`accent-2`,accentColor3:`accent-3`,accentColor4:`accent-4`,accentColor5:`accent-5`,accentColor6:`accent-6`,accentColor7:`accent-7`,accentColor8:`accent-8`,accentColor9:`accent-9`,accentColor10:`accent-10`,accentColor11:`accent-11`,accentColor12:`accent-12`,canvasBackground:`gray-3`,canvasBoundaryBackground:`gray-1`,tableBackground:`gray-2`,tableSelect:`accent-8`,tableBorder:`gray-6`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,columnSelect:`gray-5`,columnHover:`gray-4`,relationshipHover:`accent-8`,toolbarBackground:`gray-1`,contextMenuBackground:`gray-2`,contextMenuSelect:`gray-4`,contextMenuHover:`accent-7`,contextMenuBorder:`gray-6`,minimapBorder:`override-black`,minimapShadow:`override-black`,minimapViewportBorder:`accent-7`,minimapViewportBorderHover:`accent-8`,toastBackground:`gray-2`,toastBorder:`gray-6`,dragSelectBackground:`accent-5`,dragSelectBorder:`accent-8`,scrollbarTrack:`grayA-3`,scrollbarThumb:`gray-9`,scrollbarThumbHover:`gray-10`,foreground:`gray-11`,active:`gray-12`,placeholder:`grayA-10`,focus:`accent-8`,inputActive:`accent-10`,keyPK:`custom-amber--9`,keyFK:`custom-ruby--9`,keyPFK:`custom-cyan--9`,diffInsertBackground:`custom-green--4`,diffDeleteBackground:`custom-red--4`,diffCrossBackground:`custom-blue--4`,diffInsertForeground:`custom-green--11`,diffDeleteForeground:`custom-red--11`,diffCrossForeground:`custom-blue--11`},cN={amber:Lt,amberA:Rt,amberDark:zt,amberDarkA:Bt,blue:Vt,blueA:Ht,blueDark:Ut,blueDarkA:Wt,bronze:Gt,bronzeA:Kt,bronzeDark:qt,bronzeDarkA:Jt,brown:Yt,brownA:Xt,brownDark:Zt,brownDarkA:Qt,crimson:$t,crimsonA:en,crimsonDark:tn,crimsonDarkA:nn,cyan:rn,cyanA:an,cyanDark:on,cyanDarkA:sn,gold:cn,goldA:ln,goldDark:un,goldDarkA:dn,grass:fn,grassA:pn,grassDark:mn,grassDarkA:hn,gray:gn,grayA:_n,grayDark:vn,grayDarkA:yn,green:bn,greenA:xn,greenDark:Sn,greenDarkA:Cn,indigo:wn,indigoA:Tn,indigoDark:En,indigoDarkA:Dn,iris:On,irisA:kn,irisDark:An,irisDarkA:jn,jade:Mn,jadeA:Nn,jadeDark:Pn,jadeDarkA:Fn,lime:In,limeA:Ln,limeDark:Rn,limeDarkA:zn,mauve:Bn,mauveA:Vn,mauveDark:Hn,mauveDarkA:Un,mint:Wn,mintA:Gn,mintDark:Kn,mintDarkA:qn,olive:Jn,oliveA:Yn,oliveDark:Xn,oliveDarkA:Zn,orange:Qn,orangeA:$n,orangeDark:er,orangeDarkA:tr,pink:nr,pinkA:rr,pinkDark:ir,pinkDarkA:ar,plum:or,plumA:sr,plumDark:cr,plumDarkA:lr,purple:ur,purpleA:dr,purpleDark:fr,purpleDarkA:pr,red:mr,redA:hr,redDark:gr,redDarkA:_r,ruby:vr,rubyA:yr,rubyDark:br,rubyDarkA:xr,sage:Sr,sageA:Cr,sageDark:wr,sageDarkA:Tr,sand:Er,sandA:Dr,sandDark:Or,sandDarkA:kr,sky:Ar,skyA:jr,skyDark:Mr,skyDarkA:Nr,slate:Pr,slateA:Fr,slateDark:Ir,slateDarkA:Lr,teal:Rr,tealA:zr,tealDark:Br,tealDarkA:Vr,tomato:Hr,tomatoA:Ur,tomatoDark:Wr,tomatoDarkA:Gr,violet:Kr,violetA:qr,violetDark:Jr,violetDarkA:Yr,yellow:Xr,yellowA:Zr,yellowDark:Qr,yellowDarkA:$r};Object.values({dark:`dark`,light:`light`}),Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`}),Object.values({gray:`gray`,gold:`gold`,bronze:`bronze`,brown:`brown`,yellow:`yellow`,amber:`amber`,orange:`orange`,tomato:`tomato`,red:`red`,ruby:`ruby`,crimson:`crimson`,pink:`pink`,plum:`plum`,purple:`purple`,violet:`violet`,iris:`iris`,indigo:`indigo`,blue:`blue`,cyan:`cyan`,teal:`teal`,jade:`jade`,green:`green`,grass:`grass`,lime:`lime`,mint:`mint`,sky:`sky`}),Object.keys(sN);const lN=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>Ve(cN,`${e}.${e}9`)??``);function uN(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return lN[Math.abs(t)%lN.length]}function dN(e,t){let n=Jj(e),{addUnsubscribe:r}=rN(),i=ba({force:!1}),a=()=>{i.force=!i.force};$i(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r(xa(t).subscribe(a))});let o=()=>{let{store:e}=n.value;return i.force,Object.values(e.state.editor.sharedFocusTrackerMap)};return{sharedFocusTableColor:()=>{let e=o().find(e=>e.tableId===t);return e?uN(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>iN(r,e,t,n));return r?uN(r.id):null}}}function fN(e,t){let n=Jj(e),{addUnsubscribe:r}=rN(),i=ba({force:!1}),a=()=>{i.force=!i.force};return $i(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(xa(t).subscribe(a))}),{sharedSelectColor:()=>{let{store:e}=n.value;i.force;let r=Object.values(e.state.editor.sharedSelectionTrackerMap).find(e=>e.selectedIds.includes(t));return r?uN(r.id):null}}}const pN=e=>e>.6?TM[0]:e>.5?TM[1]:e>.4?TM[2]:e>.3?TM[3]:TM[4],mN=(e,t)=>{let n=Jj(t),r=oM(t),{sharedFocusTableColor:i}=dN(t,e.table.id),{sharedSelectColor:a}=fN(t,e.table.id),{onMoveStart:o}=nN(t,e),s=t=>{let{emitter:r}=n.value;r.emit(Ij({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))};return()=>{let{store:t}=n.value,{editor:c,settings:l}=t.state,{table:u}=e,d=r.value,f=!!c.selectedMap[u.id],p=Ph(t.state,u),m=He(u.name.trim()),h=i(),g=a(),ee=h??g;return O`<k-group id=${e.preview?``:`table-${u.id}`} name="table high-level-table" kind="table" visible=${e.visible??!0} selected=${f} sharedFocus=${h} sharedSelect=${g} x=${p.x} y=${p.y} @mousedown=${o} @touchstart=${o}><k-rect name="table-body" x=${1/2} y=${1/2} width=${p.width-1} height=${p.height-1} cornerRadius=${6} fill=${d.tableBackground} stroke=${f?d.tableSelect:d.tableBorder} strokeWidth=${1} />${ee?O`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${p.width+1} height=${p.height+1} cornerRadius=${6} stroke=${ee} strokeWidth=${1} />`:null}<k-rect name="table-header-color" kind="table-header-color" x=${1} y=${0} width=${p.width-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${u.ui.color} @click=${s} @mouseenter=${e=>{jM(e,AM)}} @mouseleave=${e=>{jM(e,``)}} /><k-text name="high-level-table-name" x=${1} y=${9} width=${p.width-2} height=${p.height-18} text=${m?`unnamed`:u.name} fill=${m?d.placeholder:d.active} fontFamily=${bM} fontSize=${pN(l.zoomLevel)} fontStyle="bold" align="center" verticalAlign="middle" wrap="char" /></k-group>`}};Ad`
32
+ position: absolute;
33
+
34
+ &.vertical {
35
+ width: ${5}px;
36
+ height: 100%;
37
+ cursor: ew-resize;
38
+ }
39
+
40
+ &.horizontal {
41
+ width: 100%;
42
+ height: ${5}px;
43
+ cursor: ns-resize;
44
+ }
45
+
46
+ &.edge {
47
+ width: ${5}px;
48
+ height: ${5}px;
49
+ }
50
+ `;const hN={left:`left`,right:`right`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},gN={vertical:`vertical`,horizontal:`horizontal`,edge:`edge`},_N={left:`ew-resize`,right:`ew-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},vN=(e,t)=>[{shape:gN.vertical,position:hN.left},{shape:gN.vertical,position:hN.right,left:t},{shape:gN.horizontal,position:hN.bottom,top:e},{shape:gN.edge,position:hN.lt},{shape:gN.edge,position:hN.rt,left:t},{shape:gN.edge,position:hN.lb,top:e},{shape:gN.edge,position:hN.rb,top:e,left:t}],yN=({shape:e,top:t=0})=>t===0&&e===gN.vertical?t:t-5/2,bN=({shape:e,left:t=0})=>t===0&&e===gN.horizontal?t:t-5/2,xN=e=>MM(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},SN=(e,t)=>{let n=Jj(t),r=0,i=0,a=({movementX:t,x:i},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===U.left?s.width-c:s.width+c;return 116<l&&(t<0?i<r:i>r)&&(a===U.left&&(s.x+=c),r+=t,s.width=l,s.change=!0),s},o=({movementY:t,y:r},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===U.top?s.height-c:s.height+c;return 100<l&&(t<0?r<i:r>i)&&(a===U.top&&(s.y+=c),i+=t,s.height=l,s.change=!0),s},s=(t,r)=>{t.event.type===`mousemove`&&t.event.preventDefault();let{store:i}=n.value,s=null,c=null;switch(r){case hN.left:case hN.right:s=a(t,r);break;case hN.bottom:c=o(t,U.bottom);break;case hN.lt:s=a(t,U.left),c=o(t,U.top);break;case hN.rt:s=a(t,U.right),c=o(t,U.top);break;case hN.lb:s=a(t,U.left),c=o(t,U.bottom);break;case hN.rb:s=a(t,U.right),c=o(t,U.bottom)}if(!s?.change&&!c?.change)return;let{id:l,ui:u}=e.memo,d=s?.change?s:u,f=c?.change?c:u;i.dispatch(fb({id:l,x:d.x,y:f.y,width:d.width,height:f.height}))},c=(e,t)=>{let n=xN(e);r=n.x,i=n.y,$M.subscribe(e=>s(e,t))};return()=>{let t=e.left-2,n=e.top-2;return O`${vN(e.top,e.left).map(e=>O`<k-rect name=${`memo-sash memo-sash-${e.position}`} kind="sash" x=${bN(e)} y=${yN(e)} width=${e.shape===gN.horizontal?t:5} height=${e.shape===gN.vertical?n:5} fill=${kM} @mousedown=${t=>{c(t,e.position)}} @touchstart=${t=>{c(t,e.position)}} @mouseenter=${t=>{jM(t,_N[e.position])}} @mouseleave=${e=>{jM(e,``)}} />`)}`}},CN=`400 12px ${bM}`,wN=12*1.2;let TN=null;function EN(){if(TN!==null)return TN;if(typeof document>`u`||!document.body)return wN;let e=document.createElement(`div`);e.setAttribute(`aria-hidden`,`true`),e.style.cssText=`position:absolute;visibility:hidden;top:-10000px;left:0;margin:0;padding:0;border:0;font:${CN};line-height:normal;white-space:pre`,e.textContent=Array.from({length:10},()=>`M`).join(`
51
+ `),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),TN=t/10||wN,TN}function DN(){return EN()/12}const ON={whiteSpace:`pre-wrap`,wordBreak:`normal`},kN=new Map;function AN(e,t){let n=`${t} ${e}`,r=kN.get(n);if(r)return r;let i=ti(e,CN,ON),{lines:a}=ei(i,t,EN()),o=a.map(e=>e.text);return kN.size>=256&&kN.clear(),kN.set(n,o),o}function jN(){let e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`);return e?(e.font=CN,t=>e.measureText(t).width):()=>0}let MN=null;function NN(e){return MN??=jN(),MN(e)}function PN(e){return e.replace(/\r\n?/g,`
52
+ `)}function FN(e,t){let n=[],r=0;for(let i of AN(e,t)){let t=r;r+=i.length,e[r]===`
53
+ `&&(r+=1),n.push({text:i,start:t})}return n}function IN(e,t){let n=0,r=Math.abs(t),i=``;for(let a of Array.from(e.text)){i+=a;let e=Math.abs(t-NN(i));if(e>r)break;n=i.length,r=e}return n}function LN(e,t,n,r){let i=PN(e),a=FN(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/EN()));if(o>=a.length)return i.length;let s=a[o];return s.start+IN(s,n)}function RN(e){let t=AN(e.value,e.ui.width).length;return Math.max(0,t*EN()-e.ui.height)}function zN(e,t){return Math.min(Math.max(0,t),RN(e))}function BN(e,t){return zN(t,e.memoScrollTopMap[t.id]??0)}const VN=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function HN(e,t){return eN(e,{entityId:()=>t.memo.id,selectType:r_.memo,blockedKinds:VN})}function UN(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function WN(){let{ascent:e,descent:t}=wM();return Math.round(18.5/2+(e-t)/2)}function GN(){let{ascent:e,descent:t}=wM();return(WN()-(e-t)/2)*2}function KN(e,t){let{maxWidthComment:n}=e.settings;return n===-1||n>=t.ui.widthComment?t.ui.widthComment:n}function qN(e,t){let n=[{focusType:W.tableName,x:0,width:t.ui.widthName}];return z(e.settings.show,N.tableComment)&&n.push({focusType:W.tableComment,x:t.ui.widthName+8,width:KN(e,t)}),n}const JN=[{columnType:P.columnName,focusType:W.columnName,show:null,width:e=>e.name},{columnType:P.columnDefault,focusType:W.columnDefault,show:N.columnDefault,width:e=>e.default},{columnType:P.columnComment,focusType:W.columnComment,show:N.columnComment,width:e=>e.comment},{columnType:P.columnDataType,focusType:W.columnDataType,show:N.columnDataType,width:e=>e.dataType},{columnType:P.columnNotNull,focusType:W.columnNotNull,show:N.columnNotNull,width:()=>35},{columnType:P.columnUnique,focusType:W.columnUnique,show:N.columnUnique,width:()=>22},{columnType:P.columnAutoIncrement,focusType:W.columnAutoIncrement,show:N.columnAutoIncrement,width:()=>15}];function YN(e,t){let{settings:n}=e,r=[],i=29;for(let e of n.columnOrder){let a=JN.find(t=>t.columnType===e);if(!a||a.show!==null&&!z(n.show,a.show))continue;let o=a.width(t);r.push({columnType:e,focusType:a.focusType,x:i,width:o}),i+=o+8}return r}function XN(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}const ZN=(e,t)=>{XN(e,t,0,-2,t.width()+8,24)},QN=(e,t)=>{XN(e,t,0,-2,t.width()+8,24)},$N=(e,t)=>{XN(e,t,-t.x(),-t.y(),DM,DM)},eP=([e,t],n,r)=>e===`circle`?O`<k-circle x=${Number(t.cx)} y=${Number(t.cy)} radius=${Number(t.r)} fill=${n} stroke=${n} strokeWidth=${2} listening=${r} hitFunc=${r?$N:void 0} />`:O`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?$N:void 0} />`;function tP({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=vM(e);if(!u)return null;let d=r/DM;return O`<k-group name=${t} kind=${n} x=${a} y=${o} scaleX=${d} scaleY=${d} @click=${s} @mouseenter=${c} @mouseleave=${l}>${u.node.map((e,t)=>eP(e,i,t===0))}</k-group>`}const nP=(e,t)=>{let n=Jj(t),r=oM(t),{sharedSelectColor:i}=fN(t,e.memo.id),{onMoveStart:a}=HN(t,e),o=ba({hover:!1,removeHover:!1}),s=()=>{o.hover=!0},c=()=>{o.hover=!1},l=e=>{o.removeHover=!0,jM(e,AM)},u=e=>{o.removeHover=!1,jM(e,``)},d=()=>{let{store:t}=n.value;t.dispatch(hS(e.memo.id))},f=t=>{let{emitter:r}=n.value;r.emit(Ij({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},p=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=BN(r.state.editor,i);i.id,LN(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(bv({id:i.id}))},m=t=>{jM(t,e.preview?``:`text`)},h=e=>{jM(e,``)},g=t=>{if(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||Gj(t.evt))return;let{store:r}=n.value,{memo:i}=e,a=BN(r.state.editor,i),o=zN(i,a+t.evt.deltaY);o!==a&&r.dispatch(wv({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:ee}=t.state,{memo:_}=e,te=r.value,ne=!!ee.selectedMap[_.id],re=i(),ie=!e.preview&&ee.editMemoId===_.id,ae=AN(_.value,_.ui.width).join(`
54
+ `),oe=e.preview?0:BN(ee,_),{width:se,height:ce}=Lh(_),le=1/2;return O`<k-group id=${e.preview?``:`memo-${_.id}`} name="memo" kind="memo" selected=${ne} sharedSelect=${re} x=${_.ui.x} y=${_.ui.y} @mousedown=${a} @touchstart=${a} @mouseenter=${s} @mouseleave=${c}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${se+1} height=${ce+1} cornerRadius=${7} stroke=${re??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${le} y=${le} width=${se-1} height=${ce-1} cornerRadius=${6} fill=${te.memoBackground} stroke=${ne?te.memoSelect:te.memoBorder} strokeWidth=${1} /><k-group name="memo-container" kind="memo-container" x=${1} y=${1}><k-rect name="memo-header-color" kind="memo-header-color" x=${0} y=${-1} width=${se-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${_.ui.color} @click=${f} @mouseenter=${e=>{jM(e,AM)}} @mouseleave=${e=>{jM(e,``)}} />${tP({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:o.hover?o.removeHover?te.active:te.foreground:OM,x:8+_.ui.width-12,y:8,click:d,mouseenter:l,mouseleave:u})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${_.ui.width} clipHeight=${_.ui.height} @click=${p} @mouseenter=${m} @mouseleave=${h} @wheel=${g}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${_.ui.width} height=${_.ui.height} fill=${kM} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${oe} text=${ae} visible=${!ie} fill=${te.active} fontFamily=${bM} fontSize=${12} fontStyle=${`400`} lineHeight=${DN()} wrap="none" /></k-group><${SN} .memo=${_} .top=${ce} .left=${se} /></k-group></k-group>`}};function rP(e,t,n){return Math.abs(e.x-t.x)<.5?{x:e.x,y:e.y+Math.sign(t.y-e.y)*n}:{x:e.x+Math.sign(t.x-e.x)*n,y:e.y}}function iP(e,t){if(e.length<3||t<=0)return e;let n=[e[0]],r=e=>{let t=n[n.length-1];Math.abs(t.x-e.x)<.5&&Math.abs(t.y-e.y)<.5||n.push(e)};for(let n=1;n<e.length-1;n++){let i=e[n-1],a=e[n],o=e[n+1];if(Math.abs(a.x-i.x)<.5==Math.abs(o.x-a.x)<.5){r(a);continue}let s=Math.abs(a.x-i.x)+Math.abs(a.y-i.y),c=Math.abs(o.x-a.x)+Math.abs(o.y-a.y),l=Math.min(t,s/2,c/2);if(l<2){r(a);continue}r(rP(a,i,l)),r(rP(a,o,l))}return r(e[e.length-1]),n}function aP(e){let{start:t,end:n}=e,[r,i]=zg(e),a=dA(t,n);return{path:oP(t,n,fA(uA(r),a),fA(uA(i),a),Hg(e)),line:sP(t,n)}}function oP(e,t,n,r,i){let a={start:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},end:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}},o={M:{x:0,y:0},L:{x:0,y:0},Q:{x:0,y:0},d(){return e.tableId===t.tableId?[[{x:this.M.x,y:this.M.y},{x:this.L.x,y:this.L.y}]]:uP(iP(i&&i.length>1?i:dP(this.M,this.L,e.direction),8))}},s=1;return e.direction===I.left||e.direction===I.right?(e.direction===I.left&&(s*=-1),a.start.x2=e.x+s*n,a.start.x1+=s*25,o.M.x=a.start.x2,o.M.y=e.y):(e.direction===I.top||e.direction===I.bottom)&&(e.direction===I.top&&(s*=-1),a.start.y2=e.y+s*n,a.start.y1+=s*25,o.M.x=e.x,o.M.y=a.start.y2),s=1,t.direction===I.left||t.direction===I.right?(t.direction===I.left&&(s*=-1),a.end.x2=t.x+s*r,a.end.x1+=s*25,o.L.x=a.end.x2,o.L.y=t.y):(t.direction===I.top||t.direction===I.bottom)&&(t.direction===I.top&&(s*=-1),a.end.y2=t.y+s*r,a.end.y1+=s*25,o.L.x=t.x,o.L.y=a.end.y2),{line:a,path:o}}function sP(e,t){let n={start:{base:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},base2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y}},end:{base:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},base2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},left:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},right:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}}},r={cx:t.x,cy:t.y},i={cx:e.x,cy:e.y},a=1;return e.direction===I.left||e.direction===I.right?(e.direction===I.left&&(a*=-1),n.start.base.x1=n.start.base.x2+=a*11,n.start.base2.x1=n.start.base2.x2+=a*18,n.start.center.x1=n.start.base.x1,n.start.base.y1-=7,n.start.base.y2+=7,n.start.base2.y1-=7,n.start.base2.y2+=7,n.start.center2.x1+=a*25,i.cx+=a*18):(e.direction===I.top||e.direction===I.bottom)&&(e.direction===I.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*11,n.start.base2.y1=n.start.base2.y2+=a*18,n.start.center.y1=n.start.base.y1,n.start.base.x1-=7,n.start.base.x2+=7,n.start.base2.x1-=7,n.start.base2.x2+=7,n.start.center2.y1+=a*25,i.cy+=a*18),a=1,t.direction===I.left||t.direction===I.right?(t.direction===I.left&&(a*=-1),n.end.base.x1=n.end.base.x2+=a*11,n.end.base2.x1=n.end.base2.x2+=a*18,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=7,n.end.base.y2+=7,n.end.base2.y1-=7,n.end.base2.y2+=7,n.end.left.y2+=7,n.end.right.y2-=7,n.end.center2.x1+=a*25,r.cx+=a*18):(t.direction===I.top||t.direction===I.bottom)&&(t.direction===I.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*11,n.end.base2.y1=n.end.base2.y2+=a*18,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=7,n.end.base.x2+=7,n.end.base2.x1-=7,n.end.base2.x2+=7,n.end.left.x2+=7,n.end.right.x2-=7,n.end.center2.y1+=a*25,r.cy+=a*18),{line:n,circle:r,startCircle:i}}function cP(e){if(!e.length)return``;let[[t]]=e,n=`M${lP(t.x)} ${lP(t.y)}`;for(let[,t]of e)n+=`L${lP(t.x)} ${lP(t.y)}`;return n}function lP(e){return Math.round(e*100)/100}function uP(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function dP(e,t,n){if(pA(n)){if(Math.abs(e.y-t.y)<.5)return[e,t];let n=(e.x+t.x)/2;return[e,{x:n,y:e.y},{x:n,y:t.y},t]}if(Math.abs(e.x-t.x)<.5)return[e,t];let r=(e.y+t.y)/2;return[e,{x:e.x,y:r},{x:t.x,y:r},t]}const fP=`relationship-decoration`,pP=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function mP(e,t){return O`<k-line name=${fP} kind=${fP} points=${pP(e)} stroke=${t} strokeWidth=${2} listening=${!1} />`}function hP({cx:e,cy:t},n){return O`<k-circle name=${fP} kind=${fP} x=${e} y=${t} radius=${6} stroke=${n} strokeWidth=${2} listening=${!1} />`}const gP={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[Gm.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[Gm.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[Gm.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[Gm.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function _P(e,{path:t,line:n},r){let i=gP[e];return i?O`${mP(t.line.end,r)}${i.ring?hP(n.circle,r):null}${i.ticks.map(e=>mP(n.line.end[e],r))}`:null}const vP=[10,10],yP=[];function bP({direction:e}){let t=e===I.left||e===I.top?-1:1;return e===I.left||e===I.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function xP({x:e,y:t},{along:n,across:r},i,a){return{x:e+n.x*i+r.x*a,y:t+n.y*i+r.y*a}}function SP({x:e,y:t},n){return`M${e-n} ${t}A${n} ${n} 0 0 1 ${e+n} ${t}A${n} ${n} 0 0 1 ${e-n} ${t}`}function CP(e){let t=bP(e),n=(n,r)=>xP(e,t,n,r),r=n(11,0);return[cP([[n(11,-7),n(11,7)]]),cP([[n(18,-7),n(18,7)]]),cP([[r,n(0,7)]]),cP([[r,n(0,-7)]]),SP(n(18,0),6)].join(``)}function wP({start:e,end:t},{line:n},r){return`${cP([[{x:e.x,y:e.y},{x:n.start.x2,y:n.start.y2}],...r,[{x:n.end.x2,y:n.end.y2},{x:t.x,y:t.y}]])}${CP(e)}${CP(t)}`}function TP(e){return 8/(e>0?e:1)}const EP=(e,t)=>{let n=Jj(t),r=oM(t),i=ba({hover:!1}),a=()=>{let{relationship:t}=e,{store:r}=n.value;i.hover=!0,r.dispatch(Iv({columnIds:[...t.start.columnIds,...t.end.columnIds]}))},o=()=>{let{store:e}=n.value;i.hover=!1,e.dispatch(Iv({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:s,settings:c}=t.state,{relationship:l,strokeWidth:u}=e,d=r.value,f=aP(l),{path:p,line:m}=f,h=p.path.d(),g=!!s.hoverRelationshipMap[l.id],ee=i.hover||g?d.relationshipHover:l.identification?d.keyPFK:d.keyFK,_=_P(l.relationshipType,f,ee);return O`<k-group name=${`relationship ${l.id}`} kind="relationship" @mouseenter=${a} @mouseleave=${o}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${wP(l,p,h)} hitStrokeWidth=${TP(c.zoomLevel)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${cP(h)} dash=${l.identification?yP:vP} stroke=${ee} strokeWidth=${u} listening=${!1} />${mP(p.line.start,ee)}${mP(m.line.start.base,ee)}${l.startRelationshipType===Km.ring?O`${hP(m.startCircle,ee)}${mP(m.line.start.center,ee)}`:O`${mP(m.line.start.base2,ee)}${mP(m.line.start.center2,ee)}`}${_}</k-group>`}},DP=e=>()=>{let{relationships:t,viewport:n}=e,r=e.strokeWidth??2,i=n?t.filter(e=>n_(n,e,r)):t;return O`<k-group name="relationship-group" kind="relationship-group">${ru(i,e=>e.id,e=>O`<${EP} .relationship=${e} .strokeWidth=${r} />`)}</k-group>`},OP=e=>e.evt?.detail??0;function kP(){let e=null;return{track(t,n){OP(n)<=1&&(e=t)},isDouble(t,n){return OP(n)>=2&&e===t}}}const AP=(e,t)=>{let n=z(e,R.primaryKey),r=z(e,R.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:OM},jP=(e,t,n)=>t?e.columnSelect:n?e.columnHover:OM,MP=(e,t)=>{let n=Jj(t),r=oM(t),i=ba({hover:!1,removeHover:!1}),{addUnsubscribe:a}=rN(),o=kP(),s=null,c=()=>{s?.unsubscribe(),s=null};a(c);let l=t=>{if(e.preview||e.ghost||t.evt.button!==0)return;c();let n=!1,r=$M.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{s===r&&(s=null),n&&e.onDragend?.()}});s=r},u=()=>{i.hover=!0},d=()=>{i.hover=!1},f=e=>{i.removeHover=!0,jM(e,AM)},p=e=>{i.removeHover=!1,jM(e,``)},m=(e,t)=>t?i.removeHover?e.active:e.foreground:OM,h=(t,r)=>{let{store:i}=n.value,{column:a}=e;i.dispatch(uv({tableId:a.tableId,columnId:a.id,focusType:t,$mod:Gj(r.evt),shiftKey:r.evt.shiftKey}))},g=(t,r)=>{if(!o.isDouble(t,r))return;let{store:i}=n.value,{column:a}=e;i.dispatch(OS(t)?MS(t,a.tableId,a.id):gv())},ee=()=>{let{store:t}=n.value,{column:r}=e;t.dispatch(jS(r.tableId,[r.id]))},_=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(vk(t.id))},te=()=>{let{store:e}=n.value;e.dispatch(yk())},ne=({focusType:t,x:n,width:i,text:a,fill:s,focus:c,edit:l,sharedFocus:u,ellipsis:d})=>O`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} @mousedown=${e=>{h(t,e),o.track(t,e)}} @dblclick=${e=>{g(t,e)}}><k-text name="cell-text" y=${2} width=${i} height=${GN()} text=${a} fill=${s} fontFamily=${bM} fontSize=${12} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${ZN} />${c?O`<k-rect name="cell-focus-border" y=${20.5} width=${i} height=${EM} fill=${UN(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?O`<k-rect name="cell-shared-focus-border" y=${22.5} width=${i+8} height=${EM} fill=${u} listening=${!1} />`:null}</k-group>`,re=({columnType:t,focusType:n,x:i,width:a})=>{let{column:o}=e,s=r.value;switch(t){case P.columnName:return ne({focusType:n,x:i,width:a,text:o.name.trim()?o.name:`column`,fill:o.name.trim()?s.active:s.placeholder,focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0});case P.columnDefault:return ne({focusType:n,x:i,width:a,text:o.default.trim()?o.default:`default`,fill:o.default.trim()?s.active:s.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case P.columnComment:return ne({focusType:n,x:i,width:a,text:o.comment.trim()?o.comment:`comment`,fill:o.comment.trim()?s.active:s.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case P.columnDataType:return ne({focusType:n,x:i,width:a,text:o.dataType.trim()?o.dataType:`dataType`,fill:o.dataType.trim()?s.active:s.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0});case P.columnNotNull:return ne({focusType:n,x:i,width:a,text:z(o.options,L.notNull)?`N-N`:`NULL`,fill:s.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case P.columnUnique:return ne({focusType:n,x:i,width:a,text:`UQ`,fill:z(o.options,L.unique)?s.active:s.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case P.columnAutoIncrement:return ne({focusType:n,x:i,width:a,text:`AI`,fill:z(o.options,L.autoIncrement)?s.active:s.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},ie=()=>{let{store:t}=n.value;return YN(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault}).map(e=>({columnType:e.columnType,template:re(e)})).filter(({template:e})=>!!e)};return()=>{let{store:t}=n.value,{editor:a}=t.state,{column:o,selected:s,width:c}=e,h=r.value,g=!!(e.hovered||i.hover||a.hoverColumnMap[o.id]),ne=!!a.draggingColumnMap[o.id],re=c-18,ae=jP(h,s,g);return O`<k-group id=${e.preview?``:`column-${o.id}`} name="column-row" kind="column-row" tableId=${o.tableId} selected=${s} y=${e.y} opacity=${ne?.5:1} visible=${!e.ghost} @mousedown=${l} @mouseenter=${u} @mouseleave=${d}><k-rect name="column-row-background" x=${1} width=${c-2} height=${24} fill=${ae} />${tP({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:12,color:AP(o.ui.keys,h),x:9,y:6,mouseenter:_,mouseleave:te})}${ru(ie(),({columnType:e})=>e,({template:e})=>e)}${tP({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:m(h,g),x:9+re-12,y:6,click:ee,mouseenter:f,mouseleave:p})}</k-group>`}};function NP(e,t){let{collections:n,doc:r}=e,i=$g(e),a=j(n).collection(`tableEntities`).selectByIds(r.tableIds).filter(t=>t_(i,e,t)).sort((e,t)=>t.ui.zIndex-e.ui.zIndex);for(let n of a){let r=Ph(e,n);if(!(t.x>=r.x&&t.x<=r.x+r.width&&t.y>=r.y&&t.y<=r.y+r.height))continue;let i=Ih(e,n,0).y;if(t.y<i)return null;let a=Math.floor((t.y-i)/24),o=n.columnIds[a];return o?{tableId:n.id,columnId:o,index:a}:null}return null}function PP(e,t){let n=e.getAbsolutePosition(),r=e.getAbsoluteScale();return{x:(n.x-t.x)/(r.x||1),y:(n.y-t.y)/(r.y||1)}}function FP(e){let t=new Map,n=null,r=null,i=(e,n,r,i)=>{t.get(e)?.(),e.offsetX(r),e.offsetY(i),Jd(n);let a=!1,o=-1,s=()=>{a||(a=!0,clearTimeout(o),t.delete(e),Yd(n))},c=new ri({node:e,offsetX:0,offsetY:0,duration:.3,easing:ni.EaseInOut,onFinish:s,onReset:s});t.set(e,()=>{c.destroy(),e.offsetX(0),e.offsetY(0),s()}),o=setTimeout(()=>t.get(e)?.(),500),c.play()},a=()=>{let e=n;return n=null,r?.(),r=null,e},o=()=>{let e=a();if(e)for(let t of e){let{node:e}=t,n=e.getLayer();if(!n||!e.getStage())continue;let{x:r,y:a}=PP(e,t);!r&&!a||i(e,n,r,a)}};return{snapshot(){n=e().map(e=>{let{x:t,y:n}=e.getAbsolutePosition();return{node:e,x:t,y:n}}),r??=Wd(o)},cancel(){a(),[...t.values()].forEach(e=>e())}}}function IP(e,t){let n=Jj(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>iN(r(),e,t,n),hasEdit:(e,n)=>oN(r(),e,t,n),hasSelectColumn:e=>aN(r(),t,e)}}const LP=(e,t)=>{let n=Jj(t),r=oM(t),{hasEdit:i,hasFocus:a,hasSelectColumn:o}=IP(t,e.table.id),{sharedFocusColor:s,sharedFocusTableColor:c}=dN(t,e.table.id),{sharedSelectColor:l}=fN(t,e.table.id),{onMoveStart:u}=nN(t,e),{addUnsubscribe:d}=rN(),f=ba({hover:!1,iconHover:null,dragstartId:null}),p=kP(),m=null,h=null,g=null,ee=()=>{f.hover=!0},_=()=>{f.hover=!1},te=e=>t=>{f.iconHover=e,jM(t,AM)},ne=e=>{f.iconHover=null,jM(e,``)},re=(e,t,n)=>n?f.iconHover===t?e.active:e.foreground:OM,ie=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,ae=t=>{let{emitter:r}=n.value;r.emit(Ij({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},oe=()=>{let{store:t}=n.value;t.dispatch(AS(e.table.id))},se=()=>{let{store:t}=n.value;t.dispatch(wS(e.table.id))},ce=t=>{let{store:r}=n.value;r.dispatch(cv({tableId:e.table.id,focusType:t}))},le=(e,t)=>{if(!p.isDouble(e,t))return;let{store:r}=n.value;r.dispatch(gv())},ue=e=>{let t=h,n=t?.findOne(`.scene`);if(!t||!n)return null;t.setPointersPositions(e);let r=t.getPointerPosition();return r?n.getAbsoluteTransform().copy().invert().point(r):null},de=e=>{let{store:t}=n.value,r=ue(e);if(!r)return;let i=NP(t.state,r);if(!i)return;let{editor:{draggableColumn:a}}=t.state;!a||a.columnIds.includes(i.columnId)||(g?.snapshot(),t.dispatch(_k(i.columnId,i.tableId)))},v=()=>{let{store:e,emitter:t}=n.value;!m&&f.dragstartId===null||(m?.unsubscribe(),m=null,h=null,f.dragstartId=null,e.dispatch(Jv()),t.emit(Lj()))},fe=(e,t)=>{let{store:r}=n.value,{editor:{focusTable:i}}=r.state;if(!i||!i.columnId)return;let a=t.target?.getStage()??null;a&&(m?.unsubscribe(),h=a,f.dragstartId=e,g??=FP(()=>a.find(`.column-row`)),r.dispatch(gk(Gj(t.evt))),m=$M.subscribe({next:({event:e})=>{de(e)},complete:v}))};$i(()=>{let{emitter:e}=n.value;d(e.on({dragendColumnAll:()=>{m?.unsubscribe(),m=null}}),()=>{m?.unsubscribe(),m=null,g?.cancel()})});let y=({focusType:t,x:n,width:i,text:a,fill:o,focus:s,edit:c,sharedFocus:l})=>O`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${l} x=${n} y=${0} @mousedown=${e=>{ce(t),p.track(t,e)}} @dblclick=${e=>{le(t,e)}}><k-text name="cell-text" y=${2} width=${i} height=${GN()} text=${a} fill=${o} fontFamily=${bM} fontSize=${12} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!c} hitFunc=${QN} />${s?O`<k-rect name="cell-focus-border" y=${20.5} width=${i} height=${EM} fill=${UN(r.value,c,e.editorFocused)} listening=${!1} />`:null}${l?O`<k-rect name="cell-shared-focus-border" y=${22.5} width=${i+8} height=${EM} fill=${l} listening=${!1} />`:null}</k-group>`;return()=>{let{store:t}=n.value,{editor:d,collections:p}=t.state,{table:m}=e,h=r.value,g=!!d.selectedMap[m.id],ce=Fh(t.state,m),le=Ph(t.state,m),ue=le.width-18,de=!!(e.hovered||f.hover),pe=e.ghostColumnId??f.dragstartId,b=pe!==null&&!m.columnIds.includes(pe)?pe:null,me=c(),he=l(),ge=s(W.tableName),_e=s(W.tableComment),ve=me??he,ye=qN(t.state,m),be=ye.find(e=>e.focusType===W.tableName),xe=ye.find(e=>e.focusType===W.tableComment),Se=j(p).collection(`tableColumnEntities`).selectByIds(b?[...m.columnIds,b]:m.columnIds);return O`<k-group id=${e.preview?``:`table-${m.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${g} sharedFocus=${me} sharedSelect=${he} x=${le.x} y=${le.y} @mousedown=${u} @touchstart=${u} @mouseenter=${ee} @mouseleave=${_}><k-rect name="table-body" x=${1/2} y=${1/2} width=${le.width-1} height=${le.height-1} cornerRadius=${6} fill=${h.tableBackground} stroke=${ie(h,g)} strokeWidth=${1} />${ve?O`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${le.width+1} height=${le.height+1} cornerRadius=${6} stroke=${ve} strokeWidth=${1} listening=${!1} />`:null}<k-rect name="table-header-color" kind="table-header-color" x=${1} y=${0} width=${le.width-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${m.ui.color} @click=${ae} @mouseenter=${e=>{jM(e,AM)}} @mouseleave=${e=>{jM(e,``)}} /><k-group name="table-header" x=${9} y=${9}>${tP({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:re(h,`plus`,de),mouseenter:te(`plus`),mouseleave:ne,x:ue-24-4,y:0,click:oe})}${tP({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:re(h,`x`,de),mouseenter:te(`x`),mouseleave:ne,x:ue-12,y:0,click:se})}<k-group name="table-header-inputs" y=${14}>${be?y({...be,text:m.name.trim()?m.name:`table`,fill:m.name.trim()?h.active:h.placeholder,focus:a(W.tableName),edit:i(W.tableName),sharedFocus:ge}):null}${xe?y({...xe,text:m.comment.trim()?m.comment:`comment`,fill:m.comment.trim()?h.active:h.placeholder,focus:a(W.tableComment),edit:i(W.tableComment),sharedFocus:_e}):null}</k-group></k-group><k-group name="table-columns">${ru(Se,e=>e.id,(n,r)=>O`<${MP} .column=${n} .y=${Ih(t.state,m,r).y-le.y} .width=${le.width} .selected=${o(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${ce.name} .widthDataType=${ce.dataType} .widthDefault=${ce.default} .widthComment=${ce.comment} .focusName=${a(W.columnName,n.id)} .focusDataType=${a(W.columnDataType,n.id)} .focusNotNull=${a(W.columnNotNull,n.id)} .focusDefault=${a(W.columnDefault,n.id)} .focusComment=${a(W.columnComment,n.id)} .focusUnique=${a(W.columnUnique,n.id)} .focusAutoIncrement=${a(W.columnAutoIncrement,n.id)} .editName=${i(W.columnName,n.id)} .editDataType=${i(W.columnDataType,n.id)} .editDefault=${i(W.columnDefault,n.id)} .editComment=${i(W.columnComment,n.id)} .sharedFocusName=${s(W.columnName,n.id)} .sharedFocusDataType=${s(W.columnDataType,n.id)} .sharedFocusNotNull=${s(W.columnNotNull,n.id)} .sharedFocusDefault=${s(W.columnDefault,n.id)} .sharedFocusComment=${s(W.columnComment,n.id)} .sharedFocusUnique=${s(W.columnUnique,n.id)} .sharedFocusAutoIncrement=${s(W.columnAutoIncrement,n.id)} .ghost=${n.id===b} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${fe} .onDragend=${v} />`)}</k-group></k-group>`}},RP=(e,t)=>e.ui.zIndex-t.ui.zIndex,zP=(e,t)=>{let n=Jj(t),r=oM(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o,zoomLevel:s},doc:{tableIds:c,memoIds:l,relationshipIds:u},collections:d}=t.state,f=r.value,p=j(d).collection(`tableEntities`).selectByIds(c).sort(RP),m=j(d).collection(`memoEntities`).selectByIds(l).sort(RP),h=j(d).collection(`relationshipEntities`).selectByIds(u),g=bh(s);return O`<k-layer name="export-scene" listening=${!1} x=${-i.x*a} y=${-i.y*a} scaleX=${a} scaleY=${a}><k-rect name="export-background" x=${i.x} y=${i.y} width=${i.width} height=${i.height} fill=${f.canvasBackground} />${z(o,N.relationship)?O`<${DP} .relationships=${h} />`:null}${ru(p,e=>e.id,e=>g?O`<${mN} .table=${e} />`:O`<${LP} .table=${e} />`)}${ru(m,e=>e.id,e=>O`<${nP} .memo=${e} />`)}</k-layer>`}};async function BP({doc:e,theme:t,toWidth:n,zoomLevel:r}){let i=Kj({toWidth:n},{devtools:!1});i.store.dispatchSync(ZO(e)),y(r)&&i.store.dispatchSync($h({value:r})),await cM(32);let a=i.store.state.settings.zoomLevel,o=fM(i.store.state),s=pM(o,a),c=sM({app:i,container:document.createElement(`div`),scene:O`<${zP} .box=${o} .scale=${s} />`,width:o.width*s,height:o.height*s,theme:t});return await Zd(),{stage:c.stage,box:o,scale:s,zoomLevel:a,destroy:()=>{c.destroy(),Yj(i)}}}function VP(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function HP({doc:e,theme:t,pixelRatio:n,zoomLevel:r,toWidth:i}){let a=await BP({doc:e,theme:t,toWidth:i,zoomLevel:r});try{let e=uM(n,a.stage.width(),a.stage.height()),t=a.stage.toCanvas({pixelRatio:e}),r=await VP(t),{width:i,height:o}=t;return{blob:r,width:i,height:o,reduction:a.scale*e<n*a.zoomLevel?{documentWidth:a.box.width,documentHeight:a.box.height,width:i,height:o}:null}}finally{a.destroy()}}const UP=`400 12px ${yM}`,WP=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function GP(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=UP,t=>Math.round(e.measureText(t).width)+2):null}function KP(e){return WP.map(t=>e(t))}function qP(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const JP=new class{async probeFontWidths(){return KP(this.createToWidth())}async render(e){let t=this.createToWidth(),n=KP(t);if(!qP(n,e.fontProbe))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.fontProbe.join()}`);return HP({...e,toWidth:t})}createToWidth(){let e=GP();if(!e)throw Error(`[export-png] this realm has no 2d context to measure by`);return e}};self.onconnect=t=>{let n=t.ports[0];e.expose(JP,n)};