@dineug/erd-editor 3.9.2 → 4.0.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.
- package/README.md +321 -133
- package/dist/components/appContext.d.ts +4 -0
- package/dist/components/erd/Erd.d.ts +4 -0
- package/dist/components/erd/automatic-table-placement/AutomaticTablePlacement.d.ts +2 -1
- package/dist/components/erd/automatic-table-placement/createAutomaticTablePlacement.d.ts +38 -2
- package/dist/components/erd/automatic-table-placement/elkPlacement.d.ts +42 -0
- package/dist/components/erd/automatic-table-placement/flowPlacement.d.ts +21 -0
- package/dist/components/erd/automatic-table-placement/placementActions.d.ts +14 -0
- package/dist/components/erd/automatic-table-placement/runElkPlacement.d.ts +0 -11
- package/dist/components/erd/canvas/SceneIcon.template.d.ts +2 -2
- package/dist/components/erd/canvas/entityDrag.d.ts +17 -1
- package/dist/components/erd/canvas/middleButtonPan.d.ts +11 -0
- package/dist/components/erd/canvas/relationship-group/relationship/Relationship.d.ts +2 -0
- package/dist/components/erd/canvas/relationship-group/relationship/RelationshipActionLabel.d.ts +32 -0
- package/dist/components/erd/canvas/sceneTokens.d.ts +38 -0
- package/dist/components/erd/canvas/table/Table.d.ts +9 -1
- package/dist/components/erd/canvas/table/cellLayout.d.ts +11 -0
- package/dist/components/erd/canvas/table/column/Column.d.ts +7 -0
- package/dist/components/erd/canvas/table/doubleClick.d.ts +3 -4
- package/dist/components/erd/canvas/table/goToErd.d.ts +3 -10
- package/dist/components/erd/canvas/table-group/TableGroup.d.ts +17 -0
- package/dist/components/erd/canvas/table-group/TableGroupBody.d.ts +17 -0
- package/dist/components/erd/canvas/table-group/TableGroupDropTarget.d.ts +10 -0
- package/dist/components/erd/canvas/table-group/TableGroupSash.d.ts +35 -0
- package/dist/components/erd/canvas/table-group/TableGroups.d.ts +10 -0
- package/dist/components/erd/canvas/table-group/tableGroupBox.d.ts +40 -0
- package/dist/components/erd/canvas/table-group/titleLayout.d.ts +45 -0
- package/dist/components/erd/canvas/useMoveEntity.d.ts +2 -0
- package/dist/components/erd/draw-target/DrawTargetButtons.d.ts +16 -0
- package/dist/components/erd/draw-target/DrawTargetButtons.styles.d.ts +14 -0
- package/dist/components/erd/draw-target/drawTargetState.d.ts +26 -0
- package/dist/components/erd/draw-target/findDrawTarget.d.ts +29 -0
- package/dist/components/erd/draw-target/placePill.d.ts +49 -0
- package/dist/components/erd/erd-context-menu/ErdContextMenu.d.ts +6 -0
- package/dist/components/erd/erd-context-menu/menus/drawRelationshipMenus.d.ts +3 -0
- package/dist/components/erd/erd-context-menu/menus/exportMenus.d.ts +7 -2
- package/dist/components/erd/erd-context-menu/menus/importMenus.d.ts +5 -1
- package/dist/components/erd/erd-context-menu/menus/relationshipMenus.d.ts +16 -1
- package/dist/components/erd/erd-context-menu/menus/showMenus.d.ts +3 -1
- package/dist/components/erd/erd-context-menu/menus/tablePlacementMenus.d.ts +3 -0
- package/dist/components/erd/floating-toolbar/ToolbarCompass.template.d.ts +3 -1
- package/dist/components/erd/goToErdTarget.d.ts +85 -0
- package/dist/components/erd/hitTest.d.ts +16 -1
- package/dist/components/erd/minimap/MinimapScene.d.ts +1 -1
- package/dist/components/erd/minimap/table/Table.d.ts +3 -3
- package/dist/components/erd/minimap/table-group/TableGroup.d.ts +17 -0
- package/dist/components/erd/table-group/TableGroupDraft.d.ts +15 -0
- package/dist/components/erd/table-group/TableGroupDraft.styles.d.ts +6 -0
- package/dist/components/erd/table-group/tableGroupName.d.ts +21 -0
- package/dist/components/erd/table-group/useTableGroupDraw.d.ts +25 -0
- package/dist/components/erd/table-properties/TableProperties.d.ts +2 -0
- package/dist/components/erd/table-properties/TableProperties.styles.d.ts +24 -2
- package/dist/components/erd/table-properties/table-properties-indexes/TablePropertiesIndexes.d.ts +2 -0
- package/dist/components/erd/table-properties/table-properties-indexes/TablePropertiesIndexes.styles.d.ts +32 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-checkbox-column/IndexesCheckboxColumn.d.ts +7 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-checkbox-column/IndexesCheckboxColumn.styles.d.ts +5 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-column/IndexesColumn.d.ts +7 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-column/IndexesColumn.styles.d.ts +3 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-index/IndexesIndex.d.ts +7 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-index/IndexesIndex.styles.d.ts +6 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-key/IndexesKey.d.ts +21 -0
- package/dist/components/erd/table-properties/table-properties-indexes/indexes-key/IndexesKey.styles.d.ts +13 -0
- package/dist/components/erd/table-properties/table-properties-tabs/TablePropertiesTabs.d.ts +3 -0
- package/dist/components/erd/welcome-screen/WelcomeScreen.d.ts +17 -0
- package/dist/components/erd/welcome-screen/WelcomeScreen.styles.d.ts +17 -0
- package/dist/components/erd/welcome-screen/welcome-hints/WelcomeHints.d.ts +21 -0
- package/dist/components/erd/welcome-screen/welcome-hints/WelcomeHints.styles.d.ts +14 -0
- package/dist/components/erd/welcome-screen/welcome-hints/hintArrows.d.ts +10 -0
- package/dist/components/erd/welcome-screen/welcomeLayout.d.ts +87 -0
- package/dist/components/erd-editor/ErdEditor.d.ts +67 -7
- package/dist/components/erd-editor/useErdEditorAttachElement.d.ts +14 -1
- package/dist/components/export-image/ExportImage.d.ts +23 -0
- package/dist/components/export-image/ExportImage.styles.d.ts +34 -0
- package/dist/components/export-image/exportImageActions.d.ts +48 -0
- package/dist/components/find-replace/FindReplace.d.ts +13 -0
- package/dist/components/find-replace/FindReplace.styles.d.ts +27 -0
- package/dist/components/find-replace/fieldIcon.d.ts +5 -0
- package/dist/components/find-replace/matchTarget.d.ts +26 -0
- package/dist/components/find-replace/panelLayout.d.ts +20 -0
- package/dist/components/generator-code/GeneratorCode.d.ts +1 -0
- package/dist/components/generator-code/generator-code-context-menu/GeneratorCodeContextMenu.d.ts +3 -0
- package/dist/components/generator-code/generator-code-context-menu/menus/columnNameCaseMenus.d.ts +3 -0
- package/dist/components/generator-code/generator-code-context-menu/menus/languageMenus.d.ts +8 -0
- package/dist/components/generator-code/generator-code-context-menu/menus/tableNameCaseMenus.d.ts +3 -0
- package/dist/components/generator-code/generator-code-options/GeneratorCodeOptions.d.ts +17 -0
- package/dist/components/generator-code/generator-code-options/GeneratorCodeOptions.styles.d.ts +5 -0
- package/dist/components/generator-code/generatorCodeView.d.ts +12 -0
- package/dist/components/generator-code/languageSettings.d.ts +14 -0
- package/dist/components/locale-picker/LocalePicker.d.ts +13 -0
- package/dist/components/locale-picker/LocalePicker.styles.d.ts +19 -0
- package/dist/components/localeContext.d.ts +10 -0
- package/dist/components/localized/Localized.d.ts +18 -0
- package/dist/components/map-columns/MapColumnsBody.d.ts +24 -0
- package/dist/components/map-columns/MapColumnsDialog.d.ts +13 -0
- package/dist/components/map-columns/MapColumnsDialog.styles.d.ts +38 -0
- package/dist/components/map-columns/mapColumnsAction.d.ts +13 -0
- package/dist/components/map-columns/nameOf.d.ts +6 -0
- package/dist/components/map-columns/openMapColumns.d.ts +9 -0
- package/dist/components/primitives/code-block/CodeBlock.d.ts +6 -1
- package/dist/components/primitives/code-block/CodeBlock.styles.d.ts +2 -0
- package/dist/components/primitives/color-picker/ColorPicker.d.ts +10 -1
- package/dist/components/primitives/color-picker/ColorPicker.styles.d.ts +25 -0
- package/dist/components/primitives/color-picker/colorModel.d.ts +36 -0
- package/dist/components/primitives/color-picker/presetColors.d.ts +13 -0
- package/dist/components/primitives/color-picker/resolveColor.d.ts +7 -0
- package/dist/components/primitives/context-menu/ContextMenu.d.ts +2 -0
- package/dist/components/primitives/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -0
- package/dist/components/primitives/context-menu/context-menu-content/fitMenu.d.ts +4 -4
- package/dist/components/primitives/context-menu/context-menu-separator/ContextMenuSeparator.d.ts +8 -0
- package/dist/components/primitives/context-menu/context-menu-separator/ContextMenuSeparator.styles.d.ts +2 -0
- package/dist/components/primitives/context-menu/menu/Menu.d.ts +2 -0
- package/dist/components/primitives/context-menu/submenu-chevron/SubmenuChevron.d.ts +5 -0
- package/dist/components/primitives/dialog/Dialog.d.ts +21 -0
- package/dist/components/primitives/dialog/Dialog.styles.d.ts +12 -0
- package/dist/components/primitives/highlighted-text/HighlightedText.d.ts +2 -5
- package/dist/components/primitives/icon/icons.d.ts +27 -1
- package/dist/components/primitives/select/Select.d.ts +18 -0
- package/dist/components/primitives/select/Select.styles.d.ts +13 -0
- package/dist/components/primitives/text-input/TextInput.d.ts +2 -0
- package/dist/components/primitives/toast/Toast.d.ts +5 -1
- package/dist/components/primitives/toast/Toast.styles.d.ts +2 -2
- package/dist/components/quick-search/QuickSearch.d.ts +2 -1
- package/dist/components/quick-search/QuickSearch.styles.d.ts +6 -0
- package/dist/components/quick-search/actions.d.ts +60 -2
- package/dist/components/quick-search/hangul.d.ts +79 -0
- package/dist/components/quick-search/paletteQuery.d.ts +38 -0
- package/dist/components/quick-search/scopedActions.d.ts +42 -0
- package/dist/components/schema-sql/SchemaSQL.d.ts +2 -0
- package/dist/components/schema-sql/SchemaSQL.styles.d.ts +7 -0
- package/dist/components/schema-sql/schema-sql-context-menu/SchemaSQLContextMenu.d.ts +3 -0
- package/dist/components/schema-sql/schema-sql-context-menu/menus/bracketMenus.d.ts +3 -0
- package/dist/components/schema-sql/schema-sql-context-menu/menus/headerMenus.d.ts +29 -0
- package/dist/components/schema-sql/schema-sql-context-menu/menus/statementsMenus.d.ts +27 -0
- package/dist/components/schema-sql/schema-sql-options/SchemaSQLOptions.d.ts +24 -0
- package/dist/components/schema-sql/schema-sql-options/SchemaSQLOptions.styles.d.ts +45 -0
- package/dist/components/schema-sql/schema-sql-options/ScriptEditor.d.ts +20 -0
- package/dist/components/schema-sql/schema-sql-options/ScriptEditor.styles.d.ts +13 -0
- package/dist/components/schema-sql/schema-sql-options/dropWarning.d.ts +8 -0
- package/dist/components/schema-sql/schemaSQLView.d.ts +71 -0
- package/dist/components/settings/Settings.styles.d.ts +7 -0
- package/dist/components/settings/columnTypeLabels.d.ts +8 -0
- package/dist/components/settings/lockSettingRows.d.ts +16 -0
- package/dist/components/settings/settings-lnb/SettingsLnb.d.ts +3 -0
- package/dist/components/settings/settingsPage.d.ts +10 -0
- package/dist/components/theme-builder/ThemeBuilder.d.ts +9 -1
- package/dist/components/theme-builder/ThemeBuilder.styles.d.ts +8 -5
- package/dist/components/toast-container/openStatusToast.d.ts +29 -0
- package/dist/components/toast-container/openToastWhileRunning.d.ts +1 -1
- package/dist/components/toolbar/Toolbar.d.ts +1 -0
- package/dist/components/visualization/graph-node/GraphNode.d.ts +2 -2
- package/dist/components/visualization/graphPan.d.ts +12 -0
- package/dist/components/visualization/table/column/Column.d.ts +4 -0
- package/dist/components/visualization/visualizationView.d.ts +2 -2
- package/dist/constants/language.d.ts +1 -1
- package/dist/constants/layout.d.ts +47 -0
- package/dist/constants/open.d.ts +4 -0
- package/dist/constants/schema.d.ts +38 -4
- package/dist/constants/sql/dataType/PostgreSQL.d.ts +2 -1
- package/dist/constants/sql/dataType/SQLite.d.ts +3 -1
- package/dist/engine/actions.d.ts +20 -2
- package/dist/engine/context.d.ts +6 -0
- package/dist/engine/index.d.ts +1 -1
- package/dist/engine/index.js +29 -18
- package/dist/engine/modules/editor/actions.d.ts +10 -2
- package/dist/engine/modules/editor/atom.actions.d.ts +49 -11
- package/dist/engine/modules/editor/generator.actions.d.ts +107 -8
- package/dist/engine/modules/editor/state.d.ts +16 -3
- package/dist/engine/modules/editor/utils/color.d.ts +21 -0
- package/dist/engine/modules/editor/utils/duplicate.d.ts +28 -1
- package/dist/engine/modules/editor/utils/focus.d.ts +16 -0
- package/dist/engine/modules/editor/utils/releaseHidden.d.ts +16 -0
- package/dist/engine/modules/editor/utils/selection.d.ts +12 -0
- package/dist/engine/modules/relationship/actions.d.ts +19 -0
- package/dist/engine/modules/relationship/atom.actions.d.ts +111 -1
- package/dist/engine/modules/relationship/endFlags.d.ts +14 -0
- package/dist/engine/modules/relationship/fkColumns.d.ts +40 -4
- package/dist/engine/modules/relationship/generator.actions.d.ts +5 -2
- package/dist/engine/modules/relationship/history.d.ts +3 -0
- package/dist/engine/modules/relationship/referenceType.d.ts +12 -0
- package/dist/engine/modules/settings/actions.d.ts +17 -4
- package/dist/engine/modules/settings/atom.actions.d.ts +63 -19
- package/dist/engine/modules/settings/generator.actions.d.ts +7 -0
- package/dist/engine/modules/settings/history.d.ts +1 -0
- package/dist/engine/modules/table/actions.d.ts +8 -0
- package/dist/engine/modules/table/atom.actions.d.ts +31 -0
- package/dist/engine/modules/table/generator.actions.d.ts +3 -3
- package/dist/engine/modules/table/history.d.ts +1 -0
- package/dist/engine/modules/table-column/generator.actions.d.ts +8 -0
- package/dist/engine/modules/table-column/keys.d.ts +14 -0
- package/dist/engine/modules/table-column/utils/dataType.d.ts +19 -1
- package/dist/engine/modules/table-group/actions.d.ts +63 -0
- package/dist/engine/modules/table-group/atom.actions.d.ts +238 -0
- package/dist/engine/modules/table-group/generator.actions.d.ts +111 -0
- package/dist/engine/modules/table-group/history.d.ts +13 -0
- package/dist/engine/peer-store.d.ts +9 -3
- package/dist/engine/replication-store.d.ts +18 -1
- package/dist/engine/rx-operators/groupByStreamActions.d.ts +5 -1
- package/dist/engine/rx-operators/lockIgnoreFilter.d.ts +8 -0
- package/dist/engine/rx-store.d.ts +2 -0
- package/dist/engine/settle.d.ts +9 -0
- package/dist/erd-editor.umd.js +2523 -4060
- package/dist/hooks/useNavigatorLanguages.d.ts +7 -0
- package/dist/i18n/locales.d.ts +126 -0
- package/dist/i18n/menuLabel.d.ts +12 -0
- package/dist/i18n/messages/ar-SA.d.ts +399 -0
- package/dist/i18n/messages/de-DE.d.ts +375 -0
- package/dist/i18n/messages/en/code.d.ts +17 -0
- package/dist/i18n/messages/en/colorPicker.d.ts +35 -0
- package/dist/i18n/messages/en/common.d.ts +65 -0
- package/dist/i18n/messages/en/contextMenu.d.ts +29 -0
- package/dist/i18n/messages/en/exportImage.d.ts +25 -0
- package/dist/i18n/messages/en/feedback.d.ts +11 -0
- package/dist/i18n/messages/en/findReplace.d.ts +36 -0
- package/dist/i18n/messages/en/floatingToolbar.d.ts +12 -0
- package/dist/i18n/messages/en/index.d.ts +378 -0
- package/dist/i18n/messages/en/mapColumns.d.ts +39 -0
- package/dist/i18n/messages/en/palette.d.ts +40 -0
- package/dist/i18n/messages/en/schemaSql.d.ts +28 -0
- package/dist/i18n/messages/en/settings.d.ts +22 -0
- package/dist/i18n/messages/en/shortcuts.d.ts +32 -0
- package/dist/i18n/messages/en/tableProperties.d.ts +34 -0
- package/dist/i18n/messages/en/themeBuilder.d.ts +7 -0
- package/dist/i18n/messages/en/toolbar.d.ts +9 -0
- package/dist/i18n/messages/en/visualization.d.ts +12 -0
- package/dist/i18n/messages/en/welcome.d.ts +13 -0
- package/dist/i18n/messages/es-ES.d.ts +381 -0
- package/dist/i18n/messages/eu-ES.d.ts +375 -0
- package/dist/i18n/messages/fa-IR.d.ts +375 -0
- package/dist/i18n/messages/fr-FR.d.ts +381 -0
- package/dist/i18n/messages/he-IL.d.ts +381 -0
- package/dist/i18n/messages/id-ID.d.ts +369 -0
- package/dist/i18n/messages/index.d.ts +11 -0
- package/dist/i18n/messages/it-IT.d.ts +381 -0
- package/dist/i18n/messages/ja-JP.d.ts +369 -0
- package/dist/i18n/messages/ko-KR.d.ts +369 -0
- package/dist/i18n/messages/nl-NL.d.ts +375 -0
- package/dist/i18n/messages/pl-PL.d.ts +387 -0
- package/dist/i18n/messages/pt-BR.d.ts +381 -0
- package/dist/i18n/messages/pt-PT.d.ts +381 -0
- package/dist/i18n/messages/ro-RO.d.ts +381 -0
- package/dist/i18n/messages/ru-RU.d.ts +387 -0
- package/dist/i18n/messages/sk-SK.d.ts +387 -0
- package/dist/i18n/messages/sl-SI.d.ts +387 -0
- package/dist/i18n/messages/sv-SE.d.ts +375 -0
- package/dist/i18n/messages/tr-TR.d.ts +375 -0
- package/dist/i18n/messages/uk-UA.d.ts +387 -0
- package/dist/i18n/messages/zh-CN.d.ts +369 -0
- package/dist/i18n/messages/zh-TW.d.ts +369 -0
- package/dist/i18n/resolveLocale.d.ts +11 -0
- package/dist/i18n/source.d.ts +7 -0
- package/dist/i18n/translate.d.ts +58 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +28966 -11220
- package/dist/internal-types/index.d.ts +2 -4
- package/dist/konva/scene/contentBounds.d.ts +18 -12
- package/dist/konva/scene/metrics.d.ts +7 -0
- package/dist/konva/scene/renderScene.d.ts +10 -4
- package/dist/konva/scene/stacking.d.ts +21 -0
- package/dist/konva/scene/viewLayout.d.ts +2 -1
- package/dist/loadValue-B3EFSe9k.js +12925 -0
- package/dist/peer/index.d.ts +6 -3
- package/dist/peer/index.js +87 -83
- package/dist/services/elk-layout/elkGraph.d.ts +6 -4
- package/dist/services/elk-layout/elkLayoutOptions.d.ts +20 -0
- package/dist/services/elk-layout/elkLayoutService.d.ts +3 -3
- package/dist/services/export-png/ExportScene.d.ts +3 -3
- package/dist/services/export-png/documentScene.d.ts +14 -9
- package/dist/services/export-png/exportBox.d.ts +40 -5
- package/dist/services/export-png/exportPngService.d.ts +15 -0
- package/dist/services/export-png/exportTheme.d.ts +26 -0
- package/dist/services/export-png/index.d.ts +44 -11
- package/dist/services/export-png/renderPng.d.ts +18 -10
- package/dist/services/export-png/renderSvg.d.ts +22 -0
- package/dist/services/export-png/sceneSvg.d.ts +54 -0
- package/dist/services/shiki/graphqlGrammar.d.ts +8 -0
- package/dist/shared-store-fUggY7sI.js +1341 -0
- package/dist/themes/radix-ui-theme.d.ts +11 -3
- package/dist/themes/tokens.d.ts +9 -0
- package/dist/utils/calcTable.d.ts +18 -1
- package/dist/utils/clipboard.d.ts +9 -0
- package/dist/utils/collection/tableGroup.entity.d.ts +3 -0
- package/dist/utils/contrastText.d.ts +21 -0
- package/dist/utils/deepMerge.d.ts +8 -0
- package/dist/utils/device-detect/index.d.ts +2 -6
- package/dist/utils/domEvent.d.ts +18 -0
- package/dist/utils/dragSelect.d.ts +2 -0
- package/dist/utils/draw-relationship/bezier.d.ts +2 -0
- package/dist/utils/draw-relationship/corner.d.ts +9 -0
- package/dist/utils/draw-relationship/index.d.ts +18 -18
- package/dist/utils/draw-relationship/loop.d.ts +29 -0
- package/dist/utils/draw-relationship/pathFinding.d.ts +1 -1
- package/dist/utils/draw-relationship/sort.d.ts +8 -1
- package/dist/utils/draw-relationship/stub.d.ts +4 -3
- package/dist/utils/emitter.d.ts +64 -4
- package/dist/utils/file/exportFile.d.ts +15 -5
- package/dist/utils/file/importFile.d.ts +9 -5
- package/dist/utils/file/importSchema.d.ts +45 -0
- package/dist/utils/find-replace/findMatches.d.ts +90 -0
- package/dist/utils/find-replace/index.d.ts +5 -0
- package/dist/utils/find-replace/matcher.d.ts +53 -0
- package/dist/utils/find-replace/present.d.ts +24 -0
- package/dist/utils/find-replace/replaceActions.d.ts +20 -0
- package/dist/utils/generator-code/columnTypes.d.ts +99 -0
- package/dist/utils/generator-code/doctrine.d.ts +6 -0
- package/dist/utils/generator-code/doctrineReservedWords.d.ts +7 -0
- package/dist/utils/generator-code/graphql.d.ts +6 -0
- package/dist/utils/generator-code/heck.d.ts +5 -0
- package/dist/utils/generator-code/java.d.ts +28 -0
- package/dist/utils/generator-code/jsonSchema.d.ts +50 -0
- package/dist/utils/generator-code/jsonShape.d.ts +37 -0
- package/dist/utils/generator-code/kotlin.d.ts +1 -0
- package/dist/utils/generator-code/mermaid.d.ts +5 -0
- package/dist/utils/generator-code/php.d.ts +28 -0
- package/dist/utils/generator-code/rust.d.ts +13 -0
- package/dist/utils/generator-code/rustTypes.d.ts +44 -0
- package/dist/utils/generator-code/scala.d.ts +1 -0
- package/dist/utils/generator-code/seaorm.d.ts +22 -0
- package/dist/utils/generator-code/swift.d.ts +44 -0
- package/dist/utils/generator-code/utils.d.ts +31 -1
- package/dist/utils/generator-code/zod.d.ts +25 -0
- package/dist/utils/globalEventObservable.d.ts +10 -1
- package/dist/utils/highlightWords.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -2
- package/dist/utils/keyboard-shortcut/bindKeys.d.ts +9 -0
- package/dist/utils/keyboard-shortcut/index.d.ts +15 -1
- package/dist/utils/keyboard-shortcut/utils.d.ts +21 -0
- package/dist/utils/loadValue.d.ts +7 -0
- package/dist/utils/map-columns/alignTypes.d.ts +37 -0
- package/dist/utils/map-columns/buildRows.d.ts +102 -0
- package/dist/utils/map-columns/candidateKeys.d.ts +24 -0
- package/dist/utils/map-columns/index.d.ts +8 -0
- package/dist/utils/map-columns/mapping.d.ts +67 -0
- package/dist/utils/map-columns/prefill.d.ts +26 -0
- package/dist/utils/map-columns/toMapColumnsActions.d.ts +10 -0
- package/dist/utils/map-columns/validate.d.ts +45 -0
- package/dist/utils/memo.d.ts +4 -0
- package/dist/utils/referentialAction.d.ts +21 -0
- package/dist/utils/schema-aml-parser/types.d.ts +8 -0
- package/dist/utils/schema-dbml-parser/tokenizer.d.ts +2 -0
- package/dist/utils/schema-dbml-parser/types.d.ts +14 -0
- package/dist/utils/schema-sql/Databricks.d.ts +13 -3
- package/dist/utils/schema-sql/MSSQL.d.ts +19 -2
- package/dist/utils/schema-sql/MariaDB.d.ts +10 -4
- package/dist/utils/schema-sql/MySQL.d.ts +18 -4
- package/dist/utils/schema-sql/Oracle.d.ts +23 -4
- package/dist/utils/schema-sql/PostgreSQL.d.ts +16 -4
- package/dist/utils/schema-sql/SQLite.d.ts +16 -4
- package/dist/utils/schema-sql/Snowflake.d.ts +8 -3
- package/dist/utils/schema-sql/index.d.ts +21 -1
- package/dist/utils/schema-sql/options.d.ts +57 -0
- package/dist/utils/schema-sql/utils.d.ts +120 -2
- package/dist/utils/schema-sql-parser/index.d.ts +5 -1
- package/dist/utils/stageCursor.d.ts +20 -0
- package/dist/utils/table-clipboard/payload.d.ts +3 -0
- package/dist/utils/table-clipboard/placement.d.ts +2 -0
- package/dist/utils/tableColor.d.ts +29 -0
- package/dist/utils/tableGroup.d.ts +142 -0
- package/dist/utils/tableKeys.d.ts +54 -0
- package/dist/workers/elkLayout.shared-worker.js +1 -1
- package/dist/workers/exportPng.shared-worker.js +30 -28
- package/dist/workers/shiki.shared-worker.js +1 -1
- package/dist/workers/spawn.d.ts +1 -2
- package/dist/workers/spawn.inline.d.ts +0 -1
- package/package.json +12 -18
- package/dist/components/generator-code/GeneratorCode.styles.d.ts +0 -2
- package/dist/schemaGCService-BagQ1wfF.js +0 -38
- package/dist/services/schema-gc/index.d.ts +0 -18
- package/dist/services/schema-gc/procGC.d.ts +0 -4
- package/dist/services/schema-gc/schemaGC.shared-worker.d.ts +0 -2
- package/dist/services/schema-gc/schemaGCService.d.ts +0 -5
- package/dist/shared-store-BqPSXAEf.js +0 -1072
- package/dist/store-hooks-DuzDVhPy.js +0 -10282
- package/dist/styles/colorPicker.style.d.ts +0 -7
- package/dist/utils/draw-relationship/chamfer.d.ts +0 -3
- package/dist/workers/schemaGC.shared-worker.js +0 -1
|
@@ -1,34 +1,36 @@
|
|
|
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 _}from"konva/lib/shapes/Rect";import{Text as v}from"konva/lib/shapes/Text";import{Stage as y}from"konva/lib/Stage";import{DD as ee}from"konva/lib/DragAndDrop";import{Konva as te}from"konva/lib/Global";import{camelCase as ne,clamp as re,cloneDeep as ie,difference as ae,groupBy as b,head as oe,isBoolean as se,isEqual as ce,isFunction as le,isNil as x,isNotNil as ue,isNumber as S,isPlainObject as de,isString as C,last as fe,lowerFirst as pe,noop as me,omit as he,pick as ge,range as _e,snakeCase as ve,uniq as ye,upperFirst as be}from"es-toolkit";import{Observable as xe,Subject as Se,animationFrames as Ce,asapScheduler as we,buffer as Te,debounceTime as Ee,defer as De,filter as Oe,fromEvent as ke,groupBy as Ae,map as je,merge as Me,mergeMap as Ne,observeOn as Pe,share as Fe,startWith as Ie,switchMap as Le,take as Re,takeUntil as ze,tap as Be,throttle as Ve,throttleTime as He,timer as Ue}from"rxjs";import{get as We,isEmpty as Ge,round as Ke}from"es-toolkit/compat";import{nanoid as w}from"nanoid";import qe from"deepmerge";import{Kind as Je,TokenKind as Ye,parse as Xe}from"graphql";import Ze,{getAccurateAgent as Qe}from"@egjs/agent";import{ArrowRight as $e,Atom as et,Braces as tt,Brackets as nt,CaseSensitive as rt,Check as it,ChevronDown as at,ChevronRight as ot,Code as st,Contrast as ct,Copy as lt,Database as ut,Diff as dt,ExternalLink as ft,Eye as pt,FileDiff as mt,FileImage as ht,FileInput as gt,FileOutput as _t,Fullscreen as vt,GripVertical as yt,Hand as bt,KeyRound as xt,Maximize as St,Minimize as Ct,Minus as wt,MoonStar as Tt,MousePointer2 as Et,Network as Dt,Palette as Ot,Plus as kt,Redo2 as At,RefreshCw as jt,RotateCcwClock as Mt,Search as Nt,Settings as Pt,Share2 as Ft,Spline as It,StickyNote as Lt,Sun as Rt,Table as zt,Table2 as Bt,TableProperties as Vt,Undo2 as Ht,WandSparkles as Ut,Waypoints as Wt,Workflow as Gt,X as Kt}from"lucide";import{amber as qt,amberA as Jt,amberDark as Yt,amberDarkA as Xt,blue as Zt,blueA as Qt,blueDark as $t,blueDarkA as en,bronze as tn,bronzeA as nn,bronzeDark as rn,bronzeDarkA as an,brown as on,brownA as sn,brownDark as cn,brownDarkA as ln,crimson as un,crimsonA as dn,crimsonDark as fn,crimsonDarkA as pn,cyan as mn,cyanA as hn,cyanDark as gn,cyanDarkA as _n,gold as vn,goldA as yn,goldDark as bn,goldDarkA as xn,grass as Sn,grassA as Cn,grassDark as wn,grassDarkA as Tn,gray as En,grayA as Dn,grayDark as On,grayDarkA as kn,green as An,greenA as jn,greenDark as Mn,greenDarkA as Nn,indigo as Pn,indigoA as Fn,indigoDark as In,indigoDarkA as Ln,iris as Rn,irisA as zn,irisDark as Bn,irisDarkA as Vn,jade as Hn,jadeA as Un,jadeDark as Wn,jadeDarkA as Gn,lime as Kn,limeA as qn,limeDark as Jn,limeDarkA as Yn,mauve as Xn,mauveA as Zn,mauveDark as Qn,mauveDarkA as $n,mint as er,mintA as tr,mintDark as nr,mintDarkA as rr,olive as ir,oliveA as ar,oliveDark as or,oliveDarkA as sr,orange as cr,orangeA as lr,orangeDark as ur,orangeDarkA as dr,pink as fr,pinkA as pr,pinkDark as mr,pinkDarkA as hr,plum as gr,plumA as _r,plumDark as vr,plumDarkA as yr,purple as br,purpleA as xr,purpleDark as Sr,purpleDarkA as Cr,red as wr,redA as Tr,redDark as Er,redDarkA as Dr,ruby as Or,rubyA as kr,rubyDark as Ar,rubyDarkA as jr,sage as Mr,sageA as Nr,sageDark as Pr,sageDarkA as Fr,sand as Ir,sandA as Lr,sandDark as Rr,sandDarkA as zr,sky as Br,skyA as Vr,skyDark as Hr,skyDarkA as Ur,slate as Wr,slateA as Gr,slateDark as Kr,slateDarkA as qr,teal as Jr,tealA as Yr,tealDark as Xr,tealDarkA as Zr,tomato as Qr,tomatoA as $r,tomatoDark as ei,tomatoDarkA as ti,violet as ni,violetA as ri,violetDark as ii,violetDarkA as ai,yellow as oi,yellowA as si,yellowDark as ci,yellowDarkA as li}from"@radix-ui/colors";import{layoutWithLines as ui,prepareWithSegments as di}from"@chenglou/pretext";import{Easings as fi,Tween as pi}from"konva/lib/Tween";function mi(e){"@babel/helpers - typeof";return mi=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},mi(e)}function hi(e,t){if(mi(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(mi(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function gi(e){var t=hi(e,`string`);return mi(t)==`symbol`?t:t+``}function _i(e,t,n){return(t=gi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var vi=class extends EventTarget{constructor(...e){super(...e),_i(this,`textContent`,``)}},yi=class{};function bi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{querySelector:()=>null,querySelectorAll:()=>[],createElement:e=>e===`canvas`?bi():new vi}),Reflect.set(globalThis,`Node`,yi),Reflect.set(globalThis,`HTMLElement`,yi));function xi(e,t){return Object.freeze({key:t??Symbol(),value:e})}var Si={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function Ci(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var wi=Ci(Si.subscribe,{bubbles:!0,composed:!0}),Ti=Ci(Si.unsubscribe,{bubbles:!0,composed:!0});function Ei(e,t){let n=e=>{let n=e;t.dispatchEvent(wi(n.detail))},r=e=>{let n=e;t.dispatchEvent(Ti(n.detail))};return e.addEventListener(wi.type,n),e.addEventListener(Ti.type,r),()=>{e.removeEventListener(wi.type,n),e.removeEventListener(Ti.type,r)}}function Di(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var Oi=queueMicrotask??(e=>{Promise.resolve().then(e)}),ki=e=>t=>typeof t===e,Ai=ki(`object`),ji=ki(`bigint`),Mi=ki(`boolean`),Ni=ki(`function`),Pi=ki(`number`),Fi=ki(`string`),Ii=ki(`symbol`),Li=ki(`undefined`),Ri=e=>e===null,{isArray:zi}=Array,Bi=e=>Ai(e)&&!Ri(e)&&!zi(e),Vi=e=>ji(e)||Mi(e)||Pi(e)||Fi(e)||Ii(e)||Li(e)||Ri(e);function Hi(){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 Ui=`...`,Wi=`@@r-html-${Math.random().toString().substring(2,8)}`,Gi=`${Ui}${Wi}`,Ki=RegExp(`${Wi}_(\\d+)_`,`g`),qi=RegExp(`^${Wi}_\\d+_$`),Ji=/^\n/,Yi=function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),Xi=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Zi=Symbol.for(`https://github.com/dineug/r-html#mounted`),Qi=Symbol.for(`https://github.com/dineug/r-html#unmounted`),$i=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),ea=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),ta=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),na=Symbol.for(`https://github.com/dineug/r-html#updated`),ra=[Xi,Zi,Qi,$i,ea,ta,na],ia=Symbol.for(`https://github.com/dineug/r-html#Directive`),aa=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),oa=null;function sa(e){oa=e}var ca=e=>t=>{oa&&(oa[e]??(oa[e]=[])).push(t)},la=ca(Xi),ua=ca(Zi),da=ca(Qi);function fa(e,t){let n=Reflect.get(e,t,e);zi(n)&&n.forEach(Di)}function pa(e){ra.forEach(t=>Reflect.set(e,t,null,e))}function ma(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function T(e,t,n){ma(e,t),t.set(e,n)}function ha(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 E(e,t,n){return e.set(ha(e,t),n),n}function D(e,t){return e.get(ha(e,t))}var ga=Hi(),_a=e=>e,va=e=>{var t,n;return t=new WeakMap,n=new WeakMap,class extends e{constructor(e,r,i,a){super(e,r,i,a),T(this,t,[]),T(this,n,null),this.hmr()}commit(e){let n=_a(e);super.commit(n),E(t,this,e)}hmr(){E(n,this,ga.subscribe(e=>D(t,this).includes(e)&&this.commit(D(t,this))))}destroy(){D(n,this)?.call(this),super.destroy?.()}}},ya=new WeakMap,ba=new WeakMap,xa=new WeakMap,Sa=new WeakMap,Ca=new WeakMap,wa={shallow:!1},Ta=null;function Ea(e){return Ta=e,Di(e),Ta=null,()=>Da(e)}function Da(e){Va(e);let t=Ca.get(e);if(t)for(let[n]of t.entries())ba.get(n)?.delete(e);t&&Ca.delete(e)}function Oa(e){if(!Ta)return;let t=ba.get(e);t?t.has(Ta)||t.add(Ta):ba.set(e,new Set([Ta]))}function ka(e,t){if(!Ta)return;let n=Ca.get(Ta);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,new Set([t]))}else Ca.set(Ta,new Map([[e,new Set([t])]]))}var Aa=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||(zi(e)||Bi(e))&&Object.isFrozen(e);function ja(e,t={}){let{shallow:n}=Object.assign({},wa,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return Aa(o)?o:(Oa(e),ka(e,i),!n&&(Bi(o)||zi(o))&&!xa.has(o)?ya.has(o)?ya.get(o):ja(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!zi(e)&&i!==n||t===`length`)&&(Ha(e,t),Ga(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return Ha(e,t),Ga(e,t),n}});return ya.set(e,r),xa.set(r,e),r}function Ma(e){return(Sa.get(e)??Sa.set(e,Hi()).get(e)).asReadonly()}var Na=[],Pa=new Map,Fa=new Map,Ia=!0;function La(e,t,n){let r=Ca.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var Ra=e=>t=>{let n=Pa.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()}};Na.push(n),Pa.set(t,n)}return Ia&&=(Oi(Wa),!1),i},za=Ra(`observer`),Ba=Ra(`nextTick`);function Va(e){let t=Pa.get(e);if(!t)return;let n=Na.indexOf(t);n===-1||Na.splice(n,1),Pa.delete(e),t.resolve()}var Ha=(e,t)=>ba.get(e)?.forEach(n=>La(e,t,n)&&za(n));function Ua(){let e=Na.shift();if(e){if(Pa.delete(e.fn),e.type===`observer`)Da(e.fn),Ea(e.fn),e.resolve();else if(e.type===`nextTick`){let t=Di(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function Wa(){for(;Na.length;)Ua();Ia=!0}function Ga(e,t){let n=ya.get(e);if(!n)return;let r=Sa.get(n);if(!r)return;let i=Fa.get(n);i?i.has(t)||i.add(t):(Fa.set(n,new Set([t])),Ba(()=>{let e=Fa.get(n);e&&(Fa.delete(n),e.forEach(e=>r.next(e)))}))}function Ka(e,t){let n=ja({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(wi({context:t,observer:r}))};return a(),la(a),da(()=>{i().dispatchEvent(Ti({context:t,observer:r}))}),n}function qa(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=Hi(),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(wi.type,o),r.addEventListener(Ti.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(wi.type,o),r.removeEventListener(Ti.type,s);for(let e of a.values())e();a.clear()}}}var Ja=function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function Ya(e,t){return Reflect.set(t,ia,e),t}function Xa(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Za(e,t){return(...n)=>Ya(Ja.node,[e(...n),t])}var Qa=function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),$a=new Set(Object.values(Qa)),eo=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),to=new WeakMap,no=new WeakMap,ro=new Set([Qa.svg]),io=e=>`${Wi}_${e}_`,ao=e=>zi(e)&&zi(e.raw),oo=e=>Bi(e)&&ao(e.strings)&&zi(e.values)&&$a.has(Reflect.get(e,aa)??``),so=e=>oo(e)&&e[aa]===Qa.css,co=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),lo=co(Gi),uo=co(`.`),fo=co(`?`),po=co(`@`),mo=co(`on`),ho=co(Wi,!1),go=e=>ho(e)&&qi.test(e?.trim()??``),_o=({type:e,value:t})=>e===Yi.spread||e===Yi.directive||ho(t),vo=e=>ro.has(e),yo=e=>go(e)?Yi.directive:lo(e)?Yi.spread:uo(e)?Yi.property:po(e)||mo(e)?Yi.event:fo(e)?Yi.boolean:Yi.attribute,bo=e=>lo(e)?e.substring(3):go(e)?e:uo(e)||po(e)||fo(e)?e.substring(1):mo(e)?e.substring(2):e;function xo(e){let t=[],n=Ki.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=Ki.exec(e)}return t}var So=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function Co(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,So,n)}return()=>{Reflect.deleteProperty(e,So)}}function wo(e){return Reflect.get(e,So)??null}function To(e){return Vi(e)&&!Ri(e)&&!Li(e)||so(e)?String(e):``}var Eo={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?To(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=wo(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=Ei(e,t),r=Co(e,t);return()=>{n(),r()}}};function Do(e){"@babel/helpers - typeof";return Do=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},Do(e)}function Oo(e,t){if(Do(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Do(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ko(e){var t=Oo(e,`string`);return Do(t)==`symbol`?t:t+``}function Ao(e,t,n){return(t=ko(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jo,Mo=function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});jo=Symbol.iterator;var No=class{constructor(e={}){Ao(this,`type`,`comment`),Ao(this,`value`,``),Ao(this,`attrs`,void 0),Ao(this,`parent`,null),Ao(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[jo](){if(yield this,this.children)for(let e of this.children)yield*e}},Po=e=>!!e&&e!==`false`;function Fo(e){let t=({type:t,value:n},r=!1)=>t===Mo.element?e.createElement(n,r):t===Mo.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case Yi.attribute:e.setAttribute(t,r,i??``,!1);break;case Yi.boolean:Po(i)&&e.setAttribute(t,r,``,!1);break;case Yi.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 O=Fo(Eo);O.setAttr,O.insertBeforeNode,O.insertAfterNode,O.removeNode,O.rangeNodes,O.removeRange;var Io=O.isHostNode;function Lo(e,{type:t,name:n,value:r}){switch(t){case Yi.attribute:case Yi.property:Reflect.set(e,n,r);break;case Yi.boolean:Reflect.set(e,n,Po(r))}}var Ro=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function zo(e,t){if(e===t)return!0;let n=Bi(e)?e:{},r=Bi(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 Bo=e=>zi(e)&&Ni(e[0])&&(Li(e[1])||Mi(e[1])||Bi(e[1])),Vo=()=>{},Ho=e=>e instanceof HTMLElement,Uo=e=>e instanceof SVGElement,Wo=e=>e instanceof Promise,Go=new WeakMap,Ko=new WeakMap,qo=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,Zo=new WeakMap,Qo=new WeakMap,$o=new WeakMap,es=class{constructor(e,{name:t,value:n},r=O){T(this,Go,void 0),T(this,Ko,void 0),T(this,qo,void 0),T(this,Jo,void 0),T(this,Yo,[]),T(this,Xo,[]),T(this,Zo,void 0),T(this,Qo,null),T(this,$o,null),E(Go,this,r),E(Ko,this,e),E(qo,this,t),E(Jo,this,n),E(Yo,this,xo(n??``)),E(Zo,this,D(Yo,this).length===1&&(n??``).trim()===D(Yo,this)[0][0])}commit(e){let t=D(Yo,this).map(([t,n])=>e[n]);if(Ro(D(Xo,this),t))return;let n=t[t.length-1];if(D(qo,this)===`class`)this.classCommit(n);else if(D(qo,this)===`style`)this.styleCommit(n);else if(D(Zo,this))D(Go,this).setAttribute(D(Ko,this),D(qo,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(D(Yo,this)[n][0]),To(t)),D(Jo,this)??``);D(Go,this).setAttribute(D(Ko,this),D(qo,this),e.trim(),!1)}E(Xo,this,t)}classCommit(e){let t=D(Ko,this);if(!Ho(t)&&!Uo(t))return;let n=D(Xo,this)[D(Xo,this).length-1];if(n===e||zi(n)&&zi(e)&&Ro(n,e)||Bi(n)&&Bi(e)&&zo(n,e))return;let r=[...t.classList],i=ns(e);if(Ri(D($o,this)))E($o,this,r);else{let e=D($o,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=D(Ko,this);if(!Ho(t)&&!Uo(t))return;let n=D(Xo,this)[D(Xo,this).length-1];if(zo(n,e))return;let r=ts(t),i=Bi(e)?e:{};if(Ri(D(Qo,this)))E(Qo,this,r);else{let e=D(Qo,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 ts(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 ns(e,t=[]){if(!e)return t;if(so(e))return t.push(To(e)),t;if(Vi(e))t.push(To(e));else if(Ai(e)){if(zi(e))for(let n=0;n<e.length;n++)e[n]&&ns(e[n],t);else for(let n in e)e[n]&&t.push(To(n))}return t}var rs=new WeakMap,is=new WeakMap,as=new WeakMap,os=new WeakMap,ss=new WeakMap,cs=class{constructor(e,{name:t,value:n},r=O){T(this,rs,void 0),T(this,is,void 0),T(this,as,void 0),T(this,os,[]),T(this,ss,[]),E(rs,this,r),E(is,this,e),E(as,this,t),E(os,this,xo(n??``))}commit(e){let t=D(os,this).map(([t,n])=>e[n]);if(Ro(D(ss,this),t))return;let n=t[t.length-1];Po(n)?D(rs,this).setAttribute(D(is,this),D(as,this),``,!1):D(rs,this).removeAttribute(D(is,this),D(as,this)),E(ss,this,t)}},ls=e=>zi(e)&&Reflect.get(e,ia)===Ja.attribute,us=new WeakMap,ds=new WeakMap,fs=new WeakMap,ps=new WeakMap,ms=new WeakMap,hs=class{constructor(e,{name:t}){T(this,us,void 0),T(this,ds,void 0),T(this,fs,null),T(this,ps,null),T(this,ms,null),E(us,this,e),E(ds,this,xo(t)[0])}commit(e){let[,t]=D(ds,this),n=e[t];if(!ls(n))return;let[r,i]=n;if(D(fs,this)!==i)D(ms,this)?.call(this),E(ps,this,i({node:D(us,this)})),E(fs,this,i),E(ms,this,D(ps,this)?.call(this,r));else{let e=D(ps,this)?.call(this,r);D(ms,this)!==e&&(D(ms,this)?.call(this),E(ms,this,e))}}destroy(){D(ms,this)?.call(this)}},gs=new WeakMap,_s=new WeakMap,vs=new WeakMap,ys=new WeakMap,bs=new WeakMap,xs=class{constructor(e,{name:t,value:n},r=O){T(this,gs,void 0),T(this,_s,void 0),T(this,vs,void 0),T(this,ys,[]),T(this,bs,[]),E(gs,this,r),E(_s,this,e),E(vs,this,t),E(ys,this,xo(n??``))}commit(e){let t=D(ys,this).map(([t,n])=>e[n]).filter(e=>Ni(e)||Bo(e));Ro(D(bs,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=Ss(e);D(gs,this).addEventListener(D(_s,this),D(vs,this),t,n)}),E(bs,this,t))}clear(){D(bs,this).forEach(e=>{let[t,n]=Ss(e);D(gs,this).removeEventListener(D(_s,this),D(vs,this),t,n)})}destroy(){this.clear()}};function Ss(e){return Ni(e)?[e,void 0]:e}var Cs=new WeakMap,ws=new WeakMap,Ts=new WeakMap,Es=new WeakMap,Ds=class{constructor(e,{name:t,value:n}){T(this,Cs,void 0),T(this,ws,void 0),T(this,Ts,[]),T(this,Es,[]),E(Cs,this,e),E(ws,this,t),E(Ts,this,xo(n??``))}commit(e){let t=D(Ts,this).map(([t,n])=>e[n]);if(Ro(D(Es,this),t))return;let n=t[t.length-1];Reflect.set(D(Cs,this),D(ws,this),n,D(Cs,this)),E(Es,this,t)}},Os=new WeakMap,ks=new WeakMap,As=new WeakMap,js=class{constructor(e,{name:t}){T(this,Os,void 0),T(this,ks,void 0),T(this,As,null),E(Os,this,e),E(ks,this,xo(t)[0])}commit(e){let[,t]=D(ks,this),n=e[t];!Bi(n)||zo(D(As,this),n)||(Object.keys(n).forEach(e=>Reflect.set(D(Os,this),e,n[e],D(Os,this))),E(As,this,n))}},Ms=(e,t,n=O)=>t.type===Yi.attribute?new es(e,t,n):t.type===Yi.boolean?new cs(e,t,n):t.type===Yi.event?new xs(e,t,n):t.type===Yi.property?new Ds(e,t):t.type===Yi.spread?new js(e,t):new hs(e,t),Ns=new WeakMap,Ps=new WeakMap,Fs=new WeakMap,Is=new WeakMap,Ls=new WeakMap,Rs=class{constructor(e,{value:t},n=O){T(this,Ns,void 0),T(this,Ps,void 0),T(this,Fs,void 0),T(this,Is,[]),T(this,Ls,[]),E(Ns,this,n),E(Ps,this,e),E(Fs,this,t),Fi(t)&&E(Is,this,xo(t))}commit(e){let t=D(Is,this).map(([t,n])=>e[n]);if(Ro(D(Ls,this),t))return;E(Ls,this,t);let n=D(Ls,this).reduce((e,t,n)=>e.replace(new RegExp(D(Is,this)[n][0]),Vi(t)&&!Ri(t)&&!Li(t)?String(t):``),D(Fs,this)??``);D(Ns,this).setText(D(Ps,this),n)}},zs=new WeakMap,Bs=new WeakMap,Vs=new WeakMap,Hs=new WeakMap,Us=class{constructor(e,{name:t,value:n}){T(this,zs,void 0),T(this,Bs,void 0),T(this,Vs,[]),T(this,Hs,[]),E(zs,this,e),E(Bs,this,t),E(Vs,this,xo(n??``))}commit(e){let t=D(Vs,this).map(([t,n])=>e[n]);if(Ro(D(Hs,this),t))return;let n=t[t.length-1];Reflect.set(D(zs,this),D(Bs,this),n),E(Hs,this,t)}},Ws=function(e){return e.create=`create`,e.move=`move`,e}({});function Gs(e){let t=[],n=new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===jc.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function Ks(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=Vc(e),a={type:i,key:i===jc.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function qs(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 Js=new WeakMap,Ys=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Qs=class{constructor(e,t,n=O){T(this,Js,void 0),T(this,Ys,void 0),T(this,Xs,void 0),T(this,Zs,[]),E(Ys,this,e),E(Xs,this,t),E(Js,this,n)}commit(e){let t=qs(Gs(D(Zs,this)),Ks(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case Ws.create:let t=D(Js,this).createMarker(``);i===0?D(Js,this).insertAfterNode(t,D(Ys,this)):D(Zs,this).length?D(Js,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:D(Zs,this)[i-1].endNode):D(Js,this).insertBeforeNode(t,D(Xs,this)),n[i]=new tc(t,e[i],D(Js,this));break;case Ws.move:if(n[i]=D(Zs,this)[r],i===r)return;i===0?D(Zs,this)[r].insert(`after`,D(Ys,this)):D(Zs,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:D(Zs,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>D(Zs,this)[e].destroy()),E(Zs,this,Array.from(n)),D(Zs,this).forEach((t,n)=>t.commit(e[n]))}destroy(){D(Zs,this).forEach(e=>e.destroy())}},$s=new WeakMap,ec=new WeakMap,tc=class{constructor(e,t,n=O){T(this,$s,void 0),T(this,ec,void 0),Ao(this,`startNode`,void 0),Ao(this,`endNode`,void 0),Ao(this,`type`,void 0),Ao(this,`value`,void 0),E(ec,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=Vc(t),E($s,this,Gc(this.type,this.startNode,this.endNode,n))}commit(e){D($s,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...D(ec,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(ec,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(ec,this).insertAfterNode(e,t))}destroy(){D($s,this).destroy?.(),D(ec,this).removeRange(this.startNode,this.endNode),D(ec,this).removeNode(this.startNode),D(ec,this).removeNode(this.endNode)}},nc=new WeakMap,rc=new WeakMap,ic=new WeakMap,ac=new WeakMap,oc=new WeakMap,sc=new WeakMap,cc=class{constructor(e,t,n=O){T(this,nc,void 0),T(this,rc,void 0),T(this,ic,void 0),T(this,ac,null),T(this,oc,null),T(this,sc,void 0),E(rc,this,e),E(ic,this,t),E(nc,this,n)}commit(e){if(!Mc(e))return;let[t,n]=e;if(D(ac,this)!==n)this.clear(),E(oc,this,n(Xa(D(rc,this),D(ic,this),D(nc,this)))),E(ac,this,n),E(sc,this,D(oc,this)?.call(this,t));else{let e=D(oc,this)?.call(this,t);D(sc,this)!==e&&(this.clear(),E(sc,this,e))}}clear(){D(sc,this)?.call(this),D(nc,this).removeRange(D(rc,this),D(ic,this))}destroy(){this.clear()}},lc=class{constructor(e,t){}commit(e){}},uc=new WeakMap,dc=new WeakMap,fc=new WeakMap,pc=class{constructor(e,t,n=O){T(this,uc,void 0),T(this,dc,void 0),T(this,fc,null),E(dc,this,t),E(uc,this,n)}commit(e){D(fc,this)!==e&&(D(fc,this)&&D(uc,this).removeNode(D(fc,this)),D(uc,this).insertBeforeNode(e,D(dc,this)),E(fc,this,e))}},mc=new WeakMap,hc=new WeakMap,gc=new WeakMap,_c=new WeakMap,vc=new WeakMap,yc=new WeakMap,bc=class{constructor(e,t,n=O){T(this,mc,void 0),T(this,hc,void 0),T(this,gc,void 0),T(this,_c,null),T(this,vc,null),T(this,yc,Vo),E(hc,this,e),E(gc,this,t),E(mc,this,n)}commit(e){D(_c,this)!==e&&(this.clear(),Wo(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=xc(e);E(yc,this,n),t.then(e=>{let t=Vc(e);E(vc,this,Gc(t,D(hc,this),D(gc,this),D(mc,this))),D(vc,this)?.commit(e)}),E(_c,this,e)}partClear(){D(vc,this)?.destroy?.(),D(mc,this).removeRange(D(hc,this),D(gc,this))}clear(){D(yc,this).call(this),this.partClear(),E(yc,this,Vo)}destroy(){this.clear()}};function xc(e){let t=Vo,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var Sc=new WeakMap,Cc=new WeakMap,wc=new WeakMap,Tc=class{constructor(e,t,n=O){T(this,Sc,void 0),T(this,Cc,void 0),T(this,wc,null),E(Sc,this,n),E(Cc,this,n.createText(``)),n.insertAfterNode(D(Cc,this),e)}commit(e){D(wc,this)!==e&&(D(Sc,this).setText(D(Cc,this),Ri(e)||Li(e)?``:String(e)),E(wc,this,e))}},Ec=new WeakMap,Dc=new WeakMap,Oc=new WeakMap,kc=new WeakMap,Ac=class{constructor(e,t,n=O){T(this,Ec,void 0),T(this,Dc,void 0),T(this,Oc,void 0),T(this,kc,null),E(Dc,this,e),E(Oc,this,t),E(Ec,this,n)}commit(e){let{strings:t,values:n}=e;D(kc,this)&&!D(kc,this).equalStrings(t)&&(D(kc,this).destroy(),E(kc,this,null)),D(kc,this)||(E(kc,this,new El(e,D(Dc,this),D(Oc,this),D(Ec,this))),D(kc,this).insert(`before`,D(Oc,this))),D(kc,this).commit(n)}destroy(){D(kc,this)?.destroy()}},jc=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}({}),Mc=e=>zi(e)&&Reflect.get(e,ia)===Ja.node,Nc=e=>t=>t instanceof e,Pc=Nc(Tc),Fc=Nc(Ac),Ic=Nc(Qs),Lc=Nc(pc),Rc=Nc(bc),zc=Nc(lc),Bc=Nc(cc),Vc=e=>Vi(e)?`primitive`:oo(e)?`templateLiterals`:Mc(e)?`directive`:zi(e)?`array`:Io(e)?`node`:Ni(e)?`function`:`object`,Hc={primitive:Pc,templateLiterals:Fc,array:Ic,node:Lc,function:zc,object:Rc,directive:Bc},Uc={primitive:Tc,templateLiterals:Ac,array:Qs,node:pc,function:lc,object:bc,directive:cc},Wc=(e,t)=>Hc[e](t),Gc=(e,t,n,r=O)=>new Uc[e](t,n,r),Kc=new WeakMap,qc=new WeakMap,Jc=new WeakMap,Yc=new WeakMap,Xc=new WeakMap,Zc=new WeakMap,Qc=new WeakMap,$c=new WeakMap,el=new WeakMap,tl=new WeakMap,nl=new WeakMap,rl=new WeakMap,il=class{constructor(e,t,n,r,i=O){T(this,Kc,void 0),T(this,qc,void 0),T(this,Jc,void 0),T(this,Yc,void 0),T(this,Xc,void 0),T(this,Zc,[]),T(this,Qc,[]),T(this,$c,null),T(this,el,ja({},{shallow:!0})),T(this,tl,null),T(this,nl,null),T(this,rl,void 0),E(Kc,this,i),E(rl,this,i.createEventBus()),E(qc,this,e),E(Jc,this,t),E(Xc,this,n),E(Yc,this,xo(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>Lo(D(el,this),e)),n.attrs?.forEach(e=>{e.type===Yi.directive?D(Zc,this).push(e):e.type===Yi.spread?r.push(new js(D(el,this),e)):e.type===Yi.event?r.push(new xs(D(rl,this),e,i)):r.push(new Us(D(el,this),e))})}createContext(){return D(Kc,this).createComponentContext(D(qc,this),D(rl,this))}commit(e){let[,t]=D(Yc,this),n=e[t];if(!Ni(n)||D(tl,this)===n){D(Qc,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),sa(this);let i=n.call(r,D(el,this),r);sa(null),D(Zc,this).length&&D(Qc,this).push(...D(Zc,this).map(e=>new hs(r,e))),fa(this,Xi);let a=!1;E(nl,this,Ea(()=>{let e=i(),t=Vc(e);Wc(t,D($c,this))||(this.partClear(),E($c,this,Gc(t,D(qc,this),D(Jc,this),D(Kc,this)))),fa(this,a?ea:$i),D($c,this)?.commit(e),a?fa(this,na):(fa(this,ta),a=!0)})),D(Qc,this).forEach(t=>t.commit(e)),fa(this,Zi),E(tl,this,n)}partClear(){D($c,this)?.destroy?.(),D(Kc,this).removeRange(D(qc,this),D(Jc,this))}clear(){D(Kc,this).removeRange(D(qc,this),D(Jc,this)),fa(this,Qi),D(Qc,this).forEach(e=>e.destroy?.()),D(nl,this)?.call(this),E(Qc,this,[]),E(nl,this,null),pa(this)}destroy(){this.clear(),this.partClear()}},al,ol,sl,cl,ll=va((al=new WeakMap,ol=new WeakMap,sl=new WeakMap,cl=new WeakMap,class{constructor(e,t,n,r=O){T(this,al,void 0),T(this,ol,void 0),T(this,sl,void 0),T(this,cl,void 0),E(al,this,r),E(ol,this,r.createMarker(``)),E(sl,this,r.createMarker(``)),E(cl,this,new il(D(ol,this),D(sl,this),t,n,r)),r.insertBeforeNode(D(ol,this),e),r.insertAfterNode(D(sl,this),e),r.removeNode(e)}commit(e){D(cl,this).commit(e)}destroy(){D(cl,this).destroy?.(),D(al,this).removeNode(D(ol,this)),D(al,this).removeNode(D(sl,this))}})),ul=new WeakMap,dl=new WeakMap,fl=new WeakMap,pl=new WeakMap,ml=new WeakMap,hl=new WeakMap,gl=class{constructor(e,{value:t},n=O){T(this,ul,void 0),T(this,dl,void 0),T(this,fl,void 0),T(this,pl,void 0),T(this,ml,null),T(this,hl,null),E(ul,this,n),E(dl,this,n.createMarker(``)),E(fl,this,n.createMarker(``)),E(pl,this,xo(t)[0]),n.insertBeforeNode(D(dl,this),e),n.insertAfterNode(D(fl,this),e),n.removeNode(e)}commit(e){let[,t]=D(pl,this),n=e[t];if(D(ml,this)===n)return;let r=Vc(n);Wc(r,D(hl,this))||(Ri(D(hl,this))||this.clear(),E(hl,this,Gc(r,D(dl,this),D(fl,this),D(ul,this)))),D(hl,this)?.commit(n),E(ml,this,n)}clear(){D(hl,this)?.destroy?.(),D(ul,this).removeRange(D(dl,this),D(fl,this))}destroy(){this.clear(),D(ul,this).removeNode(D(dl,this)),D(ul,this).removeNode(D(fl,this))}};function _l(e=[],t,n=!1,r=[],i=O){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new ll(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 Rs(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new gl(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>Ms(a,e,i))),e.children&&_l(e.children,a,e.isSvg||n,r,i))}),r}function vl(e,t=!1,n=O){let r=n.createFragment();return[r,_l(e.children,r,t,[],n)]}var yl=new WeakMap,bl=new WeakMap,xl=new WeakMap,Sl=new WeakMap,Cl=new WeakMap,wl=new WeakMap,Tl=new WeakMap,El=class{constructor(e,t,n,r=O){if(T(this,yl,void 0),T(this,bl,void 0),T(this,xl,void 0),T(this,Sl,null),T(this,Cl,[]),T(this,wl,void 0),T(this,Tl,!1),E(yl,this,r),E(bl,this,r.createMarker(``)),E(xl,this,r.createMarker(``)),E(wl,this,e.strings),e[aa]!==Qa.html&&e[aa]!==Qa.svg)return;let[i,a]=vl(e.template.node,vo(e[aa]),r);E(Sl,this,i),E(Cl,this,a),t&&n?(E(bl,this,t),E(xl,this,n),E(Tl,this,!0)):(r.prependChild(i,D(bl,this)),r.appendChild(i,D(xl,this)))}equalStrings(e){return D(wl,this)===e}commit(e){D(Cl,this).forEach(t=>t.commit(e))}insert(e,t){D(Sl,this)&&(e===`before`?D(yl,this).insertBeforeNode(D(Sl,this),t):e===`after`?D(yl,this).insertAfterNode(D(Sl,this),t):D(yl,this).appendChild(t,D(Sl,this)),E(Sl,this,null))}destroy(){D(Cl,this).forEach(e=>e.destroy?.()),D(yl,this).removeRange(D(bl,this),D(xl,this)),D(Tl,this)||(D(yl,this).removeNode(D(bl,this)),D(yl,this).removeNode(D(xl,this)))}},Dl=function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),Ol={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},kl=e=>t=>e===t,Al=e=>t=>e.test(t),jl={doubleQuote:kl(Ol.doubleQuote),singleQuote:kl(Ol.singleQuote),whiteSpace:Al(Ol.whiteSpace),string:Al(Ol.string),breakString:Al(Ol.breakString),lt:kl(Ol.lt),gt:kl(Ol.gt),slash:kl(Ol.slash),equal:kl(Ol.equal),hyphen:kl(Ol.hyphen),exclamationPoint:kl(Ol.exclamationPoint)},Ml=e=>t=>jl.lt(e[t])&&jl.exclamationPoint(e[t+1])&&jl.hyphen(e[t+2])&&jl.hyphen(e[t+3]);function Nl(e){let t=[],n=0,r=()=>n<e.length,i=Ml(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(jl.whiteSpace(s)){let i=``;for(;r()&&jl.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(jl.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(jl.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(jl.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(jl.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(jl.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!jl.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(jl.singleQuote(s)){let i=``;for(s=e[++n];r()&&!jl.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(jl.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(jl.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(jl.lt(s)){a(i(n)?`comment`:`element`);continue}if(jl.string(s)){let i=``;for(;r()&&jl.string(s)&&!jl.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var Pl=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,Fl=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,Il=Fl(`type`),Ll=Fl(`value`),Rl=Il(Dl.lt),zl=Il(Dl.gt),Bl=Il(Dl.slash),Vl=Il(Dl.equal),Hl=Il(Dl.string),Ul=Il(Dl.whiteSpace),Wl=Ll(`!--`),Gl=Ll(`--`),Kl=e=>{let t=Rl(e),n=Hl(e);return e=>t(e)&&n(e+1)},ql=e=>{let t=Rl(e),n=Bl(e),r=Hl(e),i=zl(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},Jl=e=>{let t=Rl(e),n=Bl(e),r=zl(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},Yl=e=>{let t=Bl(e),n=zl(e);return e=>t(e)&&n(e+1)},Xl=e=>Pl.test(e),Zl=e=>{let t=Rl(e),n=Hl(e),r=Wl(e);return e=>t(e)&&n(e+1)&&r(e+1)},Ql=e=>{let t=Hl(e),n=Gl(e),r=zl(e);return e=>t(e)&&n(e)&&r(e+1)},$l=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},eu=$l(`attrs`),tu=$l(`children`);function nu(e){let t=new No({type:Mo.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=Kl(e),a=ql(e),o=Jl(e),s=Yl(e),c=Zl(e),l=Ql(e),u=Rl(e),d=zl(e),f=Vl(e),p=Ul(e),m=Hl(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 No({parent:t,type:Mo.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 No({parent:t,type:Mo.comment,value:i})}if(i(n)){f=e[++n];let i=Xl(f.value),c=new No({parent:t,type:Mo.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){eu(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)tu(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)tu(t)(g(t));return t}var ru=e=>nu(Nl(e)),iu=(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)),au=Symbol.iterator,ou=class e{get isMarker(){return ho(this.value)}get isMarkerOnly(){return go(this.value)}get isSvg(){return this.type===Mo.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===Mo.element&&this.isMarkerOnly}constructor(t,n=null){if(Ao(this,`type`,Mo.comment),Ao(this,`value`,``),Ao(this,`staticAttrs`,void 0),Ao(this,`attrs`,void 0),Ao(this,`parent`,null),Ao(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=lu(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())}*[au](){if(yield this,this.children)for(let e of this.children)yield*e}};function su(e){let t=new ou(e);for(let e of t)e.type===Mo.text&&!go(e.value)&&cu(e);return t}function cu(e){let t=xo(e.value);e.value.replace(Ki,Wi).split(Wi).reduce((n,r,i)=>(i<t.length?n.push(new ou(new No({type:Mo.text,value:r}),e.parent),new ou(new No({type:Mo.text,value:t[i][0]}),e.parent)):n.push(new ou(new No({type:Mo.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&Ji.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 lu(e=[]){let t=iu(e,e=>bo(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=yo(i.name);if(a===Yi.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:yo(e.name),name:bo(e.name),value:e.value})));else if(a===Yi.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:bo(i.name)};e&&(o.value=e),_o(o)?r.push(o):n.push(o)}else{let e={type:a,name:bo(i.name)};i.value&&(e.value=i.value),_o(e)?r.push(e):n.push(e)}return e},[[],[]])}var uu=e=>(t,...n)=>{let r={strings:t,values:n,[aa]:e};if(to.has(t))return r.template=to.get(t),r;let i=su(ru(t.reduce((e,t,r)=>(r<n.length?e.push(t,io(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),to.set(t,r.template),r},du=uu(Qa.html),fu=uu(Qa.svg);function pu(e){let t=Fo(e),n=new WeakMap;return{html:du,svg:fu,render:(e,r)=>{if(!oo(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 El(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var mu=Za((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=O})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=yu(a,o,s),l=c.values,u=qs(vu(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case Ws.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 _u(i,l[o].value,l[o].key,n);break;case Ws.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}}),hu=new WeakMap,gu=new WeakMap,_u=class{constructor(e,t,n,r=O){T(this,hu,void 0),T(this,gu,void 0),Ao(this,`startNode`,void 0),Ao(this,`endNode`,void 0),Ao(this,`type`,void 0),Ao(this,`key`,void 0),E(gu,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=Vc(t),E(hu,this,Gc(this.type,this.startNode,this.endNode,r))}commit(e){D(hu,this).commit(e)}insert(e,t){let n=[this.startNode,...D(gu,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(gu,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(gu,this).insertAfterNode(e,t))}destroy(){D(hu,this).destroy?.(),D(gu,this).removeRange(this.startNode,this.endNode),D(gu,this).removeNode(this.startNode),D(gu,this).removeNode(this.endNode)}};function vu(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 yu(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:Vc(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var bu={vCSSStyleSheetMap:new Map,hostContextMap:new Map,globalOrder:[],orderedSheets:null},xu=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,Su=null;function Cu(){return Su===null&&(Su=wu()),Su}function wu(){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 Tu(){return bu}function Eu(e){let t=Tu(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=xu?new CSSStyleSheet:null,o=xu?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),ju(s),n}function Du(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 Ou(e){return e.orderedSheets||=Du(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function ku(e,t){e.adoptedStyleSheets=[...t]}function Au(){let e=Tu(),t=Ou(e);e.hostContextMap.forEach((e,n)=>ku(n,t))}function ju(e){if(!xu){Mu();return}let t=Tu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,Au();return}if(i.push(r),!Cu()){Au();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function Mu(){let e=Tu(),t=Du(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=Nu(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function Nu(e,t,n){for(let r=t;r<e.length;r++){let t=n.get(e[r]);if(t)return t}return null}function k(e){function t(t){return{type:e,payload:t}}return t.toString=()=>`${e}`,t.type=e,t}function*Pu(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*Pu(e,t,r):Ni(r)?yield*Pu(e,t,r(e,t)):yield r}var Fu=(e,t,n)=>[...Pu(e,t,n)],Iu=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*Lu(e){yield e}var Ru=function*(e){for(let t of e)t.length&&(yield t)};function zu({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?ja(t):t,a=Hi(),o=Hi(),s=Iu(Ru),c=t=>{Di(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=Fu(i,e,t);a.next(n)},u=(...e)=>{Oi(()=>l(...e))},d=a.subscribe(e=>{let t=s(Lu(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=Iu(...e,Ru),()=>{s=Iu(Ru)}),destroy:()=>{d(),f()}}}var Bu=`__RHTML_CSS_DIAGNOSTICS__`,Vu=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,Hu=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${Vu(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)},Uu;function Wu(){if(Uu!==void 0)return Uu;let e=Reflect.get(globalThis,Bu);return e?typeof e==`function`?e:Hu:null}function Gu(){return Wu()!==null}function Ku(e,t){if(e.length===0)return;let n=Wu();if(n)for(let r of e)n(r,t)}var qu=[``];function Ju(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function Yu(e,t={}){let n=t.rules??qu,r=t.rules===void 0?null:Ju(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var Xu=`rhtml-scope`;function Zu(e,t){return e.split(Xu).join(t)}var Qu=/^(?::host\b|::slotted\()/;function $u(e){return Qu.test(e.trim())}function ed(e){return e.type===o}function td(e){return e.type===n}function nd(e){return e.type.charCodeAt(0)===64}function rd(e){return Array.isArray(e.children)?e.children:[]}function id(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function ad(e){let t=[];for(let n of rd(e))td(n)&&t.push(id(n));return t}function od(e){return rd(e).filter(ed)}function sd(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 cd=new Set([r,t,a,i]);function ld(e,t,n){let i=[],a=new Set,o=!1,s=(e,t)=>{for(let n of e){if(ed(n)){o=!0,ud(n,t,i);continue}if(nd(n)){if(rd(n).length===0){if(!cd.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,sd(n.type)){s(rd(n),t);continue}od(n).length>0&&dd(n,a,i),s(rd(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(td)&&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.`}),fd(t,i);let c=md(n.source);return c&&i.push(c),i}function ud(e,t,n){if(e.props.every(e=>e.length===0)){let t=ad(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 pd(e.value)){let r=t.trim();if($u(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 dd(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 fd(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 \`${Xu}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function pd(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 md(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 hd(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+=gd(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function gd(e,t){return e.body===void 0?`${e.prelude??_d(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function _d(e,t){return(t===void 0?e:e.map(e=>Zu(e,t))).join(`,`)}var vd=[],yd=e=>e.length>0;function bd(e,t){let n=[];return Sd(e,vd,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(xd)}function xd(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function Sd(e,t,n,r){let i=r.length,a=[];for(let i of e)td(i)?a.push(id(i)):ed(i)?Cd(i,t,r):nd(i)&&wd(i,t,n,r);if(a.length===0)return;let o=n.filter(yd);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function Cd(e,t,n){let r=e.props.filter(yd);if(r.length===0)return;let i=ad(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function wd(e,t,n,r){let i=rd(e);if(i.length===0)return;if(sd(e.type)){let a=[];if(Sd(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=od(e);if(a.length>0){let n=[];for(let e of a)Cd(e,vd,n);let i=hd(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=ad(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function Td(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 Ed=7;function Dd(e){return`_${Td(e).toString(36).padStart(Ed,`0`)}`}var Od=[];function kd(e,t={}){let n=t.mode!==`global`,r=n?[Xu]:[``],i=Yu(e,{rules:r}),a=bd(i,{rules:r,plugins:t.plugins}),o=hd(a),s=Dd(o);return{rules:a,canonicalText:o,identifier:s,cssText:hd(a,{scope:`.${s}`}),diagnostics:t.dev?ld(i,a,{source:e,scoped:n}):Od}}function Ad(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function jd(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function Md(e){let t=[];for(let n=0;n<e.length-1;n++){let r=Ad(e[n]),i=jd(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function Nd(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function Pd(e,t){return so(e)?t===`statement`?Nd(e[eo]??``):`.${String(e)}`:Vi(e)&&!Ri(e)&&!Li(e)?String(e):``}function Fd(e,t,n){if(so(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}(Id(n,`'`)||Id(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function Id(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function Ld(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=Pd(n[i],t[i].kind);Fd(t[i],n[i],a),r+=a}return r}var Rd=32,zd=`\0`;function Bd(e){return(t,...n)=>{let r=Hd(t,e),i=Ud(r.node,n),a=Eu(i);return{strings:t,values:n,template:r,[aa]:Qa.css,[eo]:i.source,toString:()=>a}}}var Vd=Object.assign(Bd(`scoped`),{global:Bd(`global`)});function Hd(e,t){let n=no.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:Md(r),mode:t,memo:new Map},a=Object.freeze({node:i});return no.set(e,a),a}function Ud(e,t){let n=e.slots.map((e,n)=>Pd(t[n],e.kind)).join(zd),r=e.memo.get(n);if(r)return r;let i=Ld(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=kd(i,{mode:e.mode,dev:Gu()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(Ku(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>Rd){let[t]=e.memo.keys();e.memo.delete(t)}return u}te.autoDrawEnabled=!1,Reflect.set(te,`DD`,ee);const Wd=new Set,Gd=new Set,Kd=new Map,qd=[],Jd=[],Yd=new Set;let Xd=!1,Zd=!1,Qd=0;function $d(){return Qd}function ef(){Qd+=1;try{Yd.forEach(e=>e())}finally{Xd=!1,Zd=!1;for(let e of Wd){if(Kd.has(e)){Gd.add(e);continue}e.getStage()instanceof y&&e.batchDraw()}Wd.clear(),qd.splice(0).forEach(e=>e())}}function tf(e){return Yd.add(e),()=>{Yd.delete(e)}}function nf(){queueMicrotask(()=>{if(Zd){Zd=!1,nf();return}ef()})}function rf(){Zd=!0,!Xd&&(Xd=!0,nf())}function af(e){if(Kd.has(e)){Gd.add(e);return}Wd.add(e),rf()}function of(e){Kd.set(e,(Kd.get(e)??0)+1)}function sf(e){let t=(Kd.get(e)??0)-1;t>0?Kd.set(e,t):Kd.delete(e),Jd.splice(0).forEach(e=>e()),t<=0&&Gd.delete(e)&&af(e)}function cf(){return new Promise(e=>{Jd.push(()=>e())})}function lf(){return Kd.size?cf().then(lf):Xd?new Promise(e=>{qd.push(()=>e())}):Promise.resolve()}const uf=Symbol(`r-html/konva-slot`),df=Symbol(`r-html/konva-ledger`),ff=Symbol(`r-html/konva-virtual`),pf=Symbol(`r-html/konva-fragment`),mf=new Set([`class`,`style`,`zIndex`]),hf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},gf={"k-layer":()=>new f,"k-group":()=>new d,"k-rect":()=>new _,"k-text":()=>new v,"k-path":()=>new g,"k-line":()=>new h,"k-circle":()=>new m};function _f(){}function vf(){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 yf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,ff,e),Object.defineProperty(n,"nextSibling",{get:vf}),Object.defineProperty(n,"parentNode",{get:vf}),n}const bf=e=>e&&typeof e==`object`?Reflect.get(e,ff)??null:null,xf=e=>e instanceof p,Sf=e=>xf(e)&&Reflect.get(e,pf)===!0,Cf=e=>Reflect.get(e,uf);function wf(e){let t=Cf(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,uf,n),n}function Tf(e){let t=Reflect.get(e,df);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,df,n),n}const Ef=e=>Cf(e)?.parent??null,Df=e=>Cf(e)?.next?.node??null,Of=new Set,kf=new WeakMap;function Af(e){let t=e;for(;t;){if(t instanceof f)return t;t=Ef(t)}return null}function jf(e){let t=Af(e);t&&af(t)}function Mf(e){Tf(e).dirty=!0,Of.add(e),jf(e),rf()}function Nf(e){let t=e.parent;if(!t)return;let n=Tf(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,Mf(t)}function Pf(e,t,n){Nf(t);let r=Tf(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,Mf(e)}function Ff(e,t){if(!(!xf(t)||Sf(e))){if(e instanceof y){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(xf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function If(e,t,n){if(t===n)return;let r=n?wf(n):null;if(!Sf(t)){Ff(e,t),Pf(e,wf(t),r);return}let i=[];for(let e=Tf(t).first;e;e=e.next)i.push(e);for(let t of i)Ff(e,t.node),Pf(e,t,r)}function Lf(e){Of.delete(e),Reflect.deleteProperty(e,uf),Reflect.deleteProperty(e,df),e.destroy()}function Rf(e,t){let n=t.getParent();n!==e&&(n&&Of.has(n)&&Uf(n),hf.attach+=1,e.add(t))}function zf(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 Bf(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(hf.setZIndex+=1,t.setZIndex(n))})}function Vf(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 Hf(e){if(hf.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=Tf(e).first;n;n=n.next)hf.scan+=1,xf(n.node)&&t.push(n.node);for(let n of t)Rf(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(!(!r.length&&zf(e.children,t))){hf.order+=1,e instanceof y?(r.forEach(e=>e.remove()),Bf(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),Vf(e,t));for(let e of r)hf.drop+=1,wf(e).doomed&&Lf(e)}}function Uf(e){let t=Tf(e);!t.dirty&&t.reconciledAt===$d()||(t.dirty=!1,t.reconciledAt=$d(),Hf(e))}tf(()=>{for(let e of Of)Uf(e);Of.clear()});function Wf(e){let t=e,n=Ef(t);for(;n;)t=n,n=Ef(t);return kf.get(t)??t}function Gf(e,t){if(!t)return;let n=Wf(e);if(xf(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 Kf=pu({createElement(e){let t=gf[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>yf(`text`,e),createMarker:e=>yf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,pf,!0),Reflect.set(e,`_validateAdd`,_f),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=Ef(t);n&&If(n,e,t)},appendChild(e,t){If(e,t,null)},prependChild(e,t){If(e,t,Tf(e).first?.node??null)},removeChild(e){let t=wf(e);Nf(t),xf(e)&&(t.doomed=!0,e.getParent()||Lf(e))},parentOf:Ef,nextSiblingOf:Df,setText(e,t){if(bf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!xf(e))return;if(mf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&Gf(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),jf(e))},removeAttribute(e,t){!xf(e)||e.attrs[t]===void 0||(e.setAttrs({[t]:void 0}),jf(e))},isHostNode:e=>xf(e)||bf(e)!==null,isMarker:e=>bf(e)===`marker`,isText:e=>bf(e)===`text`,isElement:e=>xf(e)&&!Sf(e),isFragment:e=>Sf(e),addEventListener(e,t,n,r){xf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){xf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:Wf,createComponentContext(e,t){return{get host(){let n=Wf(e);return n instanceof y?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return kf.set(e,t),()=>{kf.delete(e)}}}),A=Kf.html;function qf(e,t){if(!(e instanceof y))throw Error(`[konva-host] a konva template renders into a Stage`);Kf.render(e,t)}var Jf=(e,t)=>e*(1-t)/2;function Yf(e){return{originX:Ke(e.scrollLeft+Jf(e.width,e.zoomLevel),4),originY:Ke(e.scrollTop+Jf(e.height,e.zoomLevel),4)}}function j(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function Xf(e){return t=>C(t)&&e.includes(t)}function Zf(e){return t=>S(t)&&e.includes(t)}function Qf(e,t,n){return Reflect.get(e,t)??n}function $f(){let e=Date.now();return{updateAt:e,createAt:e}}function ep(e,t){let n=j(S,e,t);n(`updateAt`),n(`createAt`)}var tp=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[]});function np(e){let t=tp();if(!de(e)||x(e))return t;let n=j(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),t}var rp=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:$f()});function ip(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=rp(),r=j(C,e,n),i=j(se,e,n),a=j(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var ap={ASC:1,DESC:2},op=Object.values(ap),sp=()=>({id:``,indexId:``,columnId:``,orderType:ap.ASC,meta:$f()});function cp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=sp(),r=j(C,e,n);r(`id`),r(`indexId`),r(`columnId`),j(Zf(op),e,n)(`orderType`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var lp=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:$f()});function up(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=lp(),r=j(C,e,n),i=j(S,e.ui,n.ui),a=j(C,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var dp={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},fp=Object.values(dp),pp={ring:1,dash:2},mp=Object.values(pp),hp={left:1,right:2,top:4,bottom:8},gp=Object.values(hp),_p=()=>({id:``,identification:!1,relationshipType:dp.ZeroN,startRelationshipType:pp.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:hp.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:hp.bottom},meta:$f()});function vp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=_p(),r=j(C,e,n),i=j(se,e,n),a=j(S,e.start,n.start),o=j(C,e.start,n.start),s=j(S,e.end,n.end),c=j(C,e.end,n.end);r(`id`),i(`identification`),j(Zf(fp),e,n)(`relationshipType`),j(Zf(mp),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(Zf(gp),e.start,n.start)(`direction`),j(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),j(Zf(gp),e.end,n.end)(`direction`),j(Array.isArray,e.end,n.end)(`columnIds`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var yp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},bp=Object.values(yp),xp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256},Sp={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},Cp=Object.values(Sp),wp={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},Tp=Object.values(wp),Ep={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},Dp=Object.values(Ep),Op={none:1,camelCase:2,pascalCase:4,snakeCase:8},kp=Object.values(Op),Ap={none:1,doubleQuote:2,singleQuote:4,backtick:8},jp=Object.values(Ap),Mp={scroll:1,zoomLevel:2},Np=.1,Pp=1.5,Fp=2e3,Ip=2e4,Lp=xp.tableComment|xp.columnComment|xp.columnDataType|xp.columnDefault|xp.columnPrimaryKey|xp.columnNotNull|xp.relationship,Rp=()=>({width:2e3,height:2e3,scrollTop:0,scrollLeft:0,originX:0,originY:0,zoomLevel:1,show:Lp,database:wp.MySQL,databaseName:``,canvasType:yp.ERD,language:Ep.GraphQL,tableNameCase:Op.pascalCase,columnNameCase:Op.camelCase,bracketType:Ap.none,relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[Sp.columnName,Sp.columnDataType,Sp.columnNotNull,Sp.columnUnique,Sp.columnAutoIncrement,Sp.columnDefault,Sp.columnComment],maxWidthComment:-1,ignoreSaveSettings:0}),zp=e=>re(e,Fp,Ip),Bp=e=>re(e,Np,Pp),Vp=e=>re(e,60,200);function Hp(e){let t=Rp();if(!de(e)||x(e))return t;let n=j(S,t,e),r=j(C,t,e),i=j(se,t,e);if(S(e.width)&&(t.width=zp(e.width)),S(e.height)&&(t.height=zp(e.height)),S(e.zoomLevel)&&(t.zoomLevel=Bp(e.zoomLevel)),S(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=Vp(e.maxWidthComment)),n(`scrollTop`),n(`scrollLeft`),n(`show`),n(`ignoreSaveSettings`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),i(`relationshipOptimization`),j(Zf(Tp),t,e)(`database`),j(Zf(Dp),t,e)(`language`),j(Zf(kp),t,e)(`tableNameCase`),j(Zf(kp),t,e)(`columnNameCase`),j(Zf(jp),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&Cp.length===e.columnOrder.length&&ae(Cp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),S(e.originX)&&S(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:e,originY:n}=Yf(t);t.originX=e,t.originY=n}return t}var Up=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:$f()});function Wp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Up(),r=j(C,e,n),i=j(Array.isArray,e,n),a=j(S,e.ui,n.ui),o=j(C,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`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Gp=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:$f()});function Kp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Gp(),r=j(C,e,n),i=j(S,e,n),a=j(S,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`),ep(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}function qp(e){let t=e;return{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:Hp(t.settings),doc:np(t.doc),collections:{tableEntities:Wp(t.collections?.tableEntities),tableColumnEntities:Kp(t.collections?.tableColumnEntities),relationshipEntities:vp(t.collections?.relationshipEntities),indexEntities:ip(t.collections?.indexEntities),indexColumnEntities:cp(t.collections?.indexColumnEntities),memoEntities:up(t.collections?.memoEntities)}}}var M={CanvasType:yp,CanvasTypeList:bp,Show:xp,ColumnType:Sp,ColumnTypeList:Cp,Database:wp,DatabaseList:Tp,Language:Ep,LanguageList:Dp,NameCase:Op,NameCaseList:kp,BracketType:Ap,BracketTypeList:jp,RelationshipType:dp,RelationshipTypeList:fp,StartRelationshipType:pp,StartRelationshipTypeList:mp,Direction:hp,DirectionList:gp,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:ap,OrderTypeList:op,SaveSettingType:Mp,CANVAS_SIZE_MAX:Ip,CANVAS_SIZE_MIN:Fp,CANVAS_ZOOM_MAX:Pp,CANVAS_ZOOM_MIN:Np};function Jp(e){return[e,-1,-1,{}]}function Yp(e,t,n){return e[t]||(e[t]=Jp(n),e[t])}function Xp(e,t,n,r,i){let a=Yp(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Zp(e,t,n,r,i){let a=Yp(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function Qp(e,t,n,r,i,a){let o=Yp(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function $p(e){"@babel/helpers - typeof";return $p=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},$p(e)}function em(e,t){if($p(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if($p(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function tm(e){var t=em(e,`string`);return $p(t)==`symbol`?t:t+``}function nm(e,t,n){return(t=tm(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rm=class{constructor(e){nm(this,`collections`,void 0),this.collections=e}collection(e){return new im(this.collections[e],e)}},im=class{constructor(e,t){nm(this,`collection`,void 0),nm(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 Xp(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Zp(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return Qp(e,t,n,this.collectionKey,r,i),this}},N=e=>new rm(e),am=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),om=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`}),sm=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),cm=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),lm=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),um=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),dm=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),fm=.1,pm=2e3,mm=2e4,hm=()=>({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:{}}),gm=e=>re(e,pm,mm),_m=e=>re(e,fm,1);function vm(e){let t=hm();if(x(e))return t;let n=j(S,t,e),r=j(C,t,e),i=j(se,t.show,e.show),a=j(se,t.setting,e.setting);if(S(e.width)&&(t.width=gm(e.width)),S(e.height)&&(t.height=gm(e.height)),S(e.zoomLevel)&&(t.zoomLevel=_m(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),j(Xf(sm),t,e)(`database`),j(Xf(om),t,e)(`canvasType`),j(Xf(cm),t,e)(`language`),j(Xf(lm),t,e)(`tableCase`),j(Xf(lm),t,e)(`columnCase`),j(Xf(um),t,e)(`highlightTheme`),j(Xf(dm),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&&am.length===e.setting.columnOrder.length&&ae(am,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),de(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];C(r)&&(t.pluginSerializationMap[e]=r)}}return t}var ym=()=>({memos:[]}),bm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function xm(e){let t=ym();if(x(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=bm(),r=j(C,e,n),i=j(S,e.ui,n.ui),a=j(se,e.ui,n.ui),o=j(C,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 Sm=[`ZeroOneN`,`One`,`N`],Cm={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},wm=e=>Sm.includes(e)?Cm[e]:e,Tm=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),Em=Object.values({Ring:`Ring`,Dash:`Dash`}),Dm=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),Om=()=>({relationships:[]}),km=()=>({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 Am(e){let t=Om();if(x(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=km(),r=j(C,e,n),i=j(se,e,n),a=j(S,e.start,n.start),o=j(C,e.start,n.start),s=j(S,e.end,n.end),c=j(C,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),j(Xf(Tm),e,n)(`relationshipType`),e.relationshipType=wm(e.relationshipType),j(Xf(Em),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(Xf(Dm),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(C)),c(`tableId`),s(`x`),s(`y`),j(Xf(Dm),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(C)),t.relationships.push(e)}return t}var jm={ASC:`ASC`,DESC:`DESC`},Mm=Object.values(jm),Nm=()=>({tables:[],indexes:[]}),Pm=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),Fm=()=>({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}}),Im=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),Lm=()=>({id:``,orderType:jm.ASC});function Rm(e){let t=Nm();if(x(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=Pm(),r=j(C,e,n),i=j(se,e,n),a=j(S,e.ui,n.ui),o=j(se,e.ui,n.ui),s=j(C,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=Fm(),r=j(C,n,t),i=j(S,n.ui,t.ui),a=j(se,n.ui,t.ui),o=j(se,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=Im(),r=j(C,e,n),i=j(se,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=Lm();j(C,n,t)(`id`),j(Xf(Mm),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function zm(e){let t=e;return{canvas:vm(t.canvas),table:Rm(t.table),relationship:Am(t.relationship),memo:xm(t.memo)}}function Bm(e){let t=qp({});return Vm(t.settings,e.canvas),Hm(t,e.table),Um(t,e.memo),Wm(t,e.relationship),t}function Vm(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}=Yf(e);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=M.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>Qf(t.show,n,!1)?e|Qf(M.Show,n,0):e,0),e.database=Reflect.get(M.Database,t.database)??M.Database.MySQL,e.language=t.language===`C#`?M.Language.csharp:Qf(M.Language,t.language,M.Language.GraphQL),e.tableNameCase=Qf(M.NameCase,t.tableCase,M.NameCase.pascalCase),e.columnNameCase=Qf(M.NameCase,t.columnCase,M.NameCase.camelCase),e.bracketType=Qf(M.BracketType,t.bracketType,M.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync,e.relationshipOptimization=t.setting.relationshipOptimization;let i=t.setting.columnOrder.map(e=>M.ColumnType[e]);ae(M.ColumnTypeList,i).length===0&&(e.columnOrder=i)}function Hm(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=Up();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=Gp();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)=>Qf(n.option,t,!1)?e|Qf(M.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=M.ColumnUIKey.primaryKey|M.ColumnUIKey.foreignKey:n.ui.pk?r.ui.keys=M.ColumnUIKey.primaryKey:n.ui.fk&&(r.ui.keys=M.ColumnUIKey.foreignKey),e.collections.tableColumnEntities[r.id]=r}e.collections.tableEntities[n.id]=n}for(let t of r){let n=rp();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=w(),a=sp();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=Qf(M.OrderType,r.orderType,M.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Um(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=lp();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 Wm(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=_p();n.id=t.id,n.identification=t.identification,n.relationshipType=Qf(M.RelationshipType,t.relationshipType,M.RelationshipType.ZeroN),n.startRelationshipType=Qf(M.StartRelationshipType,t.startRelationshipType===`Ring`?`ring`:`dash`,M.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=Qf(M.Direction,t.start.direction,M.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=Qf(M.Direction,t.end.direction,M.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Gm(e,t){return(e&t)===t}function Km(e){let t=JSON.parse(e);return Reflect.get(t,`version`)===`3.0.0`?qp(t):Bm(zm(t))}function qm(e){let t=ge(e,[`$schema`,`version`,`settings`,`doc`,`collections`]),n={...t.settings};return t.settings=n,Gm(n.ignoreSaveSettings,M.SaveSettingType.scroll)&&(n.originX=0,n.originY=0),Gm(n.ignoreSaveSettings,M.SaveSettingType.zoomLevel)&&(n.zoomLevel=1),JSON.stringify(t,null,2)}const P={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`,viewOpen:`editor.viewOpen`,viewClose:`editor.viewClose`,viewScrollTo:`editor.viewScrollTo`,viewStreamScrollTo:`editor.viewStreamScrollTo`,viewChangeZoomLevel:`editor.viewChangeZoomLevel`,viewStreamZoomLevel:`editor.viewStreamZoomLevel`,viewMoveTable:`editor.viewMoveTable`,viewSetLayout:`editor.viewSetLayout`,viewChangeShowMode:`editor.viewChangeShowMode`,viewSetCenters:`editor.viewSetCenters`,changeVisualizationMode:`editor.changeVisualizationMode`},Jm=M.CanvasType,Ym=M.CanvasTypeList,F=M.Show,I=M.ColumnType,Xm=M.ColumnTypeList,L=M.Database,Zm=M.DatabaseList;M.Language;const Qm=M.LanguageList;M.NameCase;const $m=M.NameCaseList,eh=M.BracketType,th=M.BracketTypeList,nh=M.RelationshipType;M.RelationshipTypeList;const rh=M.StartRelationshipType;M.StartRelationshipTypeList;const R=M.Direction;M.DirectionList;const z=M.ColumnOption,B=M.ColumnUIKey,ih=M.OrderType;M.OrderTypeList,M.SaveSettingType;const ah=M.CANVAS_SIZE_MAX,oh=M.CANVAS_SIZE_MIN,sh=M.CANVAS_ZOOM_MAX,ch=M.CANVAS_ZOOM_MIN;eh.none,eh.backtick,eh.doubleQuote,eh.singleQuote,I.columnName,I.columnDataType,I.columnDefault,I.columnComment,I.columnAutoIncrement,I.columnUnique,I.columnNotNull;const lh=1200;function V(e){let t=new Set(e);return e=>t.has(e)}function uh(e){return 6.25*Math.sqrt(Math.max(e,0))}function dh(e){return e>=0?e/2:uh(-e)}function fh(e,t,n){let r=dh((n.x-e.x)*t.x+(n.y-e.y)*t.y);return{x:e.x+t.x*r,y:e.y+t.y*r}}function ph(e,t,n,r){return[fh(e,t,n),fh(n,r,e)]}function mh(e,t,n,r,i=24){let a=Math.max(1,Math.floor(i)),[o,s]=ph(e,t,n,r),c=[{x:e.x,y:e.y}];for(let t=1;t<=a;t++){let r=t/a;c.push({x:hh(e.x,o.x,s.x,n.x,r),y:hh(e.y,o.y,s.y,n.y,r)})}return c}function hh(e,t,n,r,i){let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r}const H={left:`left`,right:`right`,top:`top`,bottom:`bottom`},gh=Object.values(H);V([H.top,H.bottom,H.left,H.right]);const _h=[0,0];function vh({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const yh=()=>({epoch:0,stubSlots:new WeakMap,routes:new WeakMap,anchors:new WeakMap}),bh={document:yh(),flow:yh()},xh={flow:new WeakMap};function Sh(e,t){let n=xh[t],r=n.get(e);return r||(r=ja({version:0}),n.set(e,r)),r}function Ch(e,t){return Sh(e,t).version}function wh(e,t){Sh(e,t).version+=1}function Th(e,t=`document`){let n=bh[t];for(let r of e){let e=n.stubSlots.delete(r),i=n.routes.delete(r),a=n.anchors.delete(r);t!==`document`&&(e||i||a)&&wh(r,t)}}const Eh=(e,t)=>e[0]===t[0]&&e[1]===t[1],Dh=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,Oh=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function kh(e,t,n=`document`){let r=bh[n];n!==`document`&&!Eh(r.stubSlots.get(e)??_h,t)&&wh(e,n),r.stubSlots.set(e,t)}function Ah(e,t=`document`){return t!==`document`&&Ch(e,t),bh[t].stubSlots.get(e)??_h}function jh(e,t,n=`document`){let r=bh[n];if(n!==`document`){let i=r.routes.get(e);(!i||!Oh(i.points,t))&&wh(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function Mh(e,t=`document`){return t!==`document`&&Ch(e,t),bh[t].routes.get(e)?.points}function Nh(e=`document`){bh[e].epoch+=1}function Ph(e,t=`document`){return t===`document`?e:(Ch(e,t),bh[t].anchors.get(e)??e)}function Fh(e,{start:t,end:n},r=`document`){if(r===`document`){e.start.direction=t.direction,e.start.x=t.x,e.start.y=t.y,e.end.direction=n.direction,e.end.x=n.x,e.end.y=n.y;return}let{anchors:i}=bh[r],a=i.get(e)??e;(!Dh(a.start,t)||!Dh(a.end,n))&&wh(e,r),i.set(e,{start:vh(t),end:vh(n)})}function Ih(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 Lh({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 Rh(e=`document`){return e===`document`?2:1}function zh(e,t=2,n=`document`){let r=bh[n],{start:i,end:a}=Ph(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null,c=s?0:86;if(n!==`document`){let e=Ih([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=uh(Math.max(e.width,e.height)+2*c);return Lh(e,25+t+c+n)}return Lh(Ih(s?[...s,i,a]:[i,a]),25+t+c)}const Bh={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},Vh=Object.values(Bh);Bh.Databricks,L.Databricks,Bh.MariaDB,L.MariaDB,Bh.MSSQL,L.MSSQL,Bh.MySQL,L.MySQL,Bh.Oracle,L.Oracle,Bh.PostgreSQL,L.PostgreSQL,Bh.Snowflake,L.Snowflake,Bh.SQLite,L.SQLite;const Hh=/[^0-9]/g,Uh=e=>e.replace(Hh,``),Wh=e=>re(e,oh,ah),Gh=e=>re(e,ch,sh),Kh=e=>re(e,60,200);function qh(e){let t=C(e)?Number(Uh(e)):e;return Wh(t)}function Jh(e){return Ke(Gh(e),2)}const Yh=V(Zm),Xh=V($m),Zh=V(th),Qh=V(Qm),$h=V(Xm);V(Vh);const eg=V(Ym);function U(e){return Math.max(e,60)}function tg(e){return C(e)?e.trim():``}function ng(e){return e<=.7}const rg={table:`table`,memo:`memo`},ig={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},ag={flow:`flow`},og={graph:`graph`,flow:`flow`},W={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},sg={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};V(Object.values(sg));const cg=()=>({id:w(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:lh,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,views:{flow:null},visualizationMode:og.graph}),lg=e=>e.settings.canvasType===Jm.visualization&&e.editor.visualizationMode===og.flow,ug=e=>lg(e)?e.editor.views.flow:null,dg=(e,t)=>e.editor.views[t]!==null&&lg(e),fg=(e,t)=>t===`document`?null:e.editor.views[t];function pg(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?ig.keysOnly:ig.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n}}function mg({collections:e},t){Th(N(e).collection(`relationshipEntities`).selectAll(),t)}const hg=(e,t)=>t?e.editor.views[t]:ug(e);function gg(e){e.views.flow=null}const _g=k(P.viewOpen),vg=(e,{payload:{kind:t,centerIds:n}})=>{mg(e,t),e.editor.views[t]=pg(t,n)},yg=k(P.viewClose),bg=(e,{payload:{kind:t}})=>{mg(e,t),e.editor.views[t]=null},xg=k(P.viewScrollTo),Sg=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=hg(e,r);i&&(i.originX=Ke(t,4),i.originY=Ke(n,4))},Cg=k(P.viewStreamScrollTo),wg=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=hg(e,r);i&&(i.originX=Ke(i.originX+t,4),i.originY=Ke(i.originY+n,4))},Tg=k(P.viewChangeZoomLevel),Eg=(e,{payload:{value:t,kind:n}})=>{let r=hg(e,n);r&&(r.zoomLevel=Jh(t))},Dg=k(P.viewStreamZoomLevel),Og=(e,{payload:{value:t,kind:n}})=>{let r=hg(e,n);r&&(r.zoomLevel=Jh(r.zoomLevel+t))},kg=k(P.viewMoveTable),Ag=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=hg(e,i);if(a)for(let e of t){let t=a.positions[e];t&&(t.x=Ke(t.x+n,4),t.y=Ke(t.y+r,4))}},jg=k(P.viewSetLayout),Mg=({editor:e},{payload:{kind:t,positions:n}})=>{let r=e.views[t];r&&(r.positions=Object.fromEntries(Object.entries(n).map(([e,{x:t,y:n}])=>[e,{x:t,y:n}])))},Ng=k(P.viewChangeShowMode),Pg=(e,{payload:{value:t,kind:n}})=>{let r=hg(e,n);r&&(r.showMode=t)},Fg=k(P.viewSetCenters),Ig=(e,{payload:{tableIds:t,kind:n}})=>{let r=hg(e,n);r&&(r.centerIds=[...t])},Lg=k(P.changeVisualizationMode),Rg=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},zg={[P.viewOpen]:vg,[P.viewClose]:bg,[P.viewScrollTo]:Sg,[P.viewStreamScrollTo]:wg,[P.viewChangeZoomLevel]:Eg,[P.viewStreamZoomLevel]:Og,[P.viewMoveTable]:Ag,[P.viewSetLayout]:Mg,[P.viewChangeShowMode]:Pg,[P.viewSetCenters]:Ig,[P.changeVisualizationMode]:Rg},Bg={viewOpenAction:_g,viewCloseAction:yg,viewScrollToAction:xg,viewStreamScrollToAction:Cg,viewChangeZoomLevelAction:Tg,viewStreamZoomLevelAction:Dg,viewMoveTableAction:kg,viewSetLayoutAction:jg,viewChangeShowModeAction:Ng,viewSetCentersAction:Fg,changeVisualizationModeAction:Lg},Vg={shared:1,changeOnly:2,following:4,drag:8};function Hg(e,t){return{...ie(t),tags:S(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function Ug(e,t){return t.map(t=>Hg(e,t))}(e=>(...t)=>function*(n,r){yield Ug(e,Fu(n,r,t))})(Vg.changeOnly);function G(e,t){return(e&t)===t}const Wg=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[]});function Gg(e,t,n=`document`){let{x:r,y:i}=fg(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const Kg=e=>G(e,B.primaryKey)||G(e,B.foreignKey);function qg(e,t){let n=N(e.collections).collection(`relationshipEntities`).selectByIds(e.doc.relationshipIds);for(let{start:e,end:r}of n)t(e.tableId,e.columnIds),t(r.tableId,r.columnIds)}function Jg(e,t){let n=new Set;return qg(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function Yg(e,t,n=`document`){let r=fg(e,n);if(!r||r.showMode===ig.allFields)return t.columnIds;if(r.showMode===ig.nameOnly)return[];let i=Jg(e,t);return N(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>Kg(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function Xg(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:n.memoIds,relationshipIds:n.relationshipIds};let i=fg(e,t);if(!i)return Wg;let a=N(r).collection(`relationshipEntities`).selectByIds(n.relationshipIds),o=new Set(Object.keys(i.positions)),s=n.tableIds.filter(e=>o.has(e)),c=new Set(s);return{tableIds:s,memoIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const Zg=ja({tableId:{}}),Qg=new Map;function $g(e){Qg.delete(e),Reflect.deleteProperty(Zg.tableId,e)}function e_(e,t,n=`document`){let r=fg(e,n),{id:i}=e.editor;if(t===null||!r){Qg.get(i)?.kind===n&&$g(i);return}Qg.set(i,r),Zg.tableId[i]=t}function t_(e,t,n=`document`){let{id:r}=e.editor;Zg.tableId[r]===t&&Qg.get(r)?.kind===n&&$g(r)}const n_=ja({tableId:{}}),r_=new Map;function i_(e){r_.delete(e),Reflect.deleteProperty(n_.tableId,e)}function a_(e,t,n=`document`){let r=fg(e,n);if(!r)return;let{id:i}=e.editor;if((r_.get(i)===r?n_.tableId[i]:void 0)===t){i_(i);return}r_.set(i,r),n_.tableId[i]=t}function o_(e){return 9+e.ui.width+8+1}function s_(e){return 25+e.ui.height+8+1}let c_=0;function l_(){return c_}function u_(){c_++}function d_(e,{settings:{show:t,maxWidthComment:n},collections:r}){let i=20+e.ui.widthName+8;if(G(t,F.tableComment)){let t=n===-1?e.ui.widthComment:n<e.ui.widthComment?n:e.ui.widthComment;i+=t+8}i+=28;let a=p_(t);i<a&&(i=a);let o=h_(N(r).collection(`tableColumnEntities`).selectByIds(e.columnIds),t,n);return i<o.width&&(i=o.width),{...o,width:9+i+8+1}}const f_=[{key:F.columnComment,width:60},{key:F.columnDataType,width:60},{key:F.columnDefault,width:60},{key:F.columnNotNull,width:35},{key:F.columnAutoIncrement,width:15},{key:F.columnUnique,width:22}];function p_(e){return f_.reduce((t,{key:n,width:r})=>G(e,n)?t+r+8:t,100)}function m_(){return{width:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0}}function h_(e,t,n){let r=m_();for(let i of e)r.name<i.ui.widthName&&(r.name=i.ui.widthName),G(t,F.columnComment)&&r.comment<i.ui.widthComment&&(r.comment=n===-1?i.ui.widthComment:n<i.ui.widthComment?n:i.ui.widthComment),G(t,F.columnDataType)&&r.dataType<i.ui.widthDataType&&(r.dataType=i.ui.widthDataType),G(t,F.columnDefault)&&r.default<i.ui.widthDefault&&(r.default=i.ui.widthDefault);return G(t,F.columnNotNull)&&(r.notNull=35),G(t,F.columnAutoIncrement)&&(r.autoIncrement=15),G(t,F.columnUnique)&&(r.unique=22),r.width=Object.entries(r).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),r}function g_(e,t,n){let r=m_(),i=N(t.collections).collection(`tableColumnEntities`).selectByIds(n);for(let e of i)r.name=Math.max(r.name,e.ui.widthName),r.dataType=Math.max(r.dataType,e.ui.widthDataType);let a=i.length?22+r.name+8+r.dataType:0,o=Math.max(v_(e),a,154);return i.length&&(r.name+=o-a),r.width=18+o,r}function __(e){return Math.ceil(e*1.1666666666666667*1.04)}function v_(e){return 20+__(e.ui.widthName)+8+28}function y_(e=`document`){return e===`document`?20:24}function b_(e=`document`){return e===`document`?24:32}function x_(e,t=e.columnIds.length,n=`document`){return 9+y_(n)+t*b_(n)+1}const S_=(e,t)=>({widthName:U(t(e.name)),widthComment:U(t(e.comment))}),C_=(e,t)=>({widthName:U(t(e.name)),widthDataType:U(t(e.dataType)),widthDefault:U(t(e.default)),widthComment:U(t(e.comment))});function w_({doc:{tableIds:e},collections:t},{toWidth:n}){u_();let r=N(t).collection(`tableEntities`).selectByIds(e),i=N(t).collection(`tableColumnEntities`);for(let e of r){Object.assign(e.ui,S_(e,n));let t=i.selectByIds(e.columnIds);for(let e of t)Object.assign(e.ui,C_(e,n))}}const T_={document:new WeakMap,flow:new WeakMap};function E_(e,t,n){let r=T_[n],i=n===`document`?D_(e,t):O_(e,t,n),a=r.get(t);if(a?.key===i.key)return a;let o=i.measure();return r.set(t,o),o}function D_(e,t){let{settings:n}=e,r=`${l_()}|${n.show}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:r,measure:()=>({key:r,width:d_(t,e).width,height:x_(t)})}}function O_(e,t,n){let r=fg(e,n)?.showMode??ig.allFields,i=Yg(e,t,n),a=`${l_()}|${t.ui.widthName}|${t.columnIds.length}|${r}|${i.length}`;return{key:a,measure:()=>({key:a,width:g_(t,e,i).width,height:x_(t,i.length,n)})}}function k_(e,t,n=`document`){let{width:r,height:i}=E_(e,t,n),{x:a,y:o}=Gg(e,t,n);return{width:r,height:i,top:{x:a+r/2,y:o},bottom:{x:a+r/2,y:o+i},left:{x:a,y:o+i/2},right:{x:a+r,y:o+i/2},lt:{x:a,y:o},rt:{x:a+r,y:o},lb:{x:a,y:o+i},rb:{x:a+r,y:o+i}}}function A_(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function j_(e,t,n=`document`){let{width:r,height:i}=k_(e,t,n),{x:a,y:o}=Gg(e,t,n);return{x:a,y:o,width:r,height:i}}function M_(e,t,n=`document`){return n===`document`?d_(t,e):g_(t,e,Yg(e,t,n))}function N_(e,t,n,r=`document`){let{x:i,y:a,width:o}=j_(e,t,r),s=b_(r);return{x:i+9,y:a+9+y_(r)+n*s,width:o-18,height:s}}function P_(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:o_(e),height:s_(e)}}function F_(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 I_(e){return z_(e,[])}function L_(e,t=`document`){return z_(e,[],t)}function R_(e,t=[],n=`document`){let{collections:r,doc:i}=e,{tableIds:a,memoIds:o}=n===`document`?i:Xg(e,n),s=new Map(t.map(e=>[e.id,e])),c=N(r).collection(`tableEntities`).selectByIds(a),l=N(r).collection(`memoEntities`).selectByIds(o);return[...c.map(t=>{let r=j_(e,t,n),i=s.get(t.id);return i?{...r,x:i.x,y:i.y}:r}),...l.map(P_)]}function z_(e,t,n=`document`){let r=R_(e,t,n);return r.length?r.reduce(F_):null}function B_(e){return ug(e)??e.settings}function V_(e,t=`document`){return fg(e,t)??e.settings}function H_(e,t){return t?V_(e,t):B_(e)}function U_({originX:e,originY:t}){return{x:e,y:t}}const W_=e=>e>0?e:1;function G_(e,t){let n=U_(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function K_(e,t){let n=W_(e.zoomLevel),r=U_({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function q_(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function J_(e){let{viewportWidth:t,viewportHeight:n}=e,r=W_(e.zoomLevel),i=U_({...e,zoomLevel:r}),a=(t>0?t:lh)/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 Y_(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=V_(e,t),{viewport:a}=e.editor;return J_({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function X_(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 Z_(e,t,n,r=`document`){return X_(e,j_(t,n,r))}function Q_(e,t,n,r=`document`){return X_(e,zh(t,n,r))}const $_=ja({frozen:{}}),ev=(e,t)=>`${e.editor.id}:${t}`,tv=(e,t)=>$_.frozen[ev(e,t)]??null;function nv(e,t=`document`){let{originX:n,originY:r}=V_(e,t);$_.frozen[ev(e,t)]={content:L_(e,t),origin:{x:n,y:r}}}function rv(e,t=`document`){Reflect.deleteProperty($_.frozen,ev(e,t))}function iv(e,t=`document`){let n=tv(e,t);return n?n.content:L_(e,t)}const K={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`},av=e=>e+0;function ov(e,t,n,r){let i=-t*r,a=n-e*r;return{min:av(Math.min(i,a)),max:av(Math.max(i,a))}}function sv(e,t,n,r,i){let{min:a,max:o}=ov(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return av(Math.min(Math.max(e,a+s),o-s))}const cv=k(K.changeDatabaseName),lv=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{Qp(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},uv=k(K.changeZoomLevel),dv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&G(n,Vg.following)||(e.zoomLevel=Jh(t))},fv=k(K.streamZoomLevel),pv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&G(n,Vg.following)||(e.zoomLevel=Jh(e.zoomLevel+t))},mv=({width:e,height:t})=>e>0&&t>0;function hv(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=iv(e);return!a||!mv(i)?{x:t,y:n}:{x:sv(t,a.x,a.x+a.width,i.width,r),y:sv(n,a.y,a.y+a.height,i.height,r)}}const gv=k(K.scrollTo),_v=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{!x(r)&&G(r,Vg.following)||(e.originX=Ke(t,4),e.originY=Ke(n,4))},vv=k(K.streamScrollTo),yv=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{!x(r)&&G(r,Vg.following)||(e.originX=Ke(e.originX+t,4),e.originY=Ke(e.originY+n,4))},bv=k(K.changeShow),xv=({settings:e},{payload:{show:t,value:n}})=>{e.show=n?e.show|t:e.show&~t},Sv=k(K.changeDatabase),Cv=({settings:e},{payload:{value:t}})=>{Yh(t)&&(e.database=t)},wv=k(K.changeCanvasType),Tv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&G(n,Vg.following)||(e.canvasType=t)},Ev=k(K.changeLanguage),Dv=({settings:e},{payload:{value:t}})=>{Qh(t)&&(e.language=t)},Ov=k(K.changeTableNameCase),kv=({settings:e},{payload:{value:t}})=>{Xh(t)&&(e.tableNameCase=t)},Av=k(K.changeColumnNameCase),jv=({settings:e},{payload:{value:t}})=>{Xh(t)&&(e.columnNameCase=t)},Mv=k(K.changeBracketType),Nv=({settings:e},{payload:{value:t}})=>{Zh(t)&&(e.bracketType=t)},Pv=k(K.changeRelationshipDataTypeSync),Fv=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},Iv=k(K.changeRelationshipOptimization),Lv=({settings:e},{payload:{value:t}})=>{e.relationshipOptimization=t},Rv=k(K.changeColumnOrder),zv=({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))},Bv=k(K.changeMaxWidthComment),Vv=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:Kh(t)},Hv=k(K.changeIgnoreSaveSettings),Uv=({settings:e},{payload:{saveSettingType:t,value:n}})=>{e.ignoreSaveSettings=n?e.ignoreSaveSettings|t:e.ignoreSaveSettings&~t},Wv={[K.changeDatabaseName]:lv,[K.changeZoomLevel]:dv,[K.streamZoomLevel]:pv,[K.scrollTo]:_v,[K.streamScrollTo]:yv,[K.changeShow]:xv,[K.changeDatabase]:Cv,[K.changeCanvasType]:Tv,[K.changeLanguage]:Dv,[K.changeTableNameCase]:kv,[K.changeColumnNameCase]:jv,[K.changeBracketType]:Nv,[K.changeRelationshipDataTypeSync]:Fv,[K.changeRelationshipOptimization]:Lv,[K.changeColumnOrder]:zv,[K.changeMaxWidthComment]:Vv,[K.changeIgnoreSaveSettings]:Uv},Gv={changeDatabaseNameAction:cv,changeZoomLevelAction:uv,streamZoomLevelAction:fv,scrollToAction:gv,streamScrollToAction:vv,changeShowAction:bv,changeDatabaseAction:Sv,changeCanvasTypeAction:wv,changeLanguageAction:Ev,changeTableNameCaseAction:Ov,changeColumnNameCaseAction:Av,changeBracketTypeAction:Mv,changeRelationshipDataTypeSyncAction:Pv,changeRelationshipOptimizationAction:Iv,changeColumnOrderAction:Rv,changeMaxWidthCommentAction:Bv,changeIgnoreSaveSettingsAction:Hv},Kv=e=>e.ui.zIndex,qv=(e,t)=>Math.max(1,...e.map(Kv),...t.map(Kv))+1,Jv=e=>t=>e.y===t.y&&e.x===t.x;function Yv(e,t,n){let r=K_(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(Jv(r));)r.x+=50,r.y+=50;return r}function Xv(){let e=Date.now();return{updateAt:e,createAt:e}}function Zv(e,t){return e<t?_e(e,t+1):_e(t,e+1)}function Qv(e){return be(ne(e??``))}function $v(e,t){return ye([...e,t])}function ey(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:Zv(r,i).map(t=>e[t])}function ty(e,t,n,r){return ye([...t,...ey(e,n,r)])}const ny={[I.columnName]:!0,[I.columnDataType]:F.columnDataType,[I.columnNotNull]:F.columnNotNull,[I.columnUnique]:F.columnUnique,[I.columnAutoIncrement]:F.columnAutoIncrement,[I.columnDefault]:F.columnDefault,[I.columnComment]:F.columnComment},ry={[I.columnName]:W.columnName,[I.columnDataType]:W.columnDataType,[I.columnNotNull]:W.columnNotNull,[I.columnUnique]:W.columnUnique,[I.columnAutoIncrement]:W.columnAutoIncrement,[I.columnDefault]:W.columnDefault,[I.columnComment]:W.columnComment},iy=[W.tableName,W.tableComment];function ay({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=ny[t];return n===!0||G(e,n)}).map(e=>ry[e])}function oy({collections:e,editor:{focusTable:t}}){return t?!!N(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function sy(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=ay(e);return n.indexOf(t.focusType)===n.length-1}function cy(e){let{editor:{focusTable:t}}=e;return!t||ay(e).indexOf(t.focusType)===0}function ly({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===n.columnIds.length-1}function uy({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===0}function dy(e){let t=ay(e);return t[t.length-1]}function fy(e){return ay(e)[0]}function py(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=ay(e),r=n.indexOf(t.focusType);return sy(e)?n[0]:n[r+1]}function my(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=ay(e),r=n.indexOf(t.focusType);return cy(e)?n[n.length-1]:n[r-1]}function hy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r?.columnId)return null;let i=N(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 gy({settings:{show:e}}){return G(e,F.tableComment)?iy:[W.tableName]}function _y(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=gy(e);return n.indexOf(t.focusType)===n.length-1}function vy(e){let{editor:{focusTable:t}}=e;return!t||gy(e).indexOf(t.focusType)===0}const yy=V(iy);function by(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=gy(e),r=n.indexOf(t.focusType);return _y(e)?n[0]:n[r+1]}function xy(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=gy(e),r=n.indexOf(t.focusType);return vy(e)?n[n.length-1]:n[r-1]}function Sy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(yy(r.focusType)){if(oy(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=dy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(uy(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!==sg.Tab?$v(r.selectColumnIds,n):[n]}}}function Cy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(yy(r.focusType)){if(oy(e)){let t=i.columnIds[0];r.focusType=fy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(ly(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!==sg.Tab?$v(r.selectColumnIds,n):[n]}}}function wy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(yy(r.focusType)){if(vy(e)){if(oy(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=dy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=xy(e)}else r.focusType=xy(e)}else if(cy(e)){if(uy(e))r.focusType=G(e.settings.show,F.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=dy(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==sg.Tab?$v(r.selectColumnIds,a):[a]}}else r.focusType=my(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function Ty(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(yy(r.focusType)){if(_y(e)){if(oy(e)){let t=i.columnIds[0];r.focusType=fy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=by(e)}else r.focusType=by(e)}else if(sy(e)){if(ly(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=fy(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==sg.Tab?$v(r.selectColumnIds,a):[a]}}else r.focusType=py(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const Ey=3e4,Dy=9e4,Oy=3e3,ky=k(P.changeHasHistory),Ay=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},jy=k(P.selectAll),My=({editor:e,doc:t})=>{let n=t.tableIds.reduce((e,t)=>(e[t]=rg.table,e),{});e.selectedMap={...t.memoIds.reduce((e,t)=>(e[t]=rg.memo,e),{}),...n}},Ny=k(P.unselectAll),Py=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},Fy=k(P.select),Iy=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},Ly=k(P.changeViewport),Ry=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&Vy(e)},zy=k(P.clear),By=e=>{let{doc:t,collections:n}=qp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,gg(e.editor)};function Vy(e){let{settings:t,editor:n}=e;if(!mv(n.viewport)){n.scrollPullPending=!0;return}let r=hv(e);t.originX=Ke(r.x,4),t.originY=Ke(r.y,4),n.scrollPullPending=!1}const Hy=k(P.loadJson),Uy=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Km(t);eg(r.canvasType)||(r.canvasType=Jm.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,gg(e.editor),Vy(e)},Wy=k(P.initialClear),Gy=e=>{let{doc:t,collections:n}=qp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,gg(e.editor)},Ky=k(P.initialLoadJson),qy=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Km(t);eg(r.canvasType)||(r.canvasType=Jm.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,gg(e.editor),Vy(e)},Jy=k(P.focusTable),Yy=({editor:e,collections:t},{payload:n})=>{let r=N(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}}},Xy=k(P.focusColumn),Zy=({editor:e,collections:t},{payload:n})=>{let r=N(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?ty(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?ey(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?$v(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}}},Qy=k(P.focusTableEnd),$y=({editor:e})=>{e.focusTable=null},eb=k(P.focusMoveTable),tb=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case sg.ArrowUp:Sy(e,t);break;case sg.ArrowDown:Cy(e,t);break;case sg.ArrowLeft:wy(e,t);break;case sg.ArrowRight:Ty(e,t);break;case sg.Tab:t.shiftKey?wy(e,t):Ty(e,t)}},nb=k(P.editTable),rb=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},ib=k(P.editTableEnd),ab=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},ob=k(P.editMemo),sb=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},cb=k(P.editMemoEnd),lb=({editor:e})=>{e.editMemoId=null},ub=k(P.scrollMemo),db=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},fb=k(P.selectAllColumn),pb=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=N(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},mb=k(P.drawStartRelationship),hb=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}}},gb=k(P.drawStartAddRelationship),_b=({editor:{drawRelationship:e},collections:t},{payload:{tableId:n}})=>{if(!e)return;let r=N(t).collection(`tableEntities`).selectById(n);r&&(e.start={tableId:n,x:r.ui.x,y:r.ui.y})},vb=k(P.drawEndRelationship),yb=({editor:e})=>{e.drawRelationship=null},bb=k(P.drawRelationship),xb=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=K_(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},Sb=k(P.hoverColumnMap),Cb=({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},wb=k(P.hoverRelationshipMap),Tb=({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},Eb=k(P.changeOpenMap),Db=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},Ob=k(P.changeHandTool),kb=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null)},Ab=k(P.changeZenMode),jb=({editor:e},{payload:{value:t}})=>{e.zenMode=t},Mb=k(P.dragstartColumn),Nb=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Pb=k(P.dragendColumn),Fb=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},Ib=k(P.sharedMouseTracker),Lb=({editor:e},{payload:t,tags:n,meta:r})=>{if(x(n)||!G(n,Vg.shared)||!C(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!C(r.nickname)||Ge(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)},Ey)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},Ey)}},Rb=k(P.sharedFocusTracker),zb=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(x(n)||!G(n,Vg.shared)||!C(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)},Dy)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},Dy)}},Bb=k(P.sharedSelectionTracker),Vb=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(x(n)||!G(n,Vg.shared)||!C(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)},Dy)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},Dy)}},Hb=k(P.sharedDragSelectTracker),Ub=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(x(n)||!G(n,Vg.shared)||!C(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)},Oy)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},Oy)}},Wb=k(P.dragSelectRect),Gb=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},Kb=k(P.validationIds),qb=({doc:e,collections:t})=>{let n=N(t).collection(`tableEntities`),r=N(t).collection(`tableColumnEntities`),i=N(t).collection(`indexEntities`),a=N(t).collection(`indexColumnEntities`),o=N(t).collection(`relationshipEntities`),s=N(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))})},Jb=k(P.getLWW),Yb=me,Xb=k(P.mergeLWW),Zb=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Xp(e,r,t,n,me),Zp(e,i,t,n,me),Object.entries(a).forEach(([r,i])=>{Qp(e,i,t,n,r,me)})})},Qb={[P.changeHasHistory]:Ay,[P.selectAll]:My,[P.unselectAll]:Py,[P.select]:Iy,[P.changeViewport]:Ry,[P.clear]:By,[P.loadJson]:Uy,[P.initialClear]:Gy,[P.initialLoadJson]:qy,[P.focusTable]:Yy,[P.focusColumn]:Zy,[P.focusTableEnd]:$y,[P.focusMoveTable]:tb,[P.editTable]:rb,[P.editTableEnd]:ab,[P.editMemo]:sb,[P.editMemoEnd]:lb,[P.scrollMemo]:db,[P.selectAllColumn]:pb,[P.drawStartRelationship]:hb,[P.drawStartAddRelationship]:_b,[P.drawEndRelationship]:yb,[P.drawRelationship]:xb,[P.hoverColumnMap]:Cb,[P.hoverRelationshipMap]:Tb,[P.changeOpenMap]:Db,[P.changeHandTool]:kb,[P.changeZenMode]:jb,[P.dragstartColumn]:Nb,[P.dragendColumn]:Fb,[P.sharedMouseTracker]:Lb,[P.sharedFocusTracker]:zb,[P.sharedSelectionTracker]:Vb,[P.sharedDragSelectTracker]:Ub,[P.dragSelectRect]:Gb,[P.validationIds]:qb,[P.getLWW]:Yb,[P.mergeLWW]:Zb,...zg},$b={changeHasHistoryAction:ky,selectAllAction:jy,unselectAllAction:Ny,selectAction:Fy,changeViewportAction:Ly,clearAction:zy,loadJsonAction:Hy,initialClearAction:Wy,initialLoadJsonAction:Ky,focusTableAction:Jy,focusColumnAction:Xy,focusTableEndAction:Qy,focusMoveTableAction:eb,editTableAction:nb,editTableEndAction:ib,editMemoAction:ob,editMemoEndAction:cb,scrollMemoAction:ub,selectAllColumnAction:fb,drawStartRelationshipAction:mb,drawStartAddRelationshipAction:gb,drawEndRelationshipAction:vb,drawRelationshipAction:bb,hoverColumnMapAction:Sb,hoverRelationshipMapAction:wb,changeOpenMapAction:Eb,changeHandToolAction:Ob,changeZenModeAction:Ab,dragstartColumnAction:Mb,dragendColumnAction:Pb,sharedMouseTrackerAction:Ib,sharedFocusTrackerAction:Rb,sharedSelectionTrackerAction:Bb,sharedDragSelectTrackerAction:Hb,dragSelectRectAction:Wb,validationIdsAction:Kb,getLWWAction:Jb,mergeLWWAction:Xb,...Bg},ex=(e,t,n)=>{e.push(zy(),Hy({value:qm(n)}))},tx=(e,t,n)=>{e.push(Hy({value:qm(n)}))},nx={[P.loadJson]:ex,[P.clear]:tx},rx={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},ix=e=>qe({id:w(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:Xv()},e??{}),ax=k(rx.addIndex),ox=({doc:e,collections:t,lww:n},{payload:{id:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`indexEntities`).addOne(ix({id:r,tableId:i})).addOperator(n,s,r,()=>{V(e.indexIds)(r)||e.indexIds.push(r)})},sx=k(rx.removeIndex),cx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`indexEntities`).removeOperator(n,o,r,()=>{let t=e.indexIds.indexOf(r);t!==-1&&e.indexIds.splice(t,1)})},lx=k(rx.changeIndexName),ux=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>ix({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},dx=k(rx.changeIndexUnique),fx=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>ix({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},px={[rx.addIndex]:ox,[rx.removeIndex]:cx,[rx.changeIndexName]:ux,[rx.changeIndexUnique]:fx},mx={addIndexAction:ax,removeIndexAction:sx,changeIndexNameAction:lx,changeIndexUniqueAction:dx},hx=(e,{payload:{id:t}})=>{e.push(sx({id:t}))},gx=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`indexEntities`).selectById(t);r&&e.push(ax({id:t,tableId:r.tableId}))},_x=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`indexEntities`).selectById(t);i&&e.push(lx({id:t,tableId:n,value:i.name}))},vx=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`indexEntities`).selectById(t)&&e.push(dx({id:t,tableId:n,value:!r}))},yx={[rx.addIndex]:hx,[rx.removeIndex]:gx,[rx.changeIndexName]:_x,[rx.changeIndexUnique]:vx},bx={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},xx=e=>qe({id:w(),indexId:``,columnId:``,orderType:ih.ASC,meta:Xv()},e??{});function Sx(e,t,n){if(V(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 Cx=k(bx.addIndexColumn),wx=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i,columnId:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexEntities`),u=l.getOrCreate(r,e=>ix({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).addOne(xx({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{V(u.indexColumnIds)(n)||l.updateOne(r,e=>{Sx(e.indexColumnIds,e.seqIndexColumnIds,n)})})},Tx=k(bx.removeIndexColumn),Ex=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`),l=c.getOrCreate(r,e=>ix({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).removeOperator(t,s,n,()=>{let e=l.indexColumnIds.indexOf(n);e!==-1&&c.updateOne(r,t=>{t.indexColumnIds.splice(e,1)})})},Dx=k(bx.moveIndexColumn),Ox=({collections:e},{payload:{id:t,indexId:n,tableId:r,targetId:i}})=>{if(t===i)return;let a=N(e).collection(`indexEntities`),o=a.getOrCreate(n,e=>ix({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))})},kx=k(bx.changeIndexColumnOrderType),Ax=({collections:e,lww:t},{payload:{id:n,indexId:r,columnId:i,value:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexColumnEntities`);l.getOrCreate(n,e=>xx({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},jx={[bx.addIndexColumn]:wx,[bx.removeIndexColumn]:Ex,[bx.moveIndexColumn]:Ox,[bx.changeIndexColumnOrderType]:Ax},Mx={addIndexColumnAction:Cx,removeIndexColumnAction:Tx,moveIndexColumnAction:Dx,changeIndexColumnOrderTypeAction:kx},Nx=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(Tx({id:t,indexId:n,tableId:r}))},Px=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Cx({id:t,indexId:n,tableId:r,columnId:a.columnId}))},Fx=(e,{payload:{id:t,indexId:n,tableId:r,targetId:i}},{collections:a})=>{let o=N(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(Dx({indexId:n,tableId:r,id:t,targetId:u}))},Ix=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(kx({id:t,indexId:n,columnId:r,value:a.orderType}))},Lx={[bx.addIndexColumn]:Nx,[bx.removeIndexColumn]:Px,[bx.moveIndexColumn]:Fx,[bx.changeIndexColumnOrderType]:Ix},Rx={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},zx=e=>qe({id:w(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:Xv()},e??{}),Bx=k(Rx.addMemo),Vx=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`memoEntities`).addOne(zx({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.memoIds)(r)||e.memoIds.push(r)})},Hx=k(Rx.moveMemo),Ux=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>zx({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},Wx=k(Rx.moveToMemo),Gx=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`memoEntities`);i.getOrCreate(t,e=>zx({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},Kx=k(Rx.removeMemo),qx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`memoEntities`).removeOperator(n,o,r,()=>{let t=e.memoIds.indexOf(r);t!==-1&&e.memoIds.splice(t,1)})},Jx=k(Rx.changeMemoValue),Yx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>zx({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},Xx=k(Rx.changeMemoColor),Zx=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>zx({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},Qx=k(Rx.resizeMemo),$x=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`memoEntities`);o.getOrCreate(t,e=>zx({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},eS=k(Rx.changeZIndex),tS=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`memoEntities`);r.getOrCreate(t,e=>zx({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},nS={[Rx.addMemo]:Vx,[Rx.moveMemo]:Ux,[Rx.moveToMemo]:Gx,[Rx.removeMemo]:qx,[Rx.changeMemoValue]:Yx,[Rx.changeMemoColor]:Zx,[Rx.resizeMemo]:$x,[Rx.changeZIndex]:tS},rS={addMemoAction:Bx,moveMemoAction:Hx,moveToMemoAction:Wx,removeMemoAction:Kx,changeMemoValueAction:Jx,changeMemoColorAction:Xx,resizeMemoAction:Qx,changeZIndexAction:eS},iS=(e,{payload:{id:t}})=>{e.push(Kx({id:t}))},aS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Bx({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},oS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Jx({id:t,value:r.value}))},sS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Wx({id:t,x:r.ui.x,y:r.ui.y}))},cS={[Rx.addMemo]:iS,[Rx.removeMemo]:aS,[Rx.changeMemoValue]:oS,[Rx.moveToMemo]:sS},lS=(e,t,n)=>{let r=n.filter(e=>e.type===Hx.type);if(!r.length)return;let i=b(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=oe(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(Hx({ids:r,movementX:-1*i,movementY:-1*a})),t.push(Hx({ids:r,movementX:i,movementY:a})))}},uS=(e,t,n)=>{let r=n.filter(({type:e})=>e===Xx.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=oe(r),a=fe(r);e.push(Xx({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(Xx({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},dS=(e,t,n)=>{let r=n.filter(e=>e.type===Qx.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=oe(n),i=fe(n);e.push(r),t.push(i)}},fS={[Rx.moveMemo]:lS,[Rx.changeMemoColor]:uS,[Rx.resizeMemo]:dS},pS={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`},mS=e=>qe({id:w(),identification:!1,relationshipType:nh.ZeroN,startRelationshipType:rh.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:R.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:R.bottom},meta:Xv()},e??{}),hS=k(pS.addRelationship),gS=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,start:a,end:o},version:s},{clock:c})=>{let l=s??c.getVersion();N(t).collection(`relationshipEntities`).addOne(mS({id:r,relationshipType:i,start:{tableId:a.tableId,columnIds:a.columnIds},end:{tableId:o.tableId,columnIds:o.columnIds}})).addOperator(n,l,r,()=>{V(e.relationshipIds)(r)||e.relationshipIds.push(r)})},_S=k(pS.removeRelationship),vS=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`relationshipEntities`).removeOperator(n,o,r,()=>{let t=e.relationshipIds.indexOf(r);t!==-1&&e.relationshipIds.splice(t,1)})},yS=k(pS.changeRelationshipType),bS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`relationshipType`,()=>{s.updateOne(n,e=>{e.relationshipType=r})})},xS={[pS.addRelationship]:gS,[pS.removeRelationship]:vS,[pS.changeRelationshipType]:bS},SS={addRelationshipAction:hS,removeRelationshipAction:_S,changeRelationshipTypeAction:yS},CS=(e,{payload:{id:t}})=>{e.push(_S({id:t}))},wS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(hS({id:r.id,relationshipType:r.relationshipType,start:ge(r.start,[`tableId`,`columnIds`]),end:ge(r.end,[`tableId`,`columnIds`])}))},TS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(yS({id:t,value:r.relationshipType}))},ES={[pS.addRelationship]:CS,[pS.removeRelationship]:wS,[pS.changeRelationshipType]:TS},DS=(e,t,{settings:n})=>{e.push(gv({originX:n.originX,originY:n.originY}))},OS=(e,{payload:{show:t,value:n}})=>{e.push(bv({show:t,value:!n}))},kS=(e,t,{settings:n})=>{e.push(uv({value:n.zoomLevel}))},AS={[K.scrollTo]:DS,[K.changeShow]:OS,[K.changeZoomLevel]:kS},jS=(e,t,n)=>{let r=n.filter(e=>e.type===vv.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(vv({movementX:-1*i,movementY:-1*a})),t.push(vv({movementX:i,movementY:a})))},MS=(e,t,n)=>{let r=n.filter(e=>e.type===fv.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(fv({value:-1*i})),t.push(fv({value:i}))},NS={[K.streamScrollTo]:jS,[K.streamZoomLevel]:MS},q={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`},PS=e=>qe({id:w(),name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:Xv()},e??{}),FS=k(q.addTable),IS=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`tableEntities`).addOne(PS({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.tableIds)(r)||e.tableIds.push(r)})},LS=k(q.moveTable),RS=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>PS({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},zS=k(q.moveToTable),BS=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableEntities`);i.getOrCreate(t,e=>PS({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},VS=k(q.removeTable),HS=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`tableEntities`).removeOperator(n,o,r,()=>{let t=e.tableIds.indexOf(r);t!==-1&&e.tableIds.splice(t,1)})},US=k(q.changeTableName),WS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>PS({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=U(a(r))})})},GS=k(q.changeTableComment),KS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>PS({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=U(a(r))})})},qS=k(q.changeTableColor),JS=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`);s.getOrCreate(n,e=>PS({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},YS=k(q.changeZIndex),XS=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableEntities`);r.getOrCreate(t,e=>PS({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},ZS=k(q.sortTable),QS=e=>{let{doc:t,settings:n,collections:r}=e,i=n.width,a=N(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=d_(t,e).width+80,r=x_(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})},$S={[q.addTable]:IS,[q.moveTable]:RS,[q.moveToTable]:BS,[q.removeTable]:HS,[q.changeTableName]:WS,[q.changeTableComment]:KS,[q.changeTableColor]:JS,[q.changeZIndex]:XS,[q.sortTable]:QS},eC={addTableAction:FS,moveTableAction:LS,moveToTableAction:zS,removeTableAction:VS,changeTableNameAction:US,changeTableCommentAction:GS,changeTableColorAction:qS,changeZIndexAction:YS,sortTableAction:ZS},tC=(e,{payload:{id:t}})=>{e.push(VS({id:t}))},nC=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(FS({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},rC=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(US({id:t,value:r.name}))},iC=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(GS({id:t,value:r.comment}))},aC=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(zS({id:t,x:r.ui.x,y:r.ui.y}))},oC=()=>{},sC={[q.addTable]:tC,[q.removeTable]:nC,[q.changeTableName]:rC,[q.changeTableComment]:iC,[q.moveToTable]:aC,[q.sortTable]:oC},cC=(e,t,n)=>{let r=n.filter(e=>e.type===LS.type);if(!r.length)return;let i=b(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=oe(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(LS({ids:r,movementX:-1*i,movementY:-1*a})),t.push(LS({ids:r,movementX:i,movementY:a})))}},lC=(e,t,n)=>{let r=n.filter(({type:e})=>e===qS.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=oe(r),a=fe(r);e.push(qS({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(qS({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},uC={[q.moveTable]:cC,[q.changeTableColor]:lC},J={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`},dC=e=>qe({id:w(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:Xv()},e??{}),fC=k(J.addColumn),pC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>PS({id:e}));N(e).collection(`tableColumnEntities`).addOne(dC({id:n,tableId:r})).addOperator(t,o,n,()=>{V(c.columnIds)(n)||s.updateOne(r,e=>{Sx(e.columnIds,e.seqColumnIds,n)})})},mC=k(J.removeColumn),hC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>PS({id:e}));N(e).collection(`tableColumnEntities`).removeOperator(t,o,n,()=>{let e=c.columnIds.indexOf(n);e!==-1&&s.updateOne(r,t=>{t.columnIds.splice(e,1)})})},gC=k(J.changeColumnName),_C=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>dC({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=U(a(r))})})},vC=k(J.changeColumnComment),yC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>dC({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=U(a(r))})})},bC=k(J.changeColumnDataType),xC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>dC({id:e})),c.replaceOperator(t,s,n,`dataType`,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=U(a(r))})})},SC=k(J.changeColumnDefault),CC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>dC({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=U(a(r))})})},wC=k(J.changeColumnAutoIncrement),TC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>dC({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.autoIncrement:e.options&~z.autoIncrement})})},EC=k(J.changeColumnPrimaryKey),DC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>dC({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.primaryKey:e.options&~z.primaryKey,e.ui.keys=r?e.ui.keys|B.primaryKey:e.ui.keys&~B.primaryKey})})},OC=k(J.changeColumnUnique),kC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>dC({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.unique:e.options&~z.unique})})},AC=k(J.changeColumnNotNull),jC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>dC({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.notNull:e.options&~z.notNull})})},MC=k(J.moveColumn),NC=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=N(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>PS({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))})},PC={[J.addColumn]:pC,[J.removeColumn]:hC,[J.changeColumnName]:_C,[J.changeColumnComment]:yC,[J.changeColumnDataType]:xC,[J.changeColumnDefault]:CC,[J.changeColumnAutoIncrement]:TC,[J.changeColumnPrimaryKey]:DC,[J.changeColumnUnique]:kC,[J.changeColumnNotNull]:jC,[J.moveColumn]:NC},FC={addColumnAction:fC,removeColumnAction:mC,changeColumnNameAction:gC,changeColumnCommentAction:vC,changeColumnDataTypeAction:bC,changeColumnDefaultAction:SC,changeColumnAutoIncrementAction:wC,changeColumnPrimaryKeyAction:EC,changeColumnUniqueAction:OC,changeColumnNotNullAction:AC,moveColumnAction:MC},IC=(e,{payload:{id:t,tableId:n}})=>{e.push(mC({id:t,tableId:n}))},LC=(e,{payload:{id:t,tableId:n}})=>{e.push(fC({id:t,tableId:n}))},RC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(gC({id:t,tableId:n,value:i.name}))},zC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(bC({id:t,tableId:n,value:i.dataType}))},BC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(SC({id:t,tableId:n,value:i.default}))},VC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(vC({id:t,tableId:n,value:i.comment}))},HC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(wC({id:t,tableId:n,value:!r}))},UC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(AC({id:t,tableId:n,value:!r}))},WC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(EC({id:t,tableId:n,value:!r}))},GC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(OC({id:t,tableId:n,value:!r}))},KC=(e,{payload:{id:t,tableId:n,targetId:r}},{collections:i})=>{let a=N(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(MC({id:t,tableId:n,targetId:l}))},qC={[J.addColumn]:IC,[J.removeColumn]:LC,[J.changeColumnName]:RC,[J.changeColumnDataType]:zC,[J.changeColumnDefault]:BC,[J.changeColumnComment]:VC,[J.changeColumnAutoIncrement]:HC,[J.changeColumnNotNull]:UC,[J.changeColumnPrimaryKey]:WC,[J.changeColumnUnique]:GC,[J.moveColumn]:KC};function JC(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const YC={...sC,...qC,...ES,...cS,...AS,...nx,...yx,...Lx},XC={...uC,...fS,...NS};function ZC(e,t,n){let r=[],i=[];for(let t of n){let n=YC[t.type];n&&(n(r,t,e.state),i.push(ie(t)))}for(let e of Object.keys(XC))XC[e](r,i,n);!r.length||!i.length||t.push({undo:(e,t)=>{e(r.map(QC(t())))},redo:(e,t)=>{e(i.map(QC(t())))}})}function QC(e){return t=>({...ie(t),version:e})}const $C=(e,t)=>n=>{JC(ZC,e,t,n)},ew=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=Yv(e,i,a),s=w();yield rj(),yield Fy({[s]:rg.memo}),yield Bx({id:s,ui:{...o,zIndex:qv(i,a)}})},tw=e=>function*({editor:{selectedMap:t}}){if(e){yield Kx({id:e});return}let n=Object.entries(t).filter(([,e])=>e===rg.memo);for(let[e]of n)yield Kx({id:e})},nw=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i}){let a=N(i).collection(`tableEntities`).selectByIds(n),o=N(i).collection(`memoEntities`).selectByIds(r);t||(yield rj()),yield Fy({[e]:rg.memo}),yield eS({id:e,zIndex:qv(a,o)})},rw={addMemoAction$:ew,removeMemoAction$:tw,selectMemoAction$:nw},iw=(e,t,n)=>e.flatMap((e,r)=>{let i={id:n[r],tableId:t};return[fC(i),AC({...i,value:!0}),gC({...i,value:e.name}),bC({...i,value:e.dataType}),SC({...i,value:e.default}),vC({...i,value:e.comment})]});V(Object.values({tables:`tables`,columns:`columns`}));const aw=({x:e,y:t})=>`${e},${t}`,ow=(e,t)=>e<t?-1:+(e>t),sw=e=>e.ui.zIndex??0;function cw({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})=>aw(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=Yv(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)=>ow(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(aw(t));)t.x+=50,t.y+=50;c.add(aw(t))}}}let d=qv(i,a);return[...e].sort((e,t)=>sw(e)-sw(t)||ow(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}V(Object.values({columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`}));function lw(e,t){return t.filter(t=>{switch(t){case I.columnName:return!0;case I.columnDataType:return G(e,F.columnDataType);case I.columnDefault:return G(e,F.columnDefault);case I.columnComment:return G(e,F.columnComment);case I.columnAutoIncrement:return G(e,F.columnAutoIncrement);case I.columnUnique:return G(e,F.columnUnique);case I.columnNotNull:return G(e,F.columnNotNull);default:return!1}})}const uw=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=Yv(e,i,a),s=w();yield Ny(),yield Fy({[s]:rg.table}),yield FS({id:s,ui:{...o,zIndex:qv(i,a)}}),yield Jy({tableId:s})},dw=e=>function*({doc:{relationshipIds:t,indexIds:n},editor:{selectedMap:r},collections:i}){let a=N(i).collection(`relationshipEntities`).selectByIds(t),o=N(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 sx({id:e});for(let{id:e}of t)yield _S({id:e});yield VS({id:e});return}let s=Object.entries(r).filter(([,e])=>e===rg.table).map(([e])=>e),c=V(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 sx({id:e});for(let{id:e}of l)yield _S({id:e});for(let e of s)yield VS({id:e})},fw=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a}}){let o=N(i).collection(`tableEntities`),s=o.selectByIds(n),c=N(i).collection(`memoEntities`).selectByIds(r);if(t||(yield Ny()),yield Fy({[e]:rg.table}),yield YS({id:e,zIndex:qv(s,c)}),yield Jy({tableId:e}),a){if(a.start){let t=o.selectById(a.start.tableId),n=o.selectById(e);if(!t||!n)return;let r=N(i).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>G(e,z.primaryKey));if(!r.length)return;let s=r.map(()=>w());yield iw(r,n.id,s),yield hS({id:w(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:r.map(({id:e})=>e)},end:{tableId:n.id,columnIds:s}}),yield vb()}else yield oj(e)}},pw={addTableAction$:uw,removeTableAction$:dw,selectTableAction$:fw,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!yy(n.focusType),s=Object.entries(t).filter(([,e])=>e===rg.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:w(),tableId:t};yield[fC(e),gC({...e,value:n.name}),bC({...e,value:n.dataType}),SC({...e,value:n.default}),vC({...e,value:n.comment}),AC({...e,value:G(n.options,z.notNull)}),OC({...e,value:G(n.options,z.unique)}),wC({...e,value:G(n.options,z.autoIncrement)})]}if(!n||!o)return;let c=N(a).collection(`tableEntities`).selectById(n.tableId);if(!c)return;let l=c.columnIds.filter(V(n.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=lw(r,i);yield Qy();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 I.columnName:return gC({...a,value:i.name});case I.columnDataType:return bC({...a,value:i.dataType});case I.columnDefault:return SC({...a,value:i.default});case I.columnComment:return vC({...a,value:i.comment});case I.columnAutoIncrement:return wC({...a,value:G(i.options,z.autoIncrement)});case I.columnUnique:return OC({...a,value:G(i.options,z.unique)});case I.columnNotNull:return AC({...a,value:G(i.options,z.notNull)});default:return null}}).filter(Boolean),Xy({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=w(),r={id:t,tableId:c.id};yield[fC(r),...f.map(t=>{switch(t){case I.columnName:return gC({...r,value:e.name});case I.columnDataType:return bC({...r,value:e.dataType});case I.columnDefault:return SC({...r,value:e.default});case I.columnComment:return vC({...r,value:e.comment});case I.columnAutoIncrement:return wC({...r,value:G(e.options,z.autoIncrement)});case I.columnUnique:return OC({...r,value:G(e.options,z.unique)});case I.columnNotNull:return AC({...r,value:G(e.options,z.notNull)});default:return null}}).filter(Boolean),Xy({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}},sortTablesToMoveAction$:()=>function*(e,t){let{doc:n,collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(n.tableIds).map(e=>({...e,ui:{...e.ui}}));$S[q.sortTable]({...e,collections:{...r,tableEntities:Object.fromEntries(i.map(e=>[e.id,e]))}},{type:q.sortTable,payload:void 0},t),yield i.map(({id:e,ui:{x:t,y:n}})=>zS({id:e,x:t,y:n}))}};function mw(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),N(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})}}})),mw(e,t,n,r)),r}const hw=V([W.columnNotNull,W.columnUnique,W.columnAutoIncrement]),gw=V([W.columnName,W.columnDataType,W.columnDefault,W.columnComment]),_w=e=>function*({editor:{selectedMap:t}}){if(e){let t=w();yield fC({id:t,tableId:e}),yield Xy({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===rg.table).map(([e])=>({tableId:e,id:w()}));for(let e of n)yield fC(e);let r=fe(n);r&&(yield Xy({tableId:r.tableId,columnId:r.id,focusType:W.columnName,$mod:!1,shiftKey:!1}))},vw=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=hy(n,t);e?yield Xy({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield Jy({tableId:a.tableId,focusType:W.tableName})}let s=V(t),c=N(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=N(o).collection(`indexEntities`).selectByIds(i).filter(t=>t.tableId===e&&N(o).collection(`indexColumnEntities`).selectByIds(t.indexColumnIds).map(({columnId:e})=>e).some(s));for(let{id:e}of l)yield sx({id:e});for(let{id:e}of c)yield _S({id:e});for(let n of t)yield mC({id:n,tableId:e})},yw=(e,t,n)=>function*({collections:r}){if(!hw(e))return;let i=N(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case W.columnNotNull:yield AC({id:n,tableId:t,value:!G(i.options,z.notNull)});break;case W.columnUnique:yield OC({id:n,tableId:t,value:!G(i.options,z.unique)});break;case W.columnAutoIncrement:yield wC({id:n,tableId:t,value:!G(i.options,z.autoIncrement)})}},bw=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=mw([e],t,e)),yield r.map(bC)},xw={addColumnAction$:_w,removeColumnAction$:vw,toggleColumnValueAction$:yw,changeColumnDataTypeAction$:bw,changeColumnValueAction$:(e,t,n,r)=>function*({collections:i}){if(!gw(e)||!N(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case W.columnName:yield gC(a);break;case W.columnDataType:yield bw(a);break;case W.columnDefault:yield SC(a);break;case W.columnComment:yield vC(a)}},changeColumnPrimaryKeyAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`tableColumnEntities`).selectById(t);if(!r)return;let i=G(r.options,z.primaryKey);yield EC({tableId:e,id:t,value:!i})}};function Sw(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 Cw(e){return e.filter(({options:e})=>G(e,z.primaryKey))}function ww(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:ww(e,t,n.replace(/[0-9]/g,``)+r,r+1)}function Tw(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const Ew={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`};function Dw(e,t,n,r=[]){let i=Aw(e,n,r);return i.members?kw(i.members,t)??Ew[t]??i.typeName:i.typeName}function Ow(e,t,n,r=[]){let{members:i}=Aw(e,t,r);return!i||kw(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function kw(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function Aw(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=jw(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 jw(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 Mw={database:``,catalog:``,schema:``},Nw=Iw(Mw);function Pw(e,t,n){let r=qp({}),i=Fw(e.entities),a=e.entities.map(a=>zw(r,t,e,n,a,i(a)));return Hw(r,t,a,e,Rw(e.entities,a)),qw(r,a),r}function Fw(e){let t=new Set(e.map(e=>Iw(e.namespace)));return e=>{let n=Iw(e.namespace);return t.size>1&&n!==Nw?`${Lw(e.namespace)}_${e.name}`:e.name}}function Iw({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function Lw({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function Rw(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=Iw(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=Iw(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===Nw?n.get(e.entityName.toLowerCase())??null:null)}}function zw({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=tg(o),l=tg(a.comment),u=PS({name:c,comment:l,ui:{widthName:U(s(c)),widthComment:U(s(l))}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=tg(e.path),a=Dw(e.typeName,i,r,e.enumValues),o=`${tg(e.comment)}${Ow(e.typeName,r,i,e.enumValues)}`.trim(),c=tg(e.default);Vw(t,d,dC({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?z.autoIncrement:0)|(e.primaryKey?z.primaryKey:0)|(Bw(e)?z.unique:0)|(e.notNull?z.notNull:0),ui:{widthName:U(s(n)),widthComment:U(s(o)),widthDataType:U(s(a)),widthDefault:U(s(c)),keys:e.primaryKey?B.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function Bw(e){return e.indexes.some(e=>e.unique&&e.name===``)}function Vw(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function Hw(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=Uw(o,r.src),l=Uw(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){Gw(e,t,n,o,s);return}Ww(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`})}})}function Uw(e,t){if(t.attributePaths.length===0)return Cw(e.columns);let n=[];for(let r of t.attributePaths){let t=Tw(e.columns,r);if(!t)return[];n.push(t)}return n}function Ww({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=>G(e.options,z.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=U(n(r))}e.ui.keys=G(e.ui.keys,B.primaryKey)?e.ui.keys|B.foreignKey:B.foreignKey});let d=mS({identification:s.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey)),relationshipType:c?u?nh.OneN:nh.ZeroN:u?nh.OneOnly:nh.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),N(t).collection(`relationshipEntities`).setOne(d)}function Gw(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=Cw(r.columns),l=Cw(i.columns);if(!c.length||!l.length)return;let u=ww(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=PS({name:u,comment:d,ui:{widthName:U(s(u)),widthComment:U(s(d))}}),p={source:{namespace:Mw,name:u,alias:``,comment:d,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),Kw(e,t,p,r,c),Kw(e,t,p,i,l)}function Kw(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=ww(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=dC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return Vw(o,n,s),s}),c=mS({identification:!0,relationshipType:nh.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),N(o).collection(`relationshipEntities`).setOne(c)}function qw({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:ix({name:tg(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(xx({indexId:s.index.id,columnId:n.id,orderType:ih.ASC})),a.set(o,s)})}),a.forEach(({index:n,indexColumns:r})=>{r.forEach(e=>{n.indexColumnIds.push(e.id),n.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(n.id),N(t).collection(`indexEntities`).setOne(n)})})}const Y={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},Jw=/[ \t\f\v]/,Yw=/[0-9]/,Xw=/[A-Za-z_\u0080-\uffff]/,Zw=/[0-9A-Za-z_#\u0080-\uffff]/,Qw=/^[ \t]*/,$w=/\\#/g,eT={n:`
|
|
2
|
-
`};function
|
|
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 _}from"konva/lib/shapes/Rect";import{Text as v}from"konva/lib/shapes/Text";import{Stage as y}from"konva/lib/Stage";import{DD as b}from"konva/lib/DragAndDrop";import{Konva as ee}from"konva/lib/Global";import{camelCase as te,clamp as ne,cloneDeep as re,difference as ie,groupBy as ae,head as x,isBoolean as S,isEqual as oe,isFunction as se,isNil as C,isNotNil as ce,isNumber as w,isPlainObject as le,isString as T,last as ue,lowerFirst as de,mapValues as fe,noop as pe,omit as me,pick as he,range as ge,snakeCase as _e,uniq as ve,upperFirst as ye}from"es-toolkit";import{Observable as be,Subject as xe,animationFrames as Se,asapScheduler as Ce,buffer as we,debounceTime as Te,defer as Ee,filter as De,fromEvent as Oe,groupBy as ke,map as Ae,merge as je,mergeMap as Me,observeOn as Ne,share as Pe,startWith as Fe,switchMap as Ie,take as Le,takeUntil as Re,tap as ze,throttle as Be,timer as Ve}from"rxjs";import{get as He,isEmpty as Ue,round as We}from"es-toolkit/compat";import{Kind as Ge,TokenKind as Ke,parse as qe}from"graphql";import{ArrowDown as Je,ArrowLeft as Ye,ArrowRight as Xe,ArrowUp as Ze,Atom as Qe,Braces as $e,Brackets as et,CaseSensitive as tt,Check as nt,ChevronDown as rt,ChevronRight as it,Code as at,Columns2 as ot,Contrast as st,Copy as ct,Database as lt,Diff as ut,Download as dt,ExternalLink as ft,Eye as pt,FileDiff as mt,FileImage as ht,FileInput as gt,FileOutput as _t,Fullscreen as vt,GripVertical as yt,Group as bt,Hand as xt,KeyRound as St,Keyboard as Ct,Languages as wt,Link as Tt,LoaderCircle as Et,Lock as Dt,LockOpen as Ot,Maximize as kt,MessageSquare as At,Minimize as jt,Minus as Mt,Monitor as Nt,MoonStar as Pt,MousePointer2 as Ft,Network as It,Palette as Lt,PanelRight as Rt,PanelRightClose as zt,PanelRightOpen as Bt,Pencil as Vt,Pipette as Ht,Plus as Ut,Redo2 as Wt,RefreshCw as Gt,Regex as Kt,Replace as qt,ReplaceAll as Jt,RotateCcwClock as Yt,Search as Xt,Settings as Zt,Settings2 as Qt,Share2 as $t,Spline as en,StickyNote as tn,Sun as nn,Table2 as rn,TableProperties as an,TextSearch as on,TriangleAlert as sn,Undo2 as cn,Ungroup as ln,WandSparkles as un,Waypoints as dn,WholeWord as fn,Workflow as pn,X as mn}from"lucide";import{layoutWithLines as hn,prepareWithSegments as gn}from"@chenglou/pretext";import{amber as _n,amberA as vn,amberDark as yn,amberDarkA as bn,blue as xn,blueA as Sn,blueDark as Cn,blueDarkA as wn,bronze as Tn,bronzeA as En,bronzeDark as Dn,bronzeDarkA as On,brown as kn,brownA as An,brownDark as jn,brownDarkA as Mn,crimson as Nn,crimsonA as Pn,crimsonDark as Fn,crimsonDarkA as In,cyan as Ln,cyanA as Rn,cyanDark as zn,cyanDarkA as Bn,gold as Vn,goldA as Hn,goldDark as Un,goldDarkA as Wn,grass as Gn,grassA as Kn,grassDark as qn,grassDarkA as Jn,gray as Yn,grayA as Xn,grayDark as Zn,grayDarkA as Qn,green as $n,greenA as er,greenDark as tr,greenDarkA as nr,indigo as rr,indigoA as ir,indigoDark as ar,indigoDarkA as or,iris as sr,irisA as cr,irisDark as lr,irisDarkA as ur,jade as dr,jadeA as fr,jadeDark as pr,jadeDarkA as mr,lime as hr,limeA as gr,limeDark as _r,limeDarkA as vr,mauve as yr,mauveA as br,mauveDark as xr,mauveDarkA as Sr,mint as Cr,mintA as wr,mintDark as Tr,mintDarkA as Er,olive as Dr,oliveA as Or,oliveDark as kr,oliveDarkA as Ar,orange as jr,orangeA as Mr,orangeDark as Nr,orangeDarkA as Pr,pink as Fr,pinkA as Ir,pinkDark as Lr,pinkDarkA as Rr,plum as zr,plumA as Br,plumDark as Vr,plumDarkA as Hr,purple as Ur,purpleA as Wr,purpleDark as Gr,purpleDarkA as Kr,red as qr,redA as Jr,redDark as Yr,redDarkA as Xr,ruby as Zr,rubyA as Qr,rubyDark as $r,rubyDarkA as ei,sage as ti,sageA as ni,sageDark as ri,sageDarkA as ii,sand as ai,sandA as oi,sandDark as si,sandDarkA as ci,sky as li,skyA as ui,skyDark as di,skyDarkA as fi,slate as pi,slateA as mi,slateDark as hi,slateDarkA as gi,teal as _i,tealA as vi,tealDark as yi,tealDarkA as bi,tomato as xi,tomatoA as Si,tomatoDark as Ci,tomatoDarkA as wi,violet as Ti,violetA as Ei,violetDark as Di,violetDarkA as Oi,yellow as ki,yellowA as Ai,yellowDark as ji,yellowDarkA as Mi}from"@radix-ui/colors";import{Easings as Ni,Tween as Pi}from"konva/lib/Tween";function Fi(e){"@babel/helpers - typeof";return Fi=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},Fi(e)}function Ii(e,t){if(Fi(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Fi(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Li(e){var t=Ii(e,`string`);return Fi(t)==`symbol`?t:t+``}function Ri(e,t,n){return(t=Li(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var zi=class extends EventTarget{constructor(...e){super(...e),Ri(this,`textContent`,``)}},Bi=class{};function Vi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{querySelector:()=>null,querySelectorAll:()=>[],createElement:e=>e===`canvas`?Vi():new zi}),Reflect.set(globalThis,`Node`,Bi),Reflect.set(globalThis,`HTMLElement`,Bi));function Hi(e,t){return Object.freeze({key:t??Symbol(),value:e})}var Ui={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function Wi(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var Gi=Wi(Ui.subscribe,{bubbles:!0,composed:!0}),Ki=Wi(Ui.unsubscribe,{bubbles:!0,composed:!0});function qi(e,t){let n=e=>{let n=e;t.dispatchEvent(Gi(n.detail))},r=e=>{let n=e;t.dispatchEvent(Ki(n.detail))};return e.addEventListener(Gi.type,n),e.addEventListener(Ki.type,r),()=>{e.removeEventListener(Gi.type,n),e.removeEventListener(Ki.type,r)}}function Ji(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var Yi=queueMicrotask??(e=>{Promise.resolve().then(e)}),Xi=e=>t=>typeof t===e,Zi=Xi(`object`),Qi=Xi(`bigint`),$i=Xi(`boolean`),ea=Xi(`function`),ta=Xi(`number`),na=Xi(`string`),ra=Xi(`symbol`),ia=Xi(`undefined`),aa=e=>e===null,{isArray:oa}=Array,sa=e=>Zi(e)&&!aa(e)&&!oa(e),ca=e=>Qi(e)||$i(e)||ta(e)||na(e)||ra(e)||ia(e)||aa(e);function la(){let e=/* @__PURE__ */ 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 ua=`...`,da=`@@r-html-${Math.random().toString().substring(2,8)}`,fa=`${ua}${da}`,pa=RegExp(`${da}_(\\d+)_`,`g`),ma=RegExp(`^${da}_\\d+_$`),ha=/^\n/,ga=/* @__PURE__ */ function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),_a=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),va=Symbol.for(`https://github.com/dineug/r-html#mounted`),ya=Symbol.for(`https://github.com/dineug/r-html#unmounted`),ba=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),xa=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),Sa=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),Ca=Symbol.for(`https://github.com/dineug/r-html#updated`),wa=[_a,va,ya,ba,xa,Sa,Ca],Ta=Symbol.for(`https://github.com/dineug/r-html#Directive`),Ea=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),Da=null;function Oa(e){Da=e}var ka=e=>t=>{Da&&(Da[e]??(Da[e]=[])).push(t)},Aa=ka(_a),ja=ka(va),Ma=ka(ya);function Na(e,t){let n=Reflect.get(e,t,e);oa(n)&&n.forEach(Ji)}function Pa(e){wa.forEach(t=>Reflect.set(e,t,null,e))}function Fa(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function E(e,t,n){Fa(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 D(e,t,n){return e.set(Ia(e,t),n),n}function O(e,t){return e.get(Ia(e,t))}var La=la(),Ra=e=>e,za=e=>{var t=/* @__PURE__ */ new WeakMap,n=/* @__PURE__ */ new WeakMap;return class extends e{constructor(e,r,i,a){super(e,r,i,a),E(this,t,[]),E(this,n,null),this.hmr()}commit(e){let n=Ra(e);super.commit(n),D(t,this,e)}hmr(){D(n,this,La.subscribe(e=>O(t,this).includes(e)&&this.commit(O(t,this))))}destroy(){O(n,this)?.call(this),super.destroy?.()}}},Ba=/* @__PURE__ */ new WeakMap,Va=/* @__PURE__ */ new WeakMap,Ha=/* @__PURE__ */ new WeakMap,Ua=/* @__PURE__ */ new WeakMap,Wa=/* @__PURE__ */ new WeakMap,Ga={shallow:!1},Ka=null;function qa(e){return Ka=e,Ji(e),Ka=null,()=>Ja(e)}function Ja(e){co(e);let t=Wa.get(e);if(t)for(let[n]of t.entries())Va.get(n)?.delete(e);t&&Wa.delete(e)}function Ya(e){if(!Ka)return;let t=Va.get(e);t?t.has(Ka)||t.add(Ka):Va.set(e,/* @__PURE__ */ new Set([Ka]))}function Xa(e,t){if(!Ka)return;let n=Wa.get(Ka);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,/* @__PURE__ */ new Set([t]))}else Wa.set(Ka,/* @__PURE__ */ new Map([[e,/* @__PURE__ */ new Set([t])]]))}var Za=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||(oa(e)||sa(e))&&Object.isFrozen(e);function Qa(e,t={}){let{shallow:n}=Object.assign({},Ga,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return Za(o)?o:(Ya(e),Xa(e,i),!n&&(sa(o)||oa(o))&&!Ha.has(o)?Ba.has(o)?Ba.get(o):Qa(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!oa(e)&&i!==n||t===`length`)&&(lo(e,t),po(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return lo(e,t),po(e,t),n}});return Ba.set(e,r),Ha.set(r,e),r}function $a(e){return(Ua.get(e)??Ua.set(e,la()).get(e)).asReadonly()}var eo=[],to=/* @__PURE__ */ new Map,no=/* @__PURE__ */ new Map,ro=!0;function io(e,t,n){let r=Wa.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var ao=e=>t=>{let n=to.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()}};eo.push(n),to.set(t,n)}return ro&&=(Yi(fo),!1),i},oo=ao(`observer`),so=ao(`nextTick`);function co(e){let t=to.get(e);if(!t)return;let n=eo.indexOf(t);n===-1||eo.splice(n,1),to.delete(e),t.resolve()}var lo=(e,t)=>Va.get(e)?.forEach(n=>io(e,t,n)&&oo(n));function uo(){let e=eo.shift();if(e){if(to.delete(e.fn),e.type===`observer`)Ja(e.fn),qa(e.fn),e.resolve();else if(e.type===`nextTick`){let t=Ji(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function fo(){for(;eo.length;)uo();ro=!0}function po(e,t){let n=Ba.get(e);if(!n)return;let r=Ua.get(n);if(!r)return;let i=no.get(n);i?i.has(t)||i.add(t):(no.set(n,/* @__PURE__ */ new Set([t])),so(()=>{let e=no.get(n);e&&(no.delete(n),e.forEach(e=>r.next(e)))}))}function mo(e,t){let n=Qa({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(Gi({context:t,observer:r}))};return a(),Aa(a),Ma(()=>{i().dispatchEvent(Ki({context:t,observer:r}))}),n}function ho(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=la(),a=/* @__PURE__ */ 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(Gi.type,o),r.addEventListener(Ki.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(Gi.type,o),r.removeEventListener(Ki.type,s);for(let e of a.values())e();a.clear()}}}var go=/* @__PURE__ */ function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function _o(e,t){return Reflect.set(t,Ta,e),t}function vo(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function yo(e,t){return(...n)=>_o(go.node,[e(...n),t])}var bo=/* @__PURE__ */ function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),xo=new Set(Object.values(bo)),So=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),Co=/* @__PURE__ */ new WeakMap,wo=/* @__PURE__ */ new WeakMap,To=/* @__PURE__ */ new Set([bo.svg]),Eo=e=>`${da}_${e}_`,Do=e=>oa(e)&&oa(e.raw),Oo=e=>sa(e)&&Do(e.strings)&&oa(e.values)&&xo.has(Reflect.get(e,Ea)??``),ko=e=>Oo(e)&&e[Ea]===bo.css,Ao=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),jo=Ao(fa),Mo=Ao(`.`),No=Ao(`?`),Po=Ao(`@`),Fo=Ao(`on`),Io=Ao(da,!1),Lo=e=>Io(e)&&ma.test(e?.trim()??``),Ro=({type:e,value:t})=>e===ga.spread||e===ga.directive||Io(t),zo=e=>To.has(e),Bo=e=>Lo(e)?ga.directive:jo(e)?ga.spread:Mo(e)?ga.property:Po(e)||Fo(e)?ga.event:No(e)?ga.boolean:ga.attribute,Vo=e=>jo(e)?e.substring(3):Lo(e)?e:Mo(e)||Po(e)||No(e)?e.substring(1):Fo(e)?e.substring(2):e;function Ho(e){let t=[],n=pa.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=pa.exec(e)}return t}var Uo=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function Wo(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,Uo,n)}return()=>{Reflect.deleteProperty(e,Uo)}}function Go(e){return Reflect.get(e,Uo)??null}function Ko(e){return ca(e)&&!aa(e)&&!ia(e)||ko(e)?String(e):``}var qo={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?Ko(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=Go(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=qi(e,t),r=Wo(e,t);return()=>{n(),r()}}};function Jo(e){"@babel/helpers - typeof";return Jo=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},Jo(e)}function Yo(e,t){if(Jo(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Jo(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xo(e){var t=Yo(e,`string`);return Jo(t)==`symbol`?t:t+``}function Zo(e,t,n){return(t=Xo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qo,$o=/* @__PURE__ */ function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});Qo=Symbol.iterator;var es=class{constructor(e={}){Zo(this,`type`,`comment`),Zo(this,`value`,``),Zo(this,`attrs`,void 0),Zo(this,`parent`,null),Zo(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[Qo](){if(yield this,this.children)for(let e of this.children)yield*e}},ts=e=>!!e&&e!==`false`;function ns(e){let t=({type:t,value:n},r=!1)=>t===$o.element?e.createElement(n,r):t===$o.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case ga.attribute:e.setAttribute(t,r,i??``,!1);break;case ga.boolean:ts(i)&&e.setAttribute(t,r,``,!1);break;case ga.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 rs=ns(qo);rs.setAttr,rs.insertBeforeNode,rs.insertAfterNode,rs.removeNode,rs.rangeNodes,rs.removeRange;var is=rs.isHostNode;function as(e,{type:t,name:n,value:r}){switch(t){case ga.attribute:case ga.property:Reflect.set(e,n,r);break;case ga.boolean:Reflect.set(e,n,ts(r))}}var os=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function ss(e,t){if(e===t)return!0;let n=sa(e)?e:{},r=sa(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 cs=e=>oa(e)&&ea(e[0])&&(ia(e[1])||$i(e[1])||sa(e[1])),ls=()=>{},us=e=>e instanceof HTMLElement,ds=e=>e instanceof SVGElement,fs=e=>e instanceof Promise,ps=/* @__PURE__ */ new WeakMap,ms=/* @__PURE__ */ new WeakMap,hs=/* @__PURE__ */ new WeakMap,gs=/* @__PURE__ */ new WeakMap,_s=/* @__PURE__ */ new WeakMap,vs=/* @__PURE__ */ new WeakMap,ys=/* @__PURE__ */ new WeakMap,bs=/* @__PURE__ */ new WeakMap,xs=/* @__PURE__ */ new WeakMap,Ss=class{constructor(e,{name:t,value:n},r=rs){E(this,ps,void 0),E(this,ms,void 0),E(this,hs,void 0),E(this,gs,void 0),E(this,_s,[]),E(this,vs,[]),E(this,ys,void 0),E(this,bs,null),E(this,xs,null),D(ps,this,r),D(ms,this,e),D(hs,this,t),D(gs,this,n),D(_s,this,Ho(n??``)),D(ys,this,O(_s,this).length===1&&(n??``).trim()===O(_s,this)[0][0])}commit(e){let t=O(_s,this).map(([t,n])=>e[n]);if(os(O(vs,this),t))return;let n=t[t.length-1];if(O(hs,this)===`class`)this.classCommit(n);else if(O(hs,this)===`style`)this.styleCommit(n);else if(O(ys,this))O(ps,this).setAttribute(O(ms,this),O(hs,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(O(_s,this)[n][0]),Ko(t)),O(gs,this)??``);O(ps,this).setAttribute(O(ms,this),O(hs,this),e.trim(),!1)}D(vs,this,t)}classCommit(e){let t=O(ms,this);if(!us(t)&&!ds(t))return;let n=O(vs,this)[O(vs,this).length-1];if(n===e||oa(n)&&oa(e)&&os(n,e)||sa(n)&&sa(e)&&ss(n,e))return;let r=[...t.classList],i=ws(e);if(aa(O(xs,this)))D(xs,this,r);else{let e=O(xs,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=O(ms,this);if(!us(t)&&!ds(t))return;let n=O(vs,this)[O(vs,this).length-1];if(ss(n,e))return;let r=Cs(t),i=sa(e)?e:{};if(aa(O(bs,this)))D(bs,this,r);else{let e=O(bs,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 Cs(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 ws(e,t=[]){if(!e)return t;if(ko(e))return t.push(Ko(e)),t;if(ca(e))t.push(Ko(e));else if(Zi(e)){if(oa(e))for(let n=0;n<e.length;n++)e[n]&&ws(e[n],t);else for(let n in e)e[n]&&t.push(Ko(n))}return t}var Ts=/* @__PURE__ */ new WeakMap,Es=/* @__PURE__ */ new WeakMap,Ds=/* @__PURE__ */ new WeakMap,Os=/* @__PURE__ */ new WeakMap,ks=/* @__PURE__ */ new WeakMap,As=class{constructor(e,{name:t,value:n},r=rs){E(this,Ts,void 0),E(this,Es,void 0),E(this,Ds,void 0),E(this,Os,[]),E(this,ks,[]),D(Ts,this,r),D(Es,this,e),D(Ds,this,t),D(Os,this,Ho(n??``))}commit(e){let t=O(Os,this).map(([t,n])=>e[n]);if(os(O(ks,this),t))return;let n=t[t.length-1];ts(n)?O(Ts,this).setAttribute(O(Es,this),O(Ds,this),``,!1):O(Ts,this).removeAttribute(O(Es,this),O(Ds,this)),D(ks,this,t)}},js=e=>oa(e)&&Reflect.get(e,Ta)===go.attribute,Ms=/* @__PURE__ */ new WeakMap,Ns=/* @__PURE__ */ new WeakMap,Ps=/* @__PURE__ */ new WeakMap,Fs=/* @__PURE__ */ new WeakMap,Is=/* @__PURE__ */ new WeakMap,Ls=class{constructor(e,{name:t}){E(this,Ms,void 0),E(this,Ns,void 0),E(this,Ps,null),E(this,Fs,null),E(this,Is,null),D(Ms,this,e),D(Ns,this,Ho(t)[0])}commit(e){let[,t]=O(Ns,this),n=e[t];if(!js(n))return;let[r,i]=n;if(O(Ps,this)!==i)O(Is,this)?.call(this),D(Fs,this,i({node:O(Ms,this)})),D(Ps,this,i),D(Is,this,O(Fs,this)?.call(this,r));else{let e=O(Fs,this)?.call(this,r);O(Is,this)!==e&&(O(Is,this)?.call(this),D(Is,this,e))}}destroy(){O(Is,this)?.call(this)}},Rs=/* @__PURE__ */ new WeakMap,zs=/* @__PURE__ */ new WeakMap,Bs=/* @__PURE__ */ new WeakMap,Vs=/* @__PURE__ */ new WeakMap,Hs=/* @__PURE__ */ new WeakMap,Us=class{constructor(e,{name:t,value:n},r=rs){E(this,Rs,void 0),E(this,zs,void 0),E(this,Bs,void 0),E(this,Vs,[]),E(this,Hs,[]),D(Rs,this,r),D(zs,this,e),D(Bs,this,t),D(Vs,this,Ho(n??``))}commit(e){let t=O(Vs,this).map(([t,n])=>e[n]).filter(e=>ea(e)||cs(e));os(O(Hs,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=Ws(e);O(Rs,this).addEventListener(O(zs,this),O(Bs,this),t,n)}),D(Hs,this,t))}clear(){O(Hs,this).forEach(e=>{let[t,n]=Ws(e);O(Rs,this).removeEventListener(O(zs,this),O(Bs,this),t,n)})}destroy(){this.clear()}};function Ws(e){return ea(e)?[e,void 0]:e}var Gs=/* @__PURE__ */ new WeakMap,Ks=/* @__PURE__ */ new WeakMap,qs=/* @__PURE__ */ new WeakMap,Js=/* @__PURE__ */ new WeakMap,Ys=class{constructor(e,{name:t,value:n}){E(this,Gs,void 0),E(this,Ks,void 0),E(this,qs,[]),E(this,Js,[]),D(Gs,this,e),D(Ks,this,t),D(qs,this,Ho(n??``))}commit(e){let t=O(qs,this).map(([t,n])=>e[n]);if(os(O(Js,this),t))return;let n=t[t.length-1];Reflect.set(O(Gs,this),O(Ks,this),n,O(Gs,this)),D(Js,this,t)}},Xs=/* @__PURE__ */ new WeakMap,Zs=/* @__PURE__ */ new WeakMap,Qs=/* @__PURE__ */ new WeakMap,$s=class{constructor(e,{name:t}){E(this,Xs,void 0),E(this,Zs,void 0),E(this,Qs,null),D(Xs,this,e),D(Zs,this,Ho(t)[0])}commit(e){let[,t]=O(Zs,this),n=e[t];sa(n)&&!ss(O(Qs,this),n)&&(Object.keys(n).forEach(e=>Reflect.set(O(Xs,this),e,n[e],O(Xs,this))),D(Qs,this,n))}},ec=(e,t,n=rs)=>t.type===ga.attribute?new Ss(e,t,n):t.type===ga.boolean?new As(e,t,n):t.type===ga.event?new Us(e,t,n):t.type===ga.property?new Ys(e,t):t.type===ga.spread?new $s(e,t):new Ls(e,t),tc=/* @__PURE__ */ new WeakMap,nc=/* @__PURE__ */ new WeakMap,rc=/* @__PURE__ */ new WeakMap,ic=/* @__PURE__ */ new WeakMap,ac=/* @__PURE__ */ new WeakMap,oc=class{constructor(e,{value:t},n=rs){E(this,tc,void 0),E(this,nc,void 0),E(this,rc,void 0),E(this,ic,[]),E(this,ac,[]),D(tc,this,n),D(nc,this,e),D(rc,this,t),na(t)&&D(ic,this,Ho(t))}commit(e){let t=O(ic,this).map(([t,n])=>e[n]);if(os(O(ac,this),t))return;D(ac,this,t);let n=O(ac,this).reduce((e,t,n)=>e.replace(new RegExp(O(ic,this)[n][0]),ca(t)&&!aa(t)&&!ia(t)?String(t):``),O(rc,this)??``);O(tc,this).setText(O(nc,this),n)}},sc=/* @__PURE__ */ new WeakMap,cc=/* @__PURE__ */ new WeakMap,lc=/* @__PURE__ */ new WeakMap,uc=/* @__PURE__ */ new WeakMap,dc=class{constructor(e,{name:t,value:n}){E(this,sc,void 0),E(this,cc,void 0),E(this,lc,[]),E(this,uc,[]),D(sc,this,e),D(cc,this,t),D(lc,this,Ho(n??``))}commit(e){let t=O(lc,this).map(([t,n])=>e[n]);if(os(O(uc,this),t))return;let n=t[t.length-1];Reflect.set(O(sc,this),O(cc,this),n),D(uc,this,t)}},fc=/* @__PURE__ */ function(e){return e.create=`create`,e.move=`move`,e}({});function pc(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===$c.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function mc(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach((e,r)=>{let i=ll(e),a={type:i,key:i===$c.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function hc(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=/* @__PURE__ */ 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 gc=/* @__PURE__ */ new WeakMap,_c=/* @__PURE__ */ new WeakMap,vc=/* @__PURE__ */ new WeakMap,yc=/* @__PURE__ */ new WeakMap,bc=class{constructor(e,t,n=rs){E(this,gc,void 0),E(this,_c,void 0),E(this,vc,void 0),E(this,yc,[]),D(_c,this,e),D(vc,this,t),D(gc,this,n)}commit(e){let t=hc(pc(O(yc,this)),mc(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case fc.create:let t=O(gc,this).createMarker(``);i===0?O(gc,this).insertAfterNode(t,O(_c,this)):O(yc,this).length?O(gc,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:O(yc,this)[i-1].endNode):O(gc,this).insertBeforeNode(t,O(vc,this)),n[i]=new Cc(t,e[i],O(gc,this));break;case fc.move:if(n[i]=O(yc,this)[r],i===r)return;i===0?O(yc,this)[r].insert(`after`,O(_c,this)):O(yc,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:O(yc,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>O(yc,this)[e].destroy()),D(yc,this,Array.from(n)),O(yc,this).forEach((t,n)=>t.commit(e[n]))}destroy(){O(yc,this).forEach(e=>e.destroy())}},xc=/* @__PURE__ */ new WeakMap,Sc=/* @__PURE__ */ new WeakMap,Cc=class{constructor(e,t,n=rs){E(this,xc,void 0),E(this,Sc,void 0),Zo(this,`startNode`,void 0),Zo(this,`endNode`,void 0),Zo(this,`type`,void 0),Zo(this,`value`,void 0),D(Sc,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=ll(t),D(xc,this,pl(this.type,this.startNode,this.endNode,n))}commit(e){O(xc,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...O(Sc,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>O(Sc,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>O(Sc,this).insertAfterNode(e,t))}destroy(){O(xc,this).destroy?.(),O(Sc,this).removeRange(this.startNode,this.endNode),O(Sc,this).removeNode(this.startNode),O(Sc,this).removeNode(this.endNode)}},wc=/* @__PURE__ */ new WeakMap,Tc=/* @__PURE__ */ new WeakMap,Ec=/* @__PURE__ */ new WeakMap,Dc=/* @__PURE__ */ new WeakMap,Oc=/* @__PURE__ */ new WeakMap,kc=/* @__PURE__ */ new WeakMap,Ac=class{constructor(e,t,n=rs){E(this,wc,void 0),E(this,Tc,void 0),E(this,Ec,void 0),E(this,Dc,null),E(this,Oc,null),E(this,kc,void 0),D(Tc,this,e),D(Ec,this,t),D(wc,this,n)}commit(e){if(!el(e))return;let[t,n]=e;if(O(Dc,this)!==n)this.clear(),D(Oc,this,n(vo(O(Tc,this),O(Ec,this),O(wc,this)))),D(Dc,this,n),D(kc,this,O(Oc,this)?.call(this,t));else{let e=O(Oc,this)?.call(this,t);O(kc,this)!==e&&(this.clear(),D(kc,this,e))}}clear(){O(kc,this)?.call(this),O(wc,this).removeRange(O(Tc,this),O(Ec,this))}destroy(){this.clear()}},jc=class{constructor(e,t){}commit(e){}},Mc=/* @__PURE__ */ new WeakMap,Nc=/* @__PURE__ */ new WeakMap,Pc=/* @__PURE__ */ new WeakMap,Fc=class{constructor(e,t,n=rs){E(this,Mc,void 0),E(this,Nc,void 0),E(this,Pc,null),D(Nc,this,t),D(Mc,this,n)}commit(e){O(Pc,this)!==e&&(O(Pc,this)&&O(Mc,this).removeNode(O(Pc,this)),O(Mc,this).insertBeforeNode(e,O(Nc,this)),D(Pc,this,e))}},Ic=/* @__PURE__ */ new WeakMap,Lc=/* @__PURE__ */ new WeakMap,Rc=/* @__PURE__ */ new WeakMap,zc=/* @__PURE__ */ new WeakMap,Bc=/* @__PURE__ */ new WeakMap,Vc=/* @__PURE__ */ new WeakMap,Hc=class{constructor(e,t,n=rs){E(this,Ic,void 0),E(this,Lc,void 0),E(this,Rc,void 0),E(this,zc,null),E(this,Bc,null),E(this,Vc,ls),D(Lc,this,e),D(Rc,this,t),D(Ic,this,n)}commit(e){O(zc,this)!==e&&(this.clear(),fs(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=Uc(e);D(Vc,this,n),t.then(e=>{let t=ll(e);D(Bc,this,pl(t,O(Lc,this),O(Rc,this),O(Ic,this))),O(Bc,this)?.commit(e)}),D(zc,this,e)}partClear(){O(Bc,this)?.destroy?.(),O(Ic,this).removeRange(O(Lc,this),O(Rc,this))}clear(){O(Vc,this).call(this),this.partClear(),D(Vc,this,ls)}destroy(){this.clear()}};function Uc(e){let t=ls,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var Wc=/* @__PURE__ */ new WeakMap,Gc=/* @__PURE__ */ new WeakMap,Kc=/* @__PURE__ */ new WeakMap,qc=class{constructor(e,t,n=rs){E(this,Wc,void 0),E(this,Gc,void 0),E(this,Kc,null),D(Wc,this,n),D(Gc,this,n.createText(``)),n.insertAfterNode(O(Gc,this),e)}commit(e){O(Kc,this)!==e&&(O(Wc,this).setText(O(Gc,this),aa(e)||ia(e)?``:String(e)),D(Kc,this,e))}},Jc=/* @__PURE__ */ new WeakMap,Yc=/* @__PURE__ */ new WeakMap,Xc=/* @__PURE__ */ new WeakMap,Zc=/* @__PURE__ */ new WeakMap,Qc=class{constructor(e,t,n=rs){E(this,Jc,void 0),E(this,Yc,void 0),E(this,Xc,void 0),E(this,Zc,null),D(Yc,this,e),D(Xc,this,t),D(Jc,this,n)}commit(e){let{strings:t,values:n}=e;O(Zc,this)&&!O(Zc,this).equalStrings(t)&&(O(Zc,this).destroy(),D(Zc,this,null)),O(Zc,this)||(D(Zc,this,new Jl(e,O(Yc,this),O(Xc,this),O(Jc,this))),O(Zc,this).insert(`before`,O(Xc,this))),O(Zc,this).commit(n)}destroy(){O(Zc,this)?.destroy()}},$c=/* @__PURE__ */ 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}({}),el=e=>oa(e)&&Reflect.get(e,Ta)===go.node,tl=e=>t=>t instanceof e,nl=tl(qc),rl=tl(Qc),il=tl(bc),al=tl(Fc),ol=tl(Hc),sl=tl(jc),cl=tl(Ac),ll=e=>ca(e)?`primitive`:Oo(e)?`templateLiterals`:el(e)?`directive`:oa(e)?`array`:is(e)?`node`:ea(e)?`function`:`object`,ul={primitive:nl,templateLiterals:rl,array:il,node:al,function:sl,object:ol,directive:cl},dl={primitive:qc,templateLiterals:Qc,array:bc,node:Fc,function:jc,object:Hc,directive:Ac},fl=(e,t)=>ul[e](t),pl=(e,t,n,r=rs)=>new dl[e](t,n,r),ml=/* @__PURE__ */ new WeakMap,hl=/* @__PURE__ */ new WeakMap,gl=/* @__PURE__ */ new WeakMap,_l=/* @__PURE__ */ new WeakMap,vl=/* @__PURE__ */ new WeakMap,yl=/* @__PURE__ */ new WeakMap,bl=/* @__PURE__ */ new WeakMap,xl=/* @__PURE__ */ new WeakMap,Sl=/* @__PURE__ */ new WeakMap,Cl=/* @__PURE__ */ new WeakMap,wl=/* @__PURE__ */ new WeakMap,Tl=/* @__PURE__ */ new WeakMap,El=class{constructor(e,t,n,r,i=rs){E(this,ml,void 0),E(this,hl,void 0),E(this,gl,void 0),E(this,_l,void 0),E(this,vl,void 0),E(this,yl,[]),E(this,bl,[]),E(this,xl,null),E(this,Sl,Qa({},{shallow:!0})),E(this,Cl,null),E(this,wl,null),E(this,Tl,void 0),D(ml,this,i),D(Tl,this,i.createEventBus()),D(hl,this,e),D(gl,this,t),D(vl,this,n),D(_l,this,Ho(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>as(O(Sl,this),e)),n.attrs?.forEach(e=>{e.type===ga.directive?O(yl,this).push(e):e.type===ga.spread?r.push(new $s(O(Sl,this),e)):e.type===ga.event?r.push(new Us(O(Tl,this),e,i)):r.push(new dc(O(Sl,this),e))})}createContext(){return O(ml,this).createComponentContext(O(hl,this),O(Tl,this))}commit(e){let[,t]=O(_l,this),n=e[t];if(!ea(n)||O(Cl,this)===n){O(bl,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),Oa(this);let i=n.call(r,O(Sl,this),r);Oa(null),O(yl,this).length&&O(bl,this).push(...O(yl,this).map(e=>new Ls(r,e))),Na(this,_a);let a=!1;D(wl,this,qa(()=>{let e=i(),t=ll(e);fl(t,O(xl,this))||(this.partClear(),D(xl,this,pl(t,O(hl,this),O(gl,this),O(ml,this)))),Na(this,a?xa:ba),O(xl,this)?.commit(e),a?Na(this,Ca):(Na(this,Sa),a=!0)})),O(bl,this).forEach(t=>t.commit(e)),Na(this,va),D(Cl,this,n)}partClear(){O(xl,this)?.destroy?.(),O(ml,this).removeRange(O(hl,this),O(gl,this))}clear(){O(ml,this).removeRange(O(hl,this),O(gl,this)),Na(this,ya),O(bl,this).forEach(e=>e.destroy?.()),O(wl,this)?.call(this),D(bl,this,[]),D(wl,this,null),Pa(this)}destroy(){this.clear(),this.partClear()}},Dl=/* @__PURE__ */ new WeakMap,Ol=/* @__PURE__ */ new WeakMap,kl=/* @__PURE__ */ new WeakMap,Al=/* @__PURE__ */ new WeakMap,jl=za(class{constructor(e,t,n,r=rs){E(this,Dl,void 0),E(this,Ol,void 0),E(this,kl,void 0),E(this,Al,void 0),D(Dl,this,r),D(Ol,this,r.createMarker(``)),D(kl,this,r.createMarker(``)),D(Al,this,new El(O(Ol,this),O(kl,this),t,n,r)),r.insertBeforeNode(O(Ol,this),e),r.insertAfterNode(O(kl,this),e),r.removeNode(e)}commit(e){O(Al,this).commit(e)}destroy(){O(Al,this).destroy?.(),O(Dl,this).removeNode(O(Ol,this)),O(Dl,this).removeNode(O(kl,this))}}),Ml=/* @__PURE__ */ new WeakMap,Nl=/* @__PURE__ */ new WeakMap,Pl=/* @__PURE__ */ new WeakMap,Fl=/* @__PURE__ */ new WeakMap,Il=/* @__PURE__ */ new WeakMap,Ll=/* @__PURE__ */ new WeakMap,Rl=class{constructor(e,{value:t},n=rs){E(this,Ml,void 0),E(this,Nl,void 0),E(this,Pl,void 0),E(this,Fl,void 0),E(this,Il,null),E(this,Ll,null),D(Ml,this,n),D(Nl,this,n.createMarker(``)),D(Pl,this,n.createMarker(``)),D(Fl,this,Ho(t)[0]),n.insertBeforeNode(O(Nl,this),e),n.insertAfterNode(O(Pl,this),e),n.removeNode(e)}commit(e){let[,t]=O(Fl,this),n=e[t];if(O(Il,this)===n)return;let r=ll(n);fl(r,O(Ll,this))||(aa(O(Ll,this))||this.clear(),D(Ll,this,pl(r,O(Nl,this),O(Pl,this),O(Ml,this)))),O(Ll,this)?.commit(n),D(Il,this,n)}clear(){O(Ll,this)?.destroy?.(),O(Ml,this).removeRange(O(Nl,this),O(Pl,this))}destroy(){this.clear(),O(Ml,this).removeNode(O(Nl,this)),O(Ml,this).removeNode(O(Pl,this))}};function zl(e=[],t,n=!1,r=[],i=rs){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new jl(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 oc(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new Rl(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>ec(a,e,i))),e.children&&zl(e.children,a,e.isSvg||n,r,i))}),r}function Bl(e,t=!1,n=rs){let r=n.createFragment();return[r,zl(e.children,r,t,[],n)]}var Vl=/* @__PURE__ */ new WeakMap,Hl=/* @__PURE__ */ new WeakMap,Ul=/* @__PURE__ */ new WeakMap,Wl=/* @__PURE__ */ new WeakMap,Gl=/* @__PURE__ */ new WeakMap,Kl=/* @__PURE__ */ new WeakMap,ql=/* @__PURE__ */ new WeakMap,Jl=class{constructor(e,t,n,r=rs){if(E(this,Vl,void 0),E(this,Hl,void 0),E(this,Ul,void 0),E(this,Wl,null),E(this,Gl,[]),E(this,Kl,void 0),E(this,ql,!1),D(Vl,this,r),D(Hl,this,r.createMarker(``)),D(Ul,this,r.createMarker(``)),D(Kl,this,e.strings),e[Ea]!==bo.html&&e[Ea]!==bo.svg)return;let[i,a]=Bl(e.template.node,zo(e[Ea]),r);D(Wl,this,i),D(Gl,this,a),t&&n?(D(Hl,this,t),D(Ul,this,n),D(ql,this,!0)):(r.prependChild(i,O(Hl,this)),r.appendChild(i,O(Ul,this)))}equalStrings(e){return O(Kl,this)===e}commit(e){O(Gl,this).forEach(t=>t.commit(e))}insert(e,t){O(Wl,this)&&(e===`before`?O(Vl,this).insertBeforeNode(O(Wl,this),t):e===`after`?O(Vl,this).insertAfterNode(O(Wl,this),t):O(Vl,this).appendChild(t,O(Wl,this)),D(Wl,this,null))}destroy(){O(Gl,this).forEach(e=>e.destroy?.()),O(Vl,this).removeRange(O(Hl,this),O(Ul,this)),O(ql,this)||(O(Vl,this).removeNode(O(Hl,this)),O(Vl,this).removeNode(O(Ul,this)))}},Yl=/* @__PURE__ */ function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),Xl={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},Zl=e=>t=>e===t,Ql=e=>t=>e.test(t),$l={doubleQuote:Zl(Xl.doubleQuote),singleQuote:Zl(Xl.singleQuote),whiteSpace:Ql(Xl.whiteSpace),string:Ql(Xl.string),breakString:Ql(Xl.breakString),lt:Zl(Xl.lt),gt:Zl(Xl.gt),slash:Zl(Xl.slash),equal:Zl(Xl.equal),hyphen:Zl(Xl.hyphen),exclamationPoint:Zl(Xl.exclamationPoint)},eu=e=>t=>$l.lt(e[t])&&$l.exclamationPoint(e[t+1])&&$l.hyphen(e[t+2])&&$l.hyphen(e[t+3]);function tu(e){let t=[],n=0,r=()=>n<e.length,i=eu(e),a=(o=`text`)=>{for(;r();){let s=e[n];if($l.whiteSpace(s)){let i=``;for(;r()&&$l.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if($l.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if($l.gt(s)){t.push({type:`gt`,value:s}),n++;break}if($l.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if($l.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if($l.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!$l.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if($l.singleQuote(s)){let i=``;for(s=e[++n];r()&&!$l.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if($l.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if($l.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if($l.lt(s)){a(i(n)?`comment`:`element`);continue}if($l.string(s)){let i=``;for(;r()&&$l.string(s)&&!$l.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var nu=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,ru=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,iu=ru(`type`),au=ru(`value`),ou=iu(Yl.lt),su=iu(Yl.gt),cu=iu(Yl.slash),lu=iu(Yl.equal),uu=iu(Yl.string),du=iu(Yl.whiteSpace),fu=au(`!--`),pu=au(`--`),mu=e=>{let t=ou(e),n=uu(e);return e=>t(e)&&n(e+1)},hu=e=>{let t=ou(e),n=cu(e),r=uu(e),i=su(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},gu=e=>{let t=ou(e),n=cu(e),r=su(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},_u=e=>{let t=cu(e),n=su(e);return e=>t(e)&&n(e+1)},vu=e=>nu.test(e),yu=e=>{let t=ou(e),n=uu(e),r=fu(e);return e=>t(e)&&n(e+1)&&r(e+1)},bu=e=>{let t=uu(e),n=pu(e),r=su(e);return e=>t(e)&&n(e)&&r(e+1)},xu=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},Su=xu(`attrs`),Cu=xu(`children`);function wu(e){let t=new es({type:$o.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=mu(e),a=hu(e),o=gu(e),s=_u(e),c=yu(e),l=bu(e),u=ou(e),d=su(e),f=lu(e),p=du(e),m=uu(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 es({parent:t,type:$o.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 es({parent:t,type:$o.comment,value:i})}if(i(n)){f=e[++n];let i=vu(f.value),c=new es({parent:t,type:$o.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){Su(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)Cu(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)Cu(t)(g(t));return t}var Tu=e=>wu(tu(e)),Eu=(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)),Du=Symbol.iterator,Ou=class e{get isMarker(){return Io(this.value)}get isMarkerOnly(){return Lo(this.value)}get isSvg(){return this.type===$o.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===$o.element&&this.isMarkerOnly}constructor(t,n=null){if(Zo(this,`type`,$o.comment),Zo(this,`value`,``),Zo(this,`staticAttrs`,void 0),Zo(this,`attrs`,void 0),Zo(this,`parent`,null),Zo(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=ju(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())}*[Du](){if(yield this,this.children)for(let e of this.children)yield*e}};function ku(e){let t=new Ou(e);for(let e of t)e.type===$o.text&&!Lo(e.value)&&Au(e);return t}function Au(e){let t=Ho(e.value);e.value.replace(pa,da).split(da).reduce((n,r,i)=>(i<t.length?n.push(new Ou(new es({type:$o.text,value:r}),e.parent),new Ou(new es({type:$o.text,value:t[i][0]}),e.parent)):n.push(new Ou(new es({type:$o.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&ha.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 ju(e=[]){let t=Eu(e,e=>Vo(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=Bo(i.name);if(a===ga.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:Bo(e.name),name:Vo(e.name),value:e.value})));else if(a===ga.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:Vo(i.name)};e&&(o.value=e),Ro(o)?r.push(o):n.push(o)}else{let e={type:a,name:Vo(i.name)};i.value&&(e.value=i.value),Ro(e)?r.push(e):n.push(e)}return e},[[],[]])}var Mu=e=>(t,...n)=>{let r={strings:t,values:n,[Ea]:e};if(Co.has(t))return r.template=Co.get(t),r;let i=ku(Tu(t.reduce((e,t,r)=>(r<n.length?e.push(t,Eo(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),Co.set(t,r.template),r},Nu=Mu(bo.html),Pu=Mu(bo.svg);function Fu(e){let t=ns(e),n=/* @__PURE__ */ new WeakMap;return{html:Nu,svg:Pu,render:(e,r)=>{if(!Oo(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 Jl(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var Iu=yo((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=rs})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=Vu(a,o,s),l=c.values,u=hc(Bu(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case fc.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 zu(i,l[o].value,l[o].key,n);break;case fc.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}}),Lu=/* @__PURE__ */ new WeakMap,Ru=/* @__PURE__ */ new WeakMap,zu=class{constructor(e,t,n,r=rs){E(this,Lu,void 0),E(this,Ru,void 0),Zo(this,`startNode`,void 0),Zo(this,`endNode`,void 0),Zo(this,`type`,void 0),Zo(this,`key`,void 0),D(Ru,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=ll(t),D(Lu,this,pl(this.type,this.startNode,this.endNode,r))}commit(e){O(Lu,this).commit(e)}insert(e,t){let n=[this.startNode,...O(Ru,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>O(Ru,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>O(Ru,this).insertAfterNode(e,t))}destroy(){O(Lu,this).destroy?.(),O(Ru,this).removeRange(this.startNode,this.endNode),O(Ru,this).removeNode(this.startNode),O(Ru,this).removeNode(this.endNode)}};function Bu(e){let t=[],n=/* @__PURE__ */ 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 Vu(e,t,n){let r=[],i=/* @__PURE__ */ new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:ll(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var Hu={vCSSStyleSheetMap:/* @__PURE__ */ new Map,hostContextMap:/* @__PURE__ */ new Map,globalOrder:[],orderedSheets:null},Uu=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,Wu=null;function Gu(){return Wu===null&&(Wu=Ku()),Wu}function Ku(){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 qu(){return Hu}function Ju(e){let t=qu(),{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),$u(s),n}function Yu(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 Xu(e){return e.orderedSheets||=Yu(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function Zu(e,t){e.adoptedStyleSheets=[...t]}function Qu(){let e=qu(),t=Xu(e);e.hostContextMap.forEach((e,n)=>Zu(n,t))}function $u(e){if(!Uu){ed();return}let t=qu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,Qu();return}if(i.push(r),!Gu()){Qu();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function ed(){let e=qu(),t=Yu(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=td(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function td(e,t,n){for(let r=t;r<e.length;r++){let t=n.get(e[r]);if(t)return t}return null}function k(e){function t(t){return{type:e,payload:t}}return t.toString=()=>`${e}`,t.type=e,t}function*nd(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*nd(e,t,r):ea(r)?yield*nd(e,t,r(e,t)):yield r}var rd=(e,t,n)=>[...nd(e,t,n)],id=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*ad(e){yield e}var od=function*(e){for(let t of e)t.length&&(yield t)};function sd({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?Qa(t):t,a=la(),o=la(),s=id(od),c=t=>{Ji(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=rd(i,e,t);a.next(n)},u=(...e)=>{Yi(()=>l(...e))},d=a.subscribe(e=>{let t=s(ad(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=id(...e,od),()=>{s=id(od)}),destroy:()=>{d(),f()}}}var cd=`__RHTML_CSS_DIAGNOSTICS__`,ld=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,ud=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${ld(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)};function dd(){let e=Reflect.get(globalThis,cd);return e?typeof e==`function`?e:ud:null}function fd(){return dd()!==null}function pd(e,t){if(e.length===0)return;let n=dd();if(n)for(let r of e)n(r,t)}var md=[``];function hd(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function gd(e,t={}){let n=t.rules??md,r=t.rules===void 0?null:hd(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var _d=`rhtml-scope`;function vd(e,t){return e.split(_d).join(t)}var yd=/^(?::host\b|::slotted\()/;function bd(e){return yd.test(e.trim())}function xd(e){return e.type===o}function Sd(e){return e.type===n}function Cd(e){return e.type.charCodeAt(0)===64}function wd(e){return Array.isArray(e.children)?e.children:[]}function Td(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function Ed(e){let t=[];for(let n of wd(e))Sd(n)&&t.push(Td(n));return t}function Dd(e){return wd(e).filter(xd)}function Od(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 kd=/* @__PURE__ */ new Set([r,t,a,i]);function Ad(e,t,n){let i=[],a=/* @__PURE__ */ new Set,o=!1,s=(e,t)=>{for(let n of e){if(xd(n)){o=!0,jd(n,t,i);continue}if(Cd(n)){if(wd(n).length===0){if(!kd.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,Od(n.type)){s(wd(n),t);continue}Dd(n).length>0&&Md(n,a,i),s(wd(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(Sd)&&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.`}),Nd(t,i);let c=Fd(n.source);return c&&i.push(c),i}function jd(e,t,n){if(e.props.every(e=>e.length===0)){let t=Ed(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 Pd(e.value)){let r=t.trim();if(bd(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 Md(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 Nd(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 \`${_d}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function Pd(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 Fd(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+=Ld(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function Ld(e,t){return e.body===void 0?`${e.prelude??Rd(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function Rd(e,t){return(t===void 0?e:e.map(e=>vd(e,t))).join(`,`)}var zd=[],Bd=e=>e.length>0;function Vd(e,t){let n=[];return Ud(e,zd,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(Hd)}function Hd(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function Ud(e,t,n,r){let i=r.length,a=[];for(let i of e)Sd(i)?a.push(Td(i)):xd(i)?Wd(i,t,r):Cd(i)&&Gd(i,t,n,r);if(a.length===0)return;let o=n.filter(Bd);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function Wd(e,t,n){let r=e.props.filter(Bd);if(r.length===0)return;let i=Ed(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function Gd(e,t,n,r){let i=wd(e);if(i.length===0)return;if(Od(e.type)){let a=[];if(Ud(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=Dd(e);if(a.length>0){let n=[];for(let e of a)Wd(e,zd,n);let i=Id(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=Ed(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function Kd(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 qd=7;function Jd(e){return`_${Kd(e).toString(36).padStart(qd,`0`)}`}var Yd=[];function Xd(e,t={}){let n=t.mode!==`global`,r=n?[_d]:[``],i=gd(e,{rules:r}),a=Vd(i,{rules:r,plugins:t.plugins}),o=Id(a),s=Jd(o);return{rules:a,canonicalText:o,identifier:s,cssText:Id(a,{scope:`.${s}`}),diagnostics:t.dev?Ad(i,a,{source:e,scoped:n}):Yd}}function Zd(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function Qd(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function $d(e){let t=[];for(let n=0;n<e.length-1;n++){let r=Zd(e[n]),i=Qd(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function ef(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function tf(e,t){return ko(e)?t===`statement`?ef(e[So]??``):`.${String(e)}`:ca(e)&&!aa(e)&&!ia(e)?String(e):``}function nf(e,t,n){if(ko(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}(rf(n,`'`)||rf(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function rf(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function af(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=tf(n[i],t[i].kind);nf(t[i],n[i],a),r+=a}return r}var of=32,sf=`\0`;function cf(e){return(t,...n)=>{let r=uf(t,e),i=df(r.node,n),a=Ju(i);return{strings:t,values:n,template:r,[Ea]:bo.css,[So]:i.source,toString:()=>a}}}var lf=Object.assign(cf(`scoped`),{global:cf(`global`)});function uf(e,t){let n=wo.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:$d(r),mode:t,memo:/* @__PURE__ */ new Map},a=Object.freeze({node:i});return wo.set(e,a),a}function df(e,t){let n=e.slots.map((e,n)=>tf(t[n],e.kind)).join(sf),r=e.memo.get(n);if(r)return r;let i=af(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=Xd(i,{mode:e.mode,dev:fd()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(pd(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>of){let[t]=e.memo.keys();e.memo.delete(t)}return u}ee.autoDrawEnabled=!1,Reflect.set(ee,`DD`,b);const ff=/* @__PURE__ */ new Set,pf=/* @__PURE__ */ new Set,mf=/* @__PURE__ */ new Map,hf=[],gf=[],_f=/* @__PURE__ */ new Set;let vf=!1,yf=!1,bf=0;function xf(){return bf}function Sf(){bf+=1;try{_f.forEach(e=>e())}finally{vf=!1,yf=!1;for(let e of ff){if(mf.has(e)){pf.add(e);continue}e.getStage()instanceof y&&e.batchDraw()}ff.clear(),hf.splice(0).forEach(e=>e())}}function Cf(e){return _f.add(e),()=>{_f.delete(e)}}function wf(){queueMicrotask(()=>{if(yf){yf=!1,wf();return}Sf()})}function Tf(){yf=!0,!vf&&(vf=!0,wf())}function Ef(e){if(mf.has(e)){pf.add(e);return}ff.add(e),Tf()}function Df(e){mf.set(e,(mf.get(e)??0)+1)}function Of(e){let t=(mf.get(e)??0)-1;t>0?mf.set(e,t):mf.delete(e),gf.splice(0).forEach(e=>e()),t<=0&&pf.delete(e)&&Ef(e)}function kf(){return new Promise(e=>{gf.push(()=>e())})}function Af(){return mf.size?kf().then(Af):vf?new Promise(e=>{hf.push(()=>e())}):Promise.resolve()}const jf=Symbol(`r-html/konva-slot`),Mf=Symbol(`r-html/konva-ledger`),Nf=Symbol(`r-html/konva-virtual`),Pf=Symbol(`r-html/konva-fragment`),Ff=/* @__PURE__ */ new Set([`class`,`style`,`zIndex`]),If={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},Lf={"k-layer":()=>new f,"k-group":()=>new d,"k-rect":()=>new _,"k-text":()=>new v,"k-path":()=>new g,"k-line":()=>new h,"k-circle":()=>new m};function Rf(){}function zf(){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 Bf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,Nf,e),Object.defineProperty(n,"nextSibling",{get:zf}),Object.defineProperty(n,"parentNode",{get:zf}),n}const Vf=e=>e&&typeof e==`object`?Reflect.get(e,Nf)??null:null,Hf=e=>e instanceof p,Uf=e=>Hf(e)&&Reflect.get(e,Pf)===!0,Wf=e=>Reflect.get(e,jf);function Gf(e){let t=Wf(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,jf,n),n}function Kf(e){let t=Reflect.get(e,Mf);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,Mf,n),n}const qf=e=>Wf(e)?.parent??null,Jf=e=>Wf(e)?.next?.node??null,Yf=/* @__PURE__ */ new Set,Xf=/* @__PURE__ */ new WeakMap;function Zf(e){let t=e;for(;t;){if(t instanceof f)return t;t=qf(t)}return null}function Qf(e){let t=Zf(e);t&&Ef(t)}function $f(e){Kf(e).dirty=!0,Yf.add(e),Qf(e),Tf()}function ep(e){let t=e.parent;if(!t)return;let n=Kf(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,$f(t)}function tp(e,t,n){ep(t);let r=Kf(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,$f(e)}function np(e,t){if(Hf(t)&&!Uf(e)){if(e instanceof y){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(Hf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function rp(e,t,n){if(t===n)return;let r=n?Gf(n):null;if(!Uf(t)){np(e,t),tp(e,Gf(t),r);return}let i=[];for(let e=Kf(t).first;e;e=e.next)i.push(e);for(let t of i)np(e,t.node),tp(e,t,r)}function ip(e){Yf.delete(e),Reflect.deleteProperty(e,jf),Reflect.deleteProperty(e,Mf),e.destroy()}function ap(e,t){let n=t.getParent();n!==e&&(n&&Yf.has(n)&&up(n),If.attach+=1,e.add(t))}function op(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 sp(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(If.setZIndex+=1,t.setZIndex(n))})}function cp(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 lp(e){if(If.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=Kf(e).first;n;n=n.next)If.scan+=1,Hf(n.node)&&t.push(n.node);for(let n of t)ap(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(r.length||!op(e.children,t)){If.order+=1,e instanceof y?(r.forEach(e=>e.remove()),sp(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),cp(e,t));for(let e of r)If.drop+=1,Gf(e).doomed&&ip(e)}}function up(e){let t=Kf(e);(t.dirty||t.reconciledAt!==xf())&&(t.dirty=!1,t.reconciledAt=xf(),lp(e))}Cf(()=>{for(let e of Yf)up(e);Yf.clear()});function dp(e){let t=e,n=qf(t);for(;n;)t=n,n=qf(t);return Xf.get(t)??t}function fp(e,t){if(!t)return;let n=dp(e);if(Hf(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 pp=Fu({createElement(e){let t=Lf[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>Bf(`text`,e),createMarker:e=>Bf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,Pf,!0),Reflect.set(e,`_validateAdd`,Rf),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=qf(t);n&&rp(n,e,t)},appendChild(e,t){rp(e,t,null)},prependChild(e,t){rp(e,t,Kf(e).first?.node??null)},removeChild(e){let t=Gf(e);ep(t),Hf(e)&&(t.doomed=!0,e.getParent()||ip(e))},parentOf:qf,nextSiblingOf:Jf,setText(e,t){if(Vf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!Hf(e))return;if(Ff.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&fp(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),Qf(e))},removeAttribute(e,t){Hf(e)&&e.attrs[t]!==void 0&&(e.setAttrs({[t]:void 0}),Qf(e))},isHostNode:e=>Hf(e)||Vf(e)!==null,isMarker:e=>Vf(e)===`marker`,isText:e=>Vf(e)===`text`,isElement:e=>Hf(e)&&!Uf(e),isFragment:e=>Uf(e),addEventListener(e,t,n,r){Hf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){Hf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:dp,createComponentContext(e,t){return{get host(){let n=dp(e);return n instanceof y?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return Xf.set(e,t),()=>{Xf.delete(e)}}}),A=pp.html;function mp(e,t){if(!(e instanceof y))throw Error(`[konva-host] a konva template renders into a Stage`);pp.render(e,t)}var hp=(e,t)=>e*(1-t)/2;function gp(e){return{originX:We(e.scrollLeft+hp(e.width,e.zoomLevel),4),originY:We(e.scrollTop+hp(e.height,e.zoomLevel),4)}}function j(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function _p(e){return t=>T(t)&&e.includes(t)}function vp(e){return t=>w(t)&&e.includes(t)}function yp(e,t,n){return Reflect.get(e,t)??n}function bp(e,t){let n=new Set(t);return e.every(e=>n.has(e))?t:[...e]}var xp=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[],tableGroupIds:[]});function Sp(e){let t=xp();if(!le(e)||C(e))return t;let n=j(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),n(`tableGroupIds`),t}var Cp=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1});function wp(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Cp(),r=j(T,e,n),i=j(S,e,n),a=j(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),e.seqIndexColumnIds=bp(e.indexColumnIds,e.seqIndexColumnIds),e.id&&(t[e.id]=e)}return t}var Tp={ASC:1,DESC:2},Ep=Object.values(Tp),Dp=()=>({id:``,indexId:``,columnId:``,orderType:Tp.ASC});function Op(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Dp(),r=j(T,e,n);r(`id`),r(`indexId`),r(`columnId`),j(vp(Ep),e,n)(`orderType`),e.id&&(t[e.id]=e)}return t}var kp=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}});function Ap(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=kp(),r=j(T,e,n),i=j(w,e.ui,n.ui),a=j(T,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),e.id&&(t[e.id]=e)}return t}var jp={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},Mp=Object.values(jp),Np={ring:1,dash:2},Pp=Object.values(Np),Fp={none:1,noAction:2,cascade:4,setNull:8,setDefault:16,restrict:32},Ip=Object.values(Fp),Lp={left:1,right:2,top:4,bottom:8},Rp=Object.values(Lp),zp=()=>({id:``,identification:!1,relationshipType:jp.ZeroN,startRelationshipType:Np.dash,onDelete:Fp.none,onUpdate:Fp.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:Lp.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:Lp.bottom}});function Bp(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=zp(),r=j(T,e,n),i=j(S,e,n),a=j(w,e.start,n.start),o=j(T,e.start,n.start),s=j(w,e.end,n.end),c=j(T,e.end,n.end);r(`id`),i(`identification`),j(vp(Mp),e,n)(`relationshipType`),j(vp(Pp),e,n)(`startRelationshipType`),j(vp(Ip),e,n)(`onDelete`),j(vp(Ip),e,n)(`onUpdate`),o(`tableId`),a(`x`),a(`y`),j(vp(Rp),e.start,n.start)(`direction`),j(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),j(vp(Rp),e.end,n.end)(`direction`),j(Array.isArray,e.end,n.end)(`columnIds`),e.id&&(t[e.id]=e)}return t}function Vp(e,t){return(e&t)===t}var Hp={before:`before`,after:`after`},Up=Object.values(Hp),Wp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},Gp=Object.values(Wp),Kp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256,columnAlternateKey:512,hideReferentialAction:1024,hideTableGroup:2048,hideMemo:4096},qp={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},Jp=Object.values(qp),Yp={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},Xp=Object.values(Yp),Zp={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,Mermaid:16384,PHP:32768,Doctrine:65536,Rust:131072,SeaORM:262144,Swift:524288,Zod:1048576,JSONSchema:2097152},Qp=Object.values(Zp),$p={none:1,camelCase:2,pascalCase:4,snakeCase:8},em=Object.values($p),tm={none:1,doubleQuote:2,singleQuote:4,backtick:8},nm=Object.values(tm),rm={viewport:1,canvasType:2,language:4,tableNameCase:8,columnNameCase:16,bracketType:32},im=Object.values(rm),am={[rm.viewport]:[`originX`,`originY`,`zoomLevel`],[rm.canvasType]:[`canvasType`],[rm.language]:[`language`],[rm.tableNameCase]:[`tableNameCase`],[rm.columnNameCase]:[`columnNameCase`],[rm.bracketType]:[`bracketType`]},om=.1,sm=1.5,cm=2e3,lm=2e4,um=Kp.tableComment|Kp.columnComment|Kp.columnDataType|Kp.columnDefault|Kp.columnPrimaryKey|Kp.columnNotNull|Kp.relationship,dm=im.reduce((e,t)=>e|t,0),fm=im.flatMap(e=>am[e]),pm=e=>he(e,fm),mm=()=>{let e={originX:0,originY:0,zoomLevel:1,show:um,database:Yp.MySQL,databaseName:``,canvasType:Wp.ERD,language:Zp.GraphQL,tableNameCase:$p.pascalCase,columnNameCase:$p.camelCase,bracketType:tm.none,relationshipDataTypeSync:!0,columnOrder:[qp.columnName,qp.columnDataType,qp.columnNotNull,qp.columnUnique,qp.columnAutoIncrement,qp.columnDefault,qp.columnComment],maxWidthComment:-1,lockSettings:dm,ddlScripts:{before:``,after:``}};return{...e,lockedValues:pm(e)}},hm=2e3,gm=e=>Number.isFinite(e),_m=e=>ne(e,cm,lm),vm=e=>ne(e,om,sm),ym=e=>ne(e,60,200);function bm(e,t){let n=e=>w(e)?_m(e):hm,r=e=>w(e)?e:0;return{width:n(e.width),height:n(e.height),zoomLevel:t,scrollLeft:r(e.scrollLeft),scrollTop:r(e.scrollTop)}}function xm(e){let t=mm();if(!le(e)||C(e))return t;let n=j(w,t,e),r=j(T,t,e),i=j(S,t,e);if(w(e.zoomLevel)&&(t.zoomLevel=vm(e.zoomLevel)),w(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=ym(e.maxWidthComment)),n(`show`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),j(vp(Xp),t,e)(`database`),j(vp(Qp),t,e)(`language`),j(vp(em),t,e)(`tableNameCase`),j(vp(em),t,e)(`columnNameCase`),j(vp(nm),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&Jp.length===e.columnOrder.length&&ie(Jp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),gm(e.originX)&&gm(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:n,originY:r}=gp(bm(e,t.zoomLevel));t.originX=n,t.originY=r}w(e.lockSettings)?(t.lockSettings=e.lockSettings|0,Vp(t.lockSettings,rm.canvasType)&&t.canvasType===Wp.settings&&(t.canvasType=Wp.ERD),t.lockedValues=pm(t)):Sm(t);let a=j(T,t.ddlScripts,e.ddlScripts);return a(`before`),a(`after`),t}function Sm(e){let{originX:t,originY:n,zoomLevel:r,canvasType:i}=mm();Object.assign(e,{originX:t,originY:n,zoomLevel:r,canvasType:i}),e.lockedValues=pm(e)}var Cm=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``}});function wm(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Cm(),r=j(T,e,n),i=j(Array.isArray,e,n),a=j(w,e.ui,n.ui),o=j(T,e.ui,n.ui);r(`id`),r(`name`),r(`comment`),r(`groupId`),i(`columnIds`),i(`seqColumnIds`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`widthName`),a(`widthComment`),e.seqColumnIds=bp(e.columnIds,e.seqColumnIds),e.id&&(t[e.id]=e)}return t}var Tm=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}});function Em(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Tm(),r=j(T,e,n),i=j(w,e,n),a=j(w,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`),e.id&&(t[e.id]=e)}return t}var Dm=()=>({id:``,name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}});function Om(e){let t={};if(!le(e)||C(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Dm(),r=j(T,e,n),i=j(w,e.ui,n.ui);r(`id`),r(`name`),r(`color`),i(`x`),i(`y`),i(`width`),i(`height`),i(`zIndex`),e.id&&(t[e.id]=e)}return t}function km(e){let t=e,n=xm(t.settings),r=Sp(t.doc),i=wm(t.collections?.tableEntities),a=Em(t.collections?.tableColumnEntities),o=Bp(t.collections?.relationshipEntities),s=wp(t.collections?.indexEntities),c=Op(t.collections?.indexColumnEntities),l=Ap(t.collections?.memoEntities),u=Om(t.collections?.tableGroupEntities);return Am(i,r.tableIds,t.collections?.tableEntities,2),Am(l,r.memoIds,t.collections?.memoEntities,Math.max(1,...r.tableIds.map(e=>i[e]?.ui.zIndex??0))+1),Am(u,r.tableGroupIds,t.collections?.tableGroupEntities,1),{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:n,doc:r,collections:{tableEntities:i,tableColumnEntities:a,relationshipEntities:o,indexEntities:s,indexColumnEntities:c,memoEntities:l,tableGroupEntities:u}}}function Am(e,t,n,r){let i=jm(n);t.forEach((t,n)=>{let a=e[t];a&&!i.has(t)&&(a.ui.zIndex=r+n,i.add(t))})}function jm(e){let t=/* @__PURE__ */ new Set;if(!le(e))return t;for(let n of Object.values(e)){if(!le(n)||!T(n.id))continue;let e=n.ui;le(e)&&w(e.zIndex)?t.add(n.id):t.delete(n.id)}return t}function Mm(){return km({})}var M={CanvasType:Wp,CanvasTypeList:Gp,Show:Kp,ColumnType:qp,ColumnTypeList:Jp,Database:Yp,DatabaseList:Xp,Language:Zp,LanguageList:Qp,NameCase:$p,NameCaseList:em,BracketType:tm,BracketTypeList:nm,RelationshipType:jp,RelationshipTypeList:Mp,StartRelationshipType:Np,StartRelationshipTypeList:Pp,ReferentialAction:Fp,ReferentialActionList:Ip,Direction:Lp,DirectionList:Rp,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:Tp,OrderTypeList:Ep,LockSettingType:rm,LockSettingTypeList:im,LockSettingFields:am,CANVAS_SIZE_MAX:lm,CANVAS_SIZE_MIN:cm,CANVAS_ZOOM_MAX:sm,CANVAS_ZOOM_MIN:om,DDLScriptPosition:Hp,DDLScriptPositionList:Up},Nm=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),Pm=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`}),Fm=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),Im=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),Lm=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),Rm=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),zm=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),Bm=.1,Vm=2e3,Hm=2e4,Um=()=>({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:{}}),Wm=e=>ne(e,Vm,Hm),Gm=e=>ne(e,Bm,1);function Km(e){let t=Um();if(C(e))return t;let n=j(w,t,e),r=j(T,t,e),i=j(S,t.show,e.show),a=j(S,t.setting,e.setting);if(w(e.width)&&(t.width=Wm(e.width)),w(e.height)&&(t.height=Wm(e.height)),w(e.zoomLevel)&&(t.zoomLevel=Gm(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),j(_p(Fm),t,e)(`database`),j(_p(Pm),t,e)(`canvasType`),j(_p(Im),t,e)(`language`),j(_p(Lm),t,e)(`tableCase`),j(_p(Lm),t,e)(`columnCase`),j(_p(Rm),t,e)(`highlightTheme`),j(_p(zm),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&&Nm.length===e.setting.columnOrder.length&&ie(Nm,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),le(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];T(r)&&(t.pluginSerializationMap[e]=r)}}return t}var qm=()=>({memos:[]}),Jm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function Ym(e){let t=qm();if(C(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=Jm(),r=j(T,e,n),i=j(w,e.ui,n.ui),a=j(S,e.ui,n.ui),o=j(T,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 Xm=[`ZeroOneN`,`One`,`N`],Zm={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},Qm=e=>Xm.includes(e)?Zm[e]:e,$m=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),eh=Object.values({Ring:`Ring`,Dash:`Dash`}),th=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),nh=()=>({relationships:[]}),rh=()=>({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 ih(e){let t=nh();if(C(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=rh(),r=j(T,e,n),i=j(S,e,n),a=j(w,e.start,n.start),o=j(T,e.start,n.start),s=j(w,e.end,n.end),c=j(T,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),j(_p($m),e,n)(`relationshipType`),e.relationshipType=Qm(e.relationshipType),j(_p(eh),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(_p(th),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(T)),c(`tableId`),s(`x`),s(`y`),j(_p(th),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(T)),t.relationships.push(e)}return t}var ah={ASC:`ASC`,DESC:`DESC`},oh=Object.values(ah),sh=()=>({tables:[],indexes:[]}),ch=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),lh=()=>({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}}),uh=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),dh=()=>({id:``,orderType:ah.ASC});function fh(e){let t=sh();if(C(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=ch(),r=j(T,e,n),i=j(S,e,n),a=j(w,e.ui,n.ui),o=j(S,e.ui,n.ui),s=j(T,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=lh(),r=j(T,n,t),i=j(w,n.ui,t.ui),a=j(S,n.ui,t.ui),o=j(S,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=uh(),r=j(T,e,n),i=j(S,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=dh();j(T,n,t)(`id`),j(_p(oh),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function ph(e){let t=e;return{canvas:Km(t.canvas),table:fh(t.table),relationship:ih(t.relationship),memo:Ym(t.memo)}}var mh=(e,t)=>(e&511)*2**32+t;function hh({now:e=()=>Date.now(),random:t=e=>crypto.getRandomValues(e)}={}){let n=-1,r=0;return()=>{let[i,a,o]=t(/* @__PURE__ */ new Uint32Array(3)),s=e();s>n?(n=s,r=mh(i,a)):r++;let c=/* @__PURE__ */ new Uint8Array(16),l=new DataView(c.buffer);return l.setUint16(0,Math.floor(n/2**32)),l.setUint32(2,n%2**32),l.setUint16(6,28672+Math.floor(r/2**30)),l.setUint32(8,2147483648+r%2**30),l.setUint32(12,o),c}}var gh=hh();function _h(e){if(e.length!==16)throw RangeError(`A UUID is 16 bytes, not ${e.length}`);let t=0n;for(let n of e)t=t<<8n|BigInt(n);return t.toString(36).padStart(25,`0`)}var vh=()=>_h(gh());function yh(e){let t=km({});return bh(t.settings,e.canvas),xh(t,e.table),Sh(t,e.memo),Ch(t,e.relationship),t}function bh(e,t){e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=gp(t);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=M.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>yp(t.show,n,!1)?e|yp(M.Show,n,0):e,0),e.database=Reflect.get(M.Database,t.database)??M.Database.MySQL,e.language=t.language===`C#`?M.Language.csharp:yp(M.Language,t.language,M.Language.GraphQL),e.tableNameCase=yp(M.NameCase,t.tableCase,M.NameCase.pascalCase),e.columnNameCase=yp(M.NameCase,t.columnCase,M.NameCase.camelCase),e.bracketType=yp(M.BracketType,t.bracketType,M.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync;let i=t.setting.columnOrder.map(e=>M.ColumnType[e]);ie(M.ColumnTypeList,i).length===0&&(e.columnOrder=i),e.lockedValues=pm(e)}function xh(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=Cm();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=Tm();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)=>yp(n.option,t,!1)?e|yp(M.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=M.ColumnUIKey.primaryKey|M.ColumnUIKey.foreignKey:n.ui.pk?r.ui.keys=M.ColumnUIKey.primaryKey:n.ui.fk&&(r.ui.keys=M.ColumnUIKey.foreignKey),e.collections.tableColumnEntities[r.id]=r}e.collections.tableEntities[n.id]=n}for(let t of r){let n=Cp();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=vh(),a=Dp();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=yp(M.OrderType,r.orderType,M.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Sh(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=kp();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 Ch(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=zp();n.id=t.id,n.identification=t.identification,n.relationshipType=yp(M.RelationshipType,t.relationshipType,M.RelationshipType.ZeroN),n.startRelationshipType=yp(M.StartRelationshipType,t.startRelationshipType===`Ring`?`ring`:`dash`,M.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=yp(M.Direction,t.start.direction,M.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=yp(M.Direction,t.end.direction,M.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function wh(e){let{lockedValues:t,lockSettings:n,ddlScripts:r,...i}=e,a={...i,lockSettings:n,...r&&(r.before!==``||r.after!==``)?{ddlScripts:{before:r.before,after:r.after}}:{}};return im.forEach(e=>{t&&Vp(n,e)&&Object.assign(a,he(t,am[e]))}),a}function Th(e){let t=JSON.parse(e);if(Reflect.get(t,`version`)===`3.0.0`)return km(t);let n=yh(ph(t));return Sm(n.settings),n}function Eh(e){let t=he(e,[`$schema`,`version`,`settings`,`doc`,`collections`]);return JSON.stringify({...t,settings:wh(t.settings),...Dh(t)},null,2)}function Dh({doc:e,collections:t}){let n=(e.tableGroupIds?.length??0)!==0||Object.keys(t.tableGroupEntities??{}).length!==0,r=fe(t.tableEntities??{},e=>e.groupId?e:me(e,[`groupId`]));return n?{doc:e,collections:{...t,tableEntities:r}}:{doc:me(e,[`tableGroupIds`]),collections:{...me(t,[`tableGroupEntities`]),tableEntities:r}}}function Oh(e){return[e,-1,-1,{}]}function kh(e,t,n){return e[t]||(e[t]=Oh(n),e[t])}function Ah(e,t,n,r,i){let a=kh(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function jh(e,t,n,r,i){let a=kh(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function Mh(e,t,n,r,i,a){let o=kh(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function Nh(e){"@babel/helpers - typeof";return Nh=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},Nh(e)}function Ph(e,t){if(Nh(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Nh(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Fh(e){var t=Ph(e,`string`);return Nh(t)==`symbol`?t:t+``}function Ih(e,t,n){return(t=Fh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Lh=class{constructor(e){Ih(this,`collections`,void 0),this.collections=e}collection(e){return new Rh(this.collections[e],e)}},Rh=class{constructor(e,t){Ih(this,`collection`,void 0),Ih(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),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 Ah(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return jh(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return Mh(e,t,n,this.collectionKey,r,i),this}},N=e=>new Lh(e);const zh=M.CanvasType,Bh=M.CanvasTypeList,P=M.Show,F=M.ColumnType,Vh=M.ColumnTypeList,I=M.Database,Hh=M.DatabaseList;M.Language;const Uh=M.LanguageList;M.NameCase;const Wh=M.NameCaseList,Gh=M.BracketType,Kh=M.BracketTypeList,qh=M.RelationshipType;M.RelationshipTypeList;const Jh=M.StartRelationshipType;M.StartRelationshipTypeList;const Yh=M.ReferentialAction;M.ReferentialActionList;const L=M.Direction;M.DirectionList;const R=M.ColumnOption,z=M.ColumnUIKey,Xh=M.OrderType;M.OrderTypeList;const Zh=M.LockSettingType,Qh=M.LockSettingTypeList,$h=M.LockSettingFields,eg=M.CANVAS_SIZE_MAX,tg=M.CANVAS_SIZE_MIN,ng=M.CANVAS_ZOOM_MAX,rg=M.CANVAS_ZOOM_MIN;M.DDLScriptPosition;const ig=M.DDLScriptPositionList;Gh.none,Gh.backtick,Gh.doubleQuote,Gh.singleQuote;const ag={[Yh.noAction]:`NO ACTION`,[Yh.cascade]:`CASCADE`,[Yh.setNull]:`SET NULL`,[Yh.setDefault]:`SET DEFAULT`,[Yh.restrict]:`RESTRICT`},B={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`,editTableGroup:`editor.editTableGroup`,editTableGroupEnd:`editor.editTableGroupEnd`,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`,changeDrawTableGroup:`editor.changeDrawTableGroup`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,getLWW:`editor.getLWW`,mergeLWW:`editor.mergeLWW`,viewOpen:`editor.viewOpen`,viewClose:`editor.viewClose`,viewScrollTo:`editor.viewScrollTo`,viewStreamScrollTo:`editor.viewStreamScrollTo`,viewChangeZoomLevel:`editor.viewChangeZoomLevel`,viewStreamZoomLevel:`editor.viewStreamZoomLevel`,viewMoveTable:`editor.viewMoveTable`,viewSetLayout:`editor.viewSetLayout`,viewChangeShowMode:`editor.viewChangeShowMode`,viewSetCenters:`editor.viewSetCenters`,changeVisualizationMode:`editor.changeVisualizationMode`},og=1200;function V(e){let t=new Set(e);return e=>t.has(e)}const sg={table:`table`,memo:`memo`,tableGroup:`tableGroup`},cg={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},lg={flow:`flow`},ug={graph:`graph`,flow:`flow`},H={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},dg={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};V(Object.values(dg));const fg=()=>({id:vh(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:og,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,editTableGroupId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,drawTableGroup:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null,views:{flow:null},visualizationMode:ug.graph,lastCanvasType:zh.ERD});function U(e,t){return(e&t)===t}const pg=(e,t)=>{Object.entries(e.editor.selectedMap).forEach(([n,r])=>{r===t&&Reflect.deleteProperty(e.editor.selectedMap,n)})};function mg(e){pg(e,sg.tableGroup),e.editor.drawTableGroup=!1,e.editor.editTableGroupId=null}function hg(e){pg(e,sg.memo),e.editor.editMemoId=null}function gg(e){let{show:t}=e.settings;U(t,P.hideTableGroup)&&mg(e),U(t,P.hideMemo)&&hg(e)}function _g(e){return 6.25*Math.sqrt(Math.max(e,0))}function vg(e){return e>=0?e/2:_g(-e)}function yg(e,t,n){let r=vg((n.x-e.x)*t.x+(n.y-e.y)*t.y);return{x:e.x+t.x*r,y:e.y+t.y*r}}function bg(e,t,n,r){return[yg(e,t,n),yg(n,r,e)]}function xg(e,t,n,r,i=24){let[a,o]=bg(e,t,n,r);return Sg(e,a,o,n,i)}function Sg(e,t,n,r,i){let a=Math.max(1,Math.floor(i)),o=[{x:e.x,y:e.y}];for(let i=1;i<=a;i++){let s=i/a;o.push({x:Cg(e.x,t.x,n.x,r.x,s),y:Cg(e.y,t.y,n.y,r.y,s)})}return o}function Cg(e,t,n,r,i){let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r}function wg(e,t){return Math.max(Math.abs(t.x-e.x),Math.abs(t.y-e.y))}function Tg(e,t){return 1.2*wg(e,t)}function Eg(e,t){return 2.45*wg(e,t)}function Dg(e,t,n,r,i){let a=1.25*i;return Sg(e,{x:e.x+t.x*a,y:e.y+t.y*a},{x:n.x+r.x*a,y:n.y+r.y*a},n,48)}const W={left:`left`,right:`right`,top:`top`,bottom:`bottom`},Og=Object.values(W);V([W.top,W.bottom,W.left,W.right]);const kg=[0,0];function Ag({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const jg=()=>({epoch:0,stubSlots:/* @__PURE__ */ new WeakMap,routes:/* @__PURE__ */ new WeakMap,anchors:/* @__PURE__ */ new WeakMap}),Mg={document:jg(),flow:jg()},Ng={flow:/* @__PURE__ */ new WeakMap};function Pg(e,t){let n=Ng[t],r=n.get(e);return r||(r=Qa({version:0}),n.set(e,r)),r}function Fg(e,t){return Pg(e,t).version}function Ig(e,t){Pg(e,t).version+=1}function Lg(e,t=`document`){let n=Mg[t];for(let r of e){let e=n.stubSlots.delete(r),i=n.routes.delete(r),a=n.anchors.delete(r);t!==`document`&&(e||i||a)&&Ig(r,t)}}const Rg=(e,t)=>e[0]===t[0]&&e[1]===t[1],zg=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,Bg=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function Vg(e,t,n=`document`){let r=Mg[n];n!==`document`&&!Rg(r.stubSlots.get(e)??kg,t)&&Ig(e,n),r.stubSlots.set(e,t)}function Hg(e,t=`document`){return t!==`document`&&Fg(e,t),Mg[t].stubSlots.get(e)??kg}function Ug(e,t,n=`document`){let r=Mg[n];if(n!==`document`){let i=r.routes.get(e);(!i||!Bg(i.points,t))&&Ig(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function Wg(e,t=`document`){return t!==`document`&&Fg(e,t),Mg[t].routes.get(e)?.points}function Gg(e=`document`){Mg[e].epoch+=1}function Kg(e,t=`document`){return t===`document`?e:(Fg(e,t),Mg[t].anchors.get(e)??e)}function qg(e,{start:t,end:n},r=`document`){if(r===`document`){e.start.direction=t.direction,e.start.x=t.x,e.start.y=t.y,e.end.direction=n.direction,e.end.x=n.x,e.end.y=n.y;return}let{anchors:i}=Mg[r],a=i.get(e)??e;(!zg(a.start,t)||!zg(a.end,n))&&Ig(e,r),i.set(e,{start:Ag(t),end:Ag(n)})}function Jg(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 Yg({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 Xg(e=`document`){return e===`document`?2:1}function Zg(e,t=2,n=`document`){let r=Mg[n],{start:i,end:a}=Kg(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null;if(i.tableId===a.tableId)return Yg(Jg([i,a]),21+t+Eg(i,a));let c=s?0:48;if(n!==`document`){let e=Jg([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=_g(Math.max(e.width,e.height)+2*c);return Yg(e,21+t+c+n)}return Yg(Jg(s?[...s,i,a]:[i,a]),21+t+c)}const Qg={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},$g=Object.values(Qg),e_={[Qg.Databricks]:I.Databricks,[Qg.MariaDB]:I.MariaDB,[Qg.MSSQL]:I.MSSQL,[Qg.MySQL]:I.MySQL,[Qg.Oracle]:I.Oracle,[Qg.PostgreSQL]:I.PostgreSQL,[Qg.Snowflake]:I.Snowflake,[Qg.SQLite]:I.SQLite},t_=/[^0-9]/g,n_=e=>e.replace(t_,``),r_=e=>ne(e,tg,eg),i_=e=>ne(e,rg,ng),a_=e=>ne(e,60,200);function o_(e){let t=T(e)?Number(n_(e)):e;return r_(t)}function s_(e){return We(i_(e),2)}const c_=V(Hh),l_=V(Wh),u_=V(Kh),d_=V(Uh),f_=V(Vh);V($g);const p_=V(Bh);function G(e){return Math.max(e,60)}function m_(e){return T(e)?e.trim():``}function h_(e){return e<=.7}const g_=e=>e.settings.canvasType===zh.visualization&&e.editor.visualizationMode===ug.flow,__=e=>g_(e)?e.editor.views.flow:null,v_=(e,t)=>e.editor.views[t]!==null&&g_(e),y_=(e,t)=>t===`document`?null:e.editor.views[t];function b_(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?cg.keysOnly:cg.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n}}function x_({collections:e},t){Lg(N(e).collection(`relationshipEntities`).selectAll(),t)}const S_=(e,t)=>t?e.editor.views[t]:__(e);function C_(e){e.views.flow=null}const w_=k(B.viewOpen),T_=(e,{payload:{kind:t,centerIds:n}})=>{x_(e,t),e.editor.views[t]=b_(t,n)},E_=k(B.viewClose),D_=(e,{payload:{kind:t}})=>{x_(e,t),e.editor.views[t]=null},O_=k(B.viewScrollTo),k_=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=S_(e,r);i&&(i.originX=We(t,4),i.originY=We(n,4))},A_=k(B.viewStreamScrollTo),j_=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=S_(e,r);i&&(i.originX=We(i.originX+t,4),i.originY=We(i.originY+n,4))},M_=k(B.viewChangeZoomLevel),N_=(e,{payload:{value:t,kind:n}})=>{let r=S_(e,n);r&&(r.zoomLevel=s_(t))},P_=k(B.viewStreamZoomLevel),F_=(e,{payload:{value:t,kind:n}})=>{let r=S_(e,n);r&&(r.zoomLevel=s_(r.zoomLevel+t))},I_=k(B.viewMoveTable),L_=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=S_(e,i);if(a)for(let e of t){let t=a.positions[e];t&&(t.x=We(t.x+n,4),t.y=We(t.y+r,4))}},R_=k(B.viewSetLayout),z_=({editor:e},{payload:{kind:t,positions:n}})=>{let r=e.views[t];r&&(r.positions=Object.fromEntries(Object.entries(n).map(([e,{x:t,y:n}])=>[e,{x:t,y:n}])))},B_=k(B.viewChangeShowMode),V_=(e,{payload:{value:t,kind:n}})=>{let r=S_(e,n);r&&(r.showMode=t)},H_=k(B.viewSetCenters),U_=(e,{payload:{tableIds:t,kind:n}})=>{let r=S_(e,n);r&&(r.centerIds=[...t])},W_=k(B.changeVisualizationMode),G_=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},K_={[B.viewOpen]:T_,[B.viewClose]:D_,[B.viewScrollTo]:k_,[B.viewStreamScrollTo]:j_,[B.viewChangeZoomLevel]:N_,[B.viewStreamZoomLevel]:F_,[B.viewMoveTable]:L_,[B.viewSetLayout]:z_,[B.viewChangeShowMode]:V_,[B.viewSetCenters]:U_,[B.changeVisualizationMode]:G_},q_={viewOpenAction:w_,viewCloseAction:E_,viewScrollToAction:O_,viewStreamScrollToAction:A_,viewChangeZoomLevelAction:M_,viewStreamZoomLevelAction:P_,viewMoveTableAction:I_,viewSetLayoutAction:R_,viewChangeShowModeAction:B_,viewSetCentersAction:H_,changeVisualizationModeAction:W_},J_={shared:1,changeOnly:2,following:4,drag:8};function Y_(e,t){return{...re(t),tags:w(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function X_(e,t){return t.map(t=>Y_(e,t))}(e=>(...t)=>function*(n,r){yield X_(e,rd(n,r,t))})(J_.changeOnly);const Z_=({settings:e})=>!U(e.show,P.hideMemo),Q_=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[],tableGroupIds:[]});function $_(e,t,n=`document`){let{x:r,y:i}=y_(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const ev=e=>U(e,z.primaryKey)||U(e,z.foreignKey);function tv(e,t){let n=N(e.collections).collection(`relationshipEntities`).selectByIds(e.doc.relationshipIds);for(let{start:e,end:r}of n)t(e.tableId,e.columnIds),t(r.tableId,r.columnIds)}function nv(e,t){let n=/* @__PURE__ */ new Set;return tv(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function rv(e,t,n=`document`){let r=y_(e,n);if(!r||r.showMode===cg.allFields)return t.columnIds;if(r.showMode===cg.nameOnly)return[];let i=nv(e,t);return N(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>ev(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function iv(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:Z_(e)?n.memoIds:[],relationshipIds:n.relationshipIds,tableGroupIds:n.tableGroupIds};let i=y_(e,t);if(!i)return Q_;let a=N(r).collection(`relationshipEntities`).selectByIds(n.relationshipIds),o=new Set(Object.keys(i.positions)),s=n.tableIds.filter(e=>o.has(e)),c=new Set(s);return{tableIds:s,memoIds:[],tableGroupIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const av=Qa({tableId:{}}),ov=/* @__PURE__ */ new Map;function sv(e){ov.delete(e),Reflect.deleteProperty(av.tableId,e)}function cv(e,t,n=`document`){let r=y_(e,n),{id:i}=e.editor;if(t===null||!r){ov.get(i)?.kind===n&&sv(i);return}ov.set(i,r),av.tableId[i]=t}function lv(e,t,n=`document`){let{id:r}=e.editor;av.tableId[r]===t&&ov.get(r)?.kind===n&&sv(r)}const uv=Qa({tableId:{}}),dv=/* @__PURE__ */ new Map;function fv(e){dv.delete(e),Reflect.deleteProperty(uv.tableId,e)}function pv(e,t,n=`document`){let r=y_(e,n);if(!r)return;let{id:i}=e.editor;if((dv.get(i)===r?uv.tableId[i]:void 0)===t){fv(i);return}dv.set(i,r),uv.tableId[i]=t}function mv(e){return 9+e.ui.width+8+1}function hv(e){return 25+e.ui.height+8+1}Object.values({create:`create`,ifNotExists:`ifNotExists`,recreate:`recreate`});const gv={none:`none`,use:`use`,createAndUse:`createAndUse`};Object.values(gv),gv.use,gv.createAndUse,I.MySQL,I.MariaDB,I.PostgreSQL,gv.createAndUse,I.Oracle,gv.use,I.MSSQL,I.SQLite,I.Snowflake,I.Databricks;function _v(e){return e.filter(({options:e})=>U(e,R.primaryKey))}I.MariaDB,I.MSSQL,I.MySQL,I.Oracle,I.PostgreSQL,I.SQLite;function vv(e,t,n,r=1){return yv(e,t,n,r,e=>e)}function yv(e,t,n,r,i){let a=i(n);return n!==``&&e.some(e=>e.id!==t&&i(e.name)===a)?yv(e,t,n.replace(/[0-9]/g,``)+r,r+1,i):n}const bv=[Yh.noAction,Yh.cascade,Yh.setNull,Yh.setDefault,Yh.restrict];function xv(...e){let t=bv.filter(t=>!e.includes(t));return{onDelete:t,onUpdate:t}}I.Databricks,Yh.noAction,Yh.noAction,I.MariaDB,xv(Yh.setDefault),I.MSSQL,xv(Yh.restrict),I.MySQL,xv(Yh.setDefault),I.Oracle,Yh.cascade,Yh.setNull,I.PostgreSQL,I.SQLite,I.Snowflake,Yh.noAction,Yh.noAction;const Sv=String.raw`[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?`,Cv=`(?:current_timestamp|now|localtime|localtimestamp)`;RegExp(`^(?:`+[Sv,String.raw`0x[\da-f]+`,String.raw`0b[01]+`,String.raw`(?:_\w+\s*|n)?'(?:[^'\\]|''|\\.)*'`,String.raw`(?:_\w+\s*|n)?"(?:[^"\\]|""|\\.)*"`,String.raw`x'[\da-f]*'`,String.raw`b'[01]*'`,String.raw`(?:date|time|timestamp)\s*'[^']*'`,`null|true|false`,String.raw`${Cv}(?:\s*\(\s*\d*\s*\))?`].join(`|`)+String.raw`)(\s+on\s+update\s.*)?$`,`is`),new RegExp(String.raw`^${Cv}\b`,`i`),RegExp(`^(?:`+[Sv,String.raw`[+-]?0x[\da-f]+`,`'(?:[^']|'')*'`,String.raw`x'[\da-f]*'`,String.raw`[a-z_][\w$]*`,`"(?:[^"]|"")*"`,"`(?:[^`]|``)*`",String.raw`\[[^\]]*\]`].join(`|`)+`)$`,`i`),I.MariaDB,I.MySQL,I.PostgreSQL,I.SQLite;let wv=0;function Tv(){wv++}const Ev=/* @__PURE__ */ new WeakMap;function Dv({doc:e,collections:t},n){let{indexIds:r}=e,i=t.indexEntities;if(!r.length)return[];let a=Ev.get(r);if(a?.generation===wv&&a.entities===i)return a.byTable.get(n)??[];let o=/* @__PURE__ */ new Map;for(let e of N(t).collection(`indexEntities`).selectByIds(r)){let t=o.get(e.tableId);t?t.push(e.id):o.set(e.tableId,[e.id])}return Ev.set(r,{generation:wv,entities:i,byTable:o}),o.get(n)??[]}function Ov(e,t){let n=new Set(t.columnIds),r=N(e.collections).collection(`indexColumnEntities`);return N(e.collections).collection(`indexEntities`).selectByIds(Dv(e,t.id)).filter(e=>e.unique).map(e=>({indexId:e.id,columnIds:r.selectByIds(e.indexColumnIds).map(e=>e.columnId).filter(e=>n.has(e))}))}function kv(e,t){let n=new Map(t.columnIds.map((e,t)=>[e,t]));return Ov(e,t).filter(e=>e.columnIds.length>1).sort((e,t)=>Av(e,t,n))}function Av(e,t,n){let r=Math.min(e.columnIds.length,t.columnIds.length);for(let i=0;i<r;i++){let r=n.get(e.columnIds[i])-n.get(t.columnIds[i]);if(r)return r}return e.columnIds.length===t.columnIds.length?e.indexId<t.indexId?-1:1:e.columnIds.length-t.columnIds.length}function jv(e,t){let n={};return kv(e,t).forEach((e,t)=>{e.columnIds.forEach((e,r)=>{(n[e]??=[]).push(`AK${t+1}.${r+1}`)})}),Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.join(`,`)]))}let Mv=0;const Nv=Qa({generation:0});function Pv(){return Mv}function Fv(){return Nv.generation}function Iv(){Mv++,Nv.generation=Mv}function Lv(e,t){return U(t.settings.show,P.columnAlternateKey)?Object.values(jv(t,e)).reduce((e,t)=>Math.max(e,Math.ceil(t.length*7.32)),0):0}function Rv(e,t){let{settings:{show:n,maxWidthComment:r},collections:i}=t,a=20+e.ui.widthName+8;if(U(n,P.tableComment)){let t=r===-1?e.ui.widthComment:r<e.ui.widthComment?r:e.ui.widthComment;a+=t+8}a+=28;let o=Lv(e,t),s=Bv(n)+(o?o+8:0);a<s&&(a=s);let c=Hv(N(i).collection(`tableColumnEntities`).selectByIds(e.columnIds),n,r,o);return a<c.width&&(a=c.width),{...c,width:9+a+8+1}}const zv=[{key:P.columnComment,width:60},{key:P.columnDataType,width:60},{key:P.columnDefault,width:60},{key:P.columnNotNull,width:35},{key:P.columnAutoIncrement,width:15},{key:P.columnUnique,width:22}];function Bv(e){return zv.reduce((t,{key:n,width:r})=>U(e,n)?t+r+8:t,100)}function Vv(){return{width:0,alternateKey:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0}}function Hv(e,t,n,r){let i=Vv();i.alternateKey=r;for(let r of e)i.name<r.ui.widthName&&(i.name=r.ui.widthName),U(t,P.columnComment)&&i.comment<r.ui.widthComment&&(i.comment=n===-1?r.ui.widthComment:n<r.ui.widthComment?n:r.ui.widthComment),U(t,P.columnDataType)&&i.dataType<r.ui.widthDataType&&(i.dataType=r.ui.widthDataType),U(t,P.columnDefault)&&i.default<r.ui.widthDefault&&(i.default=r.ui.widthDefault);return U(t,P.columnNotNull)&&(i.notNull=35),U(t,P.columnAutoIncrement)&&(i.autoIncrement=15),U(t,P.columnUnique)&&(i.unique=22),i.width=Object.entries(i).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),i}function Uv(e,t,n){let r=Vv(),i=N(t.collections).collection(`tableColumnEntities`).selectByIds(n);for(let e of i)r.name=Math.max(r.name,e.ui.widthName),r.dataType=Math.max(r.dataType,e.ui.widthDataType);let a=i.length?22+r.name+8+r.dataType:0,o=Math.max(Gv(e),a,154);return i.length&&(r.name+=o-a),r.width=18+o,r}function Wv(e){return Math.ceil(e*1.1666666666666667*1.04)}function Gv(e){return 20+Wv(e.ui.widthName)+8+28}function Kv(e=`document`){return e===`document`?20:24}function qv(e=`document`){return e===`document`?24:32}function Jv(e,t=e.columnIds.length,n=`document`){return 9+Kv(n)+t*qv(n)+1}const Yv=(e,t)=>({widthName:G(t(e.name)),widthComment:G(t(e.comment))}),Xv=(e,t)=>({widthName:G(t(e.name)),widthDataType:G(t(e.dataType)),widthDefault:G(t(e.default)),widthComment:G(t(e.comment))});function Zv({doc:{tableIds:e},collections:t},{toWidth:n}){Iv();let r=N(t).collection(`tableEntities`).selectByIds(e),i=N(t).collection(`tableColumnEntities`);for(let e of r){Object.assign(e.ui,Yv(e,n));let t=i.selectByIds(e.columnIds);for(let e of t)Object.assign(e.ui,Xv(e,n))}}function Qv(e,t,n){let r=N(t.collections).collection(`tableColumnEntities`).selectByIds(e.columnIds).map(e=>({...e,ui:{...e.ui,...Xv(e,n)}})),i={...e,ui:{...e.ui,...Yv(e,n)}};return{width:Rv(i,{...t,collections:{...t.collections,tableColumnEntities:Object.fromEntries(r.map(e=>[e.id,e]))}}).width,height:Jv(i)}}const $v={document:/* @__PURE__ */ new WeakMap,flow:/* @__PURE__ */ new WeakMap};function ey(e,t,n){let r=$v[n],i=n===`document`?ty(e,t):ny(e,t,n),a=r.get(t);if(a?.key===i.key)return a;let o=i.measure();return r.set(t,o),o}function ty(e,t){let{settings:n}=e,r=n.show&~(P.hideReferentialAction|P.hideTableGroup|P.hideMemo),i=`${Pv()}|${r}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:i,measure:()=>({key:i,width:Rv(t,e).width,height:Jv(t)})}}function ny(e,t,n){let r=y_(e,n)?.showMode??cg.allFields,i=rv(e,t,n),a=`${Pv()}|${t.ui.widthName}|${t.columnIds.length}|${r}|${i.length}`;return{key:a,measure:()=>({key:a,width:Uv(t,e,i).width,height:Jv(t,i.length,n)})}}function ry(e,t,n=`document`){let{width:r,height:i}=ey(e,t,n),{x:a,y:o}=$_(e,t,n);return{width:r,height:i,top:{x:a+r/2,y:o},bottom:{x:a+r/2,y:o+i},left:{x:a,y:o+i/2},right:{x:a+r,y:o+i/2},lt:{x:a,y:o},rt:{x:a+r,y:o},lb:{x:a,y:o+i},rb:{x:a+r,y:o+i}}}function iy(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function ay(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 oy(e,t,n=`document`){let{width:r,height:i}=ry(e,t,n),{x:a,y:o}=$_(e,t,n);return{x:a,y:o,width:r,height:i}}function sy(e,t,n=`document`){return n===`document`?Rv(t,e):Uv(t,e,rv(e,t,n))}function cy(e,t,n,r=`document`){let{x:i,y:a,width:o}=oy(e,t,r),s=qv(r);return{x:i+9,y:a+9+Kv(r)+n*s,width:o-18,height:s}}function ly(e,t,n=`document`){let{x:r,y:i,width:a}=oy(e,t,n);return{x:r,y:i,width:a,height:9+Kv(n)}}function uy(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:mv(e),height:hv(e)}}const dy={red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`,gray:`#6b7280`},fy=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,py=/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,my=/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,hy=/^(rgba?|hsla?)\(([^()]*)\)$/i,gy=/\s*[,/]\s*|\s+/,_y=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i,vy=/deg$/i,yy=/%$/,by=new Map(Object.entries(dy));function xy(e){return fy.test(e)?e:``}function Sy(e){return by.get(e.toLowerCase())??(py.test(e)?e:``)}function Cy(e){let t=wy(e.trim());return t?jy(t):null}function wy(e){if(my.test(e))return Ty(e.slice(1));let t=hy.exec(e);if(!t)return null;let n=t[2].trim().split(gy);return n.length<3?null:t[1].toLowerCase().startsWith(`rgb`)?Ey(n):Dy(n)}function Ty(e){let t=e.length<=4?[...e].map(e=>`${e}${e}`).join(``):e;return[0,2,4].map(e=>parseInt(t.slice(e,e+2),16))}function Ey(e){let t=[];for(let n of e.slice(0,3)){let e=n.endsWith(`%`),r=ky(e?n.slice(0,-1):n);if(r===null)return null;t.push(Ay(e?r*2.55:r))}return t}function Dy(e){let t=ky(e[0].replace(vy,``)),n=ky(e[1].replace(yy,``)),r=ky(e[2].replace(yy,``));if(t===null||n===null||r===null||!Number.isFinite(t))return null;let i=(t%360+360)%360,a=Math.min(Math.max(n,0),100)/100,o=Math.min(Math.max(r,0),100)/100,s=a*Math.min(o,1-o),c=e=>{let t=(e+i/30)%12;return o-s*Math.max(-1,Math.min(t-3,9-t,1))};return[c(0),c(8),c(4)].map(e=>Ay(e*255))}function Oy(e){let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4}function ky(e){return _y.test(e)?Number(e):null}function Ay(e){return Math.round(Math.min(Math.max(e,0),255))}function jy(e){return`#${e.map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function My(e){let t=Cy(e);if(!t)return null;let[n,r,i]=[1,3,5].map(e=>Oy(parseInt(t.slice(e,e+2),16)));return .2126*n+.7152*r+.0722*i}function Ny(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function Py(e){let t=My(e);if(t===null)return null;let n=Ny(t,1);return Ny(t,0)-n>4?`#000000`:`#ffffff`}function Fy({doc:e},t){return t.groupId&&e.tableGroupIds.includes(t.groupId)?t.groupId:``}function Iy(e,t){let{doc:n,collections:r}=e;return!t||!n.tableGroupIds.includes(t)?[]:N(r).collection(`tableEntities`).selectByIds(n.tableIds).filter(e=>e.groupId===t)}function Ly(e,t){return Iy(e,t).map(({id:e})=>e)}function Ry(e,t=24){let n=t+28;return{x:e.x-t,y:e.y-n,width:e.width+t*2,height:e.height+t+n}}function zy(e,t,{excludeTableIds:n=[],members:r=Iy(e,t.id)}={}){let{x:i,y:a,width:o,height:s}=t.ui,c=new Set(n);return r.filter(e=>!c.has(e.id)).reduce((t,n)=>ay(t,Ry(oy(e,n))),{x:i,y:a,width:o,height:s})}function By(e){return new Map(e.map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>[e,{x:t,y:n,width:r,height:i}]))}function Vy(e,t,n){let r=t.groupId?e.get(t.groupId):void 0;r&&e.set(t.groupId,ay(r,Ry(n)))}function Hy(e,{excludeTableIds:t=[]}={}){let{doc:n,collections:r}=e,i=By(N(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds));if(!i.size)return i;let a=new Set(t);return N(r).collection(`tableEntities`).selectByIds(n.tableIds).forEach(t=>{a.has(t.id)||Vy(i,t,oy(e,t))}),i}function Uy(e){let{doc:t,collections:n}=e,r=new Set(t.tableGroupIds),i=/* @__PURE__ */ new Map;return r.size&&N(n).collection(`tableEntities`).selectByIds(t.tableIds).forEach(e=>{if(!r.has(e.groupId))return;let t=i.get(e.groupId);t?t.push(e):i.set(e.groupId,[e])}),i}function Wy(e,t){let{doc:n,collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(t.filter(V(n.tableIds))).map(t=>oy(e,t));return i.length?Ry(i.reduce(ay)):null}function Gy(e,t){let{x:n,y:r,width:i,height:a}=oy(e,t);return{x:n+i/2,y:r+a/2}}function Ky({x:e,y:t},n){return n.x<=e&&e<=n.x+n.width&&n.y<=t&&t<=n.y+n.height}function qy(e,t,{boxes:n,...r}={}){if(!t.length)return[];let{doc:i,collections:a}=e,o=n??Hy(e,r),s=N(a).collection(`tableGroupEntities`).selectByIds(i.tableGroupIds).flatMap(e=>{let t=o.get(e.id);return t?[{group:e,rect:t}]:[]});return t.map(e=>s.reduce((t,{group:n,rect:r})=>(!t||t.ui.zIndex<=n.ui.zIndex)&&Ky(e,r)?n:t,null))}const Jy=e=>Math.max(0,...e.map(({ui:e})=>e.zIndex))+1,Yy=({settings:e})=>!U(e.show,P.hideTableGroup);function Xy(e){let t=Cy(e.color),n=t&&Py(t);return t&&n?{background:t,foreground:n}:null}function Zy(e,t,n=`document`){return n!==`document`||!Yy(e)?null:Qy(e,Fy(e,t),n)}function Qy(e,t,n=`document`){if(!t||n!==`document`||!Yy(e))return null;let r=e.collections.tableGroupEntities[t];return r?Xy(r):null}function $y(e){return nb(e,[])}function eb(e,t=`document`){return nb(e,[],t)}function tb(e,t=[],n=`document`,r=[]){let{collections:i,doc:a}=e,{tableIds:o,memoIds:s,tableGroupIds:c}=n===`document`?a:iv(e,n),l=Z_(e)?s:[],u=new Map(t.map(e=>[e.id,e])),d=c.length&&Yy(e)?N(i).collection(`tableGroupEntities`).selectByIds(c):[],f=By(d),p=new Map(r.map(({id:e,...t})=>[e,t])),m=N(i).collection(`tableEntities`).selectByIds(o),h=N(i).collection(`memoEntities`).selectByIds(l);return[...m.map(t=>{let r=oy(e,t,n),i=u.get(t.id);return i?{...r,x:i.x,y:i.y}:(Vy(f,t,r),r)}),...h.map(uy),...d.map(e=>p.get(e.id)??f.get(e.id))]}function nb(e,t,n=`document`,r=[]){let i=tb(e,t,n,r);return i.length?i.reduce(ay):null}function rb(e){return __(e)??e.settings}function ib(e,t=`document`){return y_(e,t)??e.settings}function ab(e,t){return t?ib(e,t):rb(e)}function ob({originX:e,originY:t}){return{x:e,y:t}}const sb=e=>e>0?e:1;function cb(e,t){let n=ob(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function lb(e,t){let n=sb(e.zoomLevel),r=ob({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function ub(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function db(e){let{viewportWidth:t,viewportHeight:n}=e,r=sb(e.zoomLevel),i=ob({...e,zoomLevel:r}),a=(t>0?t:og)/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 fb(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=ib(e,t),{viewport:a}=e.editor;return db({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function pb(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 mb(e,t,n,r=`document`){return pb(e,oy(t,n,r))}function hb(e,t,n,r=`document`){return pb(e,Zg(t,n,r))}const gb=Qa({frozen:{}}),_b=(e,t)=>`${e.editor.id}:${t}`,vb=(e,t)=>gb.frozen[_b(e,t)]??null;function yb(e,t=`document`){let{originX:n,originY:r}=ib(e,t);gb.frozen[_b(e,t)]={content:eb(e,t),origin:{x:n,y:r}}}function bb(e,t=`document`){Reflect.deleteProperty(gb.frozen,_b(e,t))}function xb(e,t=`document`){let n=vb(e,t);return n?n.content:eb(e,t)}const K={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`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeLockSettings:`settings.changeLockSettings`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`,changeDDLScript:`settings.changeDDLScript`},Sb=e=>e+0;function Cb(e,t,n,r){let i=-t*r,a=n-e*r;return{min:Sb(Math.min(i,a)),max:Sb(Math.max(i,a))}}function wb(e,t,n,r,i){let{min:a,max:o}=Cb(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return Sb(Math.min(Math.max(e,a+s),o-s))}const Tb=k(K.changeDatabaseName),Eb=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{Mh(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},Db=k(K.changeZoomLevel),Ob=({settings:e},{payload:{value:t},tags:n})=>{(C(n)||!U(n,J_.following))&&(e.zoomLevel=s_(t))},kb=k(K.streamZoomLevel),Ab=({settings:e},{payload:{value:t},tags:n})=>{(C(n)||!U(n,J_.following))&&(e.zoomLevel=s_(e.zoomLevel+t))},jb=({width:e,height:t})=>e>0&&t>0;function Mb(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=xb(e);return!a||!jb(i)?{x:t,y:n}:{x:wb(t,a.x,a.x+a.width,i.width,r),y:wb(n,a.y,a.y+a.height,i.height,r)}}const Nb=k(K.scrollTo),Pb=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{(C(r)||!U(r,J_.following))&&(e.originX=We(t,4),e.originY=We(n,4))},Fb=k(K.streamScrollTo),Ib=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{(C(r)||!U(r,J_.following))&&(e.originX=We(e.originX+t,4),e.originY=We(e.originY+n,4))},Lb=k(K.changeShow),Rb=(e,{payload:{show:t,value:n}})=>{let{settings:r}=e;r.show=n?r.show|t:r.show&~t,n&&U(t,P.hideTableGroup)&&mg(e),n&&U(t,P.hideMemo)&&hg(e)},zb=k(K.changeDatabase),Bb=({settings:e},{payload:{value:t}})=>{c_(t)&&(e.database=t)};function Vb({settings:e,editor:t}){e.canvasType!==zh.settings&&(t.lastCanvasType=e.canvasType)}const Hb=k(K.changeCanvasType),Ub=(e,{payload:{value:t},tags:n})=>{(C(n)||!U(n,J_.following))&&(Vb(e),e.settings.canvasType=t,t!==zh.ERD&&(e.editor.drawTableGroup=!1))};function Wb({settings:e,lww:t},n,r,i){Mh(t,n,`settings.code`,`settings`,r,()=>{e[r]=i})}const Gb=k(K.changeLanguage),Kb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();d_(t)&&Wb(e,i,`language`,t)},qb=k(K.changeTableNameCase),Jb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();l_(t)&&Wb(e,i,`tableNameCase`,t)},Yb=k(K.changeColumnNameCase),Xb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();l_(t)&&Wb(e,i,`columnNameCase`,t)},Zb=k(K.changeBracketType),Qb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();u_(t)&&Wb(e,i,`bracketType`,t)},$b=k(K.changeRelationshipDataTypeSync),ex=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},tx=k(K.changeColumnOrder),nx=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!f_(t)||!f_(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))},rx=k(K.changeMaxWidthComment),ix=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:a_(t)},ax=k(K.changeLockSettings),ox={originX:Number.isFinite,originY:Number.isFinite,zoomLevel:e=>w(e)&&i_(e)===e,canvasType:e=>p_(e)&&e!==zh.settings,language:d_,tableNameCase:l_,columnNameCase:l_,bracketType:u_},sx=Zh.language|Zh.tableNameCase|Zh.columnNameCase|Zh.bracketType,cx=(e,{payload:{lockSettingType:t,value:n,values:r},version:i},{clock:a})=>{let{settings:o,lww:s}=e,c=i??a.getVersion();Qh.forEach(i=>{if(!U(t,i))return;let a=$h[i],l=he(r,a),u=a.filter(e=>ox[e](l[e]));n&&u.length<a.length||(Mh(s,c,`settings.lockSettings`,`settings`,String(i),()=>{n?(Object.assign(o.lockedValues,l),o.lockSettings|=i):o.lockSettings&=~i}),!n&&U(sx,i)&&u.forEach(t=>Wb(e,c,t,l[t])))})},lx=k(K.changeIgnoreSaveSettings),ux=()=>{},dx=k(K.changeDDLScript),fx=({settings:e,lww:t},{payload:{position:n,value:r},version:i},{clock:a})=>{ig.includes(n)&&T(r)&&Mh(t,i??a.getVersion(),`settings.ddlScripts`,`settings`,n,()=>{e.ddlScripts={...e.ddlScripts,[n]:r}})},px=Qh.reduce((e,t)=>e|t,0);function mx({settings:e,lww:t},n,r){let{lockSettings:i,lockedValues:a,...o}=e;Object.assign(e,n,{lockSettings:i&px|n.lockSettings&~px,lockedValues:{...a}}),Qh.forEach(i=>{let a=$h[i];Mh(t,r,`settings.lockSettings`,`settings`,String(i),()=>{e.lockSettings=U(n.lockSettings,i)?e.lockSettings|i:e.lockSettings&~i,Object.assign(e.lockedValues,he(n.lockedValues,a))}),i!==Zh.viewport&&U(e.lockSettings,i)&&Object.assign(e,he(o,a))})}const hx={[K.changeDatabaseName]:Eb,[K.changeZoomLevel]:Ob,[K.streamZoomLevel]:Ab,[K.scrollTo]:Pb,[K.streamScrollTo]:Ib,[K.changeShow]:Rb,[K.changeDatabase]:Bb,[K.changeCanvasType]:Ub,[K.changeLanguage]:Kb,[K.changeTableNameCase]:Jb,[K.changeColumnNameCase]:Xb,[K.changeBracketType]:Qb,[K.changeRelationshipDataTypeSync]:ex,[K.changeColumnOrder]:nx,[K.changeMaxWidthComment]:ix,[K.changeLockSettings]:cx,[K.changeIgnoreSaveSettings]:ux,[K.changeDDLScript]:fx},gx={changeDatabaseNameAction:Tb,changeZoomLevelAction:Db,streamZoomLevelAction:kb,scrollToAction:Nb,streamScrollToAction:Fb,changeShowAction:Lb,changeDatabaseAction:zb,changeCanvasTypeAction:Hb,changeLanguageAction:Gb,changeTableNameCaseAction:qb,changeColumnNameCaseAction:Yb,changeBracketTypeAction:Zb,changeRelationshipDataTypeSyncAction:$b,changeColumnOrderAction:tx,changeMaxWidthCommentAction:rx,changeLockSettingsAction:ax,changeIgnoreSaveSettingsAction:lx,changeDDLScriptAction:dx};function _x(e,t,{end:n}){if(!t(n.tableId))return[];let r=N(e).collection(`tableEntities`).selectById(n.tableId);if(!r)return[];let i=V(r.columnIds);return N(e).collection(`tableColumnEntities`).selectByIds(n.columnIds).filter(e=>i(e.id))}function*vx({doc:e,collections:t}){let n=V(e.tableIds),r=V(e.relationshipIds),i=N(t).collection(`relationshipEntities`).selectAll();for(let e of i)yield[e,r(e.id)?_x(t,n,e):[]]}function yx(e){for(let[t,n]of vx(e)){let e=n.length!==0&&n.every(e=>U(e.options,R.primaryKey));e!==t.identification&&(t.identification=e)}}function bx(e){for(let[t,n]of vx(e)){let e=n.every(e=>U(e.options,R.notNull))?Jh.dash:Jh.ring;e!==t.startRelationshipType&&(t.startRelationshipType=e)}}function xx({collections:e}){for(let t of N(e).collection(`tableColumnEntities`).selectAll()){let e=U(t.options,R.primaryKey);e!==U(t.ui.keys,z.primaryKey)&&(t.ui.keys=e?t.ui.keys|z.primaryKey:t.ui.keys&~z.primaryKey)}}function Sx({doc:e,collections:t}){let n=/* @__PURE__ */ new Map,r=N(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let{end:e}of r){let t=n.get(e.tableId)??/* @__PURE__ */ new Set;e.columnIds.forEach(e=>t.add(e)),n.set(e.tableId,t)}let i=/* @__PURE__ */ new Map;for(let n of N(t).collection(`tableEntities`).selectByIds(e.tableIds))n.columnIds.forEach(e=>i.set(e,n.id));for(let e of N(t).collection(`tableColumnEntities`).selectAll()){let t=i.get(e.id),r=t!==void 0&&(n.get(t)?.has(e.id)??!1);r!==U(e.ui.keys,z.foreignKey)&&(e.ui.keys=r?e.ui.keys|z.foreignKey:e.ui.keys&~z.foreignKey)}}const Cx=/* @__PURE__ */ new WeakMap,wx=()=>({boxes:/* @__PURE__ */ new Map,entries:/* @__PURE__ */ new Map});function Tx(e,t=`document`){let n=Cx.get(e);return n||(n={document:wx(),flow:wx()},Cx.set(e,n)),n[t]}function Ex(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function Dx(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 Ox(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function kx(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 Ax(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function jx(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(Ax(n,e))return!0;return!1}function Mx(){let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ 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 Nx(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 Px(e,t){let n=e.boxes,r=/* @__PURE__ */ new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=Ex(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?Ox(c,s)||i.push(Dx(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 Fx(e){return 24+e%4*8}function Ix(e,t){return e.tableId===t.tableId?null:e.direction===L.right&&t.direction===L.left?t.x-e.x:e.direction===L.left&&t.direction===L.right?e.x-t.x:e.direction===L.bottom&&t.direction===L.top?t.y-e.y:e.direction===L.top&&t.direction===L.bottom?e.y-t.y:null}function Lx(e,t){return t===null||t<=0?e:Math.max(24,Math.min(e,t/2-1))}function Rx(e){return e===L.left||e===L.right}function zx(e){return e===L.right||e===L.bottom?1:-1}function Bx(e,t,n){let r=zx(t);return Rx(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function Vx({start:e,end:t},[n,r]){let i=Ix(e,t),a=Lx(Fx(n),i),o=Lx(Fx(r),i);return{m:Bx(e,e.direction,a),l:Bx(t,t.direction,o),startStub:a,endStub:o}}function Hx(e,t=`document`){let{tableIds:n}=iv(e,t),r=N(e.collections).collection(`tableEntities`).selectByIds(n),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((n,r)=>{let i=ry(e,n,t);a.ids[r]=n.id,a.left[r]=i.lt.x+2,a.top[r]=i.lt.y+2,a.right[r]=i.rb.x-2,a.bottom[r]=i.rb.y-2}),a}function Ux(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 Wx(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)&&Ux(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function Gx(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 Kx(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 qx(e,t,n,r,i){let a=Rx(t),o=Rx(r),s=zx(t),c=zx(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=Kx(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=Kx(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=Kx(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=Kx(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=Kx(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=Kx(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=Kx(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=Kx(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 Jx(e,t,n,r,i,a,o){let s=qx(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=Wx(e.points,i,a,o)*1e5+e.bends*36+Gx(e.points);t<l&&(l=t,c=e.points)}return c||(Rx(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 Yx=[10,7,4],Xx=Yx[Yx.length-1]-.5;function Zx(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 Qx(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function $x(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function eS(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 tS(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 nS(e,t,n,r){let i=[],a=[];for(let t of Zx(e))(t.vertical?i:a).push(t);for(let e of[i,a]){eS(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||Qx(e,t));let a=[],o=()=>{a.length>1&&rS(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 rS(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||Qx(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&lS(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 iS(e,t){return e.high+10>t.low&&t.high+10>e.low}function aS(e,t){return Math.abs(e.coordinate-t.coordinate)>=Xx?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function oS(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+=aS(i,e[t]);for(let e of t)n+=aS(i,e)}return n}function sS(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+Xx,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function cS(e){let t=[];for(let n of e){let e=t.find(e=>!iS(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function lS(e,t,n,r,i){if(!i){uS(e,t,n,r);return}if(dS(e,i))return;let a=e.map(e=>e.coordinate);uS(e,t,n,r),fS(e,a,i)}function uS(e,t,n,r){let i=sS(e,t),a=oS(e,i);if(!a)return;let o=/* @__PURE__ */ new Map,s=e.map(e=>(o.set(e,yS(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=pS(e),u=null,d=1/0;for(let t of Yx){let a=null,f=1/0;for(let p of l){vS(p,t,c,o,n,r);let l=oS(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=gS(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}_S(e,s)}if(a){_S(e,a);return}}u&&d<a&&_S(e,u)}function dS(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 _S(e,n),!0}function fS(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 pS(e){let t=cS(e),n=mS(t);return t.length===e.length?n:[...n,...mS(e.map(e=>[e]))]}function mS(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,$x)-t(n,$x)||t(e,hS)-t(n,hS)||Qx(e[0],n[0])),r=[...e].sort((e,n)=>t(e,hS)-t(n,hS)||t(e,$x)-t(n,$x)||Qx(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function hS(e){return e.coordinate}function gS(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function _S(e,t){e.forEach((e,n)=>{tS(e,t[n]),e.coordinate=t[n]})}function vS(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=>iS(l,e)))return!1;let c=o+r*t;return tS(l,c),CS(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||tS(l,l.coordinate)}})}function yS(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:Wx(e.points,t,r?.[0]??``,r?.[1]??``),crossed:wS(e.points),own:i,intruded:SS(e.points,t,i),beforeDelta:bS(e,-1),afterDelta:bS(e,1)}}function bS(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 xS(e,t){return Math.abs(t)>=.5&&e*t<=0}function SS(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(Ux(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function CS(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&&xS(bS(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&xS(bS(e,1),r.afterDelta)||SS(e.points,t,r.own)>r.intruded||!r.crossed&&wS(e.points))return!1;let c=n.get(e.relationshipId);return Wx(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function wS(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(TS(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function TS(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 ES={[W.top]:L.top,[W.bottom]:L.bottom,[W.left]:L.left,[W.right]:L.right},DS=Math.PI*2,OS={[W.top]:-Math.PI,[W.right]:-Math.PI/2,[W.bottom]:0,[W.left]:Math.PI/2},kS={[W.top]:!1,[W.right]:!1,[W.bottom]:!0,[W.left]:!0};function AS(e,t=`document`,{route:n=!0}={}){Gg(t);let{tableIds:r,relationshipIds:i}=iv(e,t),{collections:a}=e,o=V(r),s=N(a).collection(`tableEntities`),c=N(a).collection(`relationshipEntities`).selectByIds(i).filter(({start:e,end:t})=>o(e.tableId)&&o(t.tableId)),l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=VS(c);for(let n of c){let r=BS(n),{start:i,end:a}=r,o=s.selectById(i.tableId),c=s.selectById(a.tableId);if(o&&c){if(u.set(n,r),d.set(r.id,[0,0]),i.tableId===a.tableId)IS(e,l,o,t).loops.push(r);else{let n=IS(e,l,o,t),s=IS(e,l,c,t),[u,d]=GS(n.objectPoint,s.objectPoint,r);n[u].push({id:r.id,isStart:!0,point:i,angle:WS(u,n,s),tie:f.tieAt(r.id,i.tableId,a.tableId)}),s[d].push({id:r.id,isStart:!1,point:a,angle:WS(d,s,n),tie:f.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of l.values()){LS(e);for(let t of Og)KS(t,e,d)}for(let[e,n]of u.entries())Vg(e,d.get(n.id)??[0,0],t),qg(e,n,t);t===`document`?n&&MS(e,u,d):jS(u,d,t)}function jS(e,t,n){for(let[r,i]of e.entries()){let{id:e,start:a,end:o}=i;if(a.tableId===o.tableId)continue;let{m:s,l:c}=Vx(i,t.get(e)??[0,0]);Ug(r,[s,c],n)}}function MS(e,t,n){let r=Hx(e),i=Tx(e),a=Px(i,r),o=i.entries,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Set,l=Mx();if(a)for(let e of a)l.markBox(e);let u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map;for(let[e,i]of t.entries()){let{id:t,start:p,end:m}=i;if(p.tableId===m.tableId)continue;let{m:h,l:g}=Vx(i,n.get(t)??[0,0]),_=o.get(t),v,y;a!==null&&_!==void 0&&FS(_,h,g,p,m)&&!jx(_.bounds,a)?(v=_.pristine,y=NS(v)):(y=Jx(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=NS(y),c.add(t),_&&Nx(l,_.nudged),Nx(l,v)),u.set(t,y),d.set(t,[p.tableId,m.tableId]),f.set(t,e),s.set(t,{mx:h.x,my:h.y,mDirection:p.direction,lx:g.x,ly:g.y,lDirection:m.direction,startTableId:p.tableId,endTableId:m.tableId,pristine:v,nudged:y,bounds:kx(v)})}if(a)for(let[e,t]of o)s.has(e)||Nx(l,t.nudged);nS(u,r,d,a===null?void 0:PS(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&Ug(n,t)}i.entries=s}function NS(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function PS(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 FS(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 IS(e,t,n,r){let i=t.get(n.id);if(!i){let a=ry(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,loops:[],top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function LS(e){let{rt:t}=e.objectPoint,n=RS(e);e.loops.forEach((e,r)=>{let i=n[r];e.start.direction=L.top,e.start.x=t.x-i,e.start.y=t.y,e.end.direction=L.right,e.end.x=t.x,e.end.y=t.y+i})}function RS(e){let{width:t,height:n}=e.objectPoint,r=e.loops.length,i=Math.max(0,Math.min(t,n)-6),a=Math.min(20,i),o=r>1?Math.min(18,(i-a)/(r-1)):0;return e.loops.map((e,t)=>a+t*o)}function zS(e){let t=RS(e);return t.length?t[t.length-1]+8:0}function BS({id:e,start:t,end:n}){return{id:e,start:Ag(t),end:Ag(n)}}function VS(e){let t=/* @__PURE__ */ new Map;for(let{id:n,start:r,end:i}of e){let e=HS(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ 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 HS(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function US(e){let t=e%DS;return t<0?t+DS:t}function WS(e,t,n){return US(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-OS[e])}function GS(e,t,n){let r=[W.bottom,W.bottom],i=iy(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=L.bottom,n.end.direction=L.bottom;for(let a of Og)for(let o of Og){let s=a,c=o,l=iy(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=ES[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=ES[c])}return r}function KS(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===W.top||e===W.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=zS(t);if(c&&(e===W.top?s-=c:e===W.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=kS[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===W.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===W.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}function qS(e,t){xx(e),Sx(e),Zv(e,t),AS(e,`document`,{route:t.routes!==!1}),yx(e),bx(e)}const JS=e=>e.ui.zIndex,YS=(e,t)=>Math.max(1,...e.map(JS),...t.map(JS))+1,XS=e=>t=>e.y===t.y&&e.x===t.x;function ZS(e,t,n){let r=lb(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(XS(r));)r.x+=50,r.y+=50;return r}function QS(e,t){return e<t?ge(e,t+1):ge(t,e+1)}function $S(e){return ye(te(e??``))}function eC(e,t){return ve([...e,t])}function tC(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:QS(r,i).map(t=>e[t])}function nC(e,t,n,r){return ve([...t,...tC(e,n,r)])}const rC={[F.columnName]:!0,[F.columnDataType]:P.columnDataType,[F.columnNotNull]:P.columnNotNull,[F.columnUnique]:P.columnUnique,[F.columnAutoIncrement]:P.columnAutoIncrement,[F.columnDefault]:P.columnDefault,[F.columnComment]:P.columnComment},iC={[F.columnName]:H.columnName,[F.columnDataType]:H.columnDataType,[F.columnNotNull]:H.columnNotNull,[F.columnUnique]:H.columnUnique,[F.columnAutoIncrement]:H.columnAutoIncrement,[F.columnDefault]:H.columnDefault,[F.columnComment]:H.columnComment},aC=[H.tableName,H.tableComment];function oC({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=rC[t];return n===!0||U(e,n)}).map(e=>iC[e])}function sC({collections:e,editor:{focusTable:t}}){return t?!!N(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function cC(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=oC(e);return n.indexOf(t.focusType)===n.length-1}function lC(e){let{editor:{focusTable:t}}=e;return!t||oC(e).indexOf(t.focusType)===0}function uC({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===n.columnIds.length-1}function dC({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===0}function fC(e){let t=oC(e);return t[t.length-1]}function pC(e){return oC(e)[0]}function mC(e){let{editor:{focusTable:t}}=e;if(!t)return H.columnName;let n=oC(e),r=n.indexOf(t.focusType);return cC(e)?n[0]:n[r+1]}function hC(e){let{editor:{focusTable:t}}=e;if(!t)return H.columnName;let n=oC(e),r=n.indexOf(t.focusType);return lC(e)?n[n.length-1]:n[r-1]}function gC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r?.columnId)return null;let i=N(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 _C({settings:{show:e}}){return U(e,P.tableComment)?aC:[H.tableName]}function vC(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=_C(e);return n.indexOf(t.focusType)===n.length-1}function yC(e){let{editor:{focusTable:t}}=e;return!t||_C(e).indexOf(t.focusType)===0}const bC=V(aC);function xC(e){let{editor:{focusTable:t}}=e;if(!t)return H.tableName;let n=_C(e),r=n.indexOf(t.focusType);return vC(e)?n[0]:n[r+1]}function SC(e){let{editor:{focusTable:t}}=e;if(!t)return H.tableName;let n=_C(e),r=n.indexOf(t.focusType);return yC(e)?n[n.length-1]:n[r-1]}function CC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(bC(r.focusType)){if(sC(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=fC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(dC(e))r.focusType=H.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!==dg.Tab?eC(r.selectColumnIds,n):[n]}}}function wC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(bC(r.focusType)){if(sC(e)){let t=i.columnIds[0];r.focusType=pC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(uC(e))r.focusType=H.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!==dg.Tab?eC(r.selectColumnIds,n):[n]}}}function TC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(bC(r.focusType)){if(yC(e)){if(sC(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=fC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=SC(e)}else r.focusType=SC(e)}else if(lC(e)){if(dC(e))r.focusType=U(e.settings.show,P.tableComment)?H.tableComment:H.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=fC(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==dg.Tab?eC(r.selectColumnIds,a):[a]}}else r.focusType=hC(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function EC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(bC(r.focusType)){if(vC(e)){if(sC(e)){let t=i.columnIds[0];r.focusType=pC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=xC(e)}else r.focusType=xC(e)}else if(cC(e)){if(uC(e))r.focusType=H.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=pC(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==dg.Tab?eC(r.selectColumnIds,a):[a]}}else r.focusType=mC(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const DC=3e4,OC=9e4,kC=3e3,AC=k(B.changeHasHistory),jC=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},MC=k(B.selectAll),NC=({editor:e,doc:t,settings:n})=>{let r=t.tableIds.reduce((e,t)=>(e[t]=sg.table,e),{});e.selectedMap={...(U(n.show,P.hideMemo)?[]:t.memoIds).reduce((e,t)=>(e[t]=sg.memo,e),{}),...r}},PC=k(B.unselectAll),FC=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},IC=k(B.select),LC=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},RC=k(B.changeViewport),zC=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&HC(e)},BC=k(B.clear),VC=e=>{let{doc:t,collections:n}=km({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,C_(e.editor)};function HC(e){let{settings:t,editor:n}=e;if(!jb(n.viewport)){n.scrollPullPending=!0;return}let r=Mb(e);t.originX=We(r.x,4),t.originY=We(r.y,4),n.scrollPullPending=!1}const UC=k(B.loadJson),WC=(e,{payload:{value:t},version:n},r)=>{let{version:i,settings:a,doc:o,collections:s}=Th(t);p_(a.canvasType)||(a.canvasType=zh.ERD),Vb(e),mx(e,a,n??r.clock.getVersion()),e.version=i,e.doc=o,e.collections=s,Vb(e),C_(e.editor),gg(e),qS(e,r),HC(e)},GC=k(B.initialClear),KC=e=>{let{doc:t,collections:n}=km({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,C_(e.editor)},qC=k(B.initialLoadJson),JC=(e,{payload:{value:t}},n)=>{let{version:r,settings:i,doc:a,collections:o}=Th(t);p_(i.canvasType)||(i.canvasType=zh.ERD),Vb(e),Object.assign(e.settings,i),e.version=r,e.doc=a,e.collections=o,e.lww={},Vb(e),C_(e.editor),gg(e),qS(e,n),HC(e)},YC=k(B.focusTable),XC=({editor:e,collections:t},{payload:n})=>{let r=N(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:H.tableName,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},ZC=k(B.focusColumn),QC=({editor:e,collections:t},{payload:n})=>{let r=N(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?nC(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?tC(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?eC(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}}},$C=k(B.focusTableEnd),ew=({editor:e})=>{e.focusTable=null},tw=k(B.focusMoveTable),nw=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case dg.ArrowUp:CC(e,t);break;case dg.ArrowDown:wC(e,t);break;case dg.ArrowLeft:TC(e,t);break;case dg.ArrowRight:EC(e,t);break;case dg.Tab:t.shiftKey?TC(e,t):EC(e,t)}},rw=k(B.editTable),iw=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},aw=k(B.editTableEnd),ow=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},sw=k(B.editMemo),cw=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},lw=k(B.editMemoEnd),uw=({editor:e})=>{e.editMemoId=null},dw=k(B.editTableGroup),fw=({editor:e},{payload:{id:t}})=>{e.editTableGroupId=t},pw=k(B.editTableGroupEnd),mw=({editor:e})=>{e.editTableGroupId=null},hw=k(B.scrollMemo),gw=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},_w=k(B.selectAllColumn),vw=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=N(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},yw=k(B.drawStartRelationship),bw=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}},e.drawTableGroup=!1},xw=k(B.drawStartAddRelationship),Sw=({editor:{drawRelationship:e},collections:t},{payload:{tableId:n}})=>{if(!e)return;let r=N(t).collection(`tableEntities`).selectById(n);r&&(e.start={tableId:n,x:r.ui.x,y:r.ui.y})},Cw=k(B.drawEndRelationship),ww=({editor:e})=>{e.drawRelationship=null},Tw=k(B.drawRelationship),Ew=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=lb(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},Dw=k(B.hoverColumnMap),Ow=({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},kw=k(B.hoverRelationshipMap),Aw=({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},jw=k(B.changeOpenMap),Mw=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},Nw=k(B.changeHandTool),Pw=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null,e.drawTableGroup=!1)},Fw=k(B.changeDrawTableGroup),Iw=({editor:e},{payload:{value:t}})=>{e.drawTableGroup=t,t&&(e.handTool=!1,e.drawRelationship=null)},Lw=k(B.changeZenMode),Rw=({editor:e},{payload:{value:t}})=>{e.zenMode=t},zw=k(B.dragstartColumn),Bw=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Vw=k(B.dragendColumn),Hw=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},Uw=k(B.sharedMouseTracker),Ww=({editor:e},{payload:t,tags:n,meta:r})=>{if(C(n)||!U(n,J_.shared)||!T(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!T(r.nickname)||Ue(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)},DC)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},DC)}},Gw=k(B.sharedFocusTracker),Kw=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(C(n)||!U(n,J_.shared)||!T(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)},OC)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},OC)}},qw=k(B.sharedSelectionTracker),Jw=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(C(n)||!U(n,J_.shared)||!T(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)},OC)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},OC)}},Yw=k(B.sharedDragSelectTracker),Xw=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(C(n)||!U(n,J_.shared)||!T(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)},kC)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},kC)}},Zw=k(B.dragSelectRect),Qw=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},$w=k(B.getLWW),eT=pe,tT=k(B.mergeLWW),nT=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Ah(e,r,t,n,pe),jh(e,i,t,n,pe),Object.entries(a).forEach(([r,i])=>{Mh(e,i,t,n,r,pe)})})},rT={[B.changeHasHistory]:jC,[B.selectAll]:NC,[B.unselectAll]:FC,[B.select]:LC,[B.changeViewport]:zC,[B.clear]:VC,[B.loadJson]:WC,[B.initialClear]:KC,[B.initialLoadJson]:JC,[B.focusTable]:XC,[B.focusColumn]:QC,[B.focusTableEnd]:ew,[B.focusMoveTable]:nw,[B.editTable]:iw,[B.editTableEnd]:ow,[B.editMemo]:cw,[B.editMemoEnd]:uw,[B.editTableGroup]:fw,[B.editTableGroupEnd]:mw,[B.scrollMemo]:gw,[B.selectAllColumn]:vw,[B.drawStartRelationship]:bw,[B.drawStartAddRelationship]:Sw,[B.drawEndRelationship]:ww,[B.drawRelationship]:Ew,[B.hoverColumnMap]:Ow,[B.hoverRelationshipMap]:Aw,[B.changeOpenMap]:Mw,[B.changeHandTool]:Pw,[B.changeDrawTableGroup]:Iw,[B.changeZenMode]:Rw,[B.dragstartColumn]:Bw,[B.dragendColumn]:Hw,[B.sharedMouseTracker]:Ww,[B.sharedFocusTracker]:Kw,[B.sharedSelectionTracker]:Jw,[B.sharedDragSelectTracker]:Xw,[B.dragSelectRect]:Qw,[B.getLWW]:eT,[B.mergeLWW]:nT,...K_},iT={changeHasHistoryAction:AC,selectAllAction:MC,unselectAllAction:PC,selectAction:IC,changeViewportAction:RC,clearAction:BC,loadJsonAction:UC,initialClearAction:GC,initialLoadJsonAction:qC,focusTableAction:YC,focusColumnAction:ZC,focusTableEndAction:$C,focusMoveTableAction:tw,editTableAction:rw,editTableEndAction:aw,editMemoAction:sw,editMemoEndAction:lw,editTableGroupAction:dw,editTableGroupEndAction:pw,scrollMemoAction:hw,selectAllColumnAction:_w,drawStartRelationshipAction:yw,drawStartAddRelationshipAction:xw,drawEndRelationshipAction:Cw,drawRelationshipAction:Tw,hoverColumnMapAction:Dw,hoverRelationshipMapAction:kw,changeOpenMapAction:jw,changeHandToolAction:Nw,changeDrawTableGroupAction:Fw,changeZenModeAction:Lw,dragstartColumnAction:zw,dragendColumnAction:Vw,sharedMouseTrackerAction:Uw,sharedFocusTrackerAction:Gw,sharedSelectionTrackerAction:qw,sharedDragSelectTrackerAction:Yw,dragSelectRectAction:Zw,getLWWAction:$w,mergeLWWAction:tT,...q_},aT=(e,t,n)=>{e.push(BC(),UC({value:Eh(n)}))},oT=(e,t,n)=>{e.push(UC({value:Eh(n)}))},sT={[B.loadJson]:aT,[B.clear]:oT},cT={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},lT=e=>typeof e==`object`&&!!e,uT=(e,t)=>lT(e)&&t in e,dT=(e,t)=>uT(e,t)&&!Object.prototype.propertyIsEnumerable.call(e,t),fT=e=>lT(e)?mT(Array.isArray(e)?[]:{},e):e;function pT(e,t){let n={};if(lT(e))for(let t of Object.keys(e))n[t]=fT(e[t]);for(let r of Object.keys(t))dT(e,r)||(n[r]=uT(e,r)&&lT(t[r])?mT(e[r],t[r]):fT(t[r]));return n}function mT(e,t){let n=Array.isArray(t);return n===Array.isArray(e)?n?e.concat(t).map(fT):pT(e,t):fT(t)}function hT(e,t){return mT(e,t)}const gT=e=>hT({id:vh(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1},e??{}),_T=k(cT.addIndex),vT=({doc:e,collections:t,lww:n},{payload:{id:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`indexEntities`).addOne(gT({id:r,tableId:i})).addOperator(n,s,r,()=>{V(e.indexIds)(r)||(e.indexIds.push(r),Tv())})},yT=k(cT.removeIndex),bT=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`indexEntities`).removeOperator(n,o,r,()=>{let t=e.indexIds.indexOf(r);t!==-1&&(e.indexIds.splice(t,1),Tv())})},xT=k(cT.changeIndexName),ST=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>gT({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},CT=k(cT.changeIndexUnique),wT=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>gT({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},TT={[cT.addIndex]:vT,[cT.removeIndex]:bT,[cT.changeIndexName]:ST,[cT.changeIndexUnique]:wT},ET={addIndexAction:_T,removeIndexAction:yT,changeIndexNameAction:xT,changeIndexUniqueAction:CT},DT=(e,{payload:{id:t}})=>{e.push(yT({id:t}))},OT=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`indexEntities`).selectById(t);r&&e.push(_T({id:t,tableId:r.tableId}))},kT=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`indexEntities`).selectById(t);i&&e.push(xT({id:t,tableId:n,value:i.name}))},AT=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`indexEntities`).selectById(t)&&e.push(CT({id:t,tableId:n,value:!r}))},jT={[cT.addIndex]:DT,[cT.removeIndex]:OT,[cT.changeIndexName]:kT,[cT.changeIndexUnique]:AT},MT={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},NT=e=>hT({id:vh(),indexId:``,columnId:``,orderType:Xh.ASC},e??{});function PT(e,t,n){if(V(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 FT=k(MT.addIndexColumn),IT=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i,columnId:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexEntities`),u=l.getOrCreate(r,e=>gT({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).addOne(NT({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{V(u.indexColumnIds)(n)||l.updateOne(r,e=>{PT(e.indexColumnIds,e.seqIndexColumnIds,n)})})},LT=k(MT.removeIndexColumn),RT=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`),l=c.getOrCreate(r,e=>gT({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).removeOperator(t,s,n,()=>{let e=l.indexColumnIds.indexOf(n);e!==-1&&c.updateOne(r,t=>{t.indexColumnIds.splice(e,1)})})},zT=k(MT.moveIndexColumn),BT=({collections:e},{payload:{id:t,indexId:n,tableId:r,targetId:i}})=>{if(t===i)return;let a=N(e).collection(`indexEntities`),o=a.getOrCreate(n,e=>gT({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))})},VT=k(MT.changeIndexColumnOrderType),HT=({collections:e,lww:t},{payload:{id:n,indexId:r,columnId:i,value:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexColumnEntities`);l.getOrCreate(n,e=>NT({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},UT={[MT.addIndexColumn]:IT,[MT.removeIndexColumn]:RT,[MT.moveIndexColumn]:BT,[MT.changeIndexColumnOrderType]:HT},WT={addIndexColumnAction:FT,removeIndexColumnAction:LT,moveIndexColumnAction:zT,changeIndexColumnOrderTypeAction:VT},GT=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(LT({id:t,indexId:n,tableId:r}))},KT=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(FT({id:t,indexId:n,tableId:r,columnId:a.columnId}))},qT=(e,{payload:{id:t,indexId:n,tableId:r,targetId:i}},{collections:a})=>{let o=N(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(zT({indexId:n,tableId:r,id:t,targetId:u}))},JT=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(VT({id:t,indexId:n,columnId:r,value:a.orderType}))},YT={[MT.addIndexColumn]:GT,[MT.removeIndexColumn]:KT,[MT.moveIndexColumn]:qT,[MT.changeIndexColumnOrderType]:JT},XT={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},ZT=e=>hT({id:vh(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}},e??{}),QT=k(XT.addMemo),$T=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`memoEntities`).addOne(ZT({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.memoIds)(r)||e.memoIds.push(r)})},eE=k(XT.moveMemo),tE=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>ZT({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},nE=k(XT.moveToMemo),rE=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`memoEntities`);i.getOrCreate(t,e=>ZT({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},iE=k(XT.removeMemo),aE=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`memoEntities`).removeOperator(n,o,r,()=>{let t=e.memoIds.indexOf(r);t!==-1&&e.memoIds.splice(t,1)})},oE=k(XT.changeMemoValue),sE=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>ZT({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},cE=k(XT.changeMemoColor),lE=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>ZT({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},uE=k(XT.resizeMemo),dE=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`memoEntities`);o.getOrCreate(t,e=>ZT({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},fE=k(XT.changeZIndex),pE=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`memoEntities`);r.getOrCreate(t,e=>ZT({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},mE={[XT.addMemo]:$T,[XT.moveMemo]:tE,[XT.moveToMemo]:rE,[XT.removeMemo]:aE,[XT.changeMemoValue]:sE,[XT.changeMemoColor]:lE,[XT.resizeMemo]:dE,[XT.changeZIndex]:pE},hE={addMemoAction:QT,moveMemoAction:eE,moveToMemoAction:nE,removeMemoAction:iE,changeMemoValueAction:oE,changeMemoColorAction:cE,resizeMemoAction:uE,changeZIndexAction:fE},gE=(e,{payload:{id:t}})=>{e.push(iE({id:t}))},_E=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(QT({id:r.id,ui:he(r.ui,[`x`,`y`,`zIndex`])}))},vE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(oE({id:t,value:r.value}))},yE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(nE({id:t,x:r.ui.x,y:r.ui.y}))},bE={[XT.addMemo]:gE,[XT.removeMemo]:_E,[XT.changeMemoValue]:vE,[XT.moveToMemo]:yE},xE=(e,t,n)=>{let r=n.filter(e=>e.type===eE.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(eE({ids:r,movementX:-1*i,movementY:-1*a})),t.push(eE({ids:r,movementX:i,movementY:a})))}},SE=(e,t,n)=>{let r=n.filter(({type:e})=>e===cE.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=ue(r);e.push(cE({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(cE({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},CE=(e,t,n)=>{let r=n.filter(e=>e.type===uE.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=x(n),i=ue(n);e.push(r),t.push(i)}},wE={[XT.moveMemo]:xE,[XT.changeMemoColor]:SE,[XT.resizeMemo]:CE},TE={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`,changeRelationshipOnDelete:`relationship.changeOnDelete`,changeRelationshipOnUpdate:`relationship.changeOnUpdate`,changeRelationshipColumns:`relationship.changeColumns`},EE=e=>hT({id:vh(),identification:!1,relationshipType:qh.ZeroN,startRelationshipType:Jh.dash,onDelete:Yh.none,onUpdate:Yh.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom}},e??{}),DE=k(TE.addRelationship),OE=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,onDelete:a,onUpdate:o,start:s,end:c},version:l},{clock:u})=>{let d=l??u.getVersion();N(t).collection(`relationshipEntities`).addOne(EE({id:r,relationshipType:i,onDelete:a??Yh.none,onUpdate:o??Yh.none,start:{tableId:s.tableId,columnIds:s.columnIds},end:{tableId:c.tableId,columnIds:c.columnIds}})).addOperator(n,d,r,()=>{V(e.relationshipIds)(r)||e.relationshipIds.push(r)})},kE=k(TE.removeRelationship),AE=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`relationshipEntities`).removeOperator(n,o,r,()=>{let t=e.relationshipIds.indexOf(r);t!==-1&&e.relationshipIds.splice(t,1)})},jE=k(TE.changeRelationshipType),ME=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`relationshipType`,()=>{s.updateOne(n,e=>{e.relationshipType=r})})},NE=k(TE.changeRelationshipOnDelete),PE=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`onDelete`,()=>{s.updateOne(n,e=>{e.onDelete=r})})},FE=k(TE.changeRelationshipOnUpdate),IE=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`onUpdate`,()=>{s.updateOne(n,e=>{e.onUpdate=r})})},LE=k(TE.changeRelationshipColumns),RE=`columns`,zE=(e,t)=>JSON.stringify([e,t]),BE=(e,{start:t,end:n})=>e.start.tableId!==t.tableId||e.end.tableId!==n.tableId,VE=({collections:e,lww:t},{payload:{id:n,start:r,end:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`relationshipEntities`),l=c.selectById(n);l&&BE(l,{start:r,end:i})||l&&(t[n]?.[3][RE]??-1)===s&&zE(r.columnIds,i.columnIds)<=zE(l.start.columnIds,l.end.columnIds)||c.replaceOperator(t,s,n,RE,()=>{c.updateOne(n,e=>{e.start.columnIds=[...r.columnIds],e.end.columnIds=[...i.columnIds]})})},HE={[TE.addRelationship]:OE,[TE.removeRelationship]:AE,[TE.changeRelationshipType]:ME,[TE.changeRelationshipOnDelete]:PE,[TE.changeRelationshipOnUpdate]:IE,[TE.changeRelationshipColumns]:VE},UE={addRelationshipAction:DE,removeRelationshipAction:kE,changeRelationshipTypeAction:jE,changeRelationshipOnDeleteAction:NE,changeRelationshipOnUpdateAction:FE,changeRelationshipColumnsAction:LE},WE=(e,{payload:{id:t}})=>{e.push(kE({id:t}))},GE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(DE({id:r.id,relationshipType:r.relationshipType,onDelete:r.onDelete,onUpdate:r.onUpdate,start:he(r.start,[`tableId`,`columnIds`]),end:he(r.end,[`tableId`,`columnIds`])}))},KE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(jE({id:t,value:r.relationshipType}))},qE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(NE({id:t,value:r.onDelete}))},JE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(FE({id:t,value:r.onUpdate}))},YE=(e,{payload:{id:t,start:n,end:r}},{collections:i})=>{let a=N(i).collection(`relationshipEntities`).selectById(t);a&&!BE(a,{start:n,end:r})&&e.push(LE({id:t,start:{tableId:a.start.tableId,columnIds:[...a.start.columnIds]},end:{tableId:a.end.tableId,columnIds:[...a.end.columnIds]}}))},XE={[TE.addRelationship]:WE,[TE.removeRelationship]:GE,[TE.changeRelationshipType]:KE,[TE.changeRelationshipOnDelete]:qE,[TE.changeRelationshipOnUpdate]:JE,[TE.changeRelationshipColumns]:YE},ZE=(e,t,{settings:n})=>{e.push(Nb({originX:n.originX,originY:n.originY}))},QE=(e,{payload:{show:t,value:n}})=>{e.push(Lb({show:t,value:!n}))},$E=(e,t,{settings:n})=>{e.push(Db({value:n.zoomLevel}))},eD=(e,{payload:{position:t}},{settings:n})=>{e.push(dx({position:t,value:n.ddlScripts[t]}))},tD={[K.scrollTo]:ZE,[K.changeShow]:QE,[K.changeZoomLevel]:$E,[K.changeDDLScript]:eD},nD=(e,t,n)=>{let r=n.filter(e=>e.type===Fb.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(Fb({movementX:-1*i,movementY:-1*a})),t.push(Fb({movementX:i,movementY:a})))},rD=(e,t,n)=>{let r=n.filter(e=>e.type===kb.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(kb({value:-1*i})),t.push(kb({value:i}))},iD={[K.streamScrollTo]:nD,[K.streamZoomLevel]:rD},aD={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeTableGroup:`table.changeGroup`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`},oD=e=>hT({id:vh(),name:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``}},e??{}),sD=k(aD.addTable),cD=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`tableEntities`).addOne(oD({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.tableIds)(r)||e.tableIds.push(r)})},lD=k(aD.moveTable),uD=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>oD({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},dD=k(aD.moveToTable),fD=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableEntities`);i.getOrCreate(t,e=>oD({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},pD=k(aD.removeTable),mD=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`tableEntities`).removeOperator(n,o,r,()=>{let t=e.tableIds.indexOf(r);t!==-1&&e.tableIds.splice(t,1)})},hD=k(aD.changeTableName),gD=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>oD({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=G(a(r))})})},_D=k(aD.changeTableComment),vD=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>oD({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=G(a(r))})})},yD=k(aD.changeTableColor),bD=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`);s.getOrCreate(n,e=>oD({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},xD=k(aD.changeTableGroup),SD=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`);s.getOrCreate(n,e=>oD({id:e})),s.replaceOperator(t,o,n,`groupId`,()=>{s.updateOne(n,e=>{e.groupId=r})})},CD=k(aD.changeZIndex),wD=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableEntities`);r.getOrCreate(t,e=>oD({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},TD=k(aD.sortTable);function ED(e,t,n,r){let i=t,a=t,o=r;e.forEach(e=>{let r=e.width+80,s=e.height+80;i+r>n&&(a+=o,o=0,i=t),o<s&&(o=s),e.place(i,a),i+=r})}const DD=(e,t)=>({width:Rv(t,e).width,height:Jv(t),place:(e,n)=>{t.ui.x=e,t.ui.y=n}}),OD=({doc:e})=>o_(e.tableIds.length*100);function kD(e,t,n){let r=[];ED(n.map((e,t)=>({...e,place:(n,i)=>{r[t]={x:n,y:i,width:e.width,height:e.height}}})),0,OD(e)-50-48,0);let i=Ry(r.reduce(ay));return{width:i.width,height:i.height,place:(a,o)=>{n.forEach((e,t)=>e.place(a+r[t].x-i.x,o+r[t].y-i.y)),N(e.collections).collection(`tableGroupEntities`).updateOne(t,e=>{e.ui.x=a,e.ui.y=o,e.ui.width=i.width,e.ui.height=i.height})}}}function AD(e,t){let n=/* @__PURE__ */ new Map,r=[];return t.forEach(t=>{let i=DD(e,t),a=Fy(e,t),o=a?n.get(a):void 0;a?o?o.push(i):(n.set(a,[i]),r.push(a)):r.push(i)}),r.map(t=>typeof t==`string`?kD(e,t,n.get(t)):t)}const jD=e=>{let{doc:t,collections:n}=e,r=N(n).collection(`tableEntities`).selectByIds(t.tableIds);r.sort((e,t)=>e.columnIds.length-t.columnIds.length),ED(AD(e,r),50,OD(e),50)},MD={[aD.addTable]:cD,[aD.moveTable]:uD,[aD.moveToTable]:fD,[aD.removeTable]:mD,[aD.changeTableName]:gD,[aD.changeTableComment]:vD,[aD.changeTableColor]:bD,[aD.changeTableGroup]:SD,[aD.changeZIndex]:wD,[aD.sortTable]:jD},ND={addTableAction:sD,moveTableAction:lD,moveToTableAction:dD,removeTableAction:pD,changeTableNameAction:hD,changeTableCommentAction:_D,changeTableColorAction:yD,changeTableGroupAction:xD,changeZIndexAction:CD,sortTableAction:TD},PD=(e,{payload:{id:t}})=>{e.push(pD({id:t}))},FD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(sD({id:r.id,ui:he(r.ui,[`x`,`y`,`zIndex`])}))},ID=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(hD({id:t,value:r.name}))},LD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(_D({id:t,value:r.comment}))},RD=(e,{payload:{id:t,prevValue:n}},{collections:r})=>{let i=N(r).collection(`tableEntities`).selectById(t);i&&e.push(xD({id:t,value:T(n)?n:i.groupId}))},zD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(dD({id:t,x:r.ui.x,y:r.ui.y}))},BD=()=>{},VD={[aD.addTable]:PD,[aD.removeTable]:FD,[aD.changeTableName]:ID,[aD.changeTableComment]:LD,[aD.changeTableGroup]:RD,[aD.moveToTable]:zD,[aD.sortTable]:BD},HD=(e,t,n)=>{let r=n.filter(e=>e.type===lD.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(lD({ids:r,movementX:-1*i,movementY:-1*a})),t.push(lD({ids:r,movementX:i,movementY:a})))}},UD=(e,t,n)=>{let r=n.filter(({type:e})=>e===yD.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=ue(r);e.push(yD({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(yD({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},WD={[aD.moveTable]:HD,[aD.changeTableColor]:UD},q={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`},GD=e=>hT({id:vh(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}},e??{}),KD=k(q.addColumn),qD=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>oD({id:e}));N(e).collection(`tableColumnEntities`).addOne(GD({id:n,tableId:r})).addOperator(t,o,n,()=>{V(c.columnIds)(n)||s.updateOne(r,e=>{PT(e.columnIds,e.seqColumnIds,n)})})},JD=k(q.removeColumn),YD=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>oD({id:e}));N(e).collection(`tableColumnEntities`).removeOperator(t,o,n,()=>{let e=c.columnIds.indexOf(n);e!==-1&&s.updateOne(r,t=>{t.columnIds.splice(e,1)})})},XD=k(q.changeColumnName),ZD=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>GD({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=G(a(r))})})},QD=k(q.changeColumnComment),$D=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>GD({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=G(a(r))})})},eO=k(q.changeColumnDataType),tO=`dataType`,nO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`),l=c.getOrCreate(n,e=>GD({id:e}));(t[n]?.[3][tO]??-1)===s&&r<=l.dataType||c.replaceOperator(t,s,n,tO,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=G(a(r))})})},rO=k(q.changeColumnDefault),iO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>GD({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=G(a(r))})})},aO=k(q.changeColumnAutoIncrement),oO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>GD({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.autoIncrement:e.options&~R.autoIncrement})})},sO=k(q.changeColumnPrimaryKey),cO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>GD({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.primaryKey:e.options&~R.primaryKey,e.ui.keys=r?e.ui.keys|z.primaryKey:e.ui.keys&~z.primaryKey})})},lO=k(q.changeColumnUnique),uO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>GD({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.unique:e.options&~R.unique})})},dO=k(q.changeColumnNotNull),fO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>GD({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.notNull:e.options&~R.notNull})})},pO=k(q.moveColumn),mO=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=N(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>oD({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))})},hO={[q.addColumn]:qD,[q.removeColumn]:YD,[q.changeColumnName]:ZD,[q.changeColumnComment]:$D,[q.changeColumnDataType]:nO,[q.changeColumnDefault]:iO,[q.changeColumnAutoIncrement]:oO,[q.changeColumnPrimaryKey]:cO,[q.changeColumnUnique]:uO,[q.changeColumnNotNull]:fO,[q.moveColumn]:mO},gO={addColumnAction:KD,removeColumnAction:JD,changeColumnNameAction:XD,changeColumnCommentAction:QD,changeColumnDataTypeAction:eO,changeColumnDefaultAction:rO,changeColumnAutoIncrementAction:aO,changeColumnPrimaryKeyAction:sO,changeColumnUniqueAction:lO,changeColumnNotNullAction:dO,moveColumnAction:pO},_O=(e,{payload:{id:t,tableId:n}})=>{e.push(JD({id:t,tableId:n}))},vO=(e,{payload:{id:t,tableId:n}})=>{e.push(KD({id:t,tableId:n}))},yO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(XD({id:t,tableId:n,value:i.name}))},bO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(eO({id:t,tableId:n,value:i.dataType}))},xO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(rO({id:t,tableId:n,value:i.default}))},SO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(QD({id:t,tableId:n,value:i.comment}))},CO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(aO({id:t,tableId:n,value:!r}))},wO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(dO({id:t,tableId:n,value:!r}))},TO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(sO({id:t,tableId:n,value:!r}))},EO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(lO({id:t,tableId:n,value:!r}))},DO=(e,{payload:{id:t,tableId:n,targetId:r}},{collections:i})=>{let a=N(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(pO({id:t,tableId:n,targetId:l}))},OO={[q.addColumn]:_O,[q.removeColumn]:vO,[q.changeColumnName]:yO,[q.changeColumnDataType]:bO,[q.changeColumnDefault]:xO,[q.changeColumnComment]:SO,[q.changeColumnAutoIncrement]:CO,[q.changeColumnNotNull]:wO,[q.changeColumnPrimaryKey]:TO,[q.changeColumnUnique]:EO,[q.moveColumn]:DO},kO={addTableGroup:`tableGroup.add`,moveTableGroup:`tableGroup.move`,moveToTableGroup:`tableGroup.moveTo`,removeTableGroup:`tableGroup.remove`,resizeTableGroup:`tableGroup.resize`,changeTableGroupName:`tableGroup.changeName`,changeTableGroupColor:`tableGroup.changeColor`,changeTableGroupZIndex:`tableGroup.changeZIndex`},AO=e=>hT({id:vh(),name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}},e??{}),jO=k(kO.addTableGroup),MO=({doc:e,collections:t,lww:n},{payload:{id:r,color:i,ui:a},version:o},{clock:s})=>{let c=o??s.getVersion();N(t).collection(`tableGroupEntities`).addOne(AO({id:r,ui:a,...T(i)?{color:i}:{}})).addOperator(n,c,r,()=>{V(e.tableGroupIds)(r)||e.tableGroupIds.push(r)})},NO=k(kO.moveTableGroup),PO=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableGroupEntities`);for(let e of t)i.getOrCreate(e,e=>AO({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},FO=k(kO.moveToTableGroup),IO=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableGroupEntities`);i.getOrCreate(t,e=>AO({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},LO=k(kO.removeTableGroup),RO=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`tableGroupEntities`).removeOperator(n,o,r,()=>{let t=e.tableGroupIds.indexOf(r);t!==-1&&e.tableGroupIds.splice(t,1)})},zO=k(kO.resizeTableGroup),BO=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`tableGroupEntities`);o.getOrCreate(t,e=>AO({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},VO=k(kO.changeTableGroupName),HO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>AO({id:e})),s.replaceOperator(t,o,n,`name`,()=>{s.updateOne(n,e=>{e.name=r})})},UO=k(kO.changeTableGroupColor),WO=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>AO({id:e})),s.replaceOperator(t,o,n,`color`,()=>{s.updateOne(n,e=>{e.color=r})})},GO=k(kO.changeTableGroupZIndex),KO=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableGroupEntities`);r.getOrCreate(t,e=>AO({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},qO={[kO.addTableGroup]:MO,[kO.moveTableGroup]:PO,[kO.moveToTableGroup]:IO,[kO.removeTableGroup]:RO,[kO.resizeTableGroup]:BO,[kO.changeTableGroupName]:HO,[kO.changeTableGroupColor]:WO,[kO.changeTableGroupZIndex]:KO},JO={addTableGroupAction:jO,moveTableGroupAction:NO,moveToTableGroupAction:FO,removeTableGroupAction:LO,resizeTableGroupAction:zO,changeTableGroupNameAction:VO,changeTableGroupColorAction:UO,changeTableGroupZIndexAction:GO},YO=(e,{payload:{id:t}})=>{e.push(LO({id:t}))},XO=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(jO({id:r.id,color:r.color,ui:{...r.ui}}))},ZO=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(VO({id:t,value:r.name}))},QO=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(FO({id:t,x:r.ui.x,y:r.ui.y}))},$O=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);if(!r)return;let{x:i,y:a,width:o,height:s}=r.ui;e.push(zO({id:t,x:i,y:a,width:o,height:s}))},ek={[kO.addTableGroup]:YO,[kO.removeTableGroup]:XO,[kO.changeTableGroupName]:ZO,[kO.moveToTableGroup]:QO,[kO.resizeTableGroup]:$O},tk=(e,t,n)=>{let r=n.filter(e=>e.type===NO.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(NO({ids:r,movementX:-1*i,movementY:-1*a})),t.push(NO({ids:r,movementX:i,movementY:a})))}},nk=(e,t,n)=>{let r=n.filter(({type:e})=>e===UO.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=ue(r);e.push(UO({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(UO({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},rk={[kO.moveTableGroup]:tk,[kO.changeTableGroupColor]:nk};function ik(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const ak={...VD,...OO,...XE,...bE,...tD,...sT,...jT,...YT,...ek},ok={...WD,...wE,...iD,...rk};function sk(e,t,n){let r=[],i=[];for(let t of n){let n=ak[t.type];n&&(n(r,t,e.state),i.push(re(t)))}for(let e of Object.keys(ok))ok[e](r,i,n);r.length&&i.length&&t.push({undo:(e,t)=>{e(r.map(ck(t())))},redo:(e,t)=>{e(i.map(ck(t())))}})}function ck(e){return t=>({...re(t),version:e})}const lk=(e,t)=>n=>{ik(sk,e,t,n)},uk=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=ZS(e,i,a),s=vh();yield fz(),yield IC({[s]:sg.memo}),yield QT({id:s,ui:{...o,zIndex:YS(i,a)}})},dk=e=>function*({doc:{memoIds:t},editor:{selectedMap:n}}){if(e){yield iE({id:e});return}let r=V(t),i=Object.entries(n).filter(([e,t])=>t===sg.memo&&r(e));for(let[e]of i)yield iE({id:e})},fk=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i}){let a=N(i).collection(`tableEntities`).selectByIds(n),o=N(i).collection(`memoEntities`).selectByIds(r);t||(yield fz()),yield IC({[e]:sg.memo}),yield fE({id:e,zIndex:YS(a,o)})},pk={addMemoAction$:uk,removeMemoAction$:dk,selectMemoAction$:fk},mk=`serial`,hk=/* @__PURE__ */ new Map([[`smallserial`,`smallint`],[`serial2`,`smallint`],[`serial4`,`integer`],[`bigserial`,`bigint`],[`serial8`,`bigint`]]),gk=/* @__PURE__ */ new Map([[I.PostgreSQL,`integer`],[I.MySQL,`bigint unsigned`],[I.MariaDB,`bigint unsigned`]]),_k=e=>e.trim().toLowerCase();function vk(e){let t=_k(e);return t===mk||hk.has(t)}function yk(e,t){let n=_k(e),r=n===mk?gk.get(t):hk.get(n);if(!r)return e;let i=e.trim();return i===i.toUpperCase()?r.toUpperCase():r}const bk=(e,t)=>N(e).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>U(e,R.primaryKey)),xk=e=>e.trim().toLowerCase(),Sk=/^[\p{L}\p{M}\p{N}]+$/u,Ck=/\p{Ll}\p{Lu}|\p{Lu}\p{Lu}\p{Ll}|[\p{Lo}\p{Lm}][\p{Lu}\p{Ll}]|[\p{Lu}\p{Ll}][\p{Lo}\p{Lm}]/u,wk=/[\p{M}\p{N}]/gu,Tk=e=>Sk.test(e)&&!Ck.test(e.replace(wk,``));function Ek(e,t){let n=e.trim(),r=t.trim();return!n||!Tk(r)||xk(r)===xk(n)?r:`${n}_${r}`}function Dk(e,t){let n=e;for(let r=2;t.has(xk(n));r++)n=`${e}_${r}`;return t.add(xk(n)),n}function Ok(e,t,n){let r=new Set(n.map(xk).filter(Boolean)),i=t.map(t=>Ek(e,t)),a=e=>i[e]===t[e].trim(),o=i.map((e,t)=>t),s=[...o.filter(a),...o.filter(e=>!a(e))].filter(e=>{let t=xk(i[e]),n=r.has(t);return t&&r.add(t),n}),c=[...i];for(let e of s)c[e]=Dk(i[e],r);return c}const kk=(e,t,n,{startTableName:r,endColumnNames:i,database:a})=>{let o=Ok(r,e.map(({name:e})=>e),i);return e.flatMap((e,r)=>{let i={id:n[r],tableId:t};return[KD(i),dO({...i,value:!0}),XD({...i,value:o[r]}),eO({...i,value:yk(e.dataType,a)}),rO({...i,value:e.default}),QD({...i,value:e.comment})]})};V(Object.values({tables:`tables`,columns:`columns`}));const Ak=({x:e,y:t})=>`${e},${t}`,jk=(e,t)=>e<t?-1:+(e>t),Mk=({kind:e})=>+(e===`memo`),Nk=e=>e.ui.zIndex??0;function Pk({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=/* @__PURE__ */ new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>Ak(e))),l=/* @__PURE__ */ 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=ZS(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)=>jk(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(Ak(t));)t.x+=50,t.y+=50;c.add(Ak(t))}}}let d=YS(i,a);return[...e].sort((e,t)=>Nk(e)-Nk(t)||Mk(e)-Mk(t)||jk(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}V(Object.values({columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`}));function Fk(e,t){return t.filter(t=>{switch(t){case F.columnName:return!0;case F.columnDataType:return U(e,P.columnDataType);case F.columnDefault:return U(e,P.columnDefault);case F.columnComment:return U(e,P.columnComment);case F.columnAutoIncrement:return U(e,P.columnAutoIncrement);case F.columnUnique:return U(e,P.columnUnique);case F.columnNotNull:return U(e,P.columnNotNull);default:return!1}})}const Ik=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=ZS(e,i,a),s=vh();yield PC(),yield IC({[s]:sg.table}),yield sD({id:s,ui:{...o,zIndex:YS(i,a)}}),yield YC({tableId:s})},Lk=e=>function*({doc:{tableIds:t,relationshipIds:n,indexIds:r},editor:{selectedMap:i},collections:a}){let o=N(a).collection(`relationshipEntities`).selectByIds(n),s=N(a).collection(`indexEntities`).selectByIds(r);if(e){let t=o.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=s.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield yT({id:e});for(let{id:e}of t)yield kE({id:e});yield pD({id:e});return}let c=V(t),l=Object.entries(i).filter(([e,t])=>t===sg.table&&c(e)).map(([e])=>e),u=V(l),d=o.filter(({start:e,end:t})=>u(e.tableId)||u(t.tableId)),f=s.filter(({tableId:e})=>u(e));for(let{id:e}of f)yield yT({id:e});for(let{id:e}of d)yield kE({id:e});for(let e of l)yield pD({id:e})},Rk=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a},settings:{database:o}}){let s=N(i).collection(`tableEntities`),c=s.selectByIds(n),l=N(i).collection(`memoEntities`).selectByIds(r);if(t||(yield PC()),yield IC({[e]:sg.table}),yield CD({id:e,zIndex:YS(c,l)}),yield YC({tableId:e}),a){if(a.start){let t=s.selectById(a.start.tableId),n=s.selectById(e);if(!t||!n){yield Cw();return}let r=N(i).collection(`tableColumnEntities`),c=bk(i,t);if(!c.length){yield Cw();return}let l=c.map(()=>vh());yield kk(c,n.id,l,{startTableName:t.name,endColumnNames:r.selectByIds(n.columnIds).map(({name:e})=>e),database:o}),yield DE({id:vh(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:c.map(({id:e})=>e)},end:{tableId:n.id,columnIds:l}}),yield Cw()}else yield hz(e)}},zk={addTableAction$:Ik,removeTableAction$:Lk,selectTableAction$:Rk,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!bC(n.focusType),s=Object.entries(t).filter(([,e])=>e===sg.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:vh(),tableId:t};yield[KD(e),XD({...e,value:n.name}),eO({...e,value:n.dataType}),rO({...e,value:n.default}),QD({...e,value:n.comment}),dO({...e,value:U(n.options,R.notNull)}),lO({...e,value:U(n.options,R.unique)}),aO({...e,value:U(n.options,R.autoIncrement)})]}if(!n||!o)return;let c=N(a).collection(`tableEntities`).selectById(n.tableId);if(!c)return;let l=c.columnIds.filter(V(n.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=Fk(r,i);yield $C();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 F.columnName:return XD({...a,value:i.name});case F.columnDataType:return eO({...a,value:i.dataType});case F.columnDefault:return rO({...a,value:i.default});case F.columnComment:return QD({...a,value:i.comment});case F.columnAutoIncrement:return aO({...a,value:U(i.options,R.autoIncrement)});case F.columnUnique:return lO({...a,value:U(i.options,R.unique)});case F.columnNotNull:return dO({...a,value:U(i.options,R.notNull)});default:return null}}).filter(Boolean),ZC({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=vh(),r={id:t,tableId:c.id};yield[KD(r),...f.map(t=>{switch(t){case F.columnName:return XD({...r,value:e.name});case F.columnDataType:return eO({...r,value:e.dataType});case F.columnDefault:return rO({...r,value:e.default});case F.columnComment:return QD({...r,value:e.comment});case F.columnAutoIncrement:return aO({...r,value:U(e.options,R.autoIncrement)});case F.columnUnique:return lO({...r,value:U(e.options,R.unique)});case F.columnNotNull:return dO({...r,value:U(e.options,R.notNull)});default:return null}}).filter(Boolean),ZC({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}},sortTablesToMoveAction$:()=>function*(e,t){let{doc:n,collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(n.tableIds).map(e=>({...e,ui:{...e.ui}})),a=N(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds).map(e=>({...e,ui:{...e.ui}})),o={...e,collections:{...r,tableEntities:Object.fromEntries(i.map(e=>[e.id,e])),tableGroupEntities:Object.fromEntries(a.map(e=>[e.id,e]))}};MD[aD.sortTable](o,{type:aD.sortTable,payload:void 0},t);let s=new Set(i.map(e=>Fy(o,e)));yield i.map(({id:e,ui:{x:t,y:n}})=>dD({id:e,x:t,y:n})),yield a.filter(({id:e})=>s.has(e)).map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>zO({id:e,x:t,y:n,width:r,height:i}))}};function Bk(e,t,n=[],r=N(t.collections).collection(`relationshipEntities`).selectByIds(t.doc.relationshipIds)){let{collections:i,settings:{database:a}}=t,o=N(i).collection(`tableColumnEntities`);for(let t=e.pop();t;t=e.pop()){let{id:i,value:s}=t;if(n.some(({id:e})=>e===i))continue;n.push(t);let c=yk(s,a);for(let{start:t,end:n}of r){let r=t.columnIds.indexOf(i);if(r!==-1){let t=n.columnIds[r];if(t===void 0)continue;e.push({id:t,tableId:n.tableId,value:c});continue}let a=n.columnIds.indexOf(i);if(a===-1)continue;let l=t.columnIds[a];if(l===void 0)continue;let u=o.selectById(l);u&&vk(u.dataType)||e.push({id:l,tableId:t.tableId,value:s})}}return n}const Vk=V([H.columnNotNull,H.columnUnique,H.columnAutoIncrement]),Hk=V([H.columnName,H.columnDataType,H.columnDefault,H.columnComment]),Uk=e=>function*({editor:{selectedMap:t}}){if(e){let t=vh();yield KD({id:t,tableId:e}),yield ZC({tableId:e,columnId:t,focusType:H.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===sg.table).map(([e])=>({tableId:e,id:vh()}));for(let e of n)yield KD(e);let r=ue(n);r&&(yield ZC({tableId:r.tableId,columnId:r.id,focusType:H.columnName,$mod:!1,shiftKey:!1}))},Wk=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=gC(n,t);e?yield ZC({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield YC({tableId:a.tableId,focusType:H.tableName})}let s=V(t),c=N(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=N(o).collection(`indexEntities`).selectByIds(i).filter(t=>t.tableId===e&&N(o).collection(`indexColumnEntities`).selectByIds(t.indexColumnIds).map(({columnId:e})=>e).some(s));for(let{id:e}of l)yield yT({id:e});for(let{id:e}of c)yield kE({id:e});for(let n of t)yield JD({id:n,tableId:e})},Gk=(e,t,n)=>function*({collections:r}){if(!Vk(e))return;let i=N(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case H.columnNotNull:yield dO({id:n,tableId:t,value:!U(i.options,R.notNull)});break;case H.columnUnique:yield lO({id:n,tableId:t,value:!U(i.options,R.unique)});break;case H.columnAutoIncrement:yield aO({id:n,tableId:t,value:!U(i.options,R.autoIncrement)})}},Kk=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=Bk([e],t)),yield r.map(eO)},qk=(e,t,n,r)=>function*({collections:i}){if(!Hk(e)||!N(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case H.columnName:yield XD(a);break;case H.columnDataType:yield Kk(a);break;case H.columnDefault:yield rO(a);break;case H.columnComment:yield QD(a)}},Jk=(e,t)=>function*({collections:n}){let r=N(n).collection(`tableEntities`).selectById(e);if(!r)return;let i=N(n).collection(`tableColumnEntities`).selectByIds(t.filter(V(r.columnIds))),a=({options:e})=>U(e,R.primaryKey),o=!i.every(a);yield i.filter(e=>a(e)!==o).map(({id:t})=>sO({tableId:e,id:t,value:o}))},Yk={addColumnAction$:Uk,removeColumnAction$:Wk,toggleColumnValueAction$:Gk,changeColumnDataTypeAction$:Kk,changeColumnValueAction$:qk,changeColumnPrimaryKeyAction$:(e,t)=>Jk(e,[t]),changeColumnsPrimaryKeyAction$:Jk};function Xk(e){return Object.entries(e).reduce((e,[t,n])=>(n===sg.table?e.tableIds.push(t):n===sg.memo?e.memoIds.push(t):n===sg.tableGroup&&e.tableGroupIds.push(t),e),{tableIds:[],memoIds:[],tableGroupIds:[]})}const Zk=({doc:e,collections:t})=>N(t).collection(`tableGroupEntities`).selectByIds(e.tableGroupIds);function*Qk(e,t,n,{name:r,color:i}){let a=vh(),{x:o,y:s,width:c,height:l}=t;yield fz(),yield IC({[a]:sg.tableGroup}),yield jO({id:a,...i?{color:i}:{},ui:{x:o,y:s,width:c,height:l,zIndex:Jy(Zk(e))}}),r&&(yield VO({id:a,value:r})),yield n.map(e=>xD({id:e,value:a}))}const $k=(e,t={})=>function*(n){let{doc:r,collections:i}=n;yield*Qk(n,e,N(i).collection(`tableEntities`).selectByIds(r.tableIds).filter(t=>!Fy(n,t)&&Ky(Gy(n,t),e)).map(({id:e})=>e),t)},eA=(e,t={})=>function*(n){let r=ve(e??Xk(n.editor.selectedMap).tableIds).filter(V(n.doc.tableIds)),i=Wy(n,r);i&&(yield*Qk(n,i,r,t))},tA=e=>function*(t){let{doc:{tableGroupIds:n},editor:{selectedMap:r}}=t,i=V(n),a=e?[e]:Object.entries(r).filter(([e,t])=>t===sg.tableGroup&&i(e)).map(([e])=>e);for(let e of a)yield Ly(t,e).map(e=>xD({id:e,value:``})),yield LO({id:e})};function nA(e,t,n){return ve([...n,...t.flatMap(t=>Ly(e,t))])}function rA(e,t,n,r){return[...e.length?[NO({ids:e,movementX:n,movementY:r})]:[],...t.length?[lD({ids:t,movementX:n,movementY:r})]:[]].map(e=>Y_(J_.drag,e))}const iA=(e,t,n)=>function*(r){yield rA(e,nA(r,e,[]),t,n)},aA=(e,t)=>function*({doc:n,collections:r}){(!t||n.tableGroupIds.includes(t))&&(yield N(r).collection(`tableEntities`).selectByIds(ve(e).filter(V(n.tableIds))).filter(e=>e.groupId!==t).map(({id:e})=>xD({id:e,value:t})))};function oA(e,t){if(!Yy(e))return[];let{doc:n,collections:r,editor:i}=e,{tableIds:a,tableGroupIds:o}=Xk(i.selectedMap),s=new Set(n.tableIds),c=a.filter(e=>s.has(e));if(!c.length)return[];let l=new Set(o.flatMap(t=>Ly(e,t))),u=c.filter(e=>!l.has(e));if(!u.length)return[];let d=new Set(o),f=Hy(e,{excludeTableIds:u});t?.forEach((e,t)=>{let n=f.get(t);n&&!d.has(t)&&f.set(t,ay(n,e))});let p=N(r).collection(`tableEntities`).selectByIds(u),m=qy(e,p.map(t=>Gy(e,t)),{boxes:f});return p.map((e,t)=>{let n=m[t]?.id??``;return{table:e,groupId:n,box:f.get(n)??null}})}const sA=e=>function*(t){yield oA(t,e).filter(({table:e,groupId:n})=>n!==Fy(t,e)).map(({table:e,groupId:t})=>Y_(J_.drag,xD({id:e.id,value:t,prevValue:e.groupId})))},cA=(e,t)=>function*(n){t||(yield fz()),yield IC({[e]:sg.tableGroup}),yield GO({id:e,zIndex:Jy(Zk(n))}),yield lA(n,e)};function lA(e,t){let{doc:{tableIds:n,memoIds:r},collections:i}=e,a=V(Ly(e,t)),o=N(i).collection(`tableEntities`).selectByIds(n),s=o.filter(e=>a(e.id)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),c=[...o.filter(e=>!a(e.id)),...N(i).collection(`memoEntities`).selectByIds(r)],l=Math.max(1,...c.map(({ui:e})=>e.zIndex))+1;return s.every(({ui:e})=>e.zIndex>=l)?[]:s.map((e,t)=>CD({id:e.id,zIndex:l+t}))}const uA={addTableGroupAction$:$k,addTableGroupFromTablesAction$:eA,removeTableGroupAction$:tA,moveTableGroupAction$:iA,setTableGroupAction$:aA,dropTablesIntoGroupsAction$:sA,selectTableGroupAction$:cA,selectTableGroupTablesAction$:e=>function*(t){yield fz(),yield IC(Object.fromEntries(Ly(t,e).map(e=>[e,sg.table])))}};function dA(e,t){return t.x>=e.x&&t.y>=e.y&&t.x+t.w<=e.x+e.w&&t.y+t.h<=e.y+e.h}function fA(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)}const pA=/[\s_]+/g;function mA(e){let t=e.trim().replace(pA,` `).toUpperCase(),n=Object.entries(ag).find(([,e])=>e===t);return n?Number(n[0]):Yh.none}const hA={[Yh.noAction]:`NA`,[Yh.cascade]:`C`,[Yh.setNull]:`SN`,[Yh.setDefault]:`SD`,[Yh.restrict]:`R`};function gA({onDelete:e,onUpdate:t}){return[hA[e]?`D:${hA[e]}`:``,hA[t]?`U:${hA[t]}`:``].filter(Boolean).join(` `)}function _A({onDelete:e,onUpdate:t}){return[ag[e]?`ON DELETE ${ag[e]}`:``,ag[t]?`ON UPDATE ${ag[t]}`:``].filter(Boolean).join(`
|
|
2
|
+
`)}function vA(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const yA={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`};function bA(e,t,n,r=[]){let i=CA(e,n,r);return i.members?SA(i.members,t)??yA[t]??i.typeName:i.typeName}function xA(e,t,n,r=[]){let{members:i}=CA(e,t,r);return!i||SA(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function SA(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function CA(e,t,n){if(n.length)return{typeName:e,members:n};let r=/* @__PURE__ */ new Set,i=e;for(;!r.has(i);){r.add(i);let e=wA(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 wA(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 TA={database:``,catalog:``,schema:``},EA=kA(TA);function DA(e,t,n){let r=km({}),i=OA(e.entities),a=e.entities.map(a=>MA(r,t,e,n,a,i(a)));return FA(r,t,a,e,jA(e.entities,a)),BA(r,a),r}function OA(e){let t=new Set(e.map(e=>kA(e.namespace)));return e=>{let n=kA(e.namespace);return t.size>1&&n!==EA?`${AA(e.namespace)}_${e.name}`:e.name}}function kA({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function AA({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function jA(e,t){let n=/* @__PURE__ */ 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=kA(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=kA(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===EA?n.get(e.entityName.toLowerCase())??null:null)}}function MA({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=m_(o),l=m_(a.comment),u=oD({name:c,comment:l,ui:{widthName:G(s(c)),widthComment:G(s(l)),color:a.color}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=m_(e.path),a=bA(e.typeName,i,r,e.enumValues),o=`${m_(e.comment)}${xA(e.typeName,r,i,e.enumValues)}`.trim(),c=m_(e.default);PA(t,d,GD({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?R.autoIncrement:0)|(e.primaryKey?R.primaryKey:0)|(NA(e)?R.unique:0)|(e.notNull?R.notNull:0),ui:{widthName:G(s(n)),widthComment:G(s(o)),widthDataType:G(s(a)),widthDefault:G(s(c)),keys:e.primaryKey?z.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function NA(e){return e.indexes.some(e=>e.unique&&e.name===``)}function PA(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function FA(e,t,n,r,i){let a=/* @__PURE__ */ new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=IA(o,r.src),l=IA(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){RA(e,t,n,o,s);return}LA(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`,onDelete:mA(r.onDelete),onUpdate:mA(r.onUpdate)})}})}function IA(e,t){if(t.attributePaths.length===0)return _v(e.columns);let n=[];for(let r of t.attributePaths){let t=vA(e.columns,r);if(!t)return[];n.push(t)}return n}function LA({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c,onDelete:l,onUpdate:u}){let d=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(d))return;r.add(d);let f=s.every(e=>U(e.options,R.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=G(n(r))}e.ui.keys=U(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let p=EE({identification:s.every(e=>U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey)),relationshipType:c?f?qh.OneN:qh.ZeroN:f?qh.OneOnly:qh.ZeroOne,onDelete:l,onUpdate:u,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(p.id),N(t).collection(`relationshipEntities`).setOne(p)}function RA(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=_v(r.columns),l=_v(i.columns);if(!c.length||!l.length)return;let u=vv(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=oD({name:u,comment:d,ui:{widthName:G(s(u)),widthComment:G(s(d))}}),p={source:{namespace:TA,name:u,alias:``,comment:d,color:``,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),zA(e,t,p,r,c),zA(e,t,p,i,l)}function zA(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=vv(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=GD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return PA(o,n,s),s}),c=EE({identification:!0,relationshipType:qh.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),N(o).collection(`relationshipEntities`).setOne(c)}function BA({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=/* @__PURE__ */ 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:gT({name:m_(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(NT({indexId:s.index.id,columnId:n.id,orderType:Xh.ASC})),a.set(o,s)})}),a.forEach(({index:n,indexColumns:r})=>{r.forEach(e=>{n.indexColumnIds.push(e.id),n.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(n.id),N(t).collection(`indexEntities`).setOne(n)})})}const VA={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},HA=/[ \t\f\v]/,UA=/[0-9]/,WA=/[A-Za-z_\u0080-\uffff]/,GA=/[0-9A-Za-z_#\u0080-\uffff]/,KA=/^[ \t]*/,qA=/\\#/g,JA={n:`
|
|
3
|
+
`};function YA(e){let t=[],n=0,r=1,i=XA(e,0),a=(e,n)=>{t.push({kind:e,value:n,line:r,depth:i})};for(t.push({kind:VA.newline,value:``,line:0,depth:i});n<e.length;){let t=e[n];if(HA.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
3
4
|
`){t===`\r`&&e[n+1]===`
|
|
4
|
-
`&&(n+=1),n+=1,i=
|
|
5
|
+
`&&(n+=1),n+=1,i=XA(e,n),a(VA.newline,`
|
|
5
6
|
`),r+=1;continue}if(t===`#`){let t=n+1;for(;t<e.length&&e[t]!==`
|
|
6
|
-
`&&e[t]!==`\r`;)t+=1;a(
|
|
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:
|
|
8
|
-
`).length-1}}function
|
|
9
|
-
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(
|
|
10
|
-
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function
|
|
7
|
+
`&&e[t]!==`\r`;)t+=1;a(VA.comment,e.slice(n+1,t).trim()),n=t;continue}if(t===`|`){if(e.startsWith(`|||`,n)){let t=QA(e,n+3);a(VA.doc,tj(t.value)),n=t.index,r+=t.lines;continue}let t=ZA(e,n+1);a(VA.doc,t.value),n=t.index;continue}if(t===`"`){let t=$A(e,n+1,`"`,!0,!1);a(VA.quoted,t.value),n=t.index;continue}if(t===`'`){let t=$A(e,n+1,`'`,!0,!1);a(VA.string,t.value),n=t.index;continue}if(t==="`"){let t=$A(e,n+1,"`",!1,!0);a(VA.expression,t.value),n=t.index,r+=t.lines;continue}if(UA.test(t)){let t=n;for(;t<e.length&&UA.test(e[t]);)t+=1;if(e[t]===`.`&&UA.test(e[t+1]??``))for(t+=1;t<e.length&&UA.test(e[t]);)t+=1;a(VA.number,e.slice(n,t)),n=t;continue}if(WA.test(t)){let t=n+1;for(;t<e.length&&GA.test(e[t]);)t+=1;for(;t>n&&e[t-1]===`#`;)--t;a(VA.identifier,e.slice(n,t)),n=t;continue}a(VA.punctuation,t),n+=1}return t}function XA(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 ZA(e,t){let n=t;for(;n<e.length&&HA.test(e[n]);)n+=1;if(n>t&&e[n]===`"`){let t=$A(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===`
|
|
8
|
+
`||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value:ej(r.join(``).trim().replace(qA,`#`)),index:n}}function QA(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(`
|
|
9
|
+
`).length-1}}function $A(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===`
|
|
10
|
+
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(JA[c]??c),o+=2;continue}t===`
|
|
11
|
+
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function ej(e){let t=e[0];return e.length>1&&(t===`"`||t===`'`)&&e.endsWith(t)?e.slice(1,-1):e}function tj(e){let t=e.replace(/\r\n|\r/g,`
|
|
11
12
|
`).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=>(
|
|
13
|
-
`)}const cT=new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),lT=new Set([`false`,`null`,`true`]),uT=/^-?\d+$/;function dT(e){try{return{ok:!0,model:mT(fT(tT(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function fT(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===Y.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function pT(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function mT(e){let t={entities:[],relations:[],types:{},skipped:[]},n=new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=Mw,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=pT(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&gT(n,e.depth,a,o,t,r);return}let c=s.kind===Y.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=jT(n);return}if(c===`rel`||c===`fk`){n.next();let e=ST(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),AT(n,i,t,r);return}if(!WT(s))return;let l=hT(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function hT(e,t,n){let r=MT(e);if(r.name===``)return null;let i=e.peek();i&&qT(i,`*`)&&(e.next(),n(`view`));let a=PT(e),o=FT(e,n);return{namespace:VT(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,attributes:[]}}function gT(e,t,n,r,i,a){let o=BT(e);if(o===``)return;let s=vT(e),c={path:_T(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&>(l,`nullable`)&&(e.next(),c.notNull=!1),yT(e,c,n,i,a);let u=FT(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function _T(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 vT(e){let t=BT(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&qT(i,`(`)){e.next();let{values:i,numeric:a}=RT(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&qT(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:zT(e)}):{typeName:n,enumValues:r,default:``}}function yT(e,t,n,r,i){let a=()=>{let i=CT(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===Y.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),xT(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:xT(e),unique:r===`unique`});continue}if(r===`check`){e.next(),bT(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(KT(n)&&a()))return}}function bT(e){let t=e.peek();t&&qT(t,`(`)&&(e.next(),UT(e,`(`,`)`)),xT(e)}function xT(e){let t=e.peek();return!t||!qT(t,`=`)?``:(e.next(),BT(e))}function ST(e,t,n){let r=ET(e),i=CT(e);return FT(e,n),!i||r.entityName===``?null:{src:HT(r.namespace)?{...r,namespace:t}:r,...i}}function CT(e){let t=e.peek();if(t&>(t,`fk`)){e.next();let t=ET(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=wT(e);if(n===null)return null;let r=TT(e);r&&(OT(e),e.next(),zT(e));let i=wT(e)??`n`,a=ET(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function wT(e){let t=e.peek();return!t||!KT(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function TT(e){let t=0;for(;;){let n=e.peek(t);if(!n||!WT(n))return!1;t+=1;let r=e.peek(t);if(!r||!qT(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&qT(n,`=`)}function ET(e){let t=MT(e),n=e.peek();if(n&&qT(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:DT(e)};if(t.namespace.schema===``)return{namespace:Mw,entityName:t.name,attributePaths:[]};let r=[t.name,...kT(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function DT(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||qT(n,`)`)){e.next();break}if(WT(n)){t.push(OT(e));continue}e.next()}return t}function OT(e){let t=[BT(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!qT(n,`.`))break;e.next();let r=BT(e);if(r===``)break;t.push(r)}return t.join(`.`)}function kT(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!qT(n,`:`))break;e.next();let r=BT(e);if(r===``)break;t.push(r)}return t}function AT(e,t,n,r){let i=MT(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&qT(o,`(`)?(e.next(),a.values=RT(e).values):o&&qT(o,`{`)?(e.next(),UT(e,`{`,`}`),r(`struct type`)):o&&o.kind===Y.expression?(e.next(),r(`custom type`)):o&&WT(o)&&(a.alias=BT(e)),FT(e,r);let s=VT(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 jT(e){let t=BT(e);if(t===``)return Mw;let n=NT(e),r=NT(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function MT(e){let t=BT(e);if(t===``)return{namespace:Mw,name:``};let n=NT(e),r=NT(e),i=NT(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:Mw,name:t}}function NT(e){let t=e.peek();return!t||!qT(t,`.`)?null:(e.next(),{name:BT(e)})}function PT(e){let t=e.peek();return!t||!GT(t,`as`)?``:(e.next(),BT(e))}function FT(e,t){let n={autoIncrement:!1,doc:``,comment:``};for(;!e.atEnd();){let r=e.next();if(!r)break;if(qT(r,`{`)){IT(e,n,t);continue}if(r.kind===Y.doc&&n.doc===``){n.doc=r.value;continue}r.kind===Y.comment&&n.comment===``&&(n.comment=r.value)}return n}function IT(e,t,n){for(;!e.atEnd();){let r=e.next();if(!r||qT(r,`}`))return;if(r.kind!==Y.identifier&&r.kind!==Y.quoted)continue;let i=e.peek();i&&(qT(i,`:`)||qT(i,`=`))&&(e.next(),LT(e)),r.value.toLowerCase()===`autoincrement`?t.autoIncrement=!0:n(r.value)}}function LT(e){let t=0;for(;!e.atEnd();){let n=e.peek();if(!n||t===0&&(qT(n,`,`)||qT(n,`}`)))return;e.next(),qT(n,`[`)?t+=1:qT(n,`]`)&&--t}}function RT(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||qT(r,`)`)){e.next();break}if(qT(r,`,`)){e.next();continue}let i=zT(e);t.push(i),n=n&&r.kind!==Y.quoted&&uT.test(i)}return{values:t,numeric:n}}function zT(e){let t=e.peek();if(!t)return``;if(qT(t,`-`)&&e.peek(1)?.kind===Y.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case Y.expression:return`\`${t.value}\``;case Y.string:return`'${t.value}'`;case Y.identifier:return lT.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function BT(e){let t=e.peek();return!t||!WT(t)?``:(e.next(),t.value)}function VT(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function HT(e){return e.database===``&&e.catalog===``&&e.schema===``}function UT(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;qT(i,t)?r+=1:qT(i,n)&&--r}}function WT(e){return e.kind===Y.quoted||e.kind===Y.identifier&&!cT.has(e.value.toLowerCase())}function GT(e,t){return e.kind===Y.identifier&&e.value.toLowerCase()===t}function KT(e){return e.kind===Y.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function qT(e,t){return e.kind===Y.punctuation&&e.value===t}const JT={entities:[],relations:[],types:{},skipped:[]};function YT(e,t,n){let r=dT(e),i=r.ok?r.model:JT,a=qp({}),o=qh(i.entities.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=Pw(i,t,s.database);return c.settings=s,qm(c)}const XT={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`};function ZT(e,t,n,r){let i=eE(e,t,r);return i?$T(i,n)??XT[n]??e:e}function QT(e,t,n,r){let i=eE(e,t,n);return!i||$T(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function $T(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function eE(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const tE=`public`;function nE(e,t,n){let r=qp({}),i=rE(e.tables),a=e.tables.map(a=>oE(r,t,e,n,a,i(a)));return cE(r,t,a,e,aE(e.tables,a)),pE(r,a),r}function rE(e){let t=new Set(e.map(e=>iE(e.schemaName)));return e=>{let n=iE(e.schemaName);return t.size>1&&n!==tE?`${n}_${e.name}`:e.name}}function iE(e){return e===``?tE:e}function aE(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=iE(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=iE(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function oE({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=tg(o),l=tg(a.comment),u=PS({name:c,comment:l,ui:{widthName:U(s(c)),widthComment:U(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=tg(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=ZT(e.typeName,e.typeSchemaName,i,r),c=`${tg(e.comment)}${QT(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=tg(e.default);sE(t,d,dC({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?z.autoIncrement:0)|(a?z.primaryKey:0)|(e.unique?z.unique:0)|(e.notNull?z.notNull:0),ui:{widthName:U(s(n)),widthComment:U(s(c)),widthDataType:U(s(o)),widthDefault:U(s(l)),keys:a?B.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function sE(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function cE(e,t,n,r,i){let a=new Set,o=t=>uE(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=lE(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){dE(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=lE(a,r.left),l=lE(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===`<>`){dE(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 lE(e,t){let n=[];for(let r of t.columnNames){let t=Tw(e.columns,r);if(!t)return[];n.push(t)}return n}function uE({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=>G(e.options,z.notNull));o.forEach(e=>{e.ui.keys=G(e.ui.keys,B.primaryKey)?e.ui.keys|B.foreignKey:B.foreignKey});let u=mS({identification:o.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey)),relationshipType:s?l?nh.OneN:nh.ZeroN:l?nh.OneOnly:nh.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),N(t).collection(`relationshipEntities`).setOne(u)}function dE(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=Cw(r.columns),l=Cw(i.columns);if(!c.length||!l.length)return;let u=ww(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=PS({name:u,comment:d,ui:{widthName:U(s(u)),widthComment:U(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),fE(e,t,p,r,c),fE(e,t,p,i,l)}function fE(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=ww(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=dC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return sE(o,n,s),s}),c=mS({identification:!0,relationshipType:nh.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),N(o).collection(`relationshipEntities`).setOne(c)}function pE({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=ix({name:tg(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=Tw(i,e);t&&o.push(xx({indexId:a.id,columnId:t.id,orderType:ih.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}const X={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},mE=/[ \t\f\v]/,hE=/[0-9]/,gE=/[A-Za-z_\u0080-\uffff]/,_E=/[0-9A-Za-z_\u0080-\uffff]/,vE=/^[ \t]*/,yE={n:`
|
|
14
|
-
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function
|
|
15
|
-
`)};for(;n<e.length;){let t=e[n];if(
|
|
13
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(KA.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
14
|
+
`)}const nj=/* @__PURE__ */ new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),rj=/* @__PURE__ */ new Set([`false`,`null`,`true`]),ij=/^-?\d+$/;function aj(e){try{return{ok:!0,model:cj(oj(YA(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function oj(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===VA.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function sj(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function cj(e){let t={entities:[],relations:[],types:{},skipped:[]},n=/* @__PURE__ */ new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=TA,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=sj(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&uj(n,e.depth,a,o,t,r);return}let c=s.kind===VA.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=Tj(n);return}if(c===`rel`||c===`fk`){n.next();let e=gj(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),wj(n,i,t,r);return}if(!Rj(s))return;let l=lj(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function lj(e,t,n){let r=Ej(e);if(r.name===``)return null;let i=e.peek();i&&Vj(i,`*`)&&(e.next(),n(`view`));let a=Oj(e),o=kj(e,n,`entity`);return{namespace:Fj(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,color:o.color,attributes:[]}}function uj(e,t,n,r,i,a){let o=Pj(e);if(o===``)return;let s=fj(e),c={path:dj(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&zj(l,`nullable`)&&(e.next(),c.notNull=!1),pj(e,c,n,i,a);let u=kj(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function dj(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 fj(e){let t=Pj(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&Vj(i,`(`)){e.next();let{values:i,numeric:a}=Mj(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&Vj(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:Nj(e)}):{typeName:n,enumValues:r,default:``}}function pj(e,t,n,r,i){let a=()=>{let i=_j(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i,onDelete:``,onUpdate:``}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===VA.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),hj(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:hj(e),unique:r===`unique`});continue}if(r===`check`){e.next(),mj(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(Bj(n)&&a()))return}}function mj(e){let t=e.peek();t&&Vj(t,`(`)&&(e.next(),Lj(e,`(`,`)`)),hj(e)}function hj(e){let t=e.peek();return!t||!Vj(t,`=`)?``:(e.next(),Pj(e))}function gj(e,t,n){let r=bj(e),i=_j(e),{onDelete:a,onUpdate:o}=kj(e,n,`relation`);return!i||r.entityName===``?null:{src:Ij(r.namespace)?{...r,namespace:t}:r,...i,onDelete:a,onUpdate:o}}function _j(e){let t=e.peek();if(t&&zj(t,`fk`)){e.next();let t=bj(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=vj(e);if(n===null)return null;let r=yj(e);r&&(Sj(e),e.next(),Nj(e));let i=vj(e)??`n`,a=bj(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function vj(e){let t=e.peek();return!t||!Bj(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function yj(e){let t=0;for(;;){let n=e.peek(t);if(!n||!Rj(n))return!1;t+=1;let r=e.peek(t);if(!r||!Vj(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&Vj(n,`=`)}function bj(e){let t=Ej(e),n=e.peek();if(n&&Vj(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:xj(e)};if(t.namespace.schema===``)return{namespace:TA,entityName:t.name,attributePaths:[]};let r=[t.name,...Cj(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function xj(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||Vj(n,`)`)){e.next();break}if(Rj(n)){t.push(Sj(e));continue}e.next()}return t}function Sj(e){let t=[Pj(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!Vj(n,`.`))break;e.next();let r=Pj(e);if(r===``)break;t.push(r)}return t.join(`.`)}function Cj(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!Vj(n,`:`))break;e.next();let r=Pj(e);if(r===``)break;t.push(r)}return t}function wj(e,t,n,r){let i=Ej(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&Vj(o,`(`)?(e.next(),a.values=Mj(e).values):o&&Vj(o,`{`)?(e.next(),Lj(e,`{`,`}`),r(`struct type`)):o&&o.kind===VA.expression?(e.next(),r(`custom type`)):o&&Rj(o)&&(a.alias=Pj(e)),kj(e,r);let s=Fj(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 Tj(e){let t=Pj(e);if(t===``)return TA;let n=Dj(e),r=Dj(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function Ej(e){let t=Pj(e);if(t===``)return{namespace:TA,name:``};let n=Dj(e),r=Dj(e),i=Dj(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:TA,name:t}}function Dj(e){let t=e.peek();return!t||!Vj(t,`.`)?null:(e.next(),{name:Pj(e)})}function Oj(e){let t=e.peek();return!t||!zj(t,`as`)?``:(e.next(),Pj(e))}function kj(e,t,n=`other`){let r={autoIncrement:!1,doc:``,comment:``,onDelete:``,onUpdate:``,color:``};for(;!e.atEnd();){let i=e.next();if(!i)break;if(Vj(i,`{`)){Aj(e,r,t,n);continue}if(i.kind===VA.doc&&r.doc===``){r.doc=i.value;continue}i.kind===VA.comment&&r.comment===``&&(r.comment=i.value)}return r}function Aj(e,t,n,r){for(;!e.atEnd();){let i=e.next();if(!i||Vj(i,`}`))return;if(i.kind!==VA.identifier&&i.kind!==VA.quoted)continue;let a=e.peek(),o=``;a&&(Vj(a,`:`)||Vj(a,`=`))&&(e.next(),o=jj(e));let s=i.value.toLowerCase(),c=r===`entity`&&s===`color`?Sy(o):``;r===`relation`&&s===`ondelete`?t.onDelete=o:r===`relation`&&s===`onupdate`?t.onUpdate=o:s===`autoincrement`?t.autoIncrement=!0:c===``?n(i.value):t.color=c}}function jj(e){let t=[],n=0;for(;!e.atEnd();){let r=e.peek();if(!r||n===0&&(Vj(r,`,`)||Vj(r,`}`)))break;e.next(),Vj(r,`[`)?n+=1:Vj(r,`]`)&&--n,t.push(r.value)}return t.join(` `)}function Mj(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||Vj(r,`)`)){e.next();break}if(Vj(r,`,`)){e.next();continue}let i=Nj(e);t.push(i),n=n&&r.kind!==VA.quoted&&ij.test(i)}return{values:t,numeric:n}}function Nj(e){let t=e.peek();if(!t)return``;if(Vj(t,`-`)&&e.peek(1)?.kind===VA.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case VA.expression:return`\`${t.value}\``;case VA.string:return`'${t.value}'`;case VA.identifier:return rj.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function Pj(e){let t=e.peek();return!t||!Rj(t)?``:(e.next(),t.value)}function Fj(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function Ij(e){return e.database===``&&e.catalog===``&&e.schema===``}function Lj(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;Vj(i,t)?r+=1:Vj(i,n)&&--r}}function Rj(e){return e.kind===VA.quoted||e.kind===VA.identifier&&!nj.has(e.value.toLowerCase())}function zj(e,t){return e.kind===VA.identifier&&e.value.toLowerCase()===t}function Bj(e){return e.kind===VA.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function Vj(e,t){return e.kind===VA.punctuation&&e.value===t}const Hj={entities:[],relations:[],types:{},skipped:[]};function Uj(e,t,n){let r=aj(e),i=r.ok?r.model:Hj,a=km({}),{settings:o}=n?n(a):a,s=DA(i,t,o.database);return s.settings=o,Eh(s)}const Wj={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`};function Gj(e,t,n,r){let i=Jj(e,t,r);return i?qj(i,n)??Wj[n]??e:e}function Kj(e,t,n,r){let i=Jj(e,t,n);return!i||qj(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function qj(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function Jj(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const Yj=`public`;function Xj(e,t,n){let r=km({}),i=Zj(e.tables),a=e.tables.map(a=>eM(r,t,e,n,a,i(a))),o=$j(e.tables,a);return nM(r,t,a,e,o),sM(r,a),cM(r,e,o),r}function Zj(e){let t=new Set(e.map(e=>Qj(e.schemaName)));return e=>{let n=Qj(e.schemaName);return t.size>1&&n!==Yj?`${n}_${e.name}`:e.name}}function Qj(e){return e===``?Yj:e}function $j(e,t){let n=/* @__PURE__ */ 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=Qj(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=Qj(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function eM({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=m_(o),l=m_(a.comment),u=oD({name:c,comment:l,ui:{widthName:G(s(c)),widthComment:G(s(l)),color:a.color}}),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=m_(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=Gj(e.typeName,e.typeSchemaName,i,r),c=`${m_(e.comment)}${Kj(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=m_(e.default);tM(t,d,GD({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?R.autoIncrement:0)|(a?R.primaryKey:0)|(e.unique?R.unique:0)|(e.notNull?R.notNull:0),ui:{widthName:G(s(n)),widthComment:G(s(c)),widthDataType:G(s(o)),widthDefault:G(s(l)),keys:a?z.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function tM(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function nM(e,t,n,r,i){let a=/* @__PURE__ */ new Set,o=t=>iM(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=rM(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){aM(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=rM(a,r.left),l=rM(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===`<>`){aM(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!==`-`,onDelete:mA(r.onDelete),onUpdate:mA(r.onUpdate)})})}function rM(e,t){let n=[];for(let r of t.columnNames){let t=vA(e.columns,r);if(!t)return[];n.push(t)}return n}function iM({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s,onDelete:c=Yh.none,onUpdate:l=Yh.none}){if(i.length===0||o.length===0)return;let u=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(u))return;n.add(u);let d=o.every(e=>U(e.options,R.notNull));o.forEach(e=>{e.ui.keys=U(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let f=EE({identification:o.every(e=>U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey)),relationshipType:s?d?qh.OneN:qh.ZeroN:d?qh.OneOnly:qh.ZeroOne,onDelete:c,onUpdate:l,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(f.id),N(t).collection(`relationshipEntities`).setOne(f)}function aM(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=_v(r.columns),l=_v(i.columns);if(!c.length||!l.length)return;let u=vv(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=oD({name:u,comment:d,ui:{widthName:G(s(u)),widthComment:G(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,color:``,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),oM(e,t,p,r,c),oM(e,t,p,i,l)}function oM(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=vv(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=GD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return tM(o,n,s),s}),c=EE({identification:!0,relationshipType:qh.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),N(o).collection(`relationshipEntities`).setOne(c)}function sM({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=gT({name:m_(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=vA(i,e);t&&o.push(NT({indexId:a.id,columnId:t.id,orderType:Xh.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}function cM({doc:e,collections:t},n,r){let i=/* @__PURE__ */ new Set;n.tableGroups.forEach(n=>{let a=[];if(n.tables.forEach(e=>{let t=r(e);t&&!i.has(t.table.id)&&(i.add(t.table.id),a.push(t.table))}),!a.length)return;let o=AO({name:m_(n.name),color:n.color,ui:{zIndex:e.tableGroupIds.length+1}});a.forEach(e=>{e.groupId=o.id}),e.tableGroupIds.push(o.id),N(t).collection(`tableGroupEntities`).setOne(o)})}const J={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},lM=/[ \t\f\v]/,uM=/[0-9]/,dM=/[A-Za-z_\u0080-\uffff]/,fM=/[0-9A-Za-z_\u0080-\uffff]/,pM=/^[ \t]*/,mM={n:`
|
|
15
|
+
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function hM(e){let t=[],n=0,r=0,i=1,a=0,o=(e,n)=>{t.push({kind:e,value:n,line:i,offset:r})},s=()=>{a===0&&o(J.newline,`
|
|
16
|
+
`)};for(;n<e.length;){let t=e[n];if(r=n,lM.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
16
17
|
`){t===`\r`&&e[n+1]===`
|
|
17
|
-
`&&(n+=1),n+=1,
|
|
18
|
+
`&&(n+=1),n+=1,s(),i+=1;continue}if(t===`/`&&e[n+1]===`/`){for(n+=2;n<e.length&&e[n]!==`
|
|
18
19
|
`;)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,
|
|
20
|
-
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function
|
|
20
|
+
`&&(t=!0,i+=1),n+=1}t&&s();continue}if(t===`"`){let t=_M(e,n+1,`"`,!0);n=t.index,i+=t.lines,o(J.quoted,t.value);continue}if(t===`'`){if(e.startsWith(`'''`,n)){let t=_M(e,n+3,`'''`,!0);n=t.index,i+=t.lines,o(J.string,vM(t.value));continue}let t=_M(e,n+1,`'`,!0);n=t.index,i+=t.lines,o(J.string,t.value);continue}if(t==="`"){let t=_M(e,n+1,"`",!1);n=t.index,i+=t.lines,o(J.expression,t.value);continue}if(uM.test(t)){let t=n;for(;t<e.length&&uM.test(e[t]);)t+=1;if(e[t]===`.`&&uM.test(e[t+1]??``))for(t+=1;t<e.length&&uM.test(e[t]);)t+=1;if((e[t]===`e`||e[t]===`E`)&&uM.test(e[t+1]??``))for(t+=2;t<e.length&&uM.test(e[t]);)t+=1;o(J.number,e.slice(n,t)),n=t;continue}if(dM.test(t)){let t=n+1;for(;t<e.length&&fM.test(e[t]);)t+=1;o(J.identifier,e.slice(n,t)),n=t;continue}let c=gM(e,n);if(c){o(J.operator,c),n+=c.length;continue}t===`[`||t===`(`?a+=1:(t===`]`||t===`)`)&&(a=Math.max(0,a-1)),o(J.punctuation,t),n+=1}return t}function gM(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 _M(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(mM[t]??t),a+=2;continue}t===`
|
|
21
|
+
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function vM(e){let t=e.replace(/\r\n|\r/g,`
|
|
21
22
|
`).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=>(
|
|
23
|
-
`)}const wE=/^[0-9a-z ]+$/,TE=/'/g,EE=/\?/g;function DE(e){try{return{ok:!0,model:kE(bE(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function OE(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function kE(e){let t=OE(e),n={tables:[],refs:[],enums:{},skipped:[]},r=new Map,i=new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e)),eD(t)};for(;!t.atEnd();){if(nD(t))continue;let e=t.peek();if(!e)break;if(!rD(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===X.identifier){t.next();let e=AE(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===X.identifier){t.next();let e=AE(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===X.identifier){t.next(),n.refs.push(...IE(t));continue}if(i===`enum`&&e.kind===X.identifier){t.next(),BE(t,n.enums);continue}a(i)}return n}function AE(e,t){let{schemaName:n,name:r}=JE(e),i={schemaName:n,name:r,alias:``,comment:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===X.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=YE(e)),WE(i,VE(e)),!QE(e))return r===``?null:i;for(;!e.atEnd();){if(nD(e))continue;let n=e.peek();if(!n)break;if(n.kind===X.punctuation&&n.value===`}`){e.next();break}if(n.kind===X.punctuation&&n.value===`~`){e.next();let n=t.get(YE(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===X.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&Z(r,`:`)){e.next(),e.next(),i.comment=XE(e);continue}if(t===`note`&&r&&Z(r,`{`)){e.next(),e.next(),i.comment=ZE(e);continue}if(t===`indexes`&&r&&Z(r,`{`)){e.next(),e.next(),i.indexes.push(...PE(e));continue}if(r&&Z(r,`{`)){e.next(),e.next(),$E(e);continue}}let r=jE(e);r&&i.columns.push(r)}return i}function jE(e){let t=e.peek();if(!t||!rD(t))return tD(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=ME(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,HE(n,VE(e)),tD(e),n.typeName===``?null:n}function ME(e){let{schemaName:t,name:n}=JE(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&Z(i,`(`)&&(e.next(),r.push(`(${NE(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&Z(a,`[`)&&Z(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function NE(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;n.kind!==X.newline&&t.push(n.kind===X.string?`'${n.value}'`:n.value)}return t.join(``)}function PE(e){let t=[];for(;!e.atEnd();){if(nD(e))continue;let n=e.peek();if(!n)break;if(Z(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};Z(n,`(`)?(e.next(),r.columnNames.push(...FE(e))):rD(n)?(e.next(),r.columnNames.push(n.value)):e.next(),UE(r,VE(e)),tD(e),r.columnNames.length!==0&&t.push(r)}return t}function FE(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;rD(n)&&t.push(n.value)}return t}function IE(e){let t=e.peek();if(t&&rD(t)){let t=e.peek(1);t&&(Z(t,`:`)||Z(t,`{`))&&e.next()}let n=e.peek();if(n&&Z(n,`:`)){e.next();let t=LE(e);return tD(e),t?[t]:[]}if(!QE(e))return tD(e),[];let r=[];for(;!e.atEnd();){if(nD(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}let n=LE(e);n?r.push(n):tD(e)}return r}function LE(e){let t=zE(e),n=RE(e);if(n===``)return null;let r=zE(e);return VE(e),t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r}}function RE(e){let t=e.peek();return t?t.kind===X.operator?(e.next(),t.value.replace(EE,``)):Z(t,`-`)?(e.next(),`-`):``:``}function zE(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!rD(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!Z(i,`.`))break;e.next();let a=e.peek();if(a&&Z(a,`(`)){e.next(),n.push(...FE(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 BE(e,t){let{schemaName:n,name:r}=JE(e);if(VE(e),!QE(e)){tD(e);return}let i=[];for(;!e.atEnd();){if(nD(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}rD(t)?(e.next(),i.push(t.value),VE(e)):e.next(),tD(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function VE(e){let t=e.peek();if(!t||!Z(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||Z(t,`]`))break;if(Z(t,`,`)){o();continue}if(!a&&Z(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(rD(t)&&wE.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function HE(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=KE(n);break;case`default`:e.default=qE(n);break;case`ref`:{let t=GE(n);t&&e.inlineRefs.push(t);break}}})}function UE(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=KE(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function WE(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`&&(e.comment=KE(n))})}function GE(e){let t=OE(e),n=RE(t);if(n===``)return null;let r=zE(t);return r.tableName===``?null:{operator:n,target:r}}function KE(e){let t=e.find(e=>e.kind===X.string||e.kind===X.quoted||e.kind===X.identifier);return t?t.value:``}function qE(e){let t=e.filter(e=>e.kind!==X.newline),n=t[0];if(!n)return``;if(Z(n,`-`)&&t[1]?.kind===X.number)return`-${t[1].value}`;switch(n.kind){case X.string:return`'${n.value.replace(TE,`''`)}'`;case X.expression:case X.number:case X.identifier:case X.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function JE(e){let t=YE(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!Z(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:YE(e)})}function YE(e){let t=e.peek();return!t||!rD(t)?``:(e.next(),t.value)}function XE(e){let t=e.peek();return t&&(t.kind===X.string||t.kind===X.quoted)?(e.next(),t.value):``}function ZE(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`}`))break;t===``&&n.kind===X.string&&(t=n.value)}return t}function QE(e){let t=0;for(;e.peek(t)?.kind===X.newline;)t+=1;let n=e.peek(t);if(!n||!Z(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function $E(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;Z(n,`{`)?t+=1:Z(n,`}`)&&--t}}function eD(e){if(QE(e)){$E(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===X.newline)return;if(Z(t,`{`)){$E(e);return}}}function tD(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===X.newline){e.next();return}if(Z(t,`}`))return;e.next()}}function nD(e){let t=e.peek();return t&&t.kind===X.newline?(e.next(),!0):!1}function rD(e){return e.kind===X.identifier||e.kind===X.quoted}function Z(e,t){return e.kind===X.punctuation&&e.value===t}const iD={tables:[],refs:[],enums:{},skipped:[]};function aD(e,t,n){let r=DE(e),i=r.ok?r.model:iD,a=qp({}),o=qh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=nE(i,t,s.database);return c.settings=s,qm(c)}const oD={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`},sD={[L.MariaDB]:`INT`,[L.MSSQL]:`int`,[L.MySQL]:`INT`,[L.Oracle]:`INTEGER`,[L.PostgreSQL]:`integer`,[L.SQLite]:`INTEGER`,[L.Databricks]:`INT`,[L.Snowflake]:`INT`},cD={[L.MariaDB]:`SMALLINT`,[L.MSSQL]:`smallint`,[L.MySQL]:`SMALLINT`,[L.Oracle]:`SMALLINT`,[L.PostgreSQL]:`smallint`,[L.SQLite]:`SMALLINT`,[L.Databricks]:`SMALLINT`,[L.Snowflake]:`SMALLINT`},lD={[L.MariaDB]:`BIGINT`,[L.MSSQL]:`bigint`,[L.MySQL]:`BIGINT`,[L.Oracle]:`NUMBER(19)`,[L.PostgreSQL]:`bigint`,[L.SQLite]:`BIGINT`,[L.Databricks]:`BIGINT`,[L.Snowflake]:`BIGINT`},uD={[L.MariaDB]:`DOUBLE`,[L.MSSQL]:`float`,[L.MySQL]:`DOUBLE`,[L.Oracle]:`BINARY_DOUBLE`,[L.PostgreSQL]:`double precision`,[L.SQLite]:`REAL`,[L.Databricks]:`DOUBLE`,[L.Snowflake]:`FLOAT`},dD={[L.MariaDB]:`DECIMAL`,[L.MSSQL]:`decimal`,[L.MySQL]:`DECIMAL`,[L.Oracle]:`DECIMAL`,[L.PostgreSQL]:`numeric`,[L.SQLite]:`DECIMAL`,[L.Databricks]:`DECIMAL`,[L.Snowflake]:`DECIMAL`},fD={[L.MariaDB]:`BOOLEAN`,[L.MSSQL]:`bit`,[L.MySQL]:`BOOLEAN`,[L.Oracle]:`BOOLEAN`,[L.PostgreSQL]:`boolean`,[L.SQLite]:`BOOLEAN`,[L.Databricks]:`BOOLEAN`,[L.Snowflake]:`BOOLEAN`},pD={[L.MariaDB]:`DATE`,[L.MSSQL]:`date`,[L.MySQL]:`DATE`,[L.Oracle]:`DATE`,[L.PostgreSQL]:`date`,[L.SQLite]:`DATE`,[L.Databricks]:`DATE`,[L.Snowflake]:`DATE`},mD={[L.MariaDB]:`TIME`,[L.MSSQL]:`time`,[L.MySQL]:`TIME`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`time`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`TIME`},hD={[L.MariaDB]:`DATETIME`,[L.MSSQL]:`datetime2`,[L.MySQL]:`DATETIME`,[L.Oracle]:`TIMESTAMP`,[L.PostgreSQL]:`timestamp`,[L.SQLite]:`DATETIME`,[L.Databricks]:`TIMESTAMP`,[L.Snowflake]:`TIMESTAMP_NTZ`},gD={[L.MariaDB]:`TIMESTAMP`,[L.MSSQL]:`datetimeoffset`,[L.MySQL]:`TIMESTAMP`,[L.Oracle]:`TIMESTAMP WITH TIME ZONE`,[L.PostgreSQL]:`timestamptz`,[L.SQLite]:`DATETIME`,[L.Databricks]:`TIMESTAMP`,[L.Snowflake]:`TIMESTAMP_TZ`},_D={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`INTERVAL DAY TO SECOND`,[L.PostgreSQL]:`interval`,[L.SQLite]:`TEXT`,[L.Databricks]:`INTERVAL DAY TO SECOND`,[L.Snowflake]:`VARCHAR(255)`},vD={[L.MariaDB]:`JSON`,[L.MSSQL]:`json`,[L.MySQL]:`JSON`,[L.Oracle]:`JSON`,[L.PostgreSQL]:`jsonb`,[L.SQLite]:`TEXT`,[L.Databricks]:`VARIANT`,[L.Snowflake]:`VARIANT`},yD={[L.MariaDB]:`UUID`,[L.MSSQL]:`uniqueidentifier`,[L.MySQL]:`CHAR(36)`,[L.Oracle]:`VARCHAR2(36)`,[L.PostgreSQL]:`uuid`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`UUID`},bD={[L.MariaDB]:`BLOB`,[L.MSSQL]:`varbinary(max)`,[L.MySQL]:`BLOB`,[L.Oracle]:`BLOB`,[L.PostgreSQL]:`bytea`,[L.SQLite]:`BLOB`,[L.Databricks]:`BINARY`,[L.Snowflake]:`BINARY`},xD={id:oD,string:oD,boolean:fD,int:sD,float:uD,positiveint:sD,nonnegativeint:sD,unsignedint:sD,short:cD,smallint:cD,positivefloat:uD,nonnegativefloat:uD,bigint:lD,biginteger:lD,long:lD,int8:lD,safeint:lD,decimal:dD,bigdecimal:dD,numeric:dD,money:dD,datetime:hD,datetimeiso:hD,localdatetime:hD,timestamp:hD,timestamptz:gD,date:pD,localdate:pD,time:mD,localtime:mD,timetz:mD,duration:_D,iso8601duration:_D,interval:_D,json:vD,jsonb:vD,jsonobject:vD,uuid:yD,guid:yD,byte:bD,bytes:bD,bytea:bD,binary:bD,email:oD,emailaddress:oD,url:oD,uri:oD,void:oD};function SD(e,t,n){let r=oD[t]??``,i=ED(n.enums,e);return i?wD(i,t)??r:ED(n.unions,e)?r:xD[e.toLowerCase()]?.[t]??r}function CD(e,t,n){let r=ED(t.enums,e);if(r)return n!==void 0&&wD(r,n)!==void 0?``:TD(e,r);let i=ED(t.unions,e);return i?TD(e,i):``}function wD(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function TD(e,t){return` ${e}: ${t.join(` | `)}`}function ED(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}function DD(e,t,n){let r=qp({}),i=OD(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>kD(r,t,e,n,o,i,a));return PD(r,t,o),WD(r,o),r}function OD(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 kD({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(AD(l)),f=tg(a.name),p=tg(a.comment),m=PS({name:f,comment:p,ui:{widthName:U(c(f)),widthComment:U(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{ND(t,h,jD(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),N(t).collection(`tableEntities`).setOne(m),h}function AD(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 jD({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=tg(i.name),l=tg(i.dataType)||SD(o,n,t),u=tg(i.default),d=MD(i,t,n);return dC({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?z.autoIncrement:0)|(a?z.primaryKey:0)|(i.unique?z.unique:0)|(s?z.notNull:0),ui:{widthName:U(e(c)),widthComment:U(e(d)),widthDataType:U(e(l)),widthDefault:U(e(u)),keys:a?B.primaryKey:0}})}function MD(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=tg(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${CD(r,t,n)}`.trim()}function ND(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function PD(e,t,n){let r=OD(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=FD(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;LD(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?nh.OneN:nh.OneOnly:o?nh.ZeroN:nh.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=ID(i,r);if(r.consumed=!0,o){o.consumed=!0,HD(e,t,n,r);return}LD(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?nh.OneN:nh.ZeroN})})}function FD(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 ID(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 LD(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=Cw(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=RD(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=>{G(e.ui.keys,B.primaryKey)?e.ui.keys|=B.foreignKey:e.ui.keys=B.foreignKey,n.claimedColumnIds.add(e.id)});let p=mS({identification:d.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.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),N(a).collection(`relationshipEntities`).setOne(p)}function RD(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=Tw(i.columns,n),l=a.relationReferences[o],u=l?Tw(r.columns,l):s[o]??null;!c||!u||(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?tg(a.name):pe(r.name),l=new Set,u=[],d=[];return s.forEach(o=>{let s=zD(c,r.name,o.name),f=BD(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??VD(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function zD(e,t,n){return[`${e}${Qv(n)}`,`${ve(e)}_${ve(n)}`,`${t}${Qv(n)}`,`${ve(t)}_${ve(n)}`,`${e}Id`,`${ve(e)}_id`]}function BD(e,t,n){for(let r of t){let t=Tw(e,r);if(t&&!n(t.id))return t}return null}function VD({collections:e},{toWidth:t},n,r,i,a){let o=ww(n.columns,``,a),{dataType:s}=i,c=dC({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?z.notNull:0,ui:{keys:B.foreignKey,widthName:U(t(o)),widthDataType:U(t(s))}});return ND(e,n,c),c}function HD(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=Cw(s.columns),u=Cw(c.columns);if(!l.length||!u.length)return;let d=ww(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=PS({name:d,comment:f,ui:{widthName:U(o(d)),widthComment:U(o(f))}}),m={name:d,source:{name:d,comment:f,fields:[],indexes:[]},table:p,columns:[],referenceFields:[]};i.tableIds.push(p.id),N(a).collection(`tableEntities`).setOne(p),n.push(m),UD(e,t,m,s,l),UD(e,t,m,c,u)}function UD(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=ww(n.columns,``,`${pe(r.name)}${Qv(e.name)}`),{dataType:a}=e,s=dC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return ND(o,n,s),s}),c=mS({identification:!0,relationshipType:nh.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),N(o).collection(`relationshipEntities`).setOne(c)}function WD({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=ix({name:tg(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=Tw(i,e);t&&o.push(xx({indexId:a.id,columnId:t.id,orderType:ih.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}const GD=[`Query`,`Mutation`,`Subscription`],KD=[`PageInfo`],qD=[`Connection`,`Edge`],JD=[`_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`],YD=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],XD=[`autoincrement`,`autoincrement()`],ZD=/[_A-Za-z]/,QD=/[_0-9A-Za-z]/;function $D(e){try{return{ok:!0,model:nO(eO(e))}}catch(e){return{ok:!1,message:tO(e)}}}function eO(e){try{return Xe(e)}catch(t){let n=xO(e);if(n===e)throw t;try{return Xe(n)}catch{throw t}}}function tO(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 nO(e){let t={},n={},r=[],i=new Map,a=new Map,o=new Set;for(let s of e.definitions)switch(s.kind){case Je.OBJECT_TYPE_DEFINITION:case Je.OBJECT_TYPE_EXTENSION:iO(a,s);break;case Je.INTERFACE_TYPE_DEFINITION:case Je.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case Je.SCHEMA_DEFINITION:case Je.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case Je.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case Je.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case Je.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(GD),c=[],l=[],u=new Map;for(let e of a.values()){if(_O(e.name,s)){l.push(e.name);continue}let t=aO(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 rO(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function rO(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 iO(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||=yO(t);return}e.set(n,{name:n,comment:yO(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function aO(e,t){let n=oO(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(sO).filter(ue),indexes:[]};for(let t of e.directives)uO(a,t);return a}function oO(e){let t=new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function sO(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:yO(e),typeRef:cO(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])lO(t,n);return t}function cO(e){let t=e.kind===Je.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===Je.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===Je.NON_NULL_TYPE,o=i;for(;o.kind!==Je.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function lO(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=dO(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=fO(t,`value`);if(!n)break;let r=hO(n);XD.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=pO(t,`name`)||pO(t,`value`);n&&(e.name=n);break}case`relation`:{let n=pO(t,`name`)||pO(t,`value`);n&&(e.relationName=n);let r=fO(t,`fields`);r&&(e.relationFields=gO(r));let i=fO(t,`references`);i&&(e.relationReferences=gO(i));break}case`column`:{let n=pO(t,`name`);n&&(e.name=n);let r=pO(t,`dataType`);r&&(e.dataType=r);let i=fO(t,`default`);i&&(e.default=hO(i));let a=mO(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=mO(t,`unique`);o!==null&&(e.unique=o);let s=mO(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function uO(e,t){switch(t.name.value){case`map`:{let n=pO(t,`name`)||pO(t,`value`);n&&(e.name=n);break}case`table`:{let n=pO(t,`name`);n&&(e.name=n);let r=fO(t,`comment`);r&&(e.comment=hO(r));break}case`index`:{let n=fO(t,`fields`),r=n?gO(n):[];if(!r.length)break;let i={name:pO(t,`name`),unique:mO(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function dO(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>hO(e.value)).join(`, `)})`:n}function fO(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function pO(e,t){let n=fO(e,t);return n?hO(n):``}function mO(e,t){let n=fO(e,t);return n?hO(n)===`true`:null}function hO(e){switch(e.kind){case Je.STRING:case Je.INT:case Je.FLOAT:case Je.ENUM:return e.value;case Je.BOOLEAN:return e.value?`true`:`false`;case Je.NULL:return`null`;case Je.LIST:return e.values.map(hO).join(`, `);default:return``}}function gO(e){return(e.kind===Je.LIST?e.values:[e]).map(hO).filter(e=>e!==``)}function _O(e,t){return t.has(e)||e.startsWith(`__`)||YD.includes(e)||KD.includes(e)||qD.some(t=>vO(e,t))||JD.some(t=>vO(e,t))}function vO(e,t){return e.length>t.length&&e.endsWith(t)}function yO(e){if(e.description)return bO(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===Ye.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return bO(t.join(` `))}function bO(e){return e.replace(/\s+/g,` `).trim()}function xO(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=wO(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=TO(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!ZD.test(e[n+1]??``)){t+=i,n+=1;continue}let a=CO(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&ZD.test(e[a+1]??``);){let t=CO(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=DO(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=DO(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=SO(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(EO(e,DO(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function SO(e,t){if(!ZD.test(e[t]??``))return-1;let n=DO(e,CO(e,t));return e[n]===`:`?n:-1}function CO(e,t){let n=t;for(;n<e.length&&QD.test(e[n]);)n+=1;return n}function wO(e,t){let n=e.indexOf(`
|
|
24
|
-
`,t);return n===-1?e.length:n}function
|
|
25
|
-
`)return n;if(t===`"`)return n+1;n+=1}return n}function
|
|
26
|
-
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},PO=e=>t=>e===t,FO=e=>t=>e.test(t),Q={doubleQuote:PO(NO.doubleQuote),dash:PO(NO.dash),slash:PO(NO.slash),asterisk:PO(NO.asterisk),newLine:PO(NO.newLine),singleQuote:PO(NO.singleQuote),backtick:PO(NO.backtick),whiteSpace:FO(NO.whiteSpace),string:FO(NO.string),breakString:FO(NO.breakString),equal:PO(NO.equal),period:PO(NO.period),comma:PO(NO.comma),semicolon:PO(NO.semicolon),leftParent:PO(NO.leftParent),rightParent:PO(NO.rightParent),leftBracket:PO(NO.leftBracket),rightBracket:PO(NO.rightBracket)};function IO(e){let t=[],n=0,r=()=>n<e.length;for(;r();){let i=e[n];if(Q.whiteSpace(i)){let t=``;for(;r()&&Q.whiteSpace(i);)t+=i,i=e[++n];continue}if(Q.dash(i)&&Q.dash(e[n+1])){for(;r()&&!Q.newLine(i);)i=e[++n];continue}if(Q.slash(i)&&Q.asterisk(e[n+1])){for(n+=2,i=e[n];r()&&!(Q.asterisk(i)&&Q.slash(e[n+1]));)i=e[++n];n+=2;continue}if(Q.leftParent(i)){t.push({type:MO.leftParent,value:i}),n++;continue}if(Q.rightParent(i)){t.push({type:MO.rightParent,value:i}),n++;continue}if(Q.comma(i)){t.push({type:MO.comma,value:i}),n++;continue}if(Q.period(i)){t.push({type:MO.period,value:i}),n++;continue}if(Q.equal(i)){t.push({type:MO.equal,value:i}),n++;continue}if(Q.semicolon(i)){t.push({type:MO.semicolon,value:i}),n++;continue}if(Q.rightBracket(i)){t.push({type:MO.rightBracket,value:i}),n++;continue}if(Q.leftBracket(i)){let a=``;for(i=e[++n];r()&&!Q.rightBracket(i);)a+=i,i=e[++n];t.push({type:MO.string,value:a,quoted:!0}),n++;continue}if(Q.doubleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.doubleQuote(i);)a+=i,i=e[++n];t.push({type:MO.string,value:a,quoted:!0}),n++;continue}if(Q.singleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.singleQuote(i);)a+=i,i=e[++n];t.push({type:MO.string,value:a,quoted:!0}),n++;continue}if(Q.backtick(i)){let a=``;for(i=e[++n];r()&&!Q.backtick(i);)a+=i,i=e[++n];t.push({type:MO.string,value:a,quoted:!0}),n++;continue}if(Q.string(i)){let a=``;for(;r()&&Q.string(i)&&!Q.breakString(i)&&!(Q.dash(i)&&Q.dash(e[n+1]))&&!(Q.slash(i)&&Q.asterisk(e[n+1]));)a+=i,i=e[++n];t.push({type:MO.string,value:a});continue}n++}return t}var LO=`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(`.`),RO=`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(`.`),zO=`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(`.`),BO=`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(`.`),VO=`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(`.`),HO=`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(`.`),UO=`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(`.`),WO=`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(`.`),GO=e=>t=>n=>t[n]?t[n].type===e:!1,$=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},KO=GO(MO.string),qO=GO(MO.equal),JO=GO(MO.period),YO=GO(MO.comma),XO=GO(MO.semicolon),ZO=GO(MO.leftParent),QO=GO(MO.rightParent);MO.leftBracket,MO.rightBracket;var $O=$(`CREATE`),ek=$(`ALTER`),tk=$(`DROP`),nk=$(`USE`),rk=$(`RENAME`),ik=$(`DELETE`),ak=$(`SELECT`),ok=$(`TABLE`),sk=$(`INDEX`),ck=$(`UNIQUE`),lk=$(`ADD`),uk=$(`PRIMARY`),dk=$(`KEY`),fk=$(`CONSTRAINT`),pk=$(`FOREIGN`),mk=$(`NOT`),hk=$(`NULL`),gk=$(`DEFAULT`),_k=$(`COMMENT`),vk=$(`REFERENCES`),yk=$(`ASC`),bk=$(`DESC`),xk=$(`ON`),Sk=$(`AUTO_INCREMENT`),Ck=$(`AUTOINCREMENT`),wk=$(`IF`),Tk=$(`EXISTS`),Ek=$(`ONLY`),Dk=$(`IS`),Ok=$(`COLUMN`),kk=$(`CHARACTER`),Ak=$(`SET`),jk=$(`COLLATE`),Mk=$(`ENFORCED`),Nk=$(`RELY`),Pk=$(`NORELY`),Fk=$(`DEFERRABLE`),Ik=$(`INITIALLY`),Lk=$(`DEFERRED`),Rk=$(`IMMEDIATE`),zk=$(`IDENTITY`),Bk=$(`FUNCTION`),Vk=$(`CLUSTER`),Hk=$(`BY`),Uk=$(`FULLTEXT`),Wk=$(`SPATIAL`),Gk=e=>{let t=Mk(e),n=Nk(e),r=Pk(e),i=Fk(e),a=Ik(e),o=Lk(e),s=Rk(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},Kk=[[`SET`,`NULL`],[`SET`,`DEFAULT`],[`NO`,`ACTION`],[`CASCADE`],[`RESTRICT`]],qk=[`FULL`,`PARTIAL`,`SIMPLE`],Jk=e=>{let t=t=>{let n=e[t];return n&&n.type===MO.string&&!n.quoted?n.value.toUpperCase():``};return e=>t(e)===`ON`&&[`DELETE`,`UPDATE`].includes(t(e+1))?2+(Kk.find(n=>n.every((n,r)=>t(e+2+r)===n))?.length??0):t(e)===`MATCH`&&qk.includes(t(e+1))?2:0},Yk=e=>{let t=Uk(e),n=Wk(e),r=sk(e),i=dk(e);return e=>(t(e)||n(e))&&(r(e+1)||i(e+1))},Xk=[`ARRAY`,`MAP`,`STRUCT`],Zk=e=>{let t=KO(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||!Xk.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}},Qk=e=>{let t=Sk(e),n=Ck(e),r=zk(e);return e=>t(e)||n(e)||r(e)},$k=e=>{let t=Vk(e),n=Hk(e);return e=>t(e)&&n(e+1)},eA=e=>{let t=_k(e),n=xk(e);return e=>t(e)&&n(e+1)},tA=e=>{let t=eA(e),n=ok(e);return e=>t(e)&&n(e+2)},nA=e=>{let t=eA(e),n=Ok(e);return e=>t(e)&&n(e+2)},rA=e=>{let t=$O(e),n=ek(e),r=tk(e),i=nk(e),a=rk(e),o=ik(e),s=ak(e),c=eA(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)},iA=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],aA=e=>{let t=$O(e),n=ok(e),r=KO(e),i=Bk(e),a=wk(e),o=mk(e),s=Tk(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||!iA.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)}},oA=e=>{let t=kk(e),n=Ak(e);return e=>t(e)&&n(e+1)},sA=e=>{let t=aA(e);return e=>t(e)>0},cA=e=>{let t=$O(e),n=sk(e),r=ck(e);return e=>t(e)&&r(e+1)&&n(e+2)},lA=e=>{let t=$O(e),n=sk(e),r=cA(e);return e=>t(e)&&n(e+1)||r(e)},uA=e=>{let t=ek(e),n=ok(e);return e=>t(e)&&n(e+1)},dA=e=>{let t=KO(e),n=JO(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},fA=e=>{let t=uA(e),n=Ek(e),r=lk(e),i=fk(e),a=KO(e),o=dA(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}}},pA=e=>{let t=fA(e);return e=>t(e).length},mA=e=>{let t=fA(e);return e=>t(e).only},hA=e=>{let t=pA(e),n=uk(e),r=dk(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},gA=e=>{let t=pA(e),n=pk(e),r=dk(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},_A=e=>{let t=pA(e),n=ck(e);return e=>{let r=t(e);return r>0&&n(e+r)}},vA=Array.from(new Set([...LO,...RO,...zO,...BO,...VO,...HO,...UO,...WO].map(e=>e.toUpperCase()))),yA=(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})(vA),bA=e=>{let t=KO(e),n=ZO(e),r=QO(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 yA.get(i)??[]){let t=a(n,e);if(t)return t}return+!!vA.includes(i)}};function xA(e,t){let n=rA(e),r=KO(e),i=ZO(e),a=QO(e),o=JO(e),s=XO(e),c=qO(e),l=_k(e),u=$k(e),d=aA(e),f=()=>t.value<e.length,p={type:AO.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}=SA(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 SA(e,t){let n=KO(e),r=ZO(e),i=QO(e),a=YO(e),o=fk(e),s=sk(e),c=uk(e),l=pk(e),u=Qk(e),d=ck(e),f=hk(e),p=mk(e),m=gk(e),h=_k(e),g=bk(e),_=yk(e),v=dk(e),y=qO(e),ee=oA(e),te=jk(e),ne=Gk(e),re=bA(e),ie=Zk(e),ae=Jk(e),b=Yk(e),oe=()=>t.value<e.length,se=e=>o(e)||c(e)||l(e)||d(e)||s(e)||v(e)||b(e),ce=()=>{let o=[],s={name:``,sort:jO.asc},c=!1;for(t.value++;oe()&&!i(t.value);){if(r(t.value)){c||=!s.name;let e=0;for(;oe();){if(r(t.value))e++;else if(i(t.value)&&--e===0)break;t.value++}}n(t.value)&&!g(t.value)&&!_(t.value)&&(s.name=e[t.value].value),g(t.value)&&(s.sort=jO.desc),a(t.value)&&(o.push(s),s={name:``,sort:jO.asc}),t.value++}return s.name!==``&&o.push(s),t.value++,c?[]:o},le=[],x=[],ue=[],S=[],de=[],C={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},fe=!1;for(;oe();){let g=e[t.value],_=ie(t.value);if(_){let n=t.value+_,r=[];for(;t.value<n;)r.push(a(t.value)?`,`:e[t.value].value),t.value++;C.dataType=r.reduce((e,t)=>!e||t===`,`?e+t:`${e} ${t}`,``);continue}let pe=ae(t.value);if(pe){t.value+=pe;continue}if(!C.name&&se(t.value)&&(fe=!0),fe&&b(t.value)){t.value++;continue}if(n(t.value)&&!fe&&!C.name&&!p(t.value)&&!ne(t.value)){C.name=g.value,t.value++;continue}if(r(t.value)){let e=0;for(;oe();){if(r(t.value))e++;else if(i(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(o(t.value)){g=e[++t.value],n(t.value)&&t.value++;continue}if(c(t.value)){if(g=e[++t.value],v(t.value)){if(g=e[++t.value],fe&&n(t.value)&&(g=e[++t.value]),r(t.value)){for(g=e[++t.value];oe()&&!i(t.value);)n(t.value)&&S.push(g.value.toUpperCase()),g=e[++t.value];t.value++}else C.primaryKey=!0}continue}if(l(t.value)){let n=CA(e,t);n&&ue.push(n);continue}if(s(t.value)||v(t.value)){if(g=e[++t.value],n(t.value)){let n=g.value;if(g=e[++t.value],r(t.value)){let e=ce();e.length&&x.push({name:n,unique:!1,columns:e})}}continue}if(d(t.value)){g=e[++t.value];let a=s(t.value);(v(t.value)||a)&&(g=e[++t.value]);let o=``;if(!C.name&&n(t.value)&&(o=g.value,g=e[++t.value]),a&&o&&r(t.value)){let e=ce();e.length>1?x.push({name:o,unique:!0,columns:e}):de.push(...e.map(e=>e.name.toUpperCase()));continue}if(r(t.value)){for(g=e[++t.value];oe()&&!i(t.value);)n(t.value)&&de.push(g.value.toUpperCase()),g=e[++t.value];t.value++}else C.unique=!0;continue}if(p(t.value)){g=e[++t.value],f(t.value)?(C.nullable=!1,t.value++):ne(t.value)&&t.value++;continue}if(ne(t.value)){t.value++;continue}if(m(t.value)){g=e[++t.value],n(t.value)&&(C.default=g.quoted?`'${g.value.replaceAll(`'`,`''`)}'`:g.value,t.value++);continue}if(h(t.value)){g=e[++t.value],y(t.value)&&(g=e[++t.value]),n(t.value)&&(C.comment=g.value,t.value++);continue}if(u(t.value)){C.autoIncrement=!0,t.value++;continue}if(ee(t.value)){t.value+=2,n(t.value)&&t.value++;continue}if(te(t.value)){t.value++,y(t.value)&&t.value++,n(t.value)&&t.value++;continue}let me=re(t.value);if(me&&(fe||C.dataType)){t.value+=me;continue}if(me){let a=t.value+me,o=``,s=0;for(;t.value<a;)g=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))?` ${g.value}`:g.value:o?` ${g.value}`:g.value,t.value++;for(;s>0;)o+=`)`,s--;C.dataType=o;continue}if(a(t.value)){(C.name||C.dataType)&&le.push(C),C={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},fe=!1,t.value++;continue}if(i(t.value)){t.value++;break}t.value++}return!le.includes(C)&&(C.name||C.dataType)&&le.push(C),le.forEach(e=>{S.includes(e.name.toUpperCase())&&(e.primaryKey=!0),de.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:le,indexes:x,foreignKeys:ue}}function CA(e,t){let n=KO(e),r=ZO(e),i=QO(e),a=vk(e),o=JO(e),s=dk(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 wA(e,t){let n=rA(e),r=XO(e),i=KO(e),a=fk(e),o=JO(e),s=ok(e),c=pk(e),l=mA(e)(t.value),u=()=>t.value<e.length,d={type:AO.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=CA(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames);continue}t.value++}return d}function TA(e,t){let n=rA(e),r=XO(e),i=KO(e),a=ZO(e),o=QO(e),s=fk(e),c=uk(e),l=JO(e),u=dk(e),d=ok(e),f=mA(e)(t.value),p=()=>t.value<e.length,m={type:AO.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 EA(e,t){let n=rA(e),r=XO(e),i=KO(e),a=fk(e),o=JO(e),s=ok(e),c=ck(e),l=ZO(e),u=QO(e),d=mA(e)(t.value),f=()=>t.value<e.length,p={type:AO.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 DA(e,t){let n=rA(e),r=KO(e),i=JO(e),a=XO(e),o=Dk(e),s=hk(e),c=()=>t.value<e.length,l={type:AO.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 OA(e,t){let n=rA(e),r=KO(e),i=JO(e),a=XO(e),o=Dk(e),s=hk(e),c=()=>t.value<e.length,l={type:AO.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 kA(e,t){let n=rA(e),r=XO(e),i=ck(e),a=KO(e),o=ZO(e),s=QO(e),c=YO(e),l=sk(e),u=xk(e),d=bk(e),f=yk(e),p=cA(e),m=()=>t.value<e.length,h={type:AO.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:jO.asc};for(;m()&&!s(t.value);)a(t.value)&&!d(t.value)&&!f(t.value)&&(r.name=n.value),d(t.value)&&(r.sort=jO.desc),c(t.value)&&(h.columns.push(r),r={name:``,sort:jO.asc}),n=e[++t.value];!h.columns.includes(r)&&r.name!==``&&h.columns.push(r),t.value++}continue}t.value++}return h}function AA(e){let t=[],n={value:0},r=()=>n.value<e.length,i=sA(e),a=lA(e),o=hA(e),s=gA(e),c=_A(e),l=tA(e),u=nA(e);for(;r();){if(i(n.value)){t.push(xA(e,n));continue}if(a(n.value)){t.push(kA(e,n));continue}if(o(n.value)){t.push(TA(e,n));continue}if(s(n.value)){t.push(wA(e,n));continue}if(c(n.value)){t.push(EA(e,n));continue}if(l(n.value)){t.push(OA(e,n));continue}if(u(n.value)){t.push(DA(e,n));continue}n.value++}return t}var jA=e=>AA(IO(e));function MA(e,t,n){let r=qp({}),i=PA(NA(jA(e))),a=qh(i.length*100);return r.settings.width=a,r.settings.height=a,i.forEach(e=>FA(r,e,t)),IA(r,i),LA(r,i),qm(n?n(r):r)}function NA(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case AO.createTable:n.name&&t.tables.push(n);break;case AO.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case AO.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case AO.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&n.refColumnNames.length&&n.columnNames.length===n.refColumnNames.length&&t.foreignKeys.push(n);break;case AO.alterTableAddUnique:n.name&&n.columnNames.length&&t.uniques.push(n);break;case AO.commentOnTable:n.name&&t.tableComments.push(n);break;case AO.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function PA({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,tableComments:a,columnComments:o}){return t.forEach(t=>{let n=Tw(e,t.tableName);n&&n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=Tw(e,t.name);n&&t.columnNames.forEach(e=>{let t=Tw(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=Tw(e,t.name);n&&t.columnNames.forEach(e=>{let t=Tw(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=Tw(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames})}),a.forEach(({name:t,comment:n})=>{let r=Tw(e,t);r&&(r.comment=n)}),o.forEach(({tableName:t,columnName:n,comment:r})=>{let i=Tw(e,t);if(!i)return;let a=Tw(i.columns,n);a&&(a.comment=r)}),e}function FA({doc:e,collections:t},n,{toWidth:r}){let i=PS({name:n.name,comment:n.comment,ui:{widthName:U(r(n.name)),widthComment:U(r(n.comment))}});n.columns.forEach(e=>{let n=dC({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?z.autoIncrement:0)|(e.primaryKey?z.primaryKey:0)|(e.unique?z.unique:0)|(e.nullable?0:z.notNull),ui:{widthName:U(r(e.name)),widthComment:U(r(e.comment)),widthDataType:U(r(e.dataType)),widthDefault:U(r(e.default)),keys:e.primaryKey?B.primaryKey:0}});i.columnIds.push(n.id),i.seqColumnIds.push(n.id),N(t).collection(`tableColumnEntities`).setOne(n)}),e.tableIds.push(i.id),N(t).collection(`tableEntities`).setOne(i)}function IA({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds),i=N(t).collection(`tableColumnEntities`);n.forEach(n=>{if(!n.foreignKeys.length)return;let a=Tw(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=Tw(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];n.refColumnNames.forEach(e=>{let t=Tw(c,e);t&&l.push(t)}),n.columnNames.forEach(e=>{let t=Tw(o,e);t&&(u.push(t),G(t.ui.keys,B.primaryKey)?t.ui.keys|=B.foreignKey:t.ui.keys=B.foreignKey)});let d=mS({identification:!u.some(e=>!(G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey))),relationshipType:nh.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),N(t).collection(`relationshipEntities`).setOne(d)})})}function LA({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=Tw(r,n.name);if(!a)return;let o=N(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=ix({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=Tw(o,e.name);if(!t)return;let n=xx({indexId:c.id,columnId:t.id,orderType:e.sort===jO.asc?ih.ASC:ih.DESC});s.push(n)}),s.length!==0&&(s.forEach(e=>{c.indexColumnIds.push(e.id),c.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(c.id),N(t).collection(`indexEntities`).setOne(c))})})}function RA({doc:e,collections:t},n){let r=V(n);return N(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 zA({doc:e,collections:t},n){let r=V(n),i=N(t).collection(`indexColumnEntities`),a=[];for(let n of N(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 BA({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=w();s.push(n),u.set(t.sourceId,n),o.push(FS({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}}),US({id:n,value:t.name}),GS({id:n,value:t.comment}));for(let e of t.columnIds){let t=l.get(e);if(!t)continue;let r={id:w(),tableId:n};d.set(e,r.id),o.push(fC(r),gC({...r,value:t.name}),bC({...r,value:t.dataType}),SC({...r,value:t.default}),vC({...r,value:t.comment}),EC({...r,value:G(t.options,z.primaryKey)}),AC({...r,value:G(t.options,z.notNull)}),OC({...r,value:G(t.options,z.unique)}),wC({...r,value:G(t.options,z.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=VA(e.start.columnIds,d),i=VA(e.end.columnIds,d);!r||!i||o.push(hS({id:w(),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=VA(e.indexColumns.map(({columnId:e})=>e),d);if(!n)continue;let r=w();o.push(ax({id:r,tableId:t}),lx({id:r,tableId:t,value:e.name}),dx({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=w(),s=n[i];o.push(Cx({id:a,indexId:r,tableId:t,columnId:s}),kx({id:a,indexId:r,columnId:s,value:e}))})}for(let e of n){let t=a.get(e.sourceId);if(!t)continue;let n=w();c.push(n),o.push(Bx({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}}),Jx({id:n,value:e.value}))}return{actions:o,tableIds:s,memoIds:c}}function VA(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function HA(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),N(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]})}}})),HA(e,t,n)),n}const UA=ag.flow,WA={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==Jm.visualization&&(yield wv({value:Jm.visualization})),t.visualizationMode!==og.flow&&(yield Lg({value:og.flow})),yield t.views.flow?Fg({tableIds:e,kind:UA}):_g({kind:UA,centerIds:e}))}};function GA(e){return Object.entries(e).reduce((e,[t,n])=>(n===rg.table?e.tableIds.push(t):n===rg.memo&&e.memoIds.push(t),e),{tableIds:[],memoIds:[]})}const KA=e=>function*(){yield zy(),yield Hy({value:e})},qA=e=>function*(){yield Wy(),yield Ky({value:e})},JA=(e,t,n=`document`)=>function*(r){let{tableIds:i,memoIds:a}=GA(r.editor.selectedMap),{zoomLevel:o}=V_(r,n),s=e/o,c=t/o;if(n!==`document`){i.length&&(yield Hg(Vg.drag,kg({ids:i,movementX:s,movementY:c,kind:n})));return}i.length&&(yield Hg(Vg.drag,LS({ids:i,movementX:s,movementY:c}))),a.length&&(yield Hg(Vg.drag,Hx({ids:a,movementX:s,movementY:c})))},YA=()=>function*(){yield dw(),yield tw()},XA=(e,t)=>function*(n){yield*QA(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})},ZA=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*QA(i,{input:tj(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:Ke(n.x,4),y:Ke(n.y,4)},escapeCollision:r})};function*QA(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=N(s).collection(`tableEntities`),l=N(s).collection(`memoEntities`),{actions:u,tableIds:d,memoIds:f}=BA(t,ej(cw({entities:[...t.tables.map($A),...t.memos.map($A)],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield rj(),yield u,yield Fy({...d.reduce((e,t)=>(e[t]=rg.table,e),{}),...f.reduce((e,t)=>(e[t]=rg.memo,e),{})})}const $A=({sourceId:e,ui:{x:t,y:n,zIndex:r}})=>({sourceId:e,ui:{x:t,y:n,zIndex:r}});function ej(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:Ke(t,4),y:Ke(n,4),zIndex:r}]))}function tj(e,{tableIds:t,memoIds:n}){let{collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=i.flatMap(e=>N(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:RA(e,s),indexes:zA(e,s)}}const nj=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=Xg(n,t),o={...N(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=j_(n,i,t);return Sw(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=rg.table),r},{}),...N(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=o_(n),i=s_(n);return Sw(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=rg.memo),t},{})};yield rj(),Ge(o)||(yield Fy(o))},rj=()=>function*(){yield Ny(),yield Qy()},ij=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===sg.Tab&&!t&&(yy(r.focusType)&&_y(n)&&!oy(n)||!yy(r.focusType)&&sy(n)&&ly(n))?yield _w(r.tableId):yield eb({moveKey:e,shiftKey:t}))},aj=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield vb():yield mb({relationshipType:e})},oj=e=>function*({collections:t}){let n=N(t).collection(`tableEntities`).selectById(e);if(n){if(!N(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>G(e.options,z.primaryKey))){let t=w();yield fC({tableId:e,id:t}),yield EC({tableId:e,id:t,value:!0}),yield Xy({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1})}yield gb({tableId:e})}},sj=e=>function*({editor:{selectedMap:t},collections:n}){let{tableIds:r,memoIds:i}=GA(t),a=N(n).collection(`tableEntities`).selectByIds(r),o=N(n).collection(`memoEntities`).selectByIds(i);yield a.map(t=>qS({id:t.id,color:e,prevColor:t.ui.color})),yield o.map(t=>Xx({id:t.id,color:e,prevColor:t.ui.color}))},cj=e=>function*({settings:t},n){yield KA(MA(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield ZS()},lj=e=>function*({settings:t},n){yield KA(kO(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield ZS()},uj=e=>function*({settings:t},n){yield KA(aD(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield ZS()},dj=e=>function*({settings:t},n){yield KA(YT(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield ZS()},fj=e=>function*({editor:{focusTable:t}}){!t||!t.columnId||(yield Mb({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))};function pj(e,t,n){let r=[...t],i=[];for(let t of n){let n=r.indexOf(t);if(n===-1)return[];let a=r[r.length-1];t!==a&&(r.splice(n,1),r.push(t),i.push(MC({tableId:e,id:t,targetId:a})))}return ce(r,t)?[]:i}const mj=(e,t)=>function*({editor:{draggableColumn:n},collections:r}){if(!n||n.columnIds.length===0)return;let{tableId:i,columnIds:a}=n,o=N(r).collection(`tableEntities`),s=o.selectById(i);if(!s)return;if(t===i){let t=s.columnIds.indexOf(a[0]);if(t===-1)return;if(e===null){yield pj(i,s.columnIds,a);return}let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>MC({tableId:i,id:t,targetId:e}));t<n&&r.reverse(),yield r;return}if(!o.selectById(t))return;let c=N(r).collection(`tableColumnEntities`).selectByIds(a);if(c.length===0)return;yield vw(i,a);let l=c.map(()=>w());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[fC(a),gC({...a,value:r.name}),bC({...a,value:r.dataType}),SC({...a,value:r.default}),vC({...a,value:r.comment}),EC({...a,value:G(r.options,z.primaryKey)}),AC({...a,value:G(r.options,z.notNull)}),OC({...a,value:G(r.options,z.unique)}),wC({...a,value:G(r.options,z.autoIncrement)}),...e===null?[]:[MC({...a,targetId:e})],Xy({tableId:t,columnId:i,focusType:W.columnName,$mod:!0,shiftKey:!1})]}yield Mb({tableId:t,columnIds:l})},hj=e=>function*(t){let{columnIds:n,relationshipIds:r}=HA([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield Sb({columnIds:ye(n)}),yield wb({relationshipIds:ye(r)})},gj=()=>function*(){yield Sb({columnIds:[]}),yield wb({relationshipIds:[]})},_j={loadJsonAction$:KA,initialLoadJsonAction$:qA,moveAllAction$:JA,removeSelectedAction$:YA,pasteEntitiesAction$:XA,duplicateAction$:ZA,dragSelectAction$:nj,unselectAllAction$:rj,focusMoveTableAction$:ij,drawStartRelationshipAction$:aj,drawStartAddRelationshipAction$:oj,changeColorAllAction$:sj,loadSchemaSQLAction$:cj,loadSchemaGraphQLAction$:lj,loadSchemaDBMLAction$:uj,loadSchemaAMLAction$:dj,dragstartColumnAction$:fj,dragoverColumnAction$:mj,columnKeyHoverStartAction$:hj,columnKeyHoverEndAction$:gj,...WA},vj={addIndexAction$:e=>function*(){yield ax({id:w(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=N(t).collection(`indexEntities`).selectById(e);n&&(yield dx({id:e,tableId:n.tableId,value:!n.unique}))}},yj={addIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.seqIndexColumnIds).find(e=>e.columnId===t);i?yield Cx({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield Cx({id:w(),indexId:e,tableId:r.tableId,columnId:t})},removeIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.indexColumnIds).filter(e=>e.columnId===t);for(let t of i)yield Tx({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=N(t).collection(`indexColumnEntities`).selectById(e);n&&(yield kx({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===ih.ASC?ih.DESC:ih.ASC}))},moveIndexColumnAction$:(e,t)=>function*({collections:n}){if(e===t)return;let r=N(n).collection(`indexColumnEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexEntities`).selectById(r.indexId);i&&(yield Dx({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},bj={addRelationshipAction$:(e,t,n)=>function*({doc:{tableIds:r},collections:i}){let a=N(i).collection(`tableEntities`).selectByIds(r),o=a.find(({id:t})=>t===e),s=a.find(({id:e})=>e===t);if(!o||!s)return;let c=N(i).collection(`tableColumnEntities`).selectByIds(o.columnIds).filter(({options:e})=>G(e,z.primaryKey)),l=c.length?null:dC({tableId:o.id}),u=l?[l]:c,d=u.map(()=>w());yield[...l?[fC({id:l.id,tableId:o.id}),EC({id:l.id,tableId:o.id,value:!0})]:[],...iw(u,s.id,d),hS({id:w(),relationshipType:n,start:{tableId:o.id,columnIds:u.map(({id:e})=>e)},end:{tableId:s.id,columnIds:d}})]}};function xj(e,t,n,r){let i=G_({...e,zoomLevel:t},n);return{movementX:Ke(r.x-i.x,4),movementY:Ke(r.y-i.y,4)}}function Sj(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2};return xj(t,n,K_(t,i),i)}const Cj={changeZoomLevelAction$:(e,t)=>function*(n){let r=H_(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=Sj(n,r,Jh(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield Tg({value:e,kind:t}),yield xg({...c,kind:t});return}yield uv({value:e}),yield gv(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=H_(n,t),i=Sj(n,r,Jh(r.zoomLevel+e));if(t&&t!==`document`){yield Dg({value:e,kind:t}),yield Cg({...i,kind:t});return}yield fv({value:e}),yield vv(i)}},wj=Object.freeze({...$b,..._j,...mx,...vj,...Mx,...yj,...rS,...rw,...SS,...bj,...Gv,...Cj,...eC,...pw,...FC,...xw}),Tj=`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(`,`),Ej=V([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),Dj=[...Tj.filter(e=>!Ej(e))],Oj=V([`editor.loadJson`,`editor.clear`]),kj=[...Dj.filter(e=>!Oj(e))],Aj=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...Tj,...Aj];const jj=[`table.move`,`memo.move`],Mj=[`table.changeColor`,`memo.changeColor`],Nj=[`settings.streamZoomLevel`,`settings.streamScrollTo`],Pj=[...Object.keys(XC)],Fj=[...Object.keys(YC),...Pj];function Ij(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function Lj(e,t,n){Ij(e,t),t.set(e,n)}function Rj(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 zj(e,t){return e.get(Rj(e,t))}function Bj(e,t,n){return e.set(Rj(e,t),n),n}var Vj=new WeakMap,Hj=class{constructor(){Lj(this,Vj,0),_i(this,`getVersion`,()=>zj(Vj,this)),_i(this,`getNextVersion`,()=>this.getVersion()+1),_i(this,`merge`,e=>(!S(e)||!Number.isInteger(e)||this.getVersion()<e&&Bj(Vj,this,e),this))}};function Uj(e){return{...e,clock:new Hj}}function Wj({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=>Wj(e,{commands:[...i],cursor:a,limit:o})})}const Gj=Oe(e=>!!e.length),Kj=e=>{let t=V(e);return e=>new xe(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gj)},qj=`@@none-stream`,Jj=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n)?n:qj},Yj=(e,t=[],n=Ee(200))=>{let r=V(e),i=t.map(([e,t])=>[e,V(t)]),a=Jj(r,i);return e=>new xe(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(Gj,Ae(e=>a(e[0].type)),Ne(e=>e.key===qj?e:e.pipe(Te(e.pipe(n)),je(e=>e.flat()))))},Xj=e=>{let t=t=>x(t.tags)||!e.some(e=>G(t.tags,e));return e=>new xe(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gj)};V(Pj),V(Aj);const Zj=e=>t=>t.pipe(Le(t=>e.pipe(Re(1),je(()=>t)))),Qj=(e,t=[])=>{let n=V(Dj),r=e=>!x(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gj)},$j={[K.scrollTo]:P.viewScrollTo,[K.streamScrollTo]:P.viewStreamScrollTo,[K.changeZoomLevel]:P.viewChangeZoomLevel,[K.streamZoomLevel]:P.viewStreamZoomLevel},eM=({tags:e})=>!x(e)&&(G(e,Vg.shared)||G(e,Vg.following)),tM=e=>{let t=$j[e.type];return t&&!eM(e)?{...e,type:t}:e},nM=e=>t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.map(tM):t)},error:e=>n.error(e),complete:()=>n.complete()})),rM=(e,t=[])=>{let n=V(kj),r=e=>!x(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Gj)};function iM(e,t){return zu({context:e,state:{...qp({}),editor:cg(),lww:{}},reducers:{...Qb,...$S,...PC,...nS,...xS,...Wv,...px,...jx},enableObservable:t??!0})}const aM=new WeakMap,oM=()=>({boxes:new Map,entries:new Map});function sM(e,t=`document`){let n=aM.get(e);return n||(n={document:oM(),flow:oM()},aM.set(e,n)),n[t]}function cM(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function lM(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 uM(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function dM(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 fM(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function pM(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(fM(n,e))return!0;return!1}function mM(){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 hM(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 gM(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=cM(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?uM(c,s)||i.push(lM(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 _M(e){return 50+e%4*12}function vM(e,t){return e.tableId===t.tableId?null:e.direction===R.right&&t.direction===R.left?t.x-e.x:e.direction===R.left&&t.direction===R.right?e.x-t.x:e.direction===R.bottom&&t.direction===R.top?t.y-e.y:e.direction===R.top&&t.direction===R.bottom?e.y-t.y:null}function yM(e,t){return t===null||t<=0?e:Math.max(36,Math.min(e,t/2-1))}function bM(e){return e===R.left||e===R.right}function xM(e){return e===R.right||e===R.bottom?1:-1}function SM(e,t,n){let r=xM(t);return bM(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function CM({start:e,end:t},[n,r]){let i=vM(e,t),a=yM(_M(n),i),o=yM(_M(r),i);return{m:SM(e,e.direction,a),l:SM(t,t.direction,o),startStub:a,endStub:o}}function wM(e,t=`document`){let{tableIds:n}=Xg(e,t),r=N(e.collections).collection(`tableEntities`).selectByIds(n),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((n,r)=>{let i=k_(e,n,t);a.ids[r]=n.id,a.left[r]=i.lt.x+2,a.top[r]=i.lt.y+2,a.right[r]=i.rb.x-2,a.bottom[r]=i.rb.y-2}),a}function TM(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 EM(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)&&TM(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function DM(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 OM(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 kM(e,t,n,r,i){let a=bM(t),o=bM(r),s=xM(t),c=xM(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=OM(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=OM(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=OM(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=OM(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=OM(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=OM(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=OM(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=OM(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 AM(e,t,n,r,i,a,o){let s=kM(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=EM(e.points,i,a,o)*1e5+e.bends*36+DM(e.points);t<l&&(l=t,c=e.points)}return c||(bM(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 jM=[10,7,4],MM=jM[jM.length-1]-.5;function NM(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 PM(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function FM(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function IM(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 LM(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 RM(e,t,n,r){let i=[],a=[];for(let t of NM(e))(t.vertical?i:a).push(t);for(let e of[i,a]){IM(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||PM(e,t));let a=[],o=()=>{a.length>1&&zM(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 zM(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||PM(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&GM(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 BM(e,t){return e.high+10>t.low&&t.high+10>e.low}function VM(e,t){return Math.abs(e.coordinate-t.coordinate)>=MM?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function HM(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+=VM(i,e[t]);for(let e of t)n+=VM(i,e)}return n}function UM(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+MM,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function WM(e){let t=[];for(let n of e){let e=t.find(e=>!BM(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function GM(e,t,n,r,i){if(!i){KM(e,t,n,r);return}if(qM(e,i))return;let a=e.map(e=>e.coordinate);KM(e,t,n,r),JM(e,a,i)}function KM(e,t,n,r){let i=UM(e,t),a=HM(e,i);if(!a)return;let o=new Map,s=e.map(e=>(o.set(e,tN(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=YM(e),u=null,d=1/0;for(let t of jM){let a=null,f=1/0;for(let p of l){eN(p,t,c,o,n,r);let l=HM(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=QM(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}$M(e,s)}if(a){$M(e,a);return}}u&&d<a&&$M(e,u)}function qM(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 $M(e,n),!0}function JM(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 YM(e){let t=WM(e),n=XM(t);return t.length===e.length?n:[...n,...XM(e.map(e=>[e]))]}function XM(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,FM)-t(n,FM)||t(e,ZM)-t(n,ZM)||PM(e[0],n[0])),r=[...e].sort((e,n)=>t(e,ZM)-t(n,ZM)||t(e,FM)-t(n,FM)||PM(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function ZM(e){return e.coordinate}function QM(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function $M(e,t){e.forEach((e,n)=>{LM(e,t[n]),e.coordinate=t[n]})}function eN(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=>BM(l,e)))return!1;let c=o+r*t;return LM(l,c),aN(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||LM(l,l.coordinate)}})}function tN(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:EM(e.points,t,r?.[0]??``,r?.[1]??``),crossed:oN(e.points),own:i,intruded:iN(e.points,t,i),beforeDelta:nN(e,-1),afterDelta:nN(e,1)}}function nN(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 rN(e,t){return Math.abs(t)>=.5&&e*t<=0}function iN(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(TM(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function aN(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&&rN(nN(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&rN(nN(e,1),r.afterDelta)||iN(e.points,t,r.own)>r.intruded||!r.crossed&&oN(e.points))return!1;let c=n.get(e.relationshipId);return EM(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function oN(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(sN(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function sN(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 cN={[H.top]:R.top,[H.bottom]:R.bottom,[H.left]:R.left,[H.right]:R.right},lN=Math.PI*2,uN=.15,dN={[H.top]:-Math.PI,[H.right]:-Math.PI/2,[H.bottom]:0,[H.left]:Math.PI/2},fN={[H.top]:!1,[H.right]:!1,[H.bottom]:!0,[H.left]:!0};function pN(e,t=`document`){Nh(t);let{tableIds:n,relationshipIds:r}=Xg(e,t),{collections:i}=e,a=V(n),o=N(i).collection(`tableEntities`),s=N(i).collection(`relationshipEntities`).selectByIds(r).filter(({start:e,end:t})=>a(e.tableId)&&a(t.tableId)),c=new Map,l=new Map,u=new Map,d=TN(s);for(let n of s){let r=wN(n),{start:i,end:a}=r,s=o.selectById(i.tableId),f=o.selectById(a.tableId);if(!(!s||!f)){if(l.set(n,r),u.set(r.id,[0,0]),i.tableId===a.tableId)bN(yN(e,c,s,t),r);else{let n=yN(e,c,s,t),o=yN(e,c,f,t),[l,u]=kN(n.objectPoint,o.objectPoint,r);n[l].push({id:r.id,isStart:!0,point:i,angle:ON(l,n,o),tie:d.tieAt(r.id,i.tableId,a.tableId)}),o[u].push({id:r.id,isStart:!1,point:a,angle:ON(u,o,n),tie:d.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of c.values())for(let t of gh)AN(t,e,u);for(let[e,n]of l.entries())kh(e,u.get(n.id)??[0,0],t),Fh(e,n,t);t===`document`?hN(e,l,u):mN(l,u,t)}function mN(e,t,n){for(let[r,i]of e.entries()){let{id:e,start:a,end:o}=i;if(a.tableId===o.tableId)continue;let{m:s,l:c}=CM(i,t.get(e)??[0,0]);jh(r,[s,c],n)}}function hN(e,t,n){let r=wM(e),i=sM(e),a=gM(i,r),o=i.entries,s=new Map,c=new Set,l=mM();if(a)for(let e of a)l.markBox(e);let u=new Map,d=new Map,f=new Map;for(let[e,i]of t.entries()){let{id:t,start:p,end:m}=i;if(p.tableId===m.tableId)continue;let{m:h,l:g}=CM(i,n.get(t)??[0,0]),_=o.get(t),v,y;a!==null&&_!==void 0&&vN(_,h,g,p,m)&&!pM(_.bounds,a)?(v=_.pristine,y=gN(v)):(y=AM(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=gN(y),c.add(t),_&&hM(l,_.nudged),hM(l,v)),u.set(t,y),d.set(t,[p.tableId,m.tableId]),f.set(t,e),s.set(t,{mx:h.x,my:h.y,mDirection:p.direction,lx:g.x,ly:g.y,lDirection:m.direction,startTableId:p.tableId,endTableId:m.tableId,pristine:v,nudged:y,bounds:dM(v)})}if(a)for(let[e,t]of o)s.has(e)||hM(l,t.nudged);RM(u,r,d,a===null?void 0:_N(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&jh(n,t)}i.entries=s}function gN(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function _N(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 vN(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 yN(e,t,n,r){let i=t.get(n.id);if(!i){let a=k_(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,selfCount:0,top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function bN(e,t){let{rt:n,width:r,height:i}=e.objectPoint,a=e.selfCount++,o=CN(Math.min(r,i)*uN,20,60)+a*14;t.start.direction=R.top,t.start.x=n.x-o,t.start.y=n.y,t.end.direction=R.right,t.end.x=n.x,t.end.y=n.y+o}function xN(e,t){let{width:n,height:r}=e.objectPoint;return CN(Math.min(n,r)*uN,20,60)+t*14}function SN(e){return e.selfCount?xN(e,e.selfCount-1)+8:0}function CN(e,t,n){return Math.min(Math.max(e,t),n)}function wN({id:e,start:t,end:n}){return{id:e,start:vh(t),end:vh(n)}}function TN(e){let t=new Map;for(let{id:n,start:r,end:i}of e){let e=EN(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 EN(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function DN(e){let t=e%lN;return t<0?t+lN:t}function ON(e,t,n){return DN(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-dN[e])}function kN(e,t,n){let r=[H.bottom,H.bottom],i=A_(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=R.bottom,n.end.direction=R.bottom;for(let a of gh)for(let o of gh){let s=a,c=o,l=A_(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=cN[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=cN[c])}return r}function AN(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===H.top||e===H.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=SN(t);if(c&&(e===H.top?s-=c:e===H.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=fN[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===H.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===H.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}const jN=(e,t)=>e.pipe(He(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,identification:r}=e,i=N(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=V(i.columnIds),o=N(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>G(e.options,z.primaryKey));s!==r&&(e.identification=s)}}),MN=(e,t)=>e.pipe(He(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,startRelationshipType:r}=e,i=N(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=V(i.columnIds),o=N(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>G(e.options,z.notNull))?rh.dash:rh.ring;s!==r&&(e.startRelationshipType=s)}}),NN=V([LS.type,zS.type,Hx.type]),PN=({tags:e})=>!x(e)&&G(e,Vg.drag)?Ue(5):Ue(0,we),FN=(e,t)=>e.pipe(Be(e=>{NN(e.type)||u_()}),Ve(PN,{leading:!1,trailing:!0})).subscribe(()=>{pN(t())}),IN=V([bv.type,Bv.type,Hx.type]),LN=V([xg.type,Cg.type,Tg.type,Dg.type]),RN=({id:e})=>[e],zN=({ids:e})=>e,BN=({tableId:e})=>[e],VN=(e,{kind:t})=>t,HN=()=>ag.flow,UN=(e,{kind:t})=>t??ug(e)?.kind??null,WN={[_g.type]:VN,[yg.type]:VN,[jg.type]:VN,[Fg.type]:HN,[Ng.type]:UN,[kg.type]:UN},GN={[FS.type]:RN,[VS.type]:RN,[zS.type]:RN,[US.type]:RN,[GS.type]:RN,[hS.type]:RN,[_S.type]:RN,[LS.type]:zN,[kg.type]:zN,[fC.type]:BN,[mC.type]:BN,[gC.type]:BN,[vC.type]:BN,[bC.type]:BN,[SC.type]:BN,[EC.type]:BN};function KN(e,t){let{tableIds:n,relationshipIds:r}=Xg(e,t);return new Set([...n,...r])}function qN(e,t,n,r){if(IN(t.type)||LN(t.type))return!1;let i=WN[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=GN[t.type];if(!a)return!0;let o=KN(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const JN=[ag.flow],YN=(e,t)=>{let n={flow:new Set},r=new Set;return e.pipe(Oe(e=>{let i=t(),a=!1;for(let t of JN)dg(i,t)&&qN(i,e,n[t],t)&&(r.add(t),a=!0);return a}),Ve(PN,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)dg(e,t)&&(pN(e,t),n[t]=KN(e,t))})},XN=[bv,Bv,hS,_S,Hx,FS,VS,LS,zS,US,GS,fC,mC,gC,vC,bC,SC,ZS],ZN=[EC],QN=[_g,yg,xg,Cg,Tg,Dg,kg,jg,Ng,Fg],$N=[[[mC,EC,Hy,Ky],jN],[[mC,AC,Hy,Ky],MN],[XN,FN],[[...XN,...ZN,...QN],YN]],eP=[[[Hy,Ky],(e,t,n)=>e.pipe(He(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let e=t();w_(e,n),pN(e)})],[[VS],(e,t)=>e.pipe(Pe(we)).subscribe(()=>{let{doc:e,editor:n}=t(),r=n.drawRelationship?.start;!r||e.tableIds.includes(r.tableId)||(n.drawRelationship=null)})]],tP=e=>e.pipe(Pe(we)),nP=[[[EC],(e,t)=>tP(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=N(n).collection(`tableColumnEntities`).selectById(e);r&&G(r.options,z.primaryKey)&&(G(r.options,z.notNull)||(r.options|=z.notNull))})],[[hS],(e,t)=>tP(e).subscribe(({payload:{id:e,end:n}})=>{let{doc:{relationshipIds:r},collections:i}=t();if(!r.includes(e))return;let a=N(i).collection(`tableColumnEntities`).selectByIds(n.columnIds);for(let e of a)e.ui.keys=e.ui.keys|B.foreignKey})],[[_S],(e,t)=>tP(e).subscribe(({payload:{id:e}})=>{let{doc:{relationshipIds:n},collections:r}=t();if(n.includes(e))return;let i=N(r).collection(`relationshipEntities`).selectById(e);if(!i)return;let a=N(r).collection(`tableColumnEntities`).selectByIds(i.end.columnIds);for(let e of a)e.ui.keys=e.ui.keys&~B.foreignKey})],[[Hy,Ky],(e,t)=>tP(e).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds),i=N(n).collection(`tableEntities`).selectByIds(e.tableIds),a=new Set,o=N(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|B.foreignKey,a.add(e.id)}for(let e of i){let t=o.selectByIds(e.columnIds);for(let e of t)G(e.ui.keys,B.foreignKey)&&!a.has(e.id)&&(e.ui.keys=e.ui.keys&~B.foreignKey)}})]],rP=[...eP,...nP,...$N];function iP(e){let t=()=>e.state,n=rP.map(([n,r])=>{let i=new Se;return{pattern:V(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 aP(e,{getReadonly:t=()=>!1,getHistory:n,manualStreamFlush:r=!1,observable:i=!0}={}){let a=new Set,o=iM(e,i),s=iP(o),c={notify:e=>o.dispatch(ky(e)),dispatch:o.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},l=n?.(c)??Wj(c);l.setLimit(2048);let u=()=>ug(o.state),d=new Se,f=d.pipe(nM(u)),p=new Se,m=new Se,h=new Se,g=m.pipe(Ie(void 0),Le(()=>p.pipe(Yj(Pj,[[`@@move`,jj],[`@@scroll`,Nj],[`@@color`,Mj]],r?Zj(h):void 0)))),_=new xe(e=>o.subscribe(t=>e.next(t))).pipe(Kj(Tj),Qj(t,[Vg.shared]),Ee(200)),v=(...t)=>{let n=e.clock.getNextVersion();return Fu(o.state,o.context,t).map(e=>(x(e.version)&&(e.version=n),e))},y=(...e)=>{let t=v(e);d.next(t)},ee=(...e)=>{queueMicrotask(()=>y(e))},te=()=>{Array.from(a).forEach(e=>le(e)?e():e.unsubscribe()),a.clear(),o.destroy(),s.destroy(),l.clear(),d.complete(),h.complete()},ne=()=>{m.next(),l.clear()},re=()=>{t()||u()||l.undo()},ie=()=>{t()||u()||l.redo()},ae=()=>{r&&h.next()};return a.add(g.subscribe($C(o,l))).add(f.pipe(Kj(Fj),Xj([Vg.changeOnly,Vg.shared]),Qj(t),rM(u)).subscribe(p)).add(f.pipe(Qj(t,[Vg.shared]),rM(u,[Vg.shared])).subscribe(o.dispatchSync)).add(o.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...o,dispatch:ee,dispatchSync:y,destroy:te,undo:re,redo:ie,history:l,resetHistory:ne,change$:_,flushStreamBuffers:ae})}const oP={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,schemaGC:`schemaGC`,toggleSearch:`toggleSearch`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var sP=new WeakMap,cP=class{constructor(){Lj(this,sP,new Set)}on(e){return zj(sP,this).has(e)||zj(sP,this).add(e),()=>{zj(sP,this).delete(e)}}emit(e){zj(sP,this).forEach(t=>{JC(Reflect.get(t,e.type),e)})}clear(){zj(sP,this).clear()}};const lP=k(oP.openColorPicker);k(oP.closeColorPicker),k(oP.openToast),k(oP.openTableProperties);const uP=k(oP.dragendColumnAll);k(oP.copy),k(oP.paste),k(oP.schemaGC),k(oP.toggleSearch),k(oP.openThemeBuilder),k(oP.setThemeOptions),k(oP.mouseTrackerStart),k(oP.mouseTrackerEnd),k(oP.openDiffViewer),k(oP.openAutomaticTablePlacement);const dP=k(oP.duplicateDragStart);k(oP.dragSelectStart);const fP=Ze();let pP=fP.os.name===`mac`,mP=fP.os.name===`ios`;fP.os.name,fP.os.name,fP.browser.name,fP.browser.name,fP.browser.name,Qe(e=>{pP=e.os.name===`mac`,mP=e.os.name===`ios`,e.os.name,e.os.name,e.browser.name,e.browser.name,e.browser.name});const hP=()=>pP||mP,gP={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`,focusView:`focusView`,zoomIn:`zoomIn`,zoomOut:`zoomOut`,zoomReset:`zoomReset`,handTool:`handTool`,zenMode:`zenMode`};Object.values(gP);const _P=()=>({[gP.edit]:[{shortcut:`Enter`}],[gP.stop]:[{shortcut:`Escape`}],[gP.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[gP.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[gP.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[gP.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[gP.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[gP.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[gP.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[gP.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[gP.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[gP.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[gP.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[gP.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[gP.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[gP.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[gP.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[gP.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[gP.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[gP.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[gP.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[gP.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[gP.handTool]:[{shortcut:`Space`,preventDefault:!0}],[gP.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]}),vP={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};vP.Shift,vP.Meta,vP.Alt,vP.Control,vP.Shift,vP.Meta,vP.Alt,vP.Control;function yP(e){return hP()?e.metaKey:e.ctrlKey}function bP(e,t){let{devtools:n=!0,...r}=t??{},i=Uj(e),a=aP(i,r),o=ja(_P(),{shallow:!0}),s=new Se,c=new Se,l=new cP;return Object.freeze({...i,actions:wj,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l})}const xP=xi({}),SP=(e,t)=>Ka(e,{...xP,value:t??xP.value});function CP(e){e.store.dispatchSync(Wy()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const wP=[`table`,`memo`,`relationship`],TP=e=>typeof e==`string`&&wP.includes(e);function EP(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 DP=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),OP=new WeakMap,kP=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function AP(e){return e.on(kP,t=>{let n=t.evt,r=EP(n),i=OP.get(e),a=n.type===`contextmenu`&&DP(i?.point,r)?i?.hit??null:t.target===e?null:MP(t.target);OP.set(e,{evt:n,hit:a,point:r})}),()=>{e.off(kP),OP.delete(e)}}function jP(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 MP(e){let t=e;for(;t;){let e=t.getAttr(`kind`);if(TP(e))return{kind:e,id:jP(t,e)};t=t.getParent()}return null}const NP=xi({}),PP=e=>Ka(e,NP);function FP({app:e,container:t,scene:n,width:r,height:i,theme:a}){let o=new y({container:t,width:r,height:i}),s={host:o.container(),parentElement:null},c=qa(s,xP,e),l=a?qa(s,NP,a):null,u=AP(o);return qf(o,n),{stage:o,destroy:()=>{u(),qf(o,null),l?.destroy(),c.destroy(),o.destroy()}}}const IP=e=>new Promise(t=>setTimeout(t,e)),LP=32767;function RP(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,LP/r,16384/Math.sqrt(i))}function zP({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 BP(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=I_(e);if(G(t,F.relationship)){let e=N(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=zh(t);i=i?F_(i,e):e}}return zP(i??{x:0,y:0,width:0,height:0},80)}function VP({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,LP/i,Math.sqrt(268435456/a))}const HP={"arrow-right":$e,atom:et,braces:tt,brackets:nt,"case-sensitive":rt,check:it,"chevron-down":at,"chevron-right":ot,code:st,contrast:ct,copy:lt,database:ut,diff:dt,"external-link":ft,eye:pt,"file-diff":mt,"file-image":ht,"file-input":gt,"file-output":_t,fullscreen:vt,"grip-vertical":yt,hand:bt,"key-round":xt,maximize:St,minimize:Ct,minus:wt,"moon-star":Tt,"mouse-pointer-2":Et,network:Dt,palette:Ot,plus:kt,"redo-2":At,"refresh-cw":jt,"rotate-ccw-clock":Mt,search:Nt,settings:Pt,"share-2":Ft,spline:It,"sticky-note":Lt,sun:Rt,table:zt,"table-2":Bt,"table-properties":Vt,"undo-2":Ht,"wand-sparkles":Ut,waypoints:Wt,workflow:Gt,x:Kt},UP={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`}]]},WP={};GP();function GP(){for(let e of Object.keys(HP))WP[e]={name:e,node:HP[e]};for(let e of Object.keys(UP))WP[e]={name:e,node:UP[e]}}function KP(e){return WP[e]}const qP=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`;Vd.global`
|
|
23
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(pM.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
24
|
+
`)}const yM=/^[0-9a-z ]+$/,bM=/'/g,xM=/\?/g;function SM(e){try{return{ok:!0,model:wM(hM(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function CM(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function wM(e){let t=CM(e),n={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]},r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e))},o=e=>{a(e),$M(t)};for(;!t.atEnd();){if(tN(t))continue;let e=t.peek();if(!e)break;if(!nN(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===J.identifier){t.next();let e=EM(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===J.identifier){t.next();let e=EM(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===J.identifier){t.next(),n.refs.push(...MM(t));continue}if(i===`enum`&&e.kind===J.identifier){t.next(),RM(t,n.enums);continue}if(i===`tablegroup`&&e.kind===J.identifier){t.next(),n.tableGroups.push(TM(t,a));continue}o(i)}return n}function TM(e,t){let{name:n}=qM(e),r={name:n,color:``,tables:[]};if(zM(e).forEach(({key:e,tokens:n})=>{e===`color`?r.color=xy(UM(n)):e!==``&&t(`tablegroup ${e}`)}),!ZM(e))return eN(e),r;for(;!e.atEnd();){if(tN(e))continue;let n=e.peek();if(!n)break;if(Y(n,`}`)){e.next();break}let i=e.peek(1);if(n.kind===J.identifier&&n.value.toLowerCase()===`note`&&i&&(Y(i,`:`)||Y(i,`{`))){e.next(),e.next(),Y(i,`{`)?QM(e):eN(e),t(`tablegroup note`);continue}if(nN(n)){let{schemaName:t,name:n}=qM(e);r.tables.push({schemaName:t,tableName:n})}eN(e)}return r}function EM(e,t){let{schemaName:n,name:r}=qM(e),i={schemaName:n,name:r,alias:``,comment:``,color:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===J.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=JM(e)),HM(i,zM(e)),!ZM(e))return r===``?null:i;for(;!e.atEnd();){if(tN(e))continue;let n=e.peek();if(!n)break;if(n.kind===J.punctuation&&n.value===`}`){e.next();break}if(n.kind===J.punctuation&&n.value===`~`){e.next();let n=t.get(JM(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===J.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&Y(r,`:`)){e.next(),e.next(),i.comment=YM(e);continue}if(t===`note`&&r&&Y(r,`{`)){e.next(),e.next(),i.comment=XM(e);continue}if(t===`indexes`&&r&&Y(r,`{`)){e.next(),e.next(),i.indexes.push(...AM(e));continue}if(r&&Y(r,`{`)){e.next(),e.next(),QM(e);continue}}let r=DM(e);r&&i.columns.push(r)}return i}function DM(e){let t=e.peek();if(!t||!nN(t))return eN(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=OM(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,BM(n,zM(e)),eN(e),n.typeName===``?null:n}function OM(e){let{schemaName:t,name:n}=qM(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&Y(i,`(`)&&(e.next(),r.push(`(${kM(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&Y(a,`[`)&&Y(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function kM(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`)`))break;n.kind!==J.newline&&t.push(n.kind===J.string?`'${n.value}'`:n.value)}return t.join(``)}function AM(e){let t=[];for(;!e.atEnd();){if(tN(e))continue;let n=e.peek();if(!n)break;if(Y(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};Y(n,`(`)?(e.next(),r.columnNames.push(...jM(e))):nN(n)?(e.next(),r.columnNames.push(n.value)):e.next(),VM(r,zM(e)),eN(e),r.columnNames.length!==0&&t.push(r)}return t}function jM(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`)`))break;nN(n)&&t.push(n.value)}return t}function MM(e){let t=e.peek();if(t&&nN(t)){let t=e.peek(1);t&&(Y(t,`:`)||Y(t,`{`))&&e.next()}let n=e.peek();if(n&&Y(n,`:`)){e.next();let t=NM(e);return eN(e),t?[t]:[]}if(!ZM(e))return eN(e),[];let r=[];for(;!e.atEnd();){if(tN(e))continue;let t=e.peek();if(!t)break;if(Y(t,`}`)){e.next();break}let n=NM(e);n?r.push(n):eN(e)}return r}function NM(e){let t=LM(e),n=IM(e);if(n===``)return null;let r=LM(e),i=PM(zM(e));return t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r,...i}}function PM(e){let t={onDelete:``,onUpdate:``};return e.forEach(({key:e,tokens:n})=>{e===`delete`?t.onDelete=FM(n):e===`update`&&(t.onUpdate=FM(n))}),t}function FM(e){return e.filter(e=>e.kind!==J.newline).map(e=>e.value).join(` `)}function IM(e){let t=e.peek();return t?t.kind===J.operator?(e.next(),t.value.replace(xM,``)):Y(t,`-`)?(e.next(),`-`):``:``}function LM(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!nN(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!Y(i,`.`))break;e.next();let a=e.peek();if(a&&Y(a,`(`)){e.next(),n.push(...jM(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 RM(e,t){let{schemaName:n,name:r}=qM(e);if(zM(e),!ZM(e)){eN(e);return}let i=[];for(;!e.atEnd();){if(tN(e))continue;let t=e.peek();if(!t)break;if(Y(t,`}`)){e.next();break}nN(t)?(e.next(),i.push(t.value),zM(e)):e.next(),eN(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function zM(e){let t=e.peek();if(!t||!Y(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||Y(t,`]`))break;if(Y(t,`,`)){o();continue}if(!a&&Y(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(nN(t)&&yM.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function BM(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=GM(n);break;case`default`:e.default=KM(n);break;case`ref`:{let t=WM(n);t&&e.inlineRefs.push(t);break}}})}function VM(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=GM(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function HM(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`?e.comment=GM(n):t===`headercolor`&&(e.color=xy(UM(n)))})}function UM(e){return e.every((t,n)=>{let r=e[n-1];return(t.kind===J.punctuation||t.kind===J.number||t.kind===J.identifier)&&(!r||t.offset===r.offset+r.value.length)})?e.map(e=>e.value).join(``):``}function WM(e){let t=CM(e),n=IM(t);if(n===``)return null;let r=LM(t);return r.tableName===``?null:{operator:n,target:r}}function GM(e){let t=e.find(e=>e.kind===J.string||e.kind===J.quoted||e.kind===J.identifier);return t?t.value:``}function KM(e){let t=e.filter(e=>e.kind!==J.newline),n=t[0];if(!n)return``;if(Y(n,`-`)&&t[1]?.kind===J.number)return`-${t[1].value}`;switch(n.kind){case J.string:return`'${n.value.replace(bM,`''`)}'`;case J.expression:case J.number:case J.identifier:case J.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function qM(e){let t=JM(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!Y(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:JM(e)})}function JM(e){let t=e.peek();return!t||!nN(t)?``:(e.next(),t.value)}function YM(e){let t=e.peek();return t&&(t.kind===J.string||t.kind===J.quoted)?(e.next(),t.value):``}function XM(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`}`))break;t===``&&n.kind===J.string&&(t=n.value)}return t}function ZM(e){let t=0;for(;e.peek(t)?.kind===J.newline;)t+=1;let n=e.peek(t);if(!n||!Y(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function QM(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;Y(n,`{`)?t+=1:Y(n,`}`)&&--t}}function $M(e){if(ZM(e)){QM(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===J.newline)return;if(Y(t,`{`)){QM(e);return}}}function eN(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===J.newline){e.next();return}if(Y(t,`}`))return;e.next()}}function tN(e){let t=e.peek();return t&&t.kind===J.newline?(e.next(),!0):!1}function nN(e){return e.kind===J.identifier||e.kind===J.quoted}function Y(e,t){return e.kind===J.punctuation&&e.value===t}const rN={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]};function iN(e,t,n){let r=SM(e),i=r.ok?r.model:rN,a=km({}),{settings:o}=n?n(a):a,s=Xj(i,t,o.database);return s.settings=o,Eh(s)}const aN={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`},oN={[I.MariaDB]:`INT`,[I.MSSQL]:`int`,[I.MySQL]:`INT`,[I.Oracle]:`INTEGER`,[I.PostgreSQL]:`integer`,[I.SQLite]:`INTEGER`,[I.Databricks]:`INT`,[I.Snowflake]:`INT`},sN={[I.MariaDB]:`SMALLINT`,[I.MSSQL]:`smallint`,[I.MySQL]:`SMALLINT`,[I.Oracle]:`SMALLINT`,[I.PostgreSQL]:`smallint`,[I.SQLite]:`SMALLINT`,[I.Databricks]:`SMALLINT`,[I.Snowflake]:`SMALLINT`},cN={[I.MariaDB]:`BIGINT`,[I.MSSQL]:`bigint`,[I.MySQL]:`BIGINT`,[I.Oracle]:`NUMBER(19)`,[I.PostgreSQL]:`bigint`,[I.SQLite]:`BIGINT`,[I.Databricks]:`BIGINT`,[I.Snowflake]:`BIGINT`},lN={[I.MariaDB]:`DOUBLE`,[I.MSSQL]:`float`,[I.MySQL]:`DOUBLE`,[I.Oracle]:`BINARY_DOUBLE`,[I.PostgreSQL]:`double precision`,[I.SQLite]:`REAL`,[I.Databricks]:`DOUBLE`,[I.Snowflake]:`FLOAT`},uN={[I.MariaDB]:`DECIMAL(38,18)`,[I.MSSQL]:`decimal(38,18)`,[I.MySQL]:`DECIMAL(38,18)`,[I.Oracle]:`DECIMAL(38,18)`,[I.PostgreSQL]:`numeric`,[I.SQLite]:`DECIMAL`,[I.Databricks]:`DECIMAL(38,18)`,[I.Snowflake]:`DECIMAL(38,18)`},dN={[I.MariaDB]:`BOOLEAN`,[I.MSSQL]:`bit`,[I.MySQL]:`BOOLEAN`,[I.Oracle]:`BOOLEAN`,[I.PostgreSQL]:`boolean`,[I.SQLite]:`BOOLEAN`,[I.Databricks]:`BOOLEAN`,[I.Snowflake]:`BOOLEAN`},fN={[I.MariaDB]:`DATE`,[I.MSSQL]:`date`,[I.MySQL]:`DATE`,[I.Oracle]:`DATE`,[I.PostgreSQL]:`date`,[I.SQLite]:`DATE`,[I.Databricks]:`DATE`,[I.Snowflake]:`DATE`},pN={[I.MariaDB]:`TIME`,[I.MSSQL]:`time`,[I.MySQL]:`TIME`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`time`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`TIME`},mN={[I.MariaDB]:`DATETIME`,[I.MSSQL]:`datetime2`,[I.MySQL]:`DATETIME`,[I.Oracle]:`TIMESTAMP`,[I.PostgreSQL]:`timestamp`,[I.SQLite]:`DATETIME`,[I.Databricks]:`TIMESTAMP`,[I.Snowflake]:`TIMESTAMP_NTZ`},hN={[I.MariaDB]:`TIMESTAMP`,[I.MSSQL]:`datetimeoffset`,[I.MySQL]:`TIMESTAMP`,[I.Oracle]:`TIMESTAMP WITH TIME ZONE`,[I.PostgreSQL]:`timestamptz`,[I.SQLite]:`DATETIME`,[I.Databricks]:`TIMESTAMP`,[I.Snowflake]:`TIMESTAMP_TZ`},gN={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`INTERVAL DAY TO SECOND`,[I.PostgreSQL]:`interval`,[I.SQLite]:`TEXT`,[I.Databricks]:`INTERVAL DAY TO SECOND`,[I.Snowflake]:`VARCHAR(255)`},_N={[I.MariaDB]:`JSON`,[I.MSSQL]:`json`,[I.MySQL]:`JSON`,[I.Oracle]:`JSON`,[I.PostgreSQL]:`jsonb`,[I.SQLite]:`TEXT`,[I.Databricks]:`VARIANT`,[I.Snowflake]:`VARIANT`},vN={[I.MariaDB]:`UUID`,[I.MSSQL]:`uniqueidentifier`,[I.MySQL]:`CHAR(36)`,[I.Oracle]:`VARCHAR2(36)`,[I.PostgreSQL]:`uuid`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`UUID`},yN={[I.MariaDB]:`BLOB`,[I.MSSQL]:`varbinary(max)`,[I.MySQL]:`BLOB`,[I.Oracle]:`BLOB`,[I.PostgreSQL]:`bytea`,[I.SQLite]:`BLOB`,[I.Databricks]:`BINARY`,[I.Snowflake]:`BINARY`},bN={id:aN,string:aN,boolean:dN,int:oN,float:lN,positiveint:oN,nonnegativeint:oN,unsignedint:oN,short:sN,smallint:sN,positivefloat:lN,nonnegativefloat:lN,bigint:cN,biginteger:cN,long:cN,int8:cN,safeint:cN,decimal:uN,bigdecimal:uN,numeric:uN,money:uN,datetime:mN,datetimeiso:mN,localdatetime:mN,timestamp:mN,timestamptz:hN,date:fN,localdate:fN,time:pN,localtime:pN,timetz:pN,duration:gN,iso8601duration:gN,interval:gN,json:_N,jsonb:_N,jsonobject:_N,uuid:vN,guid:vN,byte:yN,bytes:yN,bytea:yN,binary:yN,email:aN,emailaddress:aN,url:aN,uri:aN,void:aN};function xN(e,t,n){let r=aN[t]??``,i=TN(n.enums,e);return i?CN(i,t)??r:TN(n.unions,e)?r:bN[e.toLowerCase()]?.[t]??r}function SN(e,t,n){let r=TN(t.enums,e);if(r)return n!==void 0&&CN(r,n)!==void 0?``:wN(e,r);let i=TN(t.unions,e);return i?wN(e,i):``}function CN(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function wN(e,t){return` ${e}: ${t.join(` | `)}`}function TN(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}const EN=/_/g,DN=/\d+$/;function ON(e,t,n){let r=km({}),i=kN(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>AN(r,t,e,n,o,i,a));return FN(r,t,o),YN(r,o),r}function kN(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ 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 AN({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(jN(l)),f=m_(a.name),p=m_(a.comment),m=oD({name:f,comment:p,ui:{widthName:G(c(f)),widthComment:G(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{PN(t,h,MN(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),N(t).collection(`tableEntities`).setOne(m),h}function jN(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 MN({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=m_(i.name),l=m_(i.dataType)||xN(o,n,t),u=m_(i.default),d=NN(i,t,n);return GD({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?R.autoIncrement:0)|(a?R.primaryKey:0)|(i.unique?R.unique:0)|(s?R.notNull:0),ui:{widthName:G(e(c)),widthComment:G(e(d)),widthDataType:G(e(l)),widthDefault:G(e(u)),keys:a?z.primaryKey:0}})}function NN(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=m_(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${SN(r,t,n)}`.trim()}function PN(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function FN(e,t,n){let r=kN(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,namedReciprocal:null,named:!1})})});let a={claimedColumnIds:/* @__PURE__ */ new Set,relationshipKeys:/* @__PURE__ */ new Set},o=i.filter(e=>!e.field.typeRef.isList);IN(i,o),[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed||n.named&&!n.namedReciprocal)return;let r=n.namedReciprocal??BN(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;HN(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?qh.OneN:qh.OneOnly:o?qh.ZeroN:qh.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=VN(i,r);if(r.consumed=!0,o){o.consumed=!0,qN(e,t,n,r);return}HN(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?qh.OneN:qh.ZeroN})})}function IN(e,t){LN(e,t,RN),LN(e,t,zN)}function LN(e,t,n){let r=e=>n(e.field.name);[...t].sort((e,t)=>r(t).length-r(e).length).forEach(t=>{if(t.named||t.field.relationName)return;let n=`by${r(t)}`,i=e.filter(e=>e!==t&&!e.named&&!e.field.relationName&&!e.field.relationFields.length&&e.source===t.target&&e.target===t.source&&r(e).endsWith(n));if(i.length!==1)return;let[a]=i;t.namedReciprocal=a,t.named=!0,a.named=!0})}function RN(e){return e.replace(EN,``).toLowerCase()}function zN(e){return RN(e).replace(DN,``)}function BN(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&!e.named&&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.named&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function VN(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 HN(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=_v(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=UN(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=>{U(e.ui.keys,z.primaryKey)?e.ui.keys|=z.foreignKey:e.ui.keys=z.foreignKey,n.claimedColumnIds.add(e.id)});let p=EE({identification:d.every(e=>U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.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),N(a).collection(`relationshipEntities`).setOne(p)}function UN(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=vA(i.columns,n),l=a.relationReferences[o],u=l?vA(r.columns,l):s[o]??null;c&&u&&(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?m_(a.name):de(r.name),l=/* @__PURE__ */ new Set,u=[],d=[];return s.forEach(o=>{let s=WN(c,r.name,o.name),f=GN(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??KN(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function WN(e,t,n){return[`${e}${$S(n)}`,`${_e(e)}_${_e(n)}`,`${t}${$S(n)}`,`${_e(t)}_${_e(n)}`,`${e}Id`,`${_e(e)}_id`]}function GN(e,t,n){for(let r of t){let t=vA(e,r);if(t&&!n(t.id))return t}return null}function KN({collections:e},{toWidth:t},n,r,i,a){let o=vv(n.columns,``,a),{dataType:s}=i,c=GD({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?R.notNull:0,ui:{keys:z.foreignKey,widthName:G(t(o)),widthDataType:G(t(s))}});return PN(e,n,c),c}function qN(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=_v(s.columns),u=_v(c.columns);if(!l.length||!u.length)return;let d=vv(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=oD({name:d,comment:f,ui:{widthName:G(o(d)),widthComment:G(o(f))}}),m={name:d,source:{name:d,comment:f,fields:[],indexes:[]},table:p,columns:[],referenceFields:[]};i.tableIds.push(p.id),N(a).collection(`tableEntities`).setOne(p),n.push(m),JN(e,t,m,s,l),JN(e,t,m,c,u)}function JN(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=vv(n.columns,``,`${de(r.name)}${$S(e.name)}`),{dataType:a}=e,s=GD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return PN(o,n,s),s}),c=EE({identification:!0,relationshipType:qh.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),N(o).collection(`relationshipEntities`).setOne(c)}function YN({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=gT({name:m_(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=vA(i,e);t&&o.push(NT({indexId:a.id,columnId:t.id,orderType:Xh.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}const XN=[`Query`,`Mutation`,`Subscription`],ZN=[`PageInfo`],QN=[`Connection`,`Edge`],$N=[`_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`],eP=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],tP=[`autoincrement`,`autoincrement()`],nP=/[_A-Za-z]/,rP=/[_0-9A-Za-z]/;function iP(e){try{return{ok:!0,model:sP(aP(e))}}catch(e){return{ok:!1,message:oP(e)}}}function aP(e){try{return qe(e)}catch(t){let n=EP(e);if(n===e)throw t;try{return qe(n)}catch{throw t}}}function oP(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 sP(e){let t={},n={},r=[],i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;for(let s of e.definitions)switch(s.kind){case Ge.OBJECT_TYPE_DEFINITION:case Ge.OBJECT_TYPE_EXTENSION:lP(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(XN),c=[],l=[],u=/* @__PURE__ */ new Map;for(let e of a.values()){if(SP(e.name,s)){l.push(e.name);continue}let t=uP(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 cP(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function cP(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 lP(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||=wP(t);return}e.set(n,{name:n,comment:wP(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function uP(e,t){let n=dP(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(fP).filter(ce),indexes:[]};for(let t of e.directives)hP(a,t);return a}function dP(e){let t=/* @__PURE__ */ new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function fP(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:wP(e),typeRef:pP(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])mP(t,n);return t}function pP(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 mP(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=gP(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=_P(t,`value`);if(!n)break;let r=bP(n);tP.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=vP(t,`name`)||vP(t,`value`);n&&(e.name=n);break}case`relation`:{let n=vP(t,`name`)||vP(t,`value`);n&&(e.relationName=n);let r=_P(t,`fields`);r&&(e.relationFields=xP(r));let i=_P(t,`references`);i&&(e.relationReferences=xP(i));break}case`column`:{let n=vP(t,`name`);n&&(e.name=n);let r=vP(t,`dataType`);r&&(e.dataType=r);let i=_P(t,`default`);i&&(e.default=bP(i));let a=yP(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=yP(t,`unique`);o!==null&&(e.unique=o);let s=yP(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function hP(e,t){switch(t.name.value){case`map`:{let n=vP(t,`name`)||vP(t,`value`);n&&(e.name=n);break}case`table`:{let n=vP(t,`name`);n&&(e.name=n);let r=_P(t,`comment`);r&&(e.comment=bP(r));break}case`index`:{let n=_P(t,`fields`),r=n?xP(n):[];if(!r.length)break;let i={name:vP(t,`name`),unique:yP(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function gP(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>bP(e.value)).join(`, `)})`:n}function _P(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function vP(e,t){let n=_P(e,t);return n?bP(n):``}function yP(e,t){let n=_P(e,t);return n?bP(n)===`true`:null}function bP(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(bP).join(`, `);default:return``}}function xP(e){return(e.kind===Ge.LIST?e.values:[e]).map(bP).filter(e=>e!==``)}function SP(e,t){return t.has(e)||e.startsWith(`__`)||eP.includes(e)||ZN.includes(e)||QN.some(t=>CP(e,t))||$N.some(t=>CP(e,t))}function CP(e,t){return e.length>t.length&&e.endsWith(t)}function wP(e){if(e.description)return TP(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 TP(t.join(` `))}function TP(e){return e.replace(/\s+/g,` `).trim()}function EP(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=kP(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=AP(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!nP.test(e[n+1]??``)){t+=i,n+=1;continue}let a=OP(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&nP.test(e[a+1]??``);){let t=OP(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=MP(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=MP(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=DP(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(jP(e,MP(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function DP(e,t){if(!nP.test(e[t]??``))return-1;let n=MP(e,OP(e,t));return e[n]===`:`?n:-1}function OP(e,t){let n=t;for(;n<e.length&&rP.test(e[n]);)n+=1;return n}function kP(e,t){let n=e.indexOf(`
|
|
25
|
+
`,t);return n===-1?e.length:n}function AP(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===`
|
|
26
|
+
`)return n;if(t===`"`)return n+1;n+=1}return n}function jP(e,t){let n=[],r=t;for(;r<e.length;){let t=e[r];if(t===`"`){r=AP(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 MP(e,t){let n=t;for(;n<e.length;){let t=e[n];if(t===`#`){n=kP(e,n);continue}if(!/[\s,]/.test(t))break;n+=1}return n}const NP={tables:[],enums:{},customScalars:[],unions:{},skipped:[]};function PP(e,t,n){let r=iP(e),i=r.ok?r.model:NP,a=km({}),{settings:o}=n?n(a):a,s=ON(i,t,o.database);return s.settings=o,Eh(s)}var FP={createTable:`create.table`,createIndex:`create.index`,alterTableAddUnique:`alter.table.add.unique`,alterTableAddPrimaryKey:`alter.table.add.primaryKey`,alterTableAddForeignKey:`alter.table.add.foreignKey`,alterTableAddDefault:`alter.table.add.default`,alterTableAlterColumnAutoIncrement:`alter.table.alter.column.autoIncrement`,commentOnTable:`comment.on.table`,commentOnColumn:`comment.on.column`},IP={asc:`ASC`,desc:`DESC`},LP={noAction:`NO ACTION`,restrict:`RESTRICT`,cascade:`CASCADE`,setNull:`SET NULL`,setDefault:`SET DEFAULT`},RP={string:`string`,leftParent:`leftParent`,rightParent:`rightParent`,leftBracket:`leftBracket`,rightBracket:`rightBracket`,comma:`comma`,period:`period`,equal:`equal`,semicolon:`semicolon`},zP={doubleQuote:`"`,dash:`-`,slash:`/`,asterisk:`*`,newLine:`
|
|
27
|
+
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,literalEnd:/[\s,;)\]:|+]/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},BP={0:`\0`,b:`\b`,n:`
|
|
28
|
+
`,r:`\r`,t:` `,Z:``,"%":`\\%`,_:`\\_`},VP=e=>e<65536?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296,(e-65536)%1024+56320),HP=e=>{let t=/^(?:u([\da-fA-F]{4})|U([\da-fA-F]{8}))/.exec(e);if(t){let e=t[1]??t[2];return[VP(parseInt(e,16)),e.length+1]}let n=/^[01][0-7]{2}/.exec(e);return n?[String.fromCharCode(parseInt(n[0],8)),3]:e?[BP[e[0]]??e[0],1]:[`\\`,0]},UP=String.raw`(?:[nebx]|u&|_[a-z\d]+)`,WP=String.raw`[+\-*/%|<>!^~#@?]`,GP=new RegExp(String.raw`(?:(?:^|${WP})${UP}|${WP})$`,`i`),KP=new RegExp(String.raw`^(.*?)(${WP}*)(${UP}?)$`,`is`),qP=e=>t=>e===t,JP=e=>t=>e.test(t),YP={doubleQuote:qP(zP.doubleQuote),dash:qP(zP.dash),slash:qP(zP.slash),asterisk:qP(zP.asterisk),newLine:qP(zP.newLine),singleQuote:qP(zP.singleQuote),backtick:qP(zP.backtick),whiteSpace:JP(zP.whiteSpace),string:JP(zP.string),breakString:JP(zP.breakString),literalEnd:JP(zP.literalEnd),equal:qP(zP.equal),period:qP(zP.period),comma:qP(zP.comma),semicolon:qP(zP.semicolon),leftParent:qP(zP.leftParent),rightParent:qP(zP.rightParent),leftBracket:qP(zP.leftBracket),rightBracket:qP(zP.rightBracket)};function XP(e,t){let n=[],r=t===`Databricks`,i=0,a=()=>i<e.length,o=t=>{if(i+1>=e.length||YP.literalEnd(e[i+1]))return!1;let n=0;for(;t[t.length-1-n]===`\\`;)n++;return n%2==1},s=(t,s)=>{let c=t===`[`?`]`:t,l=``;for(i++;a();){let n=e[i];if(r&&t===`'`&&n===`\\`){let[t,n]=HP(e.slice(i+1,i+10));l+=t,i+=n+1;continue}if(n===c&&t===`'`&&!r&&o(l))l=l.slice(0,-1);else if(n===c){if(t===`[`||e[i+1]!==c)break;i++}l+=n,i++}n.push({type:RP.string,value:l,quoted:t,...s?{prefix:s}:{}}),i++};for(;a();){let t=e[i];if(YP.whiteSpace(t)){let n=``;for(;a()&&YP.whiteSpace(t);)n+=t,t=e[++i];continue}if(YP.dash(t)&&YP.dash(e[i+1])){for(;a()&&!YP.newLine(t);)t=e[++i];continue}if(YP.slash(t)&&YP.asterisk(e[i+1])){for(i+=2,t=e[i];a()&&!(YP.asterisk(t)&&YP.slash(e[i+1]));)t=e[++i];i+=2;continue}if(YP.leftParent(t)){n.push({type:RP.leftParent,value:t}),i++;continue}if(YP.rightParent(t)){n.push({type:RP.rightParent,value:t}),i++;continue}if(YP.comma(t)){n.push({type:RP.comma,value:t}),i++;continue}if(YP.period(t)){n.push({type:RP.period,value:t}),i++;continue}if(YP.equal(t)){n.push({type:RP.equal,value:t}),i++;continue}if(YP.semicolon(t)){n.push({type:RP.semicolon,value:t}),i++;continue}if(YP.rightBracket(t)){n.push({type:RP.rightBracket,value:t}),i++;continue}if(YP.leftBracket(t)){s(`[`);continue}if(YP.doubleQuote(t)){s(`"`);continue}if(YP.singleQuote(t)){s(`'`);continue}if(YP.backtick(t)){s("`");continue}if(YP.string(t)){let r=``;for(;a()&&YP.string(t)&&!YP.breakString(t)&&!(YP.dash(t)&&YP.dash(e[i+1]))&&!(YP.slash(t)&&YP.asterisk(e[i+1]))&&!(YP.singleQuote(t)&&GP.test(r));)r+=t,t=e[++i];if(!YP.singleQuote(t)){n.push({type:RP.string,value:r});continue}let[,o,c,l]=KP.exec(r);for(let e of[o,c])e&&n.push({type:RP.string,value:e});s(`'`,l);continue}i++}return n}var ZP=/* @__PURE__ */ `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(`.`),QP=/* @__PURE__ */ `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(`.`),$P=/* @__PURE__ */ `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(`.`),eF=/* @__PURE__ */ `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(`.`),tF=/* @__PURE__ */ `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(`.`),nF=/* @__PURE__ */ `BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DEC.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(`.`),rF=/* @__PURE__ */ `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(`.`),iF=/* @__PURE__ */ `BIGINT.BLOB.BOOL.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TIME.TIMESTAMP.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),aF=e=>t=>n=>t[n]?t[n].type===e:!1,X=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},oF=aF(RP.string),sF=aF(RP.equal),cF=aF(RP.period),lF=aF(RP.comma),uF=aF(RP.semicolon),dF=aF(RP.leftParent),fF=aF(RP.rightParent);RP.leftBracket;var pF=aF(RP.rightBracket),mF=X(`CREATE`),hF=X(`ALTER`),gF=X(`DROP`),_F=X(`USE`),vF=X(`RENAME`),yF=X(`DELETE`),bF=X(`SELECT`),xF=X(`TABLE`),SF=X(`TABLESPACE`),CF=X(`INDEX`),wF=X(`UNIQUE`),TF=X(`ADD`),EF=X(`PRIMARY`),DF=X(`KEY`),OF=X(`CONSTRAINT`),kF=X(`FOREIGN`),AF=X(`NOT`),jF=X(`NULL`),MF=X(`DEFAULT`),NF=X(`COMMENT`),PF=X(`REFERENCES`),FF=X(`ASC`),IF=X(`DESC`),LF=X(`ON`),RF=X(`AUTO_INCREMENT`),zF=X(`AUTOINCREMENT`),BF=X(`IF`),VF=X(`EXISTS`),HF=X(`ONLY`),UF=X(`IS`),WF=X(`COLUMN`),GF=X(`CHARACTER`),KF=X(`SET`),qF=X(`COLLATE`),JF=X(`ENFORCED`),YF=X(`RELY`),XF=X(`NORELY`),ZF=X(`DEFERRABLE`),QF=X(`INITIALLY`),$F=X(`DEFERRED`),eI=X(`IMMEDIATE`),tI=X(`IDENTITY`),nI=X(`FUNCTION`),rI=X(`CLUSTER`),iI=X(`BY`),aI=X(`FULLTEXT`),oI=X(`SPATIAL`),sI=X(`WITH`),cI=X(`CHECK`),lI=X(`NOCHECK`),uI=X(`CONCURRENTLY`),dI=X(`WHERE`),fI=X(`USING`),pI=X(`AND`),mI=X(`OR`),hI=X(`ARRAY`),gI=X(`GENERATED`),_I=X(`FOR`),vI=X(`EXEC`),yI=X(`EXECUTE`),bI=X(`GO`),xI=X(`SIGNED`),SI=[`SIGNED`,`UNSIGNED`,`ZEROFILL`],CI=e=>t=>{let n=e[t];return!!n&&!n.quoted&&SI.includes(n.value.toUpperCase())},wI=(e,t)=>t===`Databricks`?`'${e.replace(/[\\']/g,`\\$&`)}'`:`'${e.replaceAll(`'`,`''`)}'`,TI=({value:e,quoted:t,prefix:n=``},r)=>t?t===`[`?`[${e}]`:t===`'`?n+wI(e,r):`${t}${e.replaceAll(t,t+t)}${t}`:e,EI=e=>{let t=JF(e),n=YF(e),r=XF(e),i=ZF(e),a=QF(e),o=$F(e),s=eI(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},DI=[LP.setNull,LP.setDefault,LP.noAction,LP.cascade,LP.restrict],OI=[`FULL`,`PARTIAL`,`SIMPLE`],kI=e=>{let t=t=>{let n=e[t];return n&&n.type===RP.string&&!n.quoted?n.value.toUpperCase():``},n=t=>{if(e[t]?.type!==RP.leftParent)return 0;for(let n=t+1;n<e.length;n++){let{type:r}=e[n];if(r===RP.rightParent)return n-t+1;if(r!==RP.string&&r!==RP.comma)return 0}return 0};return e=>{let r=t(e+1);if(t(e)===`ON`&&(r===`DELETE`||r===`UPDATE`)){let i=DI.find(n=>n.split(` `).every((n,r)=>t(e+2+r)===n));if(!i)return{span:2,event:r,action:``};let a=2+i.split(` `).length;return{span:a+(i.startsWith(`SET `)?n(e+a):0),event:r,action:i}}return{span:t(e)===`MATCH`&&OI.includes(t(e+1))?2:0,event:``,action:``}}},AI=e=>{let t=aI(e),n=oI(e),r=CF(e),i=DF(e);return e=>(t(e)||n(e))&&(r(e+1)||i(e+1))},jI=e=>t=>{let n=e[t];return n&&n.type===RP.string&&!n.quoted?n.value.toUpperCase():``},MI=e=>e===`CLUSTERED`||e===`NONCLUSTERED`,NI=e=>{let t=jI(e);return e=>{let n=t(e);return MI(n)?1:n===`USING`?t(e+1)?2:1:n===`NULLS`?t(e+1)===`DISTINCT`?2:t(e+1)===`NOT`&&t(e+2)===`DISTINCT`?3:0:0}},PI=e=>{let t=NI(e);return e=>{let n=e,r=t(n);for(;r;)n+=r,r=t(n);return n-e}},FI=[`ARRAY`,`MAP`,`STRUCT`],II=e=>{let t=oF(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||!FI.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(e[t].quoted||(o+=n(e[t].value)),o<=0)return t-r+1;return e.length-r}},LI=e=>{let t=RF(e),n=zF(e),r=tI(e);return e=>t(e)||n(e)||r(e)},RI=e=>{let t=rI(e),n=iI(e);return e=>t(e)&&n(e+1)},zI=e=>{let t=NF(e),n=LF(e);return e=>t(e)&&n(e+1)},BI=e=>{let t=zI(e),n=xF(e);return e=>t(e)&&n(e+2)},VI=e=>{let t=zI(e),n=WF(e);return e=>t(e)&&n(e+2)},HI=e=>{let t=mF(e),n=hF(e),r=gF(e),i=_F(e),a=vF(e),o=yF(e),s=bF(e),c=zI(e),l=QI(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)||l(e)},UI=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],WI=e=>{let t=mF(e),n=xF(e),r=oF(e),i=nI(e),a=BF(e),o=AF(e),s=VF(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||!UI.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)}},GI=e=>{let t=GF(e),n=KF(e);return e=>t(e)&&n(e+1)},KI=e=>{let t=WI(e);return e=>t(e)>0},qI=e=>{let t=mF(e),n=wF(e),r=CF(e),i=jI(e);return e=>{if(!t(e))return 0;let a=e+1;return n(a)&&a++,MI(i(a))&&a++,r(a)?a+1-e:0}},JI=e=>{let t=qI(e);return e=>t(e)>0},YI=e=>{let t=hF(e),n=xF(e);return e=>t(e)&&n(e+1)},XI=e=>{let t=oF(e),n=cF(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},ZI=e=>{let t=vI(e),n=yI(e),r=XI(e);return i=>{if(!t(i)&&!n(i))return 0;let a=r(i+1);return a>0&&e[i+a].value.toUpperCase()===`SP_ADDEXTENDEDPROPERTY`?a+1:0}},QI=e=>{let t=ZI(e);return e=>t(e)>0},$I=/* @__PURE__ */ `COMPRESS.COMPUTE.DEFERRABLE.DISABLE.ENABLE.EXCEPTIONS.FILESYSTEM_LIKE_LOGGING.GLOBAL.INDEXING.INDEXTYPE.INITIALLY.INITRANS.INVISIBLE.LOCAL.LOGGING.MAXTRANS.NOCOMPRESS.NOLOGGING.NOPARALLEL.NORELY.NOSORT.NOT.NOVALIDATE.ONLINE.PARALLEL.PCTFREE.PCTUSED.RELY.REVERSE.SORT.STORAGE.TABLESPACE.USING.VALIDATE.VISIBLE`.split(`.`),eL=e=>{let t=jI(e),n=XI(e);return e=>{if(t(e)!==`USING`||t(e+1)!==`INDEX`)return 0;let r=n(e+2);return r&&!$I.includes(t(e+2))?2+r:0}},tL=e=>{let t=dI(e),n=oF(e),r=dF(e),i=fF(e),a=UF(e),o=AF(e),s=jF(e),c=pI(e),l=mI(e);return(u,d)=>{if(!t(u))return!1;let f=new Set(d.map(e=>e.toUpperCase())),p=0;do{for(u++;r(u);u++)p++;if(!n(u)||!f.has(e[u].value.toUpperCase())||!a(u+1)||!o(u+2)||!s(u+3))return!1;for(u+=4;p>0&&i(u);u++)p--}while(c(u));return!l(u)}},nL=[`UNIQUE`,`PRIMARY`,`FOREIGN`,`CHECK`,`DEFAULT`],rL=e=>{let t=YI(e),n=HF(e),r=TF(e),i=OF(e),a=oF(e),o=sI(e),s=cI(e),c=lI(e),l=XI(e),u=jI(e),d=(e,t)=>{let n=t,d=l(n);return!d||(n+=d,o(n)&&(s(n+1)||c(n+1))&&(n+=2),!r(n))?0:(n++,i(n)&&(n++,a(n)&&!nL.includes(u(n))&&n++),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=d(e,r+1);if(t)return{length:t,only:!0}}return{length:d(e,r),only:!1}}},iL=e=>{let t=rL(e);return e=>t(e).length},aL=e=>{let t=rL(e);return e=>t(e).only},oL=e=>{let t=iL(e),n=EF(e),r=DF(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},sL=e=>{let t=iL(e),n=kF(e),r=DF(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},cL=e=>{let t=iL(e),n=MF(e);return e=>{let r=t(e);return r>0&&n(e+r)}},lL=e=>{let t=iL(e);return e=>t(e)>0},uL=e=>{let t=YI(e),n=HF(e),r=hF(e),i=xF(e),a=XI(e),o=(e,t)=>{let n=a(t),o=t+n;return n&&r(o)&&!i(o+1)?o-e:0};return e=>{if(!t(e))return 0;let r=e+2;return n(r)&&o(e,r+1)||o(e,r)}},dL=e=>{let t=uL(e);return e=>t(e)>0},fL=Array.from(new Set([...ZP,...QP,...$P,...eF,...tF,...nF,...rF,...iF].map(e=>e.toUpperCase()))),pL=(e=>{let t=/* @__PURE__ */ 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})(fL),mL=e=>{let t=dF(e),n=fF(e);return r=>{let i=0;for(let a=r;a<e.length;a++)if(t(a))i++;else if(n(a)&&(i--,i===0))return a+1;return e.length}},hL=e=>t=>{let n=e[t];return!!n&&n.quoted===`[`&&/^\d*$/.test(n.value)},gL=e=>{let t=hL(e),n=hI(e);return e=>{if(n(e))return t(e+1)?2:1;let r=e;for(;t(r);)r++;return r-e}},_L=e=>{let t=oF(e),n=dF(e),r=mL(e),i=gL(e),a=(i,a)=>{let o=i;for(let[i,s]of a.entries()){let a=e[o];if(!a||!t(o)||i>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=r(o))}return o-i};return n=>{let r=e[n];if(!r||!t(n))return 0;let o=r.value.toUpperCase();for(let e of pL.get(o)??[]){let t=a(n,e);if(t)return t+i(n+t)}return fL.includes(o)?1+i(n+1):0}},vL=/* @__PURE__ */ `AS.AUTO_INCREMENT.AUTOINCREMENT.CHECK.COLLATE.COMMENT.CONSTRAINT.DEFAULT.ENCRYPT.FOR.FOREIGN.GENERATED.IDENTITY.INVISIBLE.KEY.MASKING.NOT.NULL.ON.PRIMARY.PROJECTION.REFERENCES.UNIQUE.USING.VISIBLE.WITH`.split(`.`),yL=e=>vL.includes(e.toUpperCase()),bL=e=>!!e&&!e.quoted&&yL(e.value),xL=e=>t=>bL(e[t]),SL=e=>e.quoted===`"`&&(e.value===`char`||e.value===`bit`)?TI(e):e.value,CL=e=>{let t=oF(e),n=cF(e),r=lF(e),i=dF(e),a=fF(e),o=mL(e),s=gL(e),c=_L(e),l=n=>t(n)&&e[n].quoted!==`'`,u=n=>t(n)&&!e[n].quoted&&!yL(e[n].value),d=t=>t>=e.length||r(t)||a(t)||bL(e[t]),f=t=>{let n=e[t];if(n.quoted)return!1;let r=n.value.toUpperCase();return r===`TAG`&&i(t+1)||r===`SORT`&&d(t+1)};return t=>{if(!l(t)||bL(e[t])||f(t))return 0;for(let e=t;u(e);e++){let n=c(e+1);if(n)return e+1+n-t}let r=t+1;for(;n(r)&&l(r+1);)r+=2;return i(r)&&(r=o(r)),r+s(r)-t}},wL=e=>{let t=oF(e),n=dF(e),r=_L(e),i=n=>{let r=e[n];return r&&t(n)&&!r.quoted?r.value.toUpperCase():``},a=n=>t(n)&&e[n].quoted!==`'`&&!r(n);return e=>{switch(i(e)){case`CHECK`:return n(e+1)||i(e+1)===`NOT`&&i(e+2)===`FOR`&&i(e+3)===`REPLICATION`;case`LIKE`:return a(e+1);case`EXCLUDE`:return i(e+1)===`USING`||n(e+1);case`FULLTEXT`:case`SPATIAL`:return n(e+1)||a(e+1)&&n(e+2);case`PERIOD`:return i(e+1)===`FOR`;case`SUPPLEMENTAL`:return i(e+1)===`LOG`;default:return!1}}},TL=[`@NAME`,`@VALUE`,`@LEVEL0TYPE`,`@LEVEL0NAME`,`@LEVEL1TYPE`,`@LEVEL1NAME`,`@LEVEL2TYPE`,`@LEVEL2NAME`],EL=TL.filter(e=>!e.startsWith(`@LEVEL0`)),DL=e=>!!e&&!e.quoted&&e.value[0]===`@`,OL=e=>!!e&&!e.quoted&&/^[-+*/%&|^]/.test(e.value);function kL(e,t){let n=oF(e),r=sF(e),i=lF(e),a=uF(e),o=jF(e),s=MF(e),c=bI(e),l=HI(e),u=e=>n(e)&&!c(e)&&!l(e),d=/* @__PURE__ */ new Map,f=ZI(e)(t.value);if(!f)return t.value++,null;t.value+=f;for(let n=0;u(t.value);n++){let a=e[t.value],c=TL[n]??``;if(DL(a)&&r(t.value+1)&&(c=a.value.toUpperCase(),t.value+=2,!u(t.value)))break;if(!o(t.value)&&!s(t.value)&&d.set(c,e[t.value]),t.value++,OL(e[t.value]))return null;if(!i(t.value))break;t.value++}return a(t.value)&&t.value++,AL(d)}function AL(e){if(EL.some(t=>DL(e.get(t))))return null;let t=t=>e.get(t)?.value??``,n=e.get(`@VALUE`),r=t(`@LEVEL1NAME`),i=t(`@LEVEL2TYPE`).toUpperCase(),a=t(`@LEVEL2NAME`);return t(`@NAME`).toUpperCase()!==`MS_DESCRIPTION`||n?.quoted!==`'`||t(`@LEVEL1TYPE`).toUpperCase()!==`TABLE`||!r?null:i?i!==`COLUMN`||!a?null:{type:FP.commentOnColumn,tableName:r,columnName:a,comment:n.value}:{type:FP.commentOnTable,name:r,comment:n.value}}var jL={"'":`string`,"[":`bracket`,'"':`word`,"`":`word`},ML=[`AND`,`AT`,`BETWEEN`,`COLLATE`,`ILIKE`,`IN`,`IS`,`LIKE`,`NOT`,`OR`,`OVERLAPS`,`SIMILAR`],NL=[`COLUMN_FORMAT`,`INDEX`,`MASK`,`ROWGUIDCOL`,`SPARSE`,`STORAGE`],PL=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,FL=/^(?:[a-z_][\w$]*|"(?:[^"]|"")*")$/i,IL=/^\[\d*\]$/,LL=e=>e&&e.type===RP.string&&!e.quoted?e.value.toUpperCase():``,RL=e=>t=>LL(e[t])===`FOR`&&LL(e[t-1])===`VALUE`&&LL(e[t-2])===`NEXT`,zL=e=>{let t=lF(e),n=dF(e),r=fF(e),i=pF(e),a=uF(e),o=xL(e),s=EI(e),c=GI(e),l=RL(e),u=t=>LL(e[t])===`LOCAL`?u(t+1):LL(e[t])===`TIME`&&LL(e[t+1])===`ZONE`,d=t=>{let r=LL(e[t]);return r===`FOR`?!l(t):r===`WITH`||r===`WITHOUT`?!u(t+1):r===`TAG`?n(t+1):o(t)||NL.includes(r)||s(t)||c(t)},f=t=>LL(e[t])===`CASE`,p=t=>/^END(?:::|$)/.test(LL(e[t]));return o=>{let s=0,c=o;for(;c<e.length&&!a(c);c++)if(n(c)||f(c))s++;else if(r(c)){if(s===0)break;s--}else if(s>0)p(c)&&s--;else if(t(c)||i(c))break;else if(c>o&&d(c))break;return c-o}},BL=(e,t)=>e.flatMap(e=>{switch(e.type){case RP.leftParent:return[{kind:`open`,text:`(`}];case RP.rightParent:return[{kind:`close`,text:`)`}];case RP.comma:return[{kind:`comma`,text:`,`}];case RP.period:return[{kind:`period`,text:`.`}]}return e.quoted?[{kind:jL[e.quoted],text:TI(e,t),token:e}]:e.value.split(`::`).flatMap((e,t)=>[...t?[{kind:`cast`,text:`::`}]:[],...e?[{kind:`word`,text:e}]:[]])}),VL=e=>e.kind===`word`&&!/[\p{L}\p{N}_$#@'"`]/u.test(e.text),HL=(e,t)=>/^ARRAY$/i.test(e.text)||!/^\[[\p{L}_@#]/u.test(t.text),UL=(e,t)=>e.kind===`word`&&t.kind===`word`&&(t.text===`=`&&/[<>!=]$/.test(e.text)||e.text===`=`&&t.text.startsWith(`>`)),WL=(e,t)=>[`close`,`comma`,`period`,`cast`].includes(t.kind)||[`open`,`period`,`cast`].includes(e.kind)?!1:e.kind===`comma`?!0:UL(e,t)?!1:t.kind===`bracket`&&!HL(e,t)?!0:t.kind===`open`||t.kind===`bracket`?VL(e):!0,GL=e=>e.reduce((t,n,r)=>r&&WL(e[r-1],n)?`${t} ${n.text}`:t+n.text,``),KL=(e,t)=>{let n=0;for(let r=t;r<e.length;r++)if(e[r].kind===`open`)n++;else if(e[r].kind===`close`&&--n===0)return r;return-1},qL=e=>{let t=e;for(;t.length>1&&t[0].kind===`open`&&KL(t,0)===t.length-1;)t=t.slice(1,-1);return t},JL=e=>{let t=0;return e.length>0&&e[0].kind===`word`&&e.every(({kind:e,text:n})=>e===`open`?(t++,!0):e===`close`?--t>=0:t>0||e===`period`?!0:e===`bracket`?IL.test(n):e===`word`&&FL.test(n)&&!ML.includes(n.toUpperCase()))},YL=e=>{if(e.length===1&&e[0].kind===`string`)return!0;let t=GL(e);return PL.test(t)||/^(?:null|true|false)$/i.test(t)},XL=e=>{let t=0,n=-1;return e.forEach(({kind:e},r)=>{e===`open`?t++:e===`close`?t--:t===0&&e===`cast`&&(n=r)}),n},ZL=e=>{let t=XL(e);if(t===-1||!JL(e.slice(t+1)))return e;let n=qL(e.slice(0,t));return YL(n)?n:e};function QL(e,t){let n=ZL(qL(BL(e,t))),[r]=n;if(n.length===1&&r.token){let{value:e,prefix:n=``}=r.token;return n+wI(e,t)}return GL(n)}function $L(e,t,n){let r=zL(e)(t.value),i=e.slice(t.value,t.value+r);return t.value+=r,QL(i,n)}var eR=({kind:e,text:t,token:n})=>e===`word`&&(n?n.quoted===`"`&&n.value===`nextval`:/^nextval$/i.test(t)),tR=/^(?:e|u&)?$/i,nR=e=>{let t=qL(e),n=XL(t);if(n!==-1)return JL(t.slice(n+1))&&nR(t.slice(0,n));let[r]=t;return t.length===1&&r.kind===`string`&&tR.test(r.token?.prefix??``)},rR=e=>{let t=zL(e);return n=>{let r=qL(BL(e.slice(n,n+t(n)))),[i,a]=r;return!!i&&eR(i)&&a?.kind===`open`&&KL(r,1)===r.length-1&&nR(r.slice(2,-1))}};function iR(e,t,n){let r=HI(e),i=uF(e),a=lF(e),o=dF(e),s=fF(e),c=oF(e),l=cF(e),u=xF(e),d=MF(e),f=_I(e),p=RL(e),m=aL(e)(t.value),h=()=>t.value<e.length,g=e=>f(e)&&!p(e),_=t=>{let n=0,c=t;for(;c<e.length&&!(i(c)||r(c));c++)if(o(c))n++;else if(s(c)){if(n===0)break;n--}else if(n===0&&(a(c)||g(c)))break;return c},v={type:FP.alterTableAddDefault,name:``,columnName:``,default:``},y=!1;if(t.value++,u(t.value)&&(t.value++,m&&t.value++,c(t.value)))for(v.name=e[t.value].value,t.value++;l(t.value)&&c(t.value+1);)v.name=e[t.value+1].value,t.value+=2;for(;h()&&!r(t.value);){if(i(t.value)){t.value++;break}if(!y&&d(t.value)){let r=t.value+1,i=_(r);v.default=QL(e.slice(r,i),n),t.value=i,y=!0,f(t.value)&&c(t.value+1)&&(v.columnName=e[t.value+1].value,t.value+=2);continue}t.value++}return v}function aR(e,t){let n=oF(e),r=dF(e),i=fF(e),a=lF(e),o=uF(e),s=IF(e),c=FF(e),l=()=>t.value<e.length&&!o(t.value),u=t=>n(t+1)&&/^\d+$/.test(e[t+1].value)&&i(t+2),d=[],f={name:``,sort:IP.asc},p=!1;for(t.value++;l()&&!i(t.value);){if(r(t.value)){p||=!f.name||!u(t.value);let e=0;for(;l();){if(r(t.value))e++;else if(i(t.value)&&--e===0)break;t.value++}if(!l())break}!f.name&&n(t.value)&&!s(t.value)&&!c(t.value)&&(f.name=e[t.value].value),s(t.value)&&(f.sort=IP.desc),a(t.value)&&(d.push(f),f={name:``,sort:IP.asc}),t.value++}return o(t.value)?[]:(f.name!==``&&d.push(f),t.value++,p?[]:d)}function oR(e,t,n){let r=HI(e),i=oF(e),a=dF(e),o=fF(e),s=cF(e),c=uF(e),l=sF(e),u=NF(e),d=RI(e),f=WI(e),p=()=>t.value<e.length,m={type:FP.createTable,name:``,comment:``,columns:[],indexes:[],keys:[],foreignKeys:[]},h=f(t.value);t.value+=h===0?2:h;let g=!1,_=!0;for(;p()&&!r(t.value);){let r=e[t.value];if(c(t.value)){t.value++;break}if(m.name&&d(t.value)){if(t.value+=2,i(t.value)&&a(t.value+1)&&t.value++,a(t.value)){let e=0;for(;p();){if(a(t.value))e++;else if(o(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(a(t.value)){if(t.value++,g||!_){let e=1;for(;p()&&e>0;)a(t.value)?e++:o(t.value)&&e--,t.value++;continue}let{columns:r,indexes:i,keys:s,foreignKeys:c}=sR(e,t,n);m.columns=r,m.indexes=i,m.keys=s,m.foreignKeys=c,g=!0;continue}if(i(t.value)&&!m.name){for(m.name=r.value,_=!0,t.value++;s(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(u(t.value)){r=e[++t.value],l(t.value)&&(r=e[++t.value]),i(t.value)&&(m.comment=r.value,t.value++),_=!1;continue}_=!1,t.value++}return m}function sR(e,t,n){let r=oF(e),i=dF(e),a=fF(e),o=lF(e),s=uF(e),c=cF(e),l=hL(e),u=OF(e),d=CF(e),f=EF(e),p=kF(e),m=LI(e),h=wF(e),g=jF(e),_=AF(e),v=MF(e),y=iI(e),b=gI(e),ee=rR(e),te=LF(e),ne=NF(e),re=DF(e),ie=PF(e),ae=sF(e),x=GI(e),S=qF(e),oe=fI(e),se=SF(e),C=dI(e),ce=tL(e),w=EI(e),le=_L(e),T=CL(e),ue=II(e),de=kI(e),fe=PI(e),pe=AI(e),me=wL(e),he=CI(e),ge=xI(e),_e=()=>t.value<e.length,ve=(t,n)=>n.every((n,r)=>!e[t+r]?.quoted&&e[t+r]?.value.toUpperCase()===n),ye=e=>!te(e)||!g(e+1)?0:ve(e+2,[`FOR`,`INSERT`,`ONLY`])?5:ve(e+2,[`FOR`,`INSERT`,`AND`,`UPDATE`])?6:2,be=e=>u(e)||f(e)||p(e)||h(e)||d(e)||re(e)||pe(e)||me(e),xe=[],Se=[],Ce=[],we=[],Te=[],Ee=[],De={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},Oe=!1,ke=``,Ae=-1,je=null,Me=e=>oe(e)&&d(e+1)&&!se(e+2),Ne=e=>e===Ae?ke:``,Pe=t=>{let n=0;for(;t<e.length&&!s(t);t++)if(i(t))n++;else if(a(t)){if(n--===0)return-1}else if(n===0&&o(t))return-1;else if(n===0&&C(t))return t;return-1},Fe=(e,t)=>{t.length&&(e?Ce.push({name:e,columnNames:t}):je={name:e,columnNames:t})},Ie=-1;for(;_e();){let s=e[t.value];je&&Me(t.value)&&(Ce.push(je),je=null);let te=ue(t.value);if(te){let r=t.value+te,i=[];for(;t.value<r;)i.push(o(t.value)?`,`:TI(e[t.value],n)),t.value++;De.dataType=i.reduce((e,t)=>!e||/^[,:>]/.test(t)?e+t:`${e} ${t}`,``);continue}let{span:oe}=de(t.value);if(oe){t.value+=oe;continue}let se=p(t.value)&&re(t.value+1)&&ie(t.value+2);if(De.name&&!Oe&&(ie(t.value)||se)){se&&(t.value+=2);let n={columnNames:[De.name],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};lR(e,t,n),n.refTableName&&n.refColumnNames.length<=1&&we.push(n);continue}if(!De.name&&be(t.value)&&(Oe=!0),Oe&&pe(t.value)){t.value++;continue}if(r(t.value)&&!Oe&&!De.name&&!_(t.value)&&!w(t.value)){De.name=s.value,Ie=++t.value;continue}if(i(t.value)){let e=0;for(;_e();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(u(t.value)){s=e[++t.value],r(t.value)&&!h(t.value)&&!f(t.value)&&!p(t.value)&&(ke=s.value,t.value++),Ae=t.value;continue}if(f(t.value)){let n=Ne(t.value);if(s=e[++t.value],re(t.value)){if(s=e[++t.value],Oe&&r(t.value)&&(s=e[++t.value]),i(t.value)){let r=aR(e,t).map(e=>e.name);Te.push(...r.map(e=>e.toUpperCase())),Fe(n,r)}else De.name&&(De.primaryKey=!0,Fe(n,[De.name]))}continue}if(p(t.value)){let n=cR(e,t);n&&we.push(n);continue}if(d(t.value)||re(t.value)){if(s=e[++t.value],r(t.value)){let n=s.value;if(s=e[++t.value],h(t.value)){ke=n;continue}if(i(t.value)){let r=aR(e,t);r.length&&Se.push({name:n,unique:!1,columns:r})}}continue}if(h(t.value)){let n=Ne(t.value);if(s=e[++t.value],(re(t.value)||d(t.value))&&(s=e[++t.value]),De.name){De.unique=!0,Fe(n,[De.name]);continue}t.value+=fe(t.value);let a=ke;if(r(t.value)&&(a=e[t.value].value,t.value++,t.value+=fe(t.value)),i(t.value)){let n=aR(e,t),r=n.map(e=>e.name),i=Pe(t.value);i!==-1&&!ce(i,r)?n.length&&Se.push({name:a,unique:!1,columns:n}):n.length>1?(Se.push({name:a,unique:!0,columns:n}),a||Fe(a,r)):(Ee.push(...r.map(e=>e.toUpperCase())),Fe(a,r))}continue}if(_(t.value)){s=e[++t.value],g(t.value)?(De.nullable=!1,t.value++):w(t.value)&&t.value++;continue}if(w(t.value)){t.value++;continue}if(v(t.value)){let r=y(t.value-1)&&b(t.value-2);if(t.value++,!r){t.value+=ye(t.value);let r=ee(t.value),i=$L(e,t,n);r?De.autoIncrement=!0:i&&(De.default=i)}continue}if(ne(t.value)){s=e[++t.value],ae(t.value)&&(s=e[++t.value]),r(t.value)&&(De.comment=s.value,t.value++);continue}if(m(t.value)){De.autoIncrement=!0,t.value++;continue}if(x(t.value)){t.value+=2,r(t.value)&&t.value++;continue}if(S(t.value)){t.value++,ae(t.value)&&t.value++,r(t.value)&&t.value++;continue}let C=le(t.value),me=t.value===Ie?T(t.value):0,ve=me>0&&(!C||c(t.value+1)),Le=ve?me:C;if(Le&&(Oe||De.dataType)){t.value+=Le;continue}if(Le){let o=t.value+Le,u=``,d=0;for(;t.value<o;){if(s=e[t.value],i(t.value))u+=`(`,d++;else if(a(t.value))u+=`)`,d--;else if(d){let e=TI(s,n);u+=r(t.value)&&(r(t.value-1)||a(t.value-1))?` ${e}`:e}else if(l(t.value))u+=TI(s);else{let e=ve?TI(s):SL(s);u+=u&&!c(t.value)&&!c(t.value-1)?` ${e}`:e}t.value++}for(;d>0;)u+=`)`,d--;for(;he(t.value);)ge(t.value)||(u+=` ${e[t.value].value}`),t.value++;De.dataType=u;continue}if(o(t.value)){(De.name||De.dataType)&&xe.push(De),De={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},Oe=!1,ke=``,je=null,t.value++;continue}if(a(t.value)){t.value++;break}t.value++}return!xe.includes(De)&&(De.name||De.dataType)&&xe.push(De),xe.forEach(e=>{Te.includes(e.name.toUpperCase())&&(e.primaryKey=!0),Ee.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:xe,indexes:Se,keys:Ce,foreignKeys:we}}function cR(e,t){let n=oF(e),r=dF(e),i=fF(e),a=DF(e),o=()=>t.value<e.length,s={columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``},c=e[++t.value];if(a(t.value)){if(c=e[++t.value],r(t.value)){for(c=e[++t.value];o()&&!i(t.value);)n(t.value)&&s.columnNames.push(c.value),c=e[++t.value];c=e[++t.value]}if(lR(e,t,s),s.columnNames.length&&s.refTableName&&(!s.refColumnNames.length||s.columnNames.length===s.refColumnNames.length))return s}return null}function lR(e,t,n){let r=oF(e),i=dF(e),a=fF(e),o=PF(e),s=cF(e),c=kI(e),l=()=>t.value<e.length;if(!o(t.value))return;let u=e[++t.value];if(r(t.value)){for(n.refTableName=u.value,t.value++;s(t.value);){if(!r(t.value+1)){t.value++;break}n.refTableName=e[t.value+1].value,t.value+=2}if(i(t.value)){for(u=e[++t.value];l()&&!a(t.value);)r(t.value)&&n.refColumnNames.push(u.value),u=e[++t.value];t.value++}for(let e=c(t.value);e.span;e=c(t.value))e.event===`DELETE`&&e.action?n.onDelete=e.action:e.event===`UPDATE`&&e.action&&(n.onUpdate=e.action),t.value+=e.span}}function uR(e,t){let n=HI(e),r=uF(e),i=oF(e),a=OF(e),o=cF(e),s=xF(e),c=kF(e),l=aL(e)(t.value),u=()=>t.value<e.length,d={type:FP.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};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=cR(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames,d.onDelete=n.onDelete,d.onUpdate=n.onUpdate);continue}t.value++}return d}function dR(e,t){let n=HI(e),r=uF(e),i=oF(e),a=dF(e),o=OF(e),s=EF(e),c=cF(e),l=DF(e),u=xF(e),d=lF(e),f=TF(e),p=PI(e),m=eL(e),h=aL(e)(t.value),g=()=>t.value<e.length,_={type:FP.alterTableAddPrimaryKey,name:``,constraintName:``,usingIndexName:``,columnNames:[]},v=!1,y=!0;for(t.value++;g()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(u(t.value)){if(n=e[++t.value],h&&(n=e[++t.value]),i(t.value))for(_.name=n.value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}_.name=e[t.value+1].value,t.value+=2}continue}if(v&&(d(t.value)||f(t.value))&&(y=!1),o(t.value)){n=e[++t.value],i(t.value)&&!s(t.value)&&(v||(_.constraintName=n.value),t.value++);continue}let g=m(t.value);if(g){v&&y&&(_.usingIndexName=e[t.value+g-1].value),t.value+=g;continue}if(s(t.value)){n=e[++t.value],l(t.value)&&(n=e[++t.value],t.value+=p(t.value),a(t.value)&&(_.columnNames=aR(e,t).map(e=>e.name),v=!0));continue}t.value++}return _}function fR(e,t){let n=HI(e),r=uF(e),i=oF(e),a=lF(e),o=TF(e),s=OF(e),c=cF(e),l=xF(e),u=wF(e),d=EF(e),f=kF(e),p=DF(e),m=CF(e),h=BF(e),g=AF(e),_=VF(e),v=dF(e),y=fF(e),b=PI(e),ee=eL(e),te=aL(e)(t.value),ne=()=>t.value<e.length,re=()=>{let e=0;for(;ne()&&!r(t.value);){if(v(t.value))e++;else if(y(t.value)&&--e===0){t.value++;return}t.value++}},ie=[],ae=``,x=``,S=null,oe=!1;if(t.value++,l(t.value)&&(t.value++,te&&t.value++,i(t.value)))for(ae=e[t.value].value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}ae=e[t.value+1].value,t.value+=2}for(;ne()&&!n(t.value);){if(r(t.value)){t.value++;break}if(a(t.value)||o(t.value)){x=``,S=null,oe=!1,t.value++;continue}if(v(t.value)){re();continue}if(s(t.value)){t.value++,i(t.value)&&!u(t.value)&&!d(t.value)&&!f(t.value)&&(x=e[t.value].value,t.value++);continue}if(u(t.value)){if(t.value++,oe){x=``;continue}(p(t.value)||m(t.value))&&t.value++,h(t.value)&&g(t.value+1)&&_(t.value+2)&&(t.value+=3),t.value+=b(t.value);let n=x;if(x=``,i(t.value)&&(n=e[t.value].value,t.value++,t.value+=b(t.value)),v(t.value)){let r=aR(e,t);r.length&&(S={type:FP.alterTableAddUnique,name:ae,constraintName:n,usingIndexName:``,columns:r},ie.push(S))}continue}let n=ee(t.value);if(n){S&&(S.usingIndexName=e[t.value+n-1].value),t.value+=n;continue}oe=!0,t.value++}return ie}var pR=[[`ADD`,`GENERATED`,`ALWAYS`,`AS`,`IDENTITY`],[`ADD`,`GENERATED`,`BY`,`DEFAULT`,`AS`,`IDENTITY`]],mR=[`ADD`,`DROP`,`OPTIONS`,`RESET`,`RESTART`,`SET`,`TYPE`];function hR(e,t){let n=uL(e),r=HI(e),i=uF(e),a=lF(e),o=dF(e),s=fF(e),c=oF(e),l=hF(e),u=xF(e),d=gF(e),f=WF(e),p=KF(e),m=MF(e),h=t=>{let n=e[t];return n&&c(t)&&!n.quoted?n.value.toUpperCase():``},g=(e,t)=>t.every((t,n)=>h(e+n)===t),_=t=>{let n=t;for(;n<e.length&&!r(n);)n++;return rR(e.slice(t,n))(0)},v=e=>p(e)&&m(e+1)&&_(e+2)||pR.some(t=>g(e,t)),y=e=>c(e)&&(!r(e)||mR.includes(h(e+1))),b=n(t.value),ee=e[t.value+b-1].value,te=[],ne=0,re=!0;for(t.value+=b;t.value<e.length;){if(i(t.value)){t.value++;break}if(re&&l(t.value)&&!u(t.value+1)){re=!1,t.value++,f(t.value)&&t.value++,y(t.value)&&(v(t.value+1)&&te.push({type:FP.alterTableAlterColumnAutoIncrement,name:ee,columnName:e[t.value].value}),t.value++,d(t.value)&&t.value++);continue}if(r(t.value))break;re=!1,o(t.value)?ne++:s(t.value)?ne--:ne===0&&a(t.value)&&(re=!0),t.value++}return te}function gR(e,t){let n=HI(e),r=oF(e),i=cF(e),a=uF(e),o=UF(e),s=jF(e),c=()=>t.value<e.length,l={type:FP.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 _R(e,t){let n=HI(e),r=oF(e),i=cF(e),a=uF(e),o=UF(e),s=jF(e),c=()=>t.value<e.length,l={type:FP.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 vR(e,t){let n=HI(e),r=uF(e),i=wF(e),a=oF(e),o=dF(e),s=LF(e),c=HF(e),l=uI(e),u=BF(e),d=AF(e),f=VF(e),p=dI(e),m=tL(e),h=qI(e),g=XI(e),_=PI(e),v=()=>t.value<e.length,y=()=>{let n=g(t.value);return n?(t.value+=n,e[t.value-1].value):``},b={type:FP.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=h(t.value)||1,l(t.value)&&t.value++,u(t.value)&&d(t.value+1)&&f(t.value+2)&&(t.value+=3),s(t.value)||(b.name=y());v()&&!n(t.value);){if(r(t.value)){t.value++;break}if(s(t.value)&&!b.tableName){t.value++,c(t.value)&&a(t.value+1)&&t.value++,b.tableName=y(),b.tableName&&(t.value+=_(t.value),o(t.value)&&(b.columns=aR(e,t)));continue}p(t.value)&&b.unique&&(b.unique=m(t.value,b.columns.map(({name:e})=>e))),t.value++}return b}function yR(e,t){let n=[],r={value:0},i=()=>r.value<e.length,a=KI(e),o=JI(e),s=oL(e),c=sL(e),l=cL(e),u=lL(e),d=dL(e),f=BI(e),p=VI(e),m=QI(e);for(;i();){if(a(r.value)){n.push(oR(e,r,t));continue}if(o(r.value)){n.push(vR(e,r));continue}if(u(r.value)){let i=r.value;s(i)?n.push(dR(e,r)):c(i)?n.push(uR(e,r)):l(i)&&n.push(iR(e,r,t));let a={value:i};n.push(...fR(e,a)),r.value=Math.max(r.value,a.value);continue}if(d(r.value)){n.push(...hR(e,r));continue}if(f(r.value)){n.push(_R(e,r));continue}if(p(r.value)){n.push(gR(e,r));continue}if(m(r.value)){let t=kL(e,r);t&&n.push(t);continue}r.value++}return n}var bR=(e,{database:t}={})=>yR(XP(e,t),t);function xR(e,t,n,r){let i=km({}),a=CR(SR(bR(e,{database:Object.values(Qg).find(e=>e_[e]===r)})));return a.forEach(e=>NR(i,e,t)),PR(i,a),FR(i,a),Eh(n?n(i):i)}function SR(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],defaults:[],autoIncrements:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case FP.createTable:n.name&&t.tables.push(n);break;case FP.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case FP.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case FP.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&(!n.refColumnNames.length||n.columnNames.length===n.refColumnNames.length)&&t.foreignKeys.push(n);break;case FP.alterTableAddUnique:n.name&&n.columns.length&&t.uniques.push(n);break;case FP.alterTableAddDefault:n.name&&n.columnName&&n.default&&t.defaults.push(n);break;case FP.alterTableAlterColumnAutoIncrement:n.name&&n.columnName&&t.autoIncrements.push(n);break;case FP.commentOnTable:n.name&&t.tableComments.push(n);break;case FP.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function CR({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,defaults:a,autoIncrements:o,tableComments:s,columnComments:c}){return t.forEach(t=>{let n=vA(e,t.tableName);if(!n)return;let r=OR(t),i=n.indexes.find(e=>TR(n,e)&&DR(OR(e),r));if(i){i.name||=t.name,i.unique||=t.unique;return}n.keys.some(e=>DR(e,r))||n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=vA(e,t.name);if(!n)return;let r=ER(n,{name:t.usingIndexName||t.constraintName,columnNames:t.columnNames});r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columnNames.forEach(e=>{let t=vA(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=vA(e,t.name);if(!n)return;let r=ER(n,{name:t.usingIndexName||t.constraintName,columnNames:kR(t.columns)});if(r&&t.columns.length>1){r.unique=!0;return}if(r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columns.length>1){n.indexes.push({name:t.constraintName,unique:!0,columns:t.columns});return}t.columns.forEach(({name:e})=>{let t=vA(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=vA(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames,onDelete:t.onDelete,onUpdate:t.onUpdate})}),a.forEach(({name:t,columnName:n,default:r})=>{let i=vA(e,t);if(!i)return;let a=vA(i.columns,n);a&&(a.default=r)}),o.forEach(({name:t,columnName:n})=>{let r=vA(e,t);if(!r)return;let i=vA(r.columns,n);i&&(i.autoIncrement=!0,i.default=``)}),s.forEach(({name:t,comment:n})=>{let r=wR(e,t);r&&(r.comment=n)}),c.forEach(({tableName:t,columnName:n,comment:r})=>{let i=wR(e,t);if(!i)return;let a=vA(i.columns,n);a&&(a.comment=r)}),e}function wR(e,t){return vA(e,t)??vA(e,t.slice(t.lastIndexOf(`.`)+1))}function TR(e,t){return t.name!==``||e.keys.some(e=>DR(e,OR(t)))}function ER(e,t){return e.indexes.find(e=>DR(t,OR(e)))??null}function DR(e,t){return e.name?AR(e.name,t.name)&&jR(e.columnNames,t.columnNames):MR(e.columnNames,t.columnNames)}const OR=({name:e,columns:t})=>({name:e,columnNames:kR(t)}),kR=e=>e.map(({name:e})=>e),AR=(e,t)=>e.toUpperCase()===t.toUpperCase();function jR(e,t){let n=new Set(e.map(e=>e.toUpperCase()));return e.length===t.length&&t.every(e=>n.has(e.toUpperCase()))}function MR(e,t){return e.length===t.length&&e.every((e,n)=>AR(e,t[n]))}function NR({doc:e,collections:t},n,{toWidth:r}){let i=oD({name:n.name,comment:n.comment,ui:{widthName:G(r(n.name)),widthComment:G(r(n.comment))}});n.columns.forEach(e=>{let n=GD({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?R.autoIncrement:0)|(e.primaryKey?R.primaryKey:0)|(e.unique?R.unique:0)|(e.nullable?0:R.notNull),ui:{widthName:G(r(e.name)),widthComment:G(r(e.comment)),widthDataType:G(r(e.dataType)),widthDefault:G(r(e.default)),keys:e.primaryKey?z.primaryKey:0}});i.columnIds.push(n.id),i.seqColumnIds.push(n.id),N(t).collection(`tableColumnEntities`).setOne(n)}),e.tableIds.push(i.id),N(t).collection(`tableEntities`).setOne(i)}function PR({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds),i=N(t).collection(`tableColumnEntities`);n.forEach(n=>{if(!n.foreignKeys.length)return;let a=vA(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=vA(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];if(n.refColumnNames.length)n.refColumnNames.forEach(e=>{let t=vA(c,e);t&&l.push(t)});else{let e=c.filter(e=>U(e.ui.keys,z.primaryKey));e.length===1&&l.push(...e)}if(n.columnNames.forEach(e=>{let t=vA(o,e);t&&u.push(t)}),!l.length||l.length!==u.length)return;u.forEach(e=>{U(e.ui.keys,z.primaryKey)?e.ui.keys|=z.foreignKey:e.ui.keys=z.foreignKey});let d=EE({identification:!u.some(e=>!(U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey))),relationshipType:qh.ZeroN,onDelete:mA(n.onDelete),onUpdate:mA(n.onUpdate),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),N(t).collection(`relationshipEntities`).setOne(d)})})}function FR({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=vA(r,n.name);if(!a)return;let o=N(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=gT({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=vA(o,e.name);if(!t)return;let n=NT({indexId:c.id,columnId:t.id,orderType:e.sort===IP.asc?Xh.ASC:Xh.DESC});s.push(n)});let l=s.length===i.columns.length;s.length!==0&&(l||!i.unique)&&(s.forEach(e=>{c.indexColumnIds.push(e.id),c.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(c.id),N(t).collection(`indexEntities`).setOne(c))})})}function IR({doc:e,collections:t},n){let r=V(n);return N(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds).filter(({start:e,end:t})=>r(e.tableId)&&r(t.tableId)).map(({relationshipType:e,onDelete:t,onUpdate:n,start:r,end:i})=>({relationshipType:e,onDelete:t,onUpdate:n,start:{tableId:r.tableId,columnIds:[...r.columnIds]},end:{tableId:i.tableId,columnIds:[...i.columnIds]}}))}function LR({doc:e,collections:t},n){let r=V(n),i=N(t).collection(`indexColumnEntities`),a=[];for(let n of N(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 RR({editor:{selectedMap:e},collections:t}){let{tableIds:n,memoIds:r,tableGroupIds:i}=Xk(e);return{tables:N(t).collection(`tableEntities`).selectByIds(n),memos:N(t).collection(`memoEntities`).selectByIds(r),tableGroups:N(t).collection(`tableGroupEntities`).selectByIds(i)}}function zR(e){let{tables:t,memos:n,tableGroups:r}=RR(e);return{tables:t.filter(e=>e.ui.color!==``),memos:n.filter(e=>e.ui.color!==``),tableGroups:r.filter(e=>e.color!==``)}}function BR({tables:e,columns:t,memos:n,relationships:r,indexes:i,tableGroups:a=[]},o,{valuesOnly:s=!1}={}){let c=[],l=(e,t)=>{(e||!s)&&c.push(t)},u=[],d=[],f=[],p=new Map(t.map(e=>[e.sourceId,e])),m=/* @__PURE__ */ new Map,h=/* @__PURE__ */ new Map;for(let t of e){let e=o.get(t.sourceId);if(!e)continue;let n=vh();u.push(n),m.set(t.sourceId,n),c.push(sD({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}})),l(!!t.name,hD({id:n,value:t.name})),l(!!t.comment,_D({id:n,value:t.comment}));for(let e of t.columnIds){let t=p.get(e);if(!t)continue;let r={id:vh(),tableId:n};h.set(e,r.id);let i=U(t.options,R.primaryKey),a=U(t.options,R.notNull),o=U(t.options,R.unique),s=U(t.options,R.autoIncrement);c.push(KD(r)),l(!!t.name,XD({...r,value:t.name})),l(!!t.dataType,eO({...r,value:t.dataType})),l(!!t.default,rO({...r,value:t.default})),l(!!t.comment,QD({...r,value:t.comment})),l(i,sO({...r,value:i})),l(a,dO({...r,value:a})),l(o,lO({...r,value:o})),l(s,aO({...r,value:s}))}}for(let e of r){let t=m.get(e.start.tableId),n=m.get(e.end.tableId);if(!t||!n)continue;let r=VR(e.start.columnIds,h),i=VR(e.end.columnIds,h);r&&i&&c.push(DE({id:vh(),relationshipType:e.relationshipType,onDelete:e.onDelete,onUpdate:e.onUpdate,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=m.get(e.tableId);if(!t)continue;let n=VR(e.indexColumns.map(({columnId:e})=>e),h);if(!n)continue;let r=vh();c.push(_T({id:r,tableId:t})),l(!!e.name,xT({id:r,tableId:t,value:e.name})),l(e.unique,CT({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=vh(),o=n[i];c.push(FT({id:a,indexId:r,tableId:t,columnId:o})),l(e!==Xh.ASC,VT({id:a,indexId:r,columnId:o,value:e}))})}for(let e of n){let t=o.get(e.sourceId);if(!t)continue;let n=vh();d.push(n),c.push(QT({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}})),l(!!e.value,oE({id:n,value:e.value}))}for(let e of a){let t=vh();f.push(t),c.push(jO({id:t,color:e.color,ui:{...e.ui}})),l(!!e.name,VO({id:t,value:e.name}));for(let n of e.tableIds){let e=m.get(n);e&&c.push(xD({id:e,value:t}))}}return{actions:c,tableIds:u,memoIds:d,tableGroupIds:f}}function VR(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function HR(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),N(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]})}}})),HR(e,t,n)),n}const UR=lg.flow,WR={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==zh.visualization&&(yield Hb({value:zh.visualization})),t.visualizationMode!==ug.flow&&(yield W_({value:ug.flow})),yield t.views.flow?H_({tableIds:e,kind:UR}):w_({kind:UR,centerIds:e}))}},GR=e=>function*(){yield BC(),yield UC({value:e})},KR=e=>function*(){yield GC(),yield qC({value:e})},qR=(e,t,n=`document`,r={})=>function*(i){let{tableIds:a,memoIds:o,tableGroupIds:s}=Xk(i.editor.selectedMap),{zoomLevel:c}=ib(i,n),l=e/c,u=t/c;if(n!==`document`){a.length&&(yield Y_(J_.drag,I_({ids:a,movementX:l,movementY:u,kind:n})));return}r.tableGroupIds??=s,r.tableIds??=nA(i,r.tableGroupIds,a),yield rA(r.tableGroupIds,r.tableIds,l,u),o.length&&(yield Y_(J_.drag,eE({ids:o,movementX:l,movementY:u})))},JR=()=>function*(){yield Lk(),yield dk(),yield tA()},YR=(e,t)=>function*(n){yield*ZR(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})},XR=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*ZR(i,{input:ez(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:We(n.x,4),y:We(n.y,4)},escapeCollision:r})};function*ZR(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=N(s).collection(`tableEntities`),l=N(s).collection(`memoEntities`),{actions:u,tableIds:d,memoIds:f}=BR(t,$R(Pk({entities:[...t.tables.map(e=>QR(e,`table`)),...t.memos.map(e=>QR(e,`memo`))],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield fz(),yield u,yield IC({...d.reduce((e,t)=>(e[t]=sg.table,e),{}),...(Z_(e)?f:[]).reduce((e,t)=>(e[t]=sg.memo,e),{})})}const QR=({sourceId:e,ui:{x:t,y:n,zIndex:r}},i)=>({sourceId:e,kind:i,ui:{x:t,y:n,zIndex:r}});function $R(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:We(t,4),y:We(n,4),zIndex:r}]))}function ez(e,{tableIds:t,memoIds:n,tableGroupIds:r=[]}){let{collections:i}=e,a=N(i).collection(`tableEntities`).selectByIds(t),o=N(i).collection(`memoEntities`).selectByIds(n),s=a.flatMap(e=>N(i).collection(`tableColumnEntities`).selectByIds(e.columnIds)),c=a.map(({id:e})=>e);return{tables:a.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:s.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:o.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:IR(e,c),indexes:LR(e,c),tableGroups:N(i).collection(`tableGroupEntities`).selectByIds(r).map(e=>({sourceId:e.id,name:e.name,color:e.color,tableIds:a.filter(t=>t.groupId===e.id).map(({id:e})=>e),ui:{...e.ui}}))}}function tz(e,t,n){let r={...e,...t};Zv(r,n),MD[aD.sortTable](r,{type:aD.sortTable,payload:void 0},n)}function nz(e,t,n){let r=Th(e);tz(t,r,n);let i=JSON.parse(e),a=(e,t,n)=>{let r=e?.[t];r&&(r.ui={...r.ui,...n})},{doc:o,collections:s}=r;return N(s).collection(`tableEntities`).selectByIds(o.tableIds).forEach(({id:e,ui:{x:t,y:n}})=>a(i.collections?.tableEntities,e,{x:t,y:n})),N(s).collection(`tableGroupEntities`).selectByIds(o.tableGroupIds).forEach(({id:e,ui:{x:t,y:n,width:r,height:o}})=>a(i.collections?.tableGroupEntities,e,{x:t,y:n,width:r,height:o})),JSON.stringify(i)}function rz(e,t,{tables:n,memos:r},i,a){let{tableEntities:o}=t.collections;i===`grid`&&tz(e,t,a);let s=new Map(typeof i==`string`?[]:i.map(({id:e,x:t,y:n})=>[e,{x:t,y:n}]));return new Map([...n.map(({sourceId:e})=>{let{x:t,y:n}=o[e].ui;return[e,s.get(e)??{x:t,y:n}]}),...r.map(({sourceId:e,ui:{x:t,y:n}})=>[e,{x:t,y:n}])])}function iz({tableGroups:e=[]},t,n,r){return t===`file`?e.map(({ui:e})=>e):e.flatMap(({tableIds:e})=>{let t=e.flatMap(e=>{let t=n.get(e),i=r.get(e);return t&&i?[{...t,...i}]:[]});return t.length?[Ry(t.reduce(ay))]:[]})}function az(e){let t=Yy(e)?[]:[...Hy(e).values()],n=Z_(e)?[]:N(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds).map(uy),r=[...t,...n],i=[$y(e),...r].filter(e=>e!==null).reduce((e,t)=>e?ay(e,t):t,null);return i?{x:i.x,y:i.y+i.height+80}:{x:50,y:50}}function oz(e,t,n,r){let i;try{i=Th(t)}catch{return null}let{doc:a,collections:o}=i,s={...e,doc:a,collections:o},c=ez(s,a);if(!c.tables.length&&!c.memos.length)return null;let l=rz(e,i,c,n,r),u=new Map(N(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>[e.id,Qv(e,s,r.toWidth)])),d=1/0,f=1/0;for(let{x:e,y:t}of[...l.values(),...iz(c,n,l,u)])d=Math.min(d,e),f=Math.min(f,t);let p=az(e),m=YS(N(e.collections).collection(`tableEntities`).selectByIds(e.doc.tableIds),N(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds)),h=[...c.tables,...c.memos].sort((e,t)=>e.ui.zIndex-t.ui.zIndex),g=/* @__PURE__ */ new Map;h.forEach(({sourceId:e},t)=>{let n=l.get(e);g.set(e,{x:We(p.x+n.x-d,4),y:We(p.y+n.y-f,4),zIndex:m+t})});let _=new Map(N(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>{let{x:t,y:n}=g.get(e.id);return[e.id,{x:t,y:n,...u.get(e.id)}]})),v=N(o).collection(`memoEntities`).selectByIds(a.memoIds).map(e=>uy({...e,ui:{...e.ui,...g.get(e.id)}})),y=sz(e,c,n,_,{x:p.x-d,y:p.y-f});return{...BR({...c,tableGroups:y},g,{valuesOnly:!0}),rect:[..._.values(),...v,...y.map(({ui:{x:e,y:t,width:n,height:r}})=>({x:e,y:t,width:n,height:r}))].reduce(ay)}}function sz(e,{tableGroups:t=[]},n,r,i){let a=Jy(N(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds));return[...t].sort((e,t)=>e.ui.zIndex-t.ui.zIndex).map((e,t)=>{let o=e.tableIds.map(e=>r.get(e)).filter(e=>!!e),{x:s,y:c,width:l,height:u}=n===`file`||!o.length?{...e.ui,x:We(e.ui.x+i.x,4),y:We(e.ui.y+i.y,4)}:Ry(o.reduce(ay));return{...e,ui:{x:s,y:c,width:l,height:u,zIndex:a+t}}})}const cz=(e,t=`file`)=>function*(n,r){let i=oz(n,e,t,r);i&&(yield i.actions)},lz=(e,t)=>function*(n,r){yield cz(bz(e,t,n,r),`grid`)},uz=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=iv(n,t),o={...N(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=oy(n,i,t);return fA(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=sg.table),r},{}),...N(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=mv(n),i=hv(n);return fA(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=sg.memo),t},{}),...dz(n,e,t)};yield fz(),Ue(o)||(yield IC(o))};function dz(e,t,n){if(n!==`document`||!Yy(e))return{};let r={};return Hy(e).forEach(({x:e,y:n,width:i,height:a},o)=>{dA(t,{x:e,y:n,w:i,h:a})&&(r[o]=sg.tableGroup)}),r}const fz=()=>function*(){yield PC(),yield $C()},pz=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===dg.Tab&&!t&&(bC(r.focusType)&&vC(n)&&!sC(n)||!bC(r.focusType)&&cC(n)&&uC(n))?yield Uk(r.tableId):yield tw({moveKey:e,shiftKey:t}))},mz=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield Cw():yield yw({relationshipType:e})},hz=e=>function*({collections:t}){let n=N(t).collection(`tableEntities`).selectById(e);if(n){if(!N(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>U(e.options,R.primaryKey))){let t=vh();yield KD({tableId:e,id:t}),yield sO({tableId:e,id:t,value:!0}),yield ZC({tableId:e,columnId:t,focusType:H.columnName,$mod:!1,shiftKey:!1})}yield xw({tableId:e})}},gz=e=>function*(t){let{tables:n,memos:r,tableGroups:i}=RR(t),a=e.toLowerCase();yield n.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>yD({id:t.id,color:e,prevColor:t.ui.color})),yield r.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>cE({id:t.id,color:e,prevColor:t.ui.color})),yield i.filter(e=>e.color.toLowerCase()!==a).map(t=>UO({id:t.id,color:e,prevColor:t.color}))},_z=()=>function*(e){let{tables:t,memos:n,tableGroups:r}=zR(e);yield t.map(e=>yD({id:e.id,color:``,prevColor:e.ui.color})),yield n.map(e=>cE({id:e.id,color:``,prevColor:e.ui.color})),yield r.map(e=>UO({id:e.id,color:``,prevColor:e.color}))},vz=[`originX`,`originY`,`zoomLevel`];function yz(e,t){let n=me(re(t),vz),{originX:r,originY:i,zoomLevel:a}=e.settings;e.settings={...e.settings,...n,lockedValues:{...n.lockedValues,originX:r,originY:i,zoomLevel:a}}}function bz(e,t,{settings:n},r){let i=e=>(yz(e,n),e);switch(e){case`sql`:return xR(t,r,i,n.database);case`graphql`:return PP(t,r,i);case`dbml`:return iN(t,r,i);case`aml`:return Uj(t,r,i)}}const xz=(e,t)=>function*(n,r){yield GR(nz(bz(e,t,n,r),n,r))},Sz=e=>xz(`sql`,e),Cz=e=>xz(`graphql`,e),wz=e=>xz(`dbml`,e),Tz=e=>xz(`aml`,e),Ez=e=>function*({editor:{focusTable:t}}){t&&t.columnId&&(yield zw({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))};function Dz(e,t,n){let r=[...t],i=[];for(let t of n){let n=r.indexOf(t);if(n===-1)return[];let a=r[r.length-1];t!==a&&(r.splice(n,1),r.push(t),i.push(pO({tableId:e,id:t,targetId:a})))}return oe(r,t)?[]:i}const Oz=(e,t)=>function*({editor:{draggableColumn:n},collections:r}){if(!n||n.columnIds.length===0)return;let{tableId:i,columnIds:a}=n,o=N(r).collection(`tableEntities`),s=o.selectById(i);if(!s)return;if(t===i){let t=s.columnIds.indexOf(a[0]);if(t===-1)return;if(e===null){yield Dz(i,s.columnIds,a);return}let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>pO({tableId:i,id:t,targetId:e}));t<n&&r.reverse(),yield r;return}if(!o.selectById(t))return;let c=N(r).collection(`tableColumnEntities`).selectByIds(a);if(c.length===0)return;yield Wk(i,a);let l=c.map(()=>vh());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[KD(a),XD({...a,value:r.name}),eO({...a,value:r.dataType}),rO({...a,value:r.default}),QD({...a,value:r.comment}),sO({...a,value:U(r.options,R.primaryKey)}),dO({...a,value:U(r.options,R.notNull)}),lO({...a,value:U(r.options,R.unique)}),aO({...a,value:U(r.options,R.autoIncrement)}),...e===null?[]:[pO({...a,targetId:e})],ZC({tableId:t,columnId:i,focusType:H.columnName,$mod:!0,shiftKey:!1})]}yield zw({tableId:t,columnIds:l})},kz=e=>function*(t){let{columnIds:n,relationshipIds:r}=HR([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield Dw({columnIds:ve(n)}),yield kw({relationshipIds:ve(r)})},Az=()=>function*(){yield Dw({columnIds:[]}),yield kw({relationshipIds:[]})},jz={loadJsonAction$:GR,initialLoadJsonAction$:KR,moveAllAction$:qR,removeSelectedAction$:JR,pasteEntitiesAction$:YR,duplicateAction$:XR,dragSelectAction$:uz,unselectAllAction$:fz,focusMoveTableAction$:pz,drawStartRelationshipAction$:mz,drawStartAddRelationshipAction$:hz,changeColorAllAction$:gz,removeColorAllAction$:_z,loadSchemaSQLAction$:Sz,loadSchemaGraphQLAction$:Cz,loadSchemaDBMLAction$:wz,loadSchemaAMLAction$:Tz,appendSchemaAction$:lz,appendSchemaJsonAction$:cz,dragstartColumnAction$:Ez,dragoverColumnAction$:Oz,columnKeyHoverStartAction$:kz,columnKeyHoverEndAction$:Az,...WR},Mz={addIndexAction$:e=>function*(){yield _T({id:vh(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=N(t).collection(`indexEntities`).selectById(e);n&&(yield CT({id:e,tableId:n.tableId,value:!n.unique}))}},Nz={addIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.seqIndexColumnIds).find(e=>e.columnId===t);i?yield FT({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield FT({id:vh(),indexId:e,tableId:r.tableId,columnId:t})},removeIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.indexColumnIds).filter(e=>e.columnId===t);for(let t of i)yield LT({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=N(t).collection(`indexColumnEntities`).selectById(e);n&&(yield VT({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===Xh.ASC?Xh.DESC:Xh.ASC}))},moveIndexColumnAction$:(e,t)=>function*({collections:n}){if(e===t)return;let r=N(n).collection(`indexColumnEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexEntities`).selectById(r.indexId);i&&(yield zT({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},Pz={addRelationshipAction$:(e,t,n,r={})=>function*({doc:{tableIds:i},collections:a,settings:{database:o}}){let s=N(a).collection(`tableEntities`).selectByIds(i),c=s.find(({id:t})=>t===e),l=s.find(({id:e})=>e===t);if(!c||!l)return;let u=N(a).collection(`tableColumnEntities`),d=u.selectByIds(c.columnIds).filter(({options:e})=>U(e,R.primaryKey)),f=d.length?null:GD({tableId:c.id}),p=f?[f]:d,m=p.map(()=>vh());yield[...f?[KD({id:f.id,tableId:c.id}),sO({id:f.id,tableId:c.id,value:!0})]:[],...kk(p,l.id,m,{startTableName:c.name,endColumnNames:u.selectByIds(l.columnIds).map(({name:e})=>e),database:o}),DE({id:vh(),relationshipType:n,...r,start:{tableId:c.id,columnIds:p.map(({id:e})=>e)},end:{tableId:l.id,columnIds:m}})]}};function Fz(e,t,n,r){let i=cb({...e,zoomLevel:t},n);return{movementX:We(r.x-i.x,4),movementY:We(r.y-i.y,4)}}function Iz(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2};return Fz(t,n,lb(t,i),i)}const Lz={changeZoomLevelAction$:(e,t)=>function*(n){let r=ab(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=Iz(n,r,s_(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield M_({value:e,kind:t}),yield O_({...c,kind:t});return}yield Db({value:e}),yield Nb(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=ab(n,t),i=Iz(n,r,s_(r.zoomLevel+e));if(t&&t!==`document`){yield P_({value:e,kind:t}),yield A_({...i,kind:t});return}yield kb({value:e}),yield Fb(i)},changeLockSettingsAction$:(e,t)=>function*({settings:n,editor:r}){let i=t?e:e&sx,a=Qh.filter(e=>U(i,e)).flatMap(e=>$h[e]),o=he(n,a);o.canvasType===zh.settings&&(o.canvasType=r.lastCanvasType),yield ax({lockSettingType:e,value:t,values:o})}},Rz=Object.freeze({...iT,...jz,...ET,...Mz,...WT,...Nz,...hE,...pk,...UE,...Pz,...gx,...Lz,...ND,...zk,...gO,...Yk,...JO,...uA}),zz=/* @__PURE__ */ `table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.changeGroup,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,relationship.changeOnDelete,relationship.changeOnUpdate,relationship.changeColumns,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,tableGroup.add,tableGroup.move,tableGroup.moveTo,tableGroup.remove,tableGroup.resize,tableGroup.changeName,tableGroup.changeColor,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.changeColumnOrder,settings.changeMaxWidthComment,settings.changeLockSettings,settings.changeDDLScript,editor.loadJson,editor.clear`.split(`,`);[...zz];const Bz=V([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),Vz=[...zz.filter(e=>!Bz(e))],Hz=V([`editor.loadJson`,`editor.clear`]),Uz=[...Vz.filter(e=>!Hz(e))],Wz={"settings.changeZoomLevel":Zh.viewport,"settings.streamZoomLevel":Zh.viewport,"settings.scrollTo":Zh.viewport,"settings.streamScrollTo":Zh.viewport,"settings.changeCanvasType":Zh.canvasType,"settings.changeLanguage":Zh.language,"settings.changeTableNameCase":Zh.tableNameCase,"settings.changeColumnNameCase":Zh.columnNameCase,"settings.changeBracketType":Zh.bracketType},Gz=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...zz,...Gz];const Kz=[`table.move`,`memo.move`,`tableGroup.move`],qz=[`table.changeColor`,`memo.changeColor`,`tableGroup.changeColor`],Jz=[`settings.streamZoomLevel`,`settings.streamScrollTo`],Yz=[...Object.keys(ok)],Xz=[...Object.keys(ak),...Yz];function Zz(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function Qz(e,t,n){Zz(e,t),t.set(e,n)}function $z(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 eB(e,t){return e.get($z(e,t))}function tB(e,t,n){return e.set($z(e,t),n),n}var nB=/* @__PURE__ */ new WeakMap,rB=class{constructor(){Qz(this,nB,0),Ri(this,`getVersion`,()=>eB(nB,this)),Ri(this,`getNextVersion`,()=>this.getVersion()+1),Ri(this,`merge`,e=>(!w(e)||!Number.isInteger(e)||this.getVersion()<e&&tB(nB,this,e),this))}};function iB(e){return{...e,clock:new rB}}function aB({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=>aB(e,{commands:[...i],cursor:a,limit:o})})}const oB=De(e=>!!e.length),sB=e=>{let t=V(e);return e=>new be(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(oB)},cB=`@@none-stream`,lB=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n.type)?n.type:cB},uB=(e,t)=>t!==void 0&&typeof e.tags==`number`&&U(e.tags,t),dB=(e,t=[],n=Te(200))=>{let r=V(e),i=t.map(([e,t,n])=>{let r=V(t);return[e,e=>r(e.type)||uB(e,n)]}),a=lB(r,i);return e=>new be(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t);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(oB,ke(e=>a(e[0])),Me(e=>e.key===cB?e:e.pipe(we(e.pipe(n)),Ae(e=>e.flat()))))},fB=e=>{let t=t=>C(t.tags)||!e.some(e=>U(t.tags,e));return e=>new be(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(oB)};V(Yz),V(Gz);const pB=e=>t=>t.pipe(Ie(t=>e.pipe(Le(1),Ae(()=>t)))),mB=e=>{let t=e=>t=>{let n=Reflect.get(Wz,t.type);return!n||!U(e,n)};return n=>new be(r=>n.subscribe({next:n=>{r.next(n.filter(t(e())))},error:e=>r.error(e),complete:()=>r.complete()})).pipe(oB)},hB=(e,t=[])=>{let n=V(Vz),r=e=>!C(e.tags)&&t.some(t=>U(e.tags,t))||!n(e.type);return t=>new be(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(oB)},gB={[K.scrollTo]:B.viewScrollTo,[K.streamScrollTo]:B.viewStreamScrollTo,[K.changeZoomLevel]:B.viewChangeZoomLevel,[K.streamZoomLevel]:B.viewStreamZoomLevel},_B=({tags:e})=>!C(e)&&(U(e,J_.shared)||U(e,J_.following)),vB=e=>{let t=gB[e.type];return t&&!_B(e)?{...e,type:t}:e},yB=e=>t=>new be(n=>t.subscribe({next:t=>{n.next(e()?t.map(vB):t)},error:e=>n.error(e),complete:()=>n.complete()})),bB=(e,t=[])=>{let n=V(Uz),r=e=>!C(e.tags)&&t.some(t=>U(e.tags,t))||!n(e.type);return t=>new be(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(oB)};function xB(e,t){return sd({context:e,state:{...Mm(),editor:fg(),lww:{}},reducers:{...rT,...MD,...hO,...mE,...HE,...hx,...TT,...UT,...qO},enableObservable:t??!0})}const SB=(e,t)=>e.pipe(Be(()=>Ve(0,Ce),{leading:!1,trailing:!0})).subscribe(()=>yx(t())),CB=(e,t)=>e.pipe(Be(()=>Ve(0,Ce),{leading:!1,trailing:!0}),Ne(Ce)).subscribe(()=>bx(t())),wB=V([lD.type,dD.type,eE.type]),TB=({tags:e})=>!C(e)&&U(e,J_.drag)?Ve(5):Ve(0,Ce),EB=[_T,yT,CT,FT,LT,zT,pO],DB=EB.map(e=>e.type),OB=V(DB),kB=V([P.hideReferentialAction,P.hideTableGroup,P.hideMemo]),AB=e=>e.type===Lb.type&&kB(e.payload?.show),jB=(e,t)=>e.pipe(De(e=>(!OB(e.type)||U(t().settings.show,P.columnAlternateKey))&&!AB(e)),ze(e=>{wB(e.type)||Iv()}),Be(TB,{leading:!1,trailing:!0})).subscribe(()=>{AS(t())}),MB=V([Lb.type,rx.type,eE.type,...DB]),NB=V([O_.type,A_.type,M_.type,P_.type]),PB=({id:e})=>[e],FB=({ids:e})=>e,IB=({tableId:e})=>[e],LB=(e,{kind:t})=>t,RB=()=>lg.flow,zB=(e,{kind:t})=>t??__(e)?.kind??null,BB={[w_.type]:LB,[E_.type]:LB,[R_.type]:LB,[H_.type]:RB,[B_.type]:zB,[I_.type]:zB},VB={[sD.type]:PB,[pD.type]:PB,[dD.type]:PB,[hD.type]:PB,[_D.type]:PB,[DE.type]:PB,[kE.type]:PB,[LE.type]:({id:e,start:t,end:n})=>[e,t.tableId,n.tableId],[lD.type]:FB,[I_.type]:FB,[KD.type]:IB,[JD.type]:IB,[XD.type]:IB,[QD.type]:IB,[eO.type]:IB,[rO.type]:IB,[sO.type]:IB};function HB(e,t){let{tableIds:n,relationshipIds:r}=iv(e,t);return/* @__PURE__ */ new Set([...n,...r])}function UB(e,t,n,r){if(MB(t.type)||NB(t.type))return!1;let i=BB[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=VB[t.type];if(!a)return!0;let o=HB(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const WB=[lg.flow],GB=(e,t)=>{let n={flow:/* @__PURE__ */ new Set},r=/* @__PURE__ */ new Set;return e.pipe(De(e=>{let i=t(),a=!1;for(let t of WB)v_(i,t)&&UB(i,e,n[t],t)&&(r.add(t),a=!0);return a}),Be(TB,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)v_(e,t)&&(AS(e,t),n[t]=HB(e,t))})},KB=[Lb,rx,DE,kE,LE,eE,sD,pD,lD,dD,hD,_D,KD,JD,XD,QD,eO,rO,TD,...EB],qB=[sO],JB=[w_,E_,O_,A_,M_,P_,I_,R_,B_,H_],YB=[[[KD,JD,sO,DE,kE,LE,sD,pD],SB],[[KD,JD,dO,sO,DE,kE,LE,sD,pD],CB],[KB,jB],[[...KB,...qB,...JB],GB]],XB=[[[pD],(e,t)=>e.pipe(Ne(Ce)).subscribe(()=>{let{doc:e,editor:n}=t(),r=n.drawRelationship?.start;r&&!e.tableIds.includes(r.tableId)&&(n.drawRelationship=null)})]],ZB=e=>e.pipe(Ne(Ce)),QB=[[[sO],(e,t)=>ZB(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=N(n).collection(`tableColumnEntities`).selectById(e);r&&U(r.options,R.primaryKey)&&(U(r.options,R.notNull)||(r.options|=R.notNull))})],[[DE,kE,LE,KD,JD,sD,pD],(e,t)=>e.pipe(Be(()=>Ve(0,Ce),{leading:!1,trailing:!0})).subscribe(()=>Sx(t()))]],$B=[...XB,...QB,...YB];function eV(e){let t=()=>e.state,n=$B.map(([n,r])=>{let i=new xe;return{pattern:V(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 tV(e,{getReadonly:t=()=>!1,getHistory:n,manualStreamFlush:r=!1,observable:i=!0}={}){let a=/* @__PURE__ */ new Set,o=xB(e,i),s=eV(o),c={notify:e=>o.dispatch(AC(e)),dispatch:o.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},l=n?.(c)??aB(c);l.setLimit(2048);let u=()=>__(o.state),d=new xe,f=d.pipe(yB(u)),p=new xe,m=new xe,h=new xe,g=m.pipe(Fe(void 0),Ie(()=>p.pipe(dB(Yz,[[`@@move`,Kz,J_.drag],[`@@scroll`,Jz],[`@@color`,qz]],r?pB(h):void 0)))),_=new be(e=>o.subscribe(t=>e.next(t))).pipe(sB(zz),mB(()=>o.state.settings.lockSettings),hB(t,[J_.shared]),Te(200)),v=(...t)=>{let n=e.clock.getNextVersion();return rd(o.state,o.context,t).map(e=>(C(e.version)&&(e.version=n),e))},y=(...e)=>{let t=v(e);d.next(t)},b=(...e)=>{queueMicrotask(()=>y(e))},ee=()=>{Array.from(a).forEach(e=>se(e)?e():e.unsubscribe()),a.clear(),o.destroy(),s.destroy(),l.clear(),d.complete(),h.complete()},te=()=>{m.next(),l.clear()},ne=()=>{t()||u()||l.undo()},re=()=>{t()||u()||l.redo()},ie=()=>{r&&h.next()};return a.add(g.subscribe(lk(o,l))).add(f.pipe(sB(Xz),fB([J_.changeOnly,J_.shared]),hB(t),bB(u)).subscribe(p)).add(f.pipe(hB(t,[J_.shared]),bB(u,[J_.shared])).subscribe(o.dispatchSync)).add(o.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...o,dispatch:b,dispatchSync:y,destroy:ee,undo:ne,redo:re,history:l,resetHistory:te,change$:_,flushStreamBuffers:ie,getReadonly:t})}const nV={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,toggleSearch:`toggleSearch`,openFindReplace:`openFindReplace`,openExportImage:`openExportImage`,openMapColumns:`openMapColumns`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,openLocalePicker:`openLocalePicker`,setLocaleOption:`setLocaleOption`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var rV=/* @__PURE__ */ new WeakMap,iV=class{constructor(){Qz(this,rV,/* @__PURE__ */ new Set)}on(e){return eB(rV,this).has(e)||eB(rV,this).add(e),()=>{eB(rV,this).delete(e)}}emit(e){eB(rV,this).forEach(t=>{ik(Reflect.get(t,e.type),e)})}clear(){eB(rV,this).clear()}};const aV=k(nV.openColorPicker);k(nV.closeColorPicker),k(nV.openToast),k(nV.openTableProperties);const oV=k(nV.dragendColumnAll);k(nV.copy),k(nV.paste),k(nV.toggleSearch),k(nV.openFindReplace),k(nV.openExportImage),k(nV.openMapColumns),k(nV.openThemeBuilder),k(nV.setThemeOptions),k(nV.openLocalePicker),k(nV.setLocaleOption),k(nV.mouseTrackerStart),k(nV.mouseTrackerEnd),k(nV.openDiffViewer),k(nV.openAutomaticTablePlacement);const sV=k(nV.duplicateDragStart);k(nV.dragSelectStart);const cV=()=>typeof navigator==`object`?navigator.platform:``,lV=()=>/Mac|iPod|iPhone|iPad/.test(cV()),uV={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};Object.values(uV);const Z={edit:`edit`,stop:`stop`,search:`search`,findReplace:`findReplace`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,removeTable:`removeTable`,removeColumn:`removeColumn`,removeSelection:`removeSelection`,primaryKey:`primaryKey`,selectAllTable:`selectAllTable`,selectAllColumn:`selectAllColumn`,relationshipZeroOne:`relationshipZeroOne`,relationshipZeroN:`relationshipZeroN`,relationshipOneOnly:`relationshipOneOnly`,relationshipOneN:`relationshipOneN`,tableProperties:`tableProperties`,focusView:`focusView`,zoomIn:`zoomIn`,zoomOut:`zoomOut`,zoomReset:`zoomReset`,handTool:`handTool`,zenMode:`zenMode`};Object.values(Z),Z.findReplace,Z.search,Z.undo,Z.redo,Z.zoomIn,Z.zoomOut,Z.zoomReset;const dV=()=>({[Z.edit]:[{shortcut:`Enter`}],[Z.stop]:[{shortcut:`Escape`}],[Z.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[Z.findReplace]:[{shortcut:`$mod+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[Z.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[Z.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[Z.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[Z.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[Z.removeSelection]:[{shortcut:`Delete`,preventDefault:!0},{shortcut:`Backspace`,preventDefault:!0}],[Z.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[Z.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[Z.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[Z.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[Z.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[Z.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[Z.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[Z.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[Z.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[Z.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[Z.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[Z.handTool]:[{shortcut:`Space`,preventDefault:!0}],[Z.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]});uV.Shift,uV.Meta,uV.Alt,uV.Control,uV.Shift,uV.Meta,uV.Alt,uV.Control;function fV(e){return lV()?e.metaKey:e.ctrlKey}function pV(e,t){let{devtools:n=!0,...r}=t??{},i=iB(e),a=tV(i,r),o=Qa(dV(),{shallow:!0}),s=new xe,c=new xe,l=new iV;return Object.freeze({...i,actions:Rz,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l,lifecycle:{destroyed:!1}})}const mV=Hi({}),hV=(e,t)=>mo(e,{...mV,value:t??mV.value});function gV(e){e.lifecycle.destroyed=!0,e.store.dispatchSync(GC()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const _V={code:`en`,label:`English`,english:`English`},vV=[{code:`id-ID`,label:`Bahasa Indonesia`,english:`Indonesian`},{code:`de-DE`,label:`Deutsch`,english:`German`},_V,{code:`es-ES`,label:`Español`,english:`Spanish`},{code:`eu-ES`,label:`Euskara`,english:`Basque`},{code:`fr-FR`,label:`Français`,english:`French`},{code:`it-IT`,label:`Italiano`,english:`Italian`},{code:`nl-NL`,label:`Nederlands`,english:`Dutch`},{code:`pl-PL`,label:`Polski`,english:`Polish`},{code:`pt-PT`,label:`Português`,english:`Portuguese`},{code:`pt-BR`,label:`Português Brasileiro`,english:`Brazilian Portuguese`},{code:`ro-RO`,label:`Română`,english:`Romanian`},{code:`sk-SK`,label:`Slovenčina`,english:`Slovak`},{code:`sl-SI`,label:`Slovenščina`,english:`Slovenian`},{code:`sv-SE`,label:`Svenska`,english:`Swedish`},{code:`tr-TR`,label:`Türkçe`,english:`Turkish`},{code:`ru-RU`,label:`Русский`,english:`Russian`},{code:`uk-UA`,label:`Українська`,english:`Ukrainian`},{code:`he-IL`,label:`עברית`,english:`Hebrew`,rtl:!0},{code:`ar-SA`,label:`العربية`,english:`Arabic`,rtl:!0},{code:`fa-IR`,label:`فارسی`,english:`Persian`,rtl:!0},{code:`ja-JP`,label:`日本語`,english:`Japanese`},{code:`zh-CN`,label:`简体中文`,english:`Simplified Chinese`},{code:`zh-TW`,label:`繁體中文`,english:`Traditional Chinese`},{code:`ko-KR`,label:`한국어`,english:`Korean`}];[...vV.map(e=>e.code)];const yV=new Map(vV.map(e=>[e.code,e]));function bV(e){return yV.get(e)??_V}function xV(e){return bV(e).rtl?`rtl`:`ltr`}const SV=/\{(\w+)\}/g;function CV(e){return`${e}`}function wV(e,t,n=!1){return t?e.replace(SV,(e,r)=>{if(!Object.prototype.hasOwnProperty.call(t,r))return e;let i=String(t[r]);return n?CV(i):i}):e}function TV(e,t){let n=xV(e),r=new Intl.PluralRules(e),i=t;return{locale:e,dir:n,messages:t,t:(e,t)=>{let a=i[e];return wV(T(a)?a:a[r.select(Number(t?.count))]??a.other,t,n===`rtl`)}}}function EV(e){return e instanceof MouseEvent}function DV(e){return EV(e)&&e.button===2}function OV(e){return(e.touches?.length??0)>1}function kV(e){return!EV(e)||e.button===0}const AV=/* @__PURE__ */ new Map([[`table`,`table`],[`memo`,`memo`],[`relationship`,`relationship`],[`table-group`,`tableGroup`],[`table-group-body`,`tableGroup`]]),jV=/* @__PURE__ */ new Map([[`table-group-title`,`title`],[`table-group-body`,`body`],[`table-group-sash`,`sash`]]);function MV(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 NV=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),PV=/* @__PURE__ */ new WeakMap,FV=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function IV(e){return e.on(FV,t=>{let n=t.evt,r=MV(n),i=PV.get(e),a=n.type===`contextmenu`&&NV(i?.point,r)?i?.hit??null:t.target===e?null:RV(t.target);PV.set(e,{evt:n,hit:a,point:r})}),()=>{e.off(FV),PV.delete(e)}}function LV(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 RV(e){let t=e,n=``,r=`body`;for(;t;){let e=t.getAttr(`kind`);e===`column-row`&&t.id().startsWith(`column-`)&&(n=t.id().slice(7)),r=jV.get(e)??r;let i=AV.get(e);if(i){let a=LV(t,e);return i===`tableGroup`?{kind:i,id:a,part:r}:i===`table`&&n?{kind:i,id:a,columnId:n}:{kind:i,id:a}}t=t.getParent()}return null}const zV={"code.label":`Code`,"code.copy":`Copy`,"code.savedInDocument":`Saved in the document`,"code.saveFile":`Save file`,"code.saveFileMenu":`Save file…`,"code.optionsPanel":`Options panel`,"code.hideOptions":`Hide options`,"code.showOptions":`Show options`,"code.notUsedBy":`Not used by {language}`},BV={"colorPicker.saturationAndBrightness":`Saturation and brightness`,"colorPicker.slider2d":`2D slider`,"colorPicker.areaValue":`Saturation {saturation}%, brightness {brightness}%`,"colorPicker.hue":`Hue`,"colorPicker.degrees":{one:`{count} degrees`,other:`{count} degrees`},"colorPicker.noColor":`No color`,"colorPicker.eyeDropper":`Pick a color from the screen`,"colorPicker.channel.red":`Red, 0 to 255`,"colorPicker.channel.green":`Green, 0 to 255`,"colorPicker.channel.blue":`Blue, 0 to 255`,"colorPicker.presets":`Presets`,"colorPicker.documentColors":`Document colors`,"colorPicker.preset.red":`Red`,"colorPicker.preset.orange":`Orange`,"colorPicker.preset.amber":`Amber`,"colorPicker.preset.yellow":`Yellow`,"colorPicker.preset.lime":`Lime`,"colorPicker.preset.green":`Green`,"colorPicker.preset.teal":`Teal`,"colorPicker.preset.cyan":`Cyan`,"colorPicker.preset.blue":`Blue`,"colorPicker.preset.indigo":`Indigo`,"colorPicker.preset.violet":`Violet`,"colorPicker.preset.purple":`Purple`,"colorPicker.preset.pink":`Pink`,"colorPicker.preset.crimson":`Crimson`,"colorPicker.preset.brown":`Brown`,"colorPicker.preset.gray":`Gray`},VV={"common.close":`Close`,"common.none":`None`,"common.unnamed":`unnamed`,"common.system":`System`,"common.light":`Light`,"common.dark":`Dark`,"common.theme":`Theme`,"common.displayLanguage":`Display Language`,"common.search":`Search`,"common.find":`Find`,"common.findAndReplace":`Find and Replace`,"common.newTable":`New Table`,"common.newMemo":`New Memo`,"common.newTableGroup":`New Table Group`,"common.import":`Import`,"common.importAndAdd":`Import and Add`,"common.export":`Export`,"common.image":`Image`,"common.autoLayout":`Auto Layout`,"common.database":`Database`,"common.bracket":`Bracket`,"common.codeLanguage":`Language`,"common.tableNameCase":`Table Name Case`,"common.columnNameCase":`Column Name Case`,"common.tableProperties":`Table Properties`,"common.primaryKey":`Primary Key`,"common.relationship":`Relationship`,"common.color":`Color`,"common.table":`Table`,"common.shortcuts":`Shortcuts`,"common.apply":`Apply`,"common.cancel":`Cancel`,"common.tab.erd":`Entity Relationship Diagram`,"common.tab.visualization":`Visualization`,"common.tab.schemaSql":`Schema SQL`,"common.tab.codeGenerator":`Code Generator`,"common.tab.settings":`Settings`,"common.relationshipType.zeroOne":`Zero One`,"common.relationshipType.zeroN":`Zero N`,"common.relationshipType.oneOnly":`One Only`,"common.relationshipType.oneN":`One N`,"common.placement.force":`Force`,"common.placement.flow":`Flow`,"common.placement.treeVertical":`Tree - vertical`,"common.placement.treeHorizontal":`Tree - horizontal`,"common.column.name":`Name`,"common.column.dataType":`DataType`,"common.column.notNull":`Not Null`,"common.column.unique":`Unique`,"common.column.autoIncrement":`Auto Increment`,"common.column.default":`Default`,"common.column.comment":`Comment`,"common.placeholder.table":`table`,"common.placeholder.column":`column`,"common.placeholder.comment":`comment`,"common.placeholder.default":`default`,"common.placeholder.dataType":`dataType`,"common.toast.noTablesToPlace":`No tables to place`,"common.toast.couldNotPlaceTables":`Could not place tables`,"common.toast.copied":`Copied!`,"common.toast.copyFailed":`Couldn't copy to the clipboard`},HV={"contextMenu.delete":`Delete`,"contextMenu.deleteSelected":`Delete selected`,"contextMenu.deleteColumn":`Delete column`,"contextMenu.deleteColumns":`Delete columns`,"contextMenu.removeColor":`Remove color`,"contextMenu.primaryKeyOnSelectedColumns":`Primary Key on selected columns`,"contextMenu.focusOnThisTable":`Focus on this table`,"contextMenu.focusOnSelectedTables":`Focus on selected tables`,"contextMenu.groupSelectedTables":`Group selected tables`,"contextMenu.removeFromGroup":`Remove from group`,"contextMenu.selectTables":`Select tables`,"contextMenu.rename":`Rename`,"contextMenu.relationshipType":`Relationship Type`,"contextMenu.onDelete":`On Delete`,"contextMenu.onUpdate":`On Update`,"contextMenu.notSet":`Not set`,"contextMenu.notInDatabase":`not in {database}`,"contextMenu.viewOption":`View Option`,"contextMenu.diffViewer":`Diff Viewer`,"contextMenu.show.tableComment":`Table Comment`,"contextMenu.show.columnComment":`Column Comment`,"contextMenu.show.alternateKey":`Alternate Key`,"contextMenu.show.referentialActions":`Referential Actions`,"contextMenu.show.tableGroups":`Table Groups`,"contextMenu.show.memos":`Memos`},UV={"exportImage.title":`Export image`,"exportImage.preview":`Preview`,"exportImage.loadingPreview":`Loading preview`,"exportImage.background":`Background`,"exportImage.darkMode":`Dark mode`,"exportImage.scale":`Scale`,"exportImage.copyToClipboard":`Copy to clipboard`,"exportImage.reducedFrom":`Reduced from {askedWidth} × {askedHeight} px, past what a browser canvas can hold`,"exportImage.reducedFromTo":`Reduced from {askedWidth} × {askedHeight} px to {width} × {height} px, past what a browser canvas can hold`,"exportImage.exporting":`Exporting {format}`,"exportImage.exportFailed":`Couldn't export the {format}`,"exportImage.seeConsole":`See the browser console for the error`,"exportImage.exportedReduced":`Exported at a reduced resolution`,"exportImage.copying":`Copying image`,"exportImage.copyFailed":`Couldn't copy the image`,"exportImage.saveAsPng":`Save it as a PNG instead`,"exportImage.copiedReduced":`Copied at a reduced resolution`,"exportImage.copied":`Copied the image to the clipboard`},WV={"feedback.importOnly":`Only {format} files can be imported`,"feedback.placingTables":`Placing tables`,"feedback.placingProgress":`Placing tables {percent}%`,"feedback.diffViewer":`Diff Viewer`},GV={"findReplace.matchCase":`Match Case`,"findReplace.wholeWord":`Match Whole Word`,"findReplace.regex":`Use Regular Expression`,"findReplace.replace":`Replace`,"findReplace.replaceAll":`Replace All`,"findReplace.previousMatch":`Previous Match`,"findReplace.nextMatch":`Next Match`,"findReplace.scope.tableName":`Table names`,"findReplace.scope.tableComment":`Table comments`,"findReplace.scope.columnName":`Column names`,"findReplace.scope.columnComment":`Column comments`,"findReplace.scope.memo":`Memos`,"findReplace.invalidRegex":`Invalid regular expression`,"findReplace.noResults":`No results`,"findReplace.matchCount":{one:`{count} match`,other:`{count} matches`},"findReplace.position":`{current} of {total}`,"findReplace.replaced":{one:`Replaced {count} match`,other:`Replaced {count} matches`},"findReplace.noChanges":`No changes`,"findReplace.noMoreMatches":`No more matches`,"findReplace.showing":`Showing {from}–{to} of {total}`,"findReplace.field.tableName":`Table`,"findReplace.field.tableComment":`Table comment`,"findReplace.field.columnName":`Column`,"findReplace.field.columnComment":`Column comment`,"findReplace.field.memo":`Memo`,"findReplace.matchLocation":`{location} · {kind}`},KV={"floatingToolbar.hand":`Hand`,"floatingToolbar.select":`Select`,"floatingToolbar.zoomOut":`Zoom out`,"floatingToolbar.resetZoom":`Reset zoom`,"floatingToolbar.zoomIn":`Zoom in`,"floatingToolbar.zenMode":`Zen Mode`,"floatingToolbar.goToContent":`Go to content`,"floatingToolbar.goToNearestContent":`go to the nearest content`},qV={"mapColumns.title":`Map Columns`,"mapColumns.subtitle":`{parent} → {child} · {relationshipType}`,"mapColumns.mapToExisting":`Map to existing columns`,"mapColumns.createNew":`Create new columns`,"mapColumns.noPrimaryKeyToCopy":`{table} has no primary key to copy`,"mapColumns.references":`References`,"mapColumns.unique":`Unique: {column}`,"mapColumns.currentColumns":`Current columns (not a key)`,"mapColumns.referencedColumn":`Referenced column`,"mapColumns.foreignKeyColumn":`Foreign key column`,"mapColumns.pickColumn":`Pick a column`,"mapColumns.pickEveryColumn":`Pick a foreign key column for every referenced column`,"mapColumns.newColumn":`New column: {name}`,"mapColumns.columnOption":`{name} ({dataType})`,"mapColumns.columnOptionInUse":`{name} ({dataType}) · in use`,"mapColumns.removed":`(removed)`,"mapColumns.invalid":`(invalid)`,"mapColumns.becomesType":`{column} becomes {dataType}`,"mapColumns.typesDiffer":`Types differ: {parentType} and {childType}`,"mapColumns.selfOnly":`At least one column must reference a different column`,"mapColumns.duplicate":`These columns are already linked by another relationship`,"mapColumns.noKey":`{table} has no key to reference`,"mapColumns.notAKey":`The referenced columns are not a key of {table}`,"mapColumns.fixMapping":`Pick a key in References to fix this mapping`,"mapColumns.addKeyToFix":`Add a primary key or unique column to {table} to fix this mapping`,"mapColumns.changedRemotely":`This relationship changed while the dialog was open`,"mapColumns.map":`Map`,"mapColumns.save":`Save`,"mapColumns.closedTableRemoved":`Map Columns closed: {table} was removed`,"mapColumns.closedRelationshipRemoved":`Map Columns closed: the relationship was removed`,"mapColumns.failed":`Couldn't map columns: the diagram changed`},JV={"palette.tab":`Tab`,"palette.noCommandsMatch":`No commands match`,"palette.showMatches":{one:`Show {count} match in Find and Replace`,other:`Show all {count} matches in Find and Replace`},"palette.searchTables":`Search tables for "{keyword}"`,"palette.searchColumns":`Search columns for "{keyword}"`,"palette.searchText":`Search comments & memos for "{keyword}"`,"palette.scope.tables":`Tables`,"palette.scope.columns":`Columns`,"palette.scope.text":`Comments & memos`,"palette.scope.help":`Help`,"palette.scopeDescription.tables":`Go to a table by its name`,"palette.scopeDescription.columns":`Go to a column by its name, or by table.column`,"palette.scopeDescription.text":`Search table comments, column comments and memos`,"palette.scopeDescription.help":`List the prefixes that narrow the search`,"palette.keywords.graphql":`graphql sdl gql schema`,"palette.keywords.dbml":`dbml dbdiagram dbdocs schema`,"palette.keywords.aml":`aml azimutt markup language schema`,"palette.keywords.image":`image png svg vector picture clipboard`,"palette.keywords.findReplace":`find replace rename`,"palette.schemaSqlStatements":`Schema SQL: Statements`,"palette.schemaSqlHeader":`Schema SQL: Header`,"palette.schemaSqlOptionsPanel":`Schema SQL: Options panel`,"palette.codeGeneratorOptionsPanel":`Code Generator: Options panel`,"palette.exportSchemaSql":`Export: Schema SQL`,"palette.groupSelectedTables":`Group Selected Tables`,"palette.keywords.schemaSqlStatements":`create if not exists drop replace`,"palette.keywords.schemaSqlHeader":`use database search_path`,"palette.keywords.schemaSqlOptionsPanel":`show hide before after scripts`,"palette.keywords.codeGeneratorOptionsPanel":`show hide database case save file`,"palette.keywords.exportSchemaSql":`sql ddl file`},YV={"schemaSql.thisWindowOnly":`This window only`,"schemaSql.statements":`Statements`,"schemaSql.header":`Header`,"schemaSql.tables":`Tables`,"schemaSql.allTables":`All`,"schemaSql.noGroup":`No group`,"schemaSql.noTablesChosen":`No tables chosen. Check some under Tables.`,"schemaSql.notInDatabase":`Not in {database}`,"schemaSql.dropWarning":`Drops {tables} before creating them. Their rows are lost.`,"schemaSql.replaceWarning":`Replaces {tables}. Their rows are lost.`,"schemaSql.moreTables":{one:`{count} more table`,other:`{count} more tables`},"schemaSql.headerInvalidName":`Database name "{name}" is not a valid identifier.`,"schemaSql.oracleLongNames":`Oracle 12.2+ for names over 30 bytes: {names}`,"schemaSql.scriptsCaption":`Saved in the document · written as is for every database`,"schemaSql.beforeTables":`Before tables`,"schemaSql.afterTables":`After tables`,"schemaSql.afterPlaceholder":`-- GRANT, CREATE VIEW, seed data …`,"schemaSql.mssqlGoHint":`MSSQL gets GO after a script that does not end with GO.`},XV={"settings.preferences":`Preferences`,"settings.relationshipDataTypeSync":`Relationship DataType Sync`,"settings.maxCommentWidth":`Maximum comment width`,"settings.recalculateTableWidth":`Recalculation table width`,"settings.sync":`Sync`,"settings.toast.tableWidthRecalculated":`Recalculated table width`,"settings.lockHeading":`Lock`,"settings.lockSetting":`Lock {name}`,"settings.unlockSetting":`Unlock {name}`,"settings.lockedValue":`Locked value`,"settings.currentValue":`Current value`,"settings.lockRow.viewport":`Viewport`,"settings.lockRow.canvasType":`Canvas Type`,"settings.lockRow.bracketType":`Bracket Type`,"settings.columnOrder":`Column Order`},ZV={"shortcuts.command":`Command`,"shortcuts.keybinding":`Keybinding`,"shortcuts.name.edit":`Editing`,"shortcuts.name.stop":`Stop`,"shortcuts.name.search":`Search`,"shortcuts.name.findReplace":`Find and Replace`,"shortcuts.name.undo":`Undo`,"shortcuts.name.redo":`Redo`,"shortcuts.name.addTable":`Add Table`,"shortcuts.name.addColumn":`Add Column`,"shortcuts.name.addMemo":`Add Memo`,"shortcuts.name.removeTable":`Remove Table, Memo`,"shortcuts.name.removeColumn":`Remove Column`,"shortcuts.name.removeSelection":`Delete Selection`,"shortcuts.name.primaryKey":`Primary Key`,"shortcuts.name.selectAllTable":`Select All Table, Memo`,"shortcuts.name.selectAllColumn":`Select All Column`,"shortcuts.name.relationshipZeroOne":`Relationship Zero One`,"shortcuts.name.relationshipZeroN":`Relationship Zero N`,"shortcuts.name.relationshipOneOnly":`Relationship One Only`,"shortcuts.name.relationshipOneN":`Relationship One N`,"shortcuts.name.tableProperties":`Table Properties`,"shortcuts.name.focusView":`Focus on this table`,"shortcuts.name.zoomIn":`Zoom In`,"shortcuts.name.zoomOut":`Zoom Out`,"shortcuts.name.zoomReset":`Zoom Reset`,"shortcuts.name.handTool":`Hand Tool`,"shortcuts.name.zenMode":`Zen Mode`},QV={"tableProperties.readOnly":`Read only`,"tableProperties.indexes":`Indexes`,"tableProperties.keys":`Keys`,"tableProperties.columns":`Columns`,"tableProperties.indexOrder":`Index order`,"tableProperties.dragToReorder":`Drag to reorder`,"tableProperties.addIndex":`Add Index`,"tableProperties.noIndexes":`No indexes`,"tableProperties.noIndexesYet":`No indexes yet`,"tableProperties.noColumns":`This table has no columns`,"tableProperties.indexHasNoColumns":`This index has no columns`,"tableProperties.checkColumnsToAdd":`Check columns above to add them`,"tableProperties.selectedCount":{one:`{count} of {total} selected`,other:`{count} of {total} selected`},"tableProperties.readOnlyByPrimaryKey":`Read only: set by the {flag} flag on its columns`,"tableProperties.readOnlyByUnique":`Read only: set by the {flag} flag on its column`,"tableProperties.selectKeyOrIndex":`Select a key or an index`,"tableProperties.selectIndexToSee":`Select an index to see its columns`,"tableProperties.selectIndexToEdit":`Select an index to edit its columns`,"tableProperties.noKeysOrIndexes":`This table has no keys or indexes`,"tableProperties.addIndexToChoose":`Add an index to choose its columns`,"tableProperties.uniqueColumn":`Unique Column`,"tableProperties.readOnlyKey":`Read Only`,"tableProperties.indexName":`name`,"tableProperties.alternateKeyN":`Alternate Key {n}`,"tableProperties.remove":`Remove`,"tableProperties.ascending":`Ascending`,"tableProperties.descending":`Descending`},$V={"themeBuilder.accentColor":`Accent color`,"themeBuilder.grayColor":`Gray color`,"themeBuilder.appearance":`Appearance`},eH={"toolbar.databaseName":`database name`,"toolbar.undo":`Undo`,"toolbar.redo":`Redo`,"toolbar.timeTravel":`Time Travel`,"toolbar.tableCount":`Table: {count}`},tH={"visualization.graph":`Graph`,"visualization.fit":`Fit`,"visualization.tidyUp":`Tidy Up`,"visualization.showAll":`Show all`,"visualization.rowDisplay":`Row display: {mode}`,"visualization.showMode.nameOnly":`Name only`,"visualization.showMode.keysOnly":`Keys only`,"visualization.showMode.allFields":`All fields`},nH={"welcome.heading":`Right-click the canvas for every action.`,"welcome.menu":`Get started`,"welcome.commandPalette":`Command Palette`,"welcome.back":`Back`,"welcome.hintPalette":`Search commands and tables`,"welcome.hintThemeAndLanguage":`Pick a theme and a language`,"welcome.hintTheme":`Pick a theme`,"welcome.hintLanguage":`Pick a language`,"welcome.hintFloatingToolbar":`Pan, zoom and draw relationships`},rH=Hi(TV(`en`,{...VV,...HV,...KV,...tH,...zV,...YV,...GV,...QV,...BV,...JV,...XV,...ZV,...UV,...WV,...eH,...$V,...nH,...qV})),iH=e=>mo(e,rH),aH=Hi({}),oH=e=>mo(e,aH);function sH({app:e,container:t,scene:n,width:r,height:i,theme:a,i18n:o}){let s=new y({container:t,width:r,height:i}),c={host:s.container(),parentElement:null},l=ho(c,mV,e),u=a?ho(c,aH,a):null,d=o?ho(c,rH,o):null,f=IV(s);return mp(s,n),{stage:s,destroy:()=>{f(),mp(s,null),d?.destroy(),u?.destroy(),l.destroy(),s.destroy()}}}const cH=e=>new Promise(t=>setTimeout(t,e)),lH=32767;function uH(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,lH/r,16384/Math.sqrt(i))}function dH({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 fH(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=$y(e);if(U(t,P.relationship)){let e=N(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=Zg(t);i=i?ay(i,e):e}}return dH(i??{x:0,y:0,width:0,height:0},80)}function pH({width:e,height:t}){let n=Math.max(e,t),r=e*t;return n<=0||r<=0?1:Math.min(1,lH/n,Math.sqrt(268435456/r))}function mH(e,t){return{width:Math.max(e.width*t,1),height:Math.max(e.height*t,1)}}function hH(e,t){let n=pH({x:0,y:0,...e}),r=mH(e,n),i=uH(t,r.width,r.height),a=1*t;return{width:Math.floor(r.width*i),height:Math.floor(r.height*i),askedWidth:Math.floor(e.width*a),askedHeight:Math.floor(e.height*a),reduced:n*i<a}}const gH={"arrow-down":Je,"arrow-left":Ye,"arrow-right":Xe,"arrow-up":Ze,atom:Qe,braces:$e,brackets:et,"case-sensitive":tt,check:nt,"chevron-down":rt,"chevron-right":it,code:at,"columns-2":ot,contrast:st,copy:ct,database:lt,diff:ut,download:dt,"external-link":ft,eye:pt,"file-diff":mt,"file-image":ht,"file-input":gt,"file-output":_t,fullscreen:vt,"grip-vertical":yt,group:bt,hand:xt,keyboard:Ct,"key-round":St,languages:wt,link:Tt,"loader-circle":Et,lock:Dt,"lock-open":Ot,maximize:kt,"message-square":At,minimize:jt,minus:Mt,monitor:Nt,"moon-star":Pt,"mouse-pointer-2":Ft,network:It,palette:Lt,"panel-right":Rt,"panel-right-close":zt,"panel-right-open":Bt,pencil:Vt,pipette:Ht,plus:Ut,"redo-2":Wt,"refresh-cw":Gt,regex:Kt,replace:qt,"replace-all":Jt,"rotate-ccw-clock":Yt,search:Xt,settings:Zt,"settings-2":Qt,"share-2":$t,spline:en,"sticky-note":tn,sun:nn,"table-2":rn,"table-properties":an,"text-search":on,"triangle-alert":sn,"undo-2":cn,ungroup:ln,"wand-sparkles":un,waypoints:dn,"whole-word":fn,workflow:pn,x:mn},_H={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`}]]},vH={};yH();function yH(){for(let e of Object.keys(gH))vH[e]={name:e,node:gH[e]};for(let e of Object.keys(_H))vH[e]={name:e,node:_H[e]}}function bH(e){return vH[e]}const xH=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`,SH=`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`;lf.global`
|
|
27
29
|
:host {
|
|
28
|
-
--text-font-family: ${
|
|
29
|
-
--code-font-family: ${
|
|
30
|
+
--text-font-family: ${xH};
|
|
31
|
+
--code-font-family: ${SH};
|
|
30
32
|
}
|
|
31
|
-
`;function JP(e){return e instanceof MouseEvent}function YP(e){return(e.touches?.length??0)>1}const XP=qP,ZP=e=>`normal normal 12px ${e}`;ZP(XP);const QP={ascent:0,descent:0},$P=new Map;function eF(e=XP){let t=$P.get(e);if(t)return t;if(typeof document>`u`)return QP;let n=document.createElement(`canvas`).getContext(`2d`);if(!n)return QP;n.font=ZP(e);let r=n.measureText(`M`),i=r.fontBoundingBoxAscent??r.actualBoundingBoxAscent,a=r.fontBoundingBoxDescent??r.actualBoundingBoxDescent;if(!Number.isFinite(i)||!Number.isFinite(a))return QP;let o={ascent:i,descent:a};return $P.set(e,o),o}const tF=[20,24,28,35,60],nF=1.5;function rF(e){return{color:e,blur:20,offsetX:0,offsetY:2,opacity:.4}}const iF=Number(`0 0 24 24`.split(` `)[2]),aF=`transparent`,oF=aF,sF=new Set([aF,`none`,``]);function cF(e){let t=(e??``).trim();return sF.has(t)?null:{color:t,blur:10,offsetX:0,offsetY:2,opacity:1}}const lF=`pointer`,uF=new WeakMap,dF=e=>e.target?.getStage()?.container();function fF(e,t){let n=dF(e);if(!n)return;let r=uF.get(n);r?r.requested=t:n.style.cursor=t}function pF(e,t){let n=dF(e);if(!n||!JP(e.evt))return me;let r={requested:uF.get(n)?.requested??n.style.cursor};return uF.set(n,r),n.style.cursor=t,()=>{uF.get(n)===r&&(uF.delete(n),n.style.cursor=r.requested)}}function mF(e){let t=Math.min(6.5,e/2),n=Math.min(4,t),r=t-Math.sqrt(t**2-(t-n)**2);return[`M ${n} ${r}`,`A ${t} ${t} 0 0 0 0 ${t}`,`L 0 ${e-t}`,`A ${t} ${t} 0 0 0 ${n} ${e-r}`,`Z`].join(` `)}function hF(e,t,n,r){if(!JP(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===rg.memo?nw(n,!1):fw(n,!1)),t.preventDefault(),a.emit(dP()),!0}const gF=ja({active:{}});function _F(e,t=`document`){gF.active[ev(e,t)]=!0,nv(e,t)}function vF(e,t=`document`){Reflect.deleteProperty(gF.active,ev(e,t)),rv(e,t)}function yF(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 bF={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function xF(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}xF(bF.focus),xF(bF.forceFocus);const SF=xF(bF.forwardMoveStart,{bubbles:!0,composed:!0});function CF(e){return De(()=>ke(window,e))}CF(`keyup`);const wF=CF(`mousedown`),TF=CF(`mousemove`),EF=CF(`mouseup`),DF=CF(`touchstart`),OF=CF(`touchmove`),kF=CF(`touchend`),AF=CF(`dragstart`),jF=CF(`pointercancel`),MF=CF(`blur`);Ce().pipe(Fe());const NF=CF(SF.type).pipe(je(e=>e.detail.originEvent)),PF=Me(wF,DF,NF),FF=Me(EF,kF,AF,jF,MF);let IF=0,LF=0;typeof window<`u`&&PF.subscribe(e=>{JP(e)?(IF=e.clientX,LF=e.clientY):(IF=e.touches[0].clientX,LF=e.touches[0].clientY)});const RF=Me(TF.pipe(je(e=>{let t=e.clientX,n=e.clientY,r=t-IF,i=n-LF;return IF=t,LF=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),OF.pipe(Oe(e=>e.touches.length===1),je(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-IF,i=n-LF;return IF=t,LF=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(ze(FF));function zF(e,t){let n=SP(e),r=e=>({event:t,movementX:r,movementY:i})=>{t.type===`mousemove`&&t.preventDefault();let{store:a}=n.value;a.dispatch(JA(r,i,e))};return{onMoveStart:e=>{if(!e?.target||YP(e.evt))return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=!yF(e.target,t.blockedKinds(o));if(s&&hF(n.value,e.evt,a,t.selectType))return;let c=yP(e.evt)||!!i.state.editor.selectedMap[a];if(i.dispatch(t.selectType===rg.memo?nw(a,c):fw(a,c)),!s)return;let l=r(o),u=!1,d=0,f=0,p=()=>{u=!0,_F(i.state,o)};yF(e.target,t.clickKinds?.(o)??[])||p(),RF.subscribe(e=>{if(u)return l(e);e.event.type===`mousemove`&&e.event.preventDefault(),d+=e.movementX,f+=e.movementY,!(Math.abs(d)+Math.abs(f)<4)&&(p(),l({...e,movementX:d,movementY:f}))}).add(()=>u&&vF(i.state,o))}}}const BF=[`table-header-color`,`column-row`,`icon`],VF=[`input-padding`],HF=[`icon`];function UF(e,t,n){return zF(e,{entityId:()=>t.table.id,selectType:rg.table,blockedKinds:e=>e===`document`?BF:HF,clickKinds:e=>e===`document`?VF:[],source:n})}function WF(){let e=new Set;return da(()=>{Array.from(e).forEach(e=>le(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}function GF(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 KF=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function qF(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 JF={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`,tableHeaderBackground:`gray-5`,tableSelect:`accent-8`,tableBorder:`gray-6`,tableShadow:`override-transparent`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,memoShadow:`override-transparent`,columnSelect:`accent-3`,columnSelectHover:`accent-4`,columnHover:`gray-4`,relationshipHover:`accent-8`,visualizationLink:`gray-7`,visualizationColumn:`gray-8`,visualizationRelationship:`gray-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`},YF={amber:qt,amberA:Jt,amberDark:Yt,amberDarkA:Xt,blue:Zt,blueA:Qt,blueDark:$t,blueDarkA:en,bronze:tn,bronzeA:nn,bronzeDark:rn,bronzeDarkA:an,brown:on,brownA:sn,brownDark:cn,brownDarkA:ln,crimson:un,crimsonA:dn,crimsonDark:fn,crimsonDarkA:pn,cyan:mn,cyanA:hn,cyanDark:gn,cyanDarkA:_n,gold:vn,goldA:yn,goldDark:bn,goldDarkA:xn,grass:Sn,grassA:Cn,grassDark:wn,grassDarkA:Tn,gray:En,grayA:Dn,grayDark:On,grayDarkA:kn,green:An,greenA:jn,greenDark:Mn,greenDarkA:Nn,indigo:Pn,indigoA:Fn,indigoDark:In,indigoDarkA:Ln,iris:Rn,irisA:zn,irisDark:Bn,irisDarkA:Vn,jade:Hn,jadeA:Un,jadeDark:Wn,jadeDarkA:Gn,lime:Kn,limeA:qn,limeDark:Jn,limeDarkA:Yn,mauve:Xn,mauveA:Zn,mauveDark:Qn,mauveDarkA:$n,mint:er,mintA:tr,mintDark:nr,mintDarkA:rr,olive:ir,oliveA:ar,oliveDark:or,oliveDarkA:sr,orange:cr,orangeA:lr,orangeDark:ur,orangeDarkA:dr,pink:fr,pinkA:pr,pinkDark:mr,pinkDarkA:hr,plum:gr,plumA:_r,plumDark:vr,plumDarkA:yr,purple:br,purpleA:xr,purpleDark:Sr,purpleDarkA:Cr,red:wr,redA:Tr,redDark:Er,redDarkA:Dr,ruby:Or,rubyA:kr,rubyDark:Ar,rubyDarkA:jr,sage:Mr,sageA:Nr,sageDark:Pr,sageDarkA:Fr,sand:Ir,sandA:Lr,sandDark:Rr,sandDarkA:zr,sky:Br,skyA:Vr,skyDark:Hr,skyDarkA:Ur,slate:Wr,slateA:Gr,slateDark:Kr,slateDarkA:qr,teal:Jr,tealA:Yr,tealDark:Xr,tealDarkA:Zr,tomato:Qr,tomatoA:$r,tomatoDark:ei,tomatoDarkA:ti,violet:ni,violetA:ri,violetDark:ii,violetDarkA:ai,yellow:oi,yellowA:si,yellowDark:ci,yellowDarkA:li};Object.values({dark:`dark`,light:`light`}),Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`});const XF={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.values(XF),Object.keys(JF),V([XF.gray,XF.gold,XF.bronze]);const ZF=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>We(YF,`${e}.${e}9`)??``);function QF(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return ZF[Math.abs(t)%ZF.length]}function $F(e,t){let n=SP(e),{addUnsubscribe:r}=WF(),i=ja({force:!1}),a=()=>{i.force=!i.force};ua(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r(Ma(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?QF(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>GF(r,e,t,n));return r?QF(r.id):null}}}function eI(e,t){let n=SP(e),{addUnsubscribe:r}=WF(),i=ja({force:!1}),a=()=>{i.force=!i.force};return ua(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(Ma(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?QF(r.id):null}}}const tI=xi(`document`),nI=e=>Ka(e,tI),rI=e=>e>.6?tF[0]:e>.5?tF[1]:e>.4?tF[2]:e>.3?tF[3]:tF[4],iI=(e,t)=>{let n=SP(t),r=PP(t),i=nI(t),{sharedFocusTableColor:a}=$F(t,e.table.id),{sharedSelectColor:o}=eI(t,e.table.id),{onMoveStart:s}=UF(t,e,i),c=!1,l=e=>{c=!!n.value.store.state.editor.drawRelationship,s(e)},u=t=>{if(c)return;let{emitter:r}=n.value;r.emit(lP({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))};return()=>{let{store:t}=n.value,{editor:s}=t.state,{table:c}=e,d=r.value,f=i.value,p=!!s.selectedMap[c.id],m=j_(t.state,c,f),{zoomLevel:h}=V_(t.state,f),g=Ge(c.name.trim()),_=a(),v=o(),y=_??v;return A`<k-group id=${e.preview?``:`table-${c.id}`} name="table high-level-table" kind="table" visible=${e.visible??!0} selected=${p} sharedFocus=${_} sharedSelect=${v} x=${m.x} y=${m.y} @mousedown=${l} @touchstart=${l}><k-rect name="table-body" x=${1/2} y=${1/2} width=${m.width-1} height=${m.height-1} cornerRadius=${6} fill=${d.tableBackground} stroke=${p?d.tableSelect:d.tableBorder} strokeWidth=${1} />${y?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${m.width+1} height=${m.height+1} cornerRadius=${6} stroke=${y} strokeWidth=${1} />`:null}<k-text name="high-level-table-name" x=${1} y=${9} width=${m.width-2} height=${m.height-18} text=${g?`unnamed`:c.name} fill=${g?d.placeholder:d.active} fontFamily=${XP} fontSize=${rI(h)} fontStyle="bold" align="center" verticalAlign="middle" wrap="char" /><k-path name="table-header-color" kind="table-header-color" data=${mF(m.height)} fill=${c.ui.color} @click=${u} @mouseenter=${e=>{fF(e,lF)}} @mouseleave=${e=>{fF(e,``)}} /></k-group>`}};Vd`
|
|
33
|
+
`;const CH=/* @__PURE__ */ new WeakMap;function wH(e,t){let n=CH.get(e);n?n.requested=t:e.style.cursor=t}function TH(e,t){let n={requested:CH.get(e)?.requested??e.style.cursor};return CH.set(e,n),e.style.cursor=t,()=>{CH.get(e)===n&&(CH.delete(e),e.style.cursor=n.requested)}}const EH=e=>t=>{kV(t.evt)&&e(t)},DH=xH,OH=SH,kH=e=>`normal normal 12px ${e}`;kH(DH);const AH={ascent:0,descent:0},jH=/* @__PURE__ */ new Map;function MH(e=DH){let t=jH.get(e);if(t)return t;if(typeof document>`u`)return AH;let n=document.createElement(`canvas`).getContext(`2d`);if(!n)return AH;n.font=kH(e);let r=n.measureText(`M`),i=r.fontBoundingBoxAscent??r.actualBoundingBoxAscent,a=r.fontBoundingBoxDescent??r.actualBoundingBoxDescent;if(!Number.isFinite(i)||!Number.isFinite(a))return AH;let o={ascent:i,descent:a};return jH.set(e,o),o}const NH=1.5;function PH(e){return{color:e,blur:20,offsetX:0,offsetY:2,opacity:.4}}const FH=Number(`0 0 24 24`.split(` `)[2]),IH=`transparent`,LH=IH,RH=/* @__PURE__ */ new Set([IH,`none`,``]);function zH(e){let t=(e??``).trim();return RH.has(t)?null:{color:t,blur:10,offsetX:0,offsetY:2,opacity:1}}const BH=`pointer`,VH=e=>e.target?.getStage()?.container();function HH(e,t){let n=VH(e);n&&wH(n,t)}function UH(){let e=null,t=``;return{set(n,r){e=VH(n)??e,t=r,e&&wH(e,r)},release(){e&&t!==``&&wH(e,``),t=``}}}function WH(e,t){let n=VH(e);return!n||!EV(e.evt)?pe:TH(n,t)}lf`
|
|
32
34
|
position: absolute;
|
|
33
35
|
|
|
34
36
|
&.vertical {
|
|
@@ -47,8 +49,8 @@ import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER
|
|
|
47
49
|
width: ${5}px;
|
|
48
50
|
height: ${5}px;
|
|
49
51
|
}
|
|
50
|
-
`;const
|
|
51
|
-
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),
|
|
52
|
-
`)}function
|
|
53
|
-
`&&(r+=1),n.push({text:i,start:t})}return n}function EI(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-CI(i));if(e>r)break;n=i.length,r=e}return n}function DI(e,t,n,r){let i=wI(e),a=TI(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/gI()));if(o>=a.length)return i.length;let s=a[o];return s.start+EI(s,n)}function OI(e){let t=bI(e.value,e.ui.width).length;return Math.max(0,t*gI()-e.ui.height)}function kI(e,t){return Math.min(Math.max(0,t),OI(e))}function AI(e,t){return kI(t,e.memoScrollTopMap[t.id]??0)}const jI=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function MI(e,t,n){return zF(e,{entityId:()=>t.memo.id,selectType:rg.memo,blockedKinds:()=>jI,source:n})}function NI(e=`document`){return e===`document`?3:9}function PI(e=`document`){return e===`document`?2:0}function FI(e=`document`){return e===`document`?VI():16}function II(e=`document`){return e===`document`?2:8}function LI(e=`document`,t){return e===`document`?VI(t):16}function RI(){return b_(`document`)-II(`document`)*2-nF}function zI(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function BI(e){let{ascent:t,descent:n}=eF(e);return Math.round(18.5/2+(t-n)/2)}function VI(e){let{ascent:t,descent:n}=eF(e);return(BI(e)-(t-n)/2)*2}function HI(e=`document`){return e===`document`?29:31}function UI(e,t){let{maxWidthComment:n}=e.settings;return n===-1||n>=t.ui.widthComment?t.ui.widthComment:n}function WI(e,t,n=`document`){let r=n!==`document`,i=[{focusType:W.tableName,x:20,width:r?__(t.ui.widthName):t.ui.widthName}];return!r&&G(e.settings.show,F.tableComment)&&i.push({focusType:W.tableComment,x:20+t.ui.widthName+8,width:UI(e,t)}),i}const GI=[{columnType:I.columnName,focusType:W.columnName,show:null,width:e=>e.name},{columnType:I.columnDefault,focusType:W.columnDefault,show:F.columnDefault,width:e=>e.default},{columnType:I.columnComment,focusType:W.columnComment,show:F.columnComment,width:e=>e.comment},{columnType:I.columnDataType,focusType:W.columnDataType,show:F.columnDataType,width:e=>e.dataType},{columnType:I.columnNotNull,focusType:W.columnNotNull,show:F.columnNotNull,width:()=>35},{columnType:I.columnUnique,focusType:W.columnUnique,show:F.columnUnique,width:()=>22},{columnType:I.columnAutoIncrement,focusType:W.columnAutoIncrement,show:F.columnAutoIncrement,width:()=>15}],KI=[I.columnName,I.columnDataType];function qI(e,t,n=`document`){let{settings:r}=e,i=[],a=HI(n),o=n===`document`?r.columnOrder:KI;for(let e of o){let o=GI.find(t=>t.columnType===e);if(!o||n===`document`&&o.show!==null&&!G(r.show,o.show))continue;let s=o.width(t);i.push({columnType:e,focusType:o.focusType,x:a,width:s}),a+=s+8}return i}function JI(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}function YI(e){return(t,n)=>{JI(t,n,0,-II(e),n.width()+8,b_(e))}}const XI={document:YI(`document`),flow:YI(`flow`)};function ZI(e){let t=0-PI(e);return(e,n)=>{JI(e,n,0,t,n.width()+8,24)}}const QI={document:ZI(`document`),flow:ZI(`flow`)},$I=(e,t)=>{JI(e,t,-t.x(),-t.y(),iF,iF)},eL=([e,t],n,r)=>e===`circle`?A`<k-circle x=${Number(t.cx)} y=${Number(t.cy)} radius=${Number(t.r)} fill=${n} stroke=${n} strokeWidth=${2} listening=${r} hitFunc=${r?$I:void 0} />`:A`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?$I:void 0} />`;function tL({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=KP(e);if(!u)return null;let d=r/iF;return A`<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)=>eL(e,i,t===0))}</k-group>`}function nL(e){return e.ctrlKey?!yP(e)||Math.abs(e.deltaY)<25:!1}const rL=(e,t)=>{let n=SP(t),r=PP(t),i=nI(t),{sharedSelectColor:a}=eI(t,e.memo.id),{onMoveStart:o}=MI(t,e,i),s=ja({hover:!1,removeHover:!1}),c=()=>{s.hover=!0},l=()=>{s.hover=!1},u=e=>{s.removeHover=!0,fF(e,lF)},d=e=>{s.removeHover=!1,fF(e,``)},f=()=>{let{store:t}=n.value;t.dispatch(tw(e.memo.id))},p=t=>{let{emitter:r}=n.value;r.emit(lP({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},m=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=AI(r.state.editor,i);i.id,DI(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(ob({id:i.id}))},h=t=>{fF(t,e.preview?``:`text`)},g=e=>{fF(e,``)},_=t=>{if(nL(t.evt)||(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||yP(t.evt)))return;let{store:r}=n.value,{memo:i}=e,a=AI(r.state.editor,i),o=kI(i,a+t.evt.deltaY);o!==a&&r.dispatch(ub({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:i}=t.state,{memo:v}=e,y=r.value,ee=!!i.selectedMap[v.id],te=cF(y.memoShadow),ne=a(),re=!e.preview&&i.editMemoId===v.id,ie=bI(v.value,v.ui.width).join(`
|
|
54
|
-
`),ae=e.preview?0:AI(i,v),{width:b,height:oe}=P_(v),se=1/2;return A`<k-group id=${e.preview?``:`memo-${v.id}`} name="memo" kind="memo" selected=${ee} sharedSelect=${ne} x=${v.ui.x} y=${v.ui.y} @mousedown=${o} @touchstart=${o} @mouseenter=${c} @mouseleave=${l}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${b+1} height=${oe+1} cornerRadius=${7} stroke=${ne??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${se} y=${se} width=${b-1} height=${oe-1} cornerRadius=${6} fill=${y.memoBackground} stroke=${ee?y.memoSelect:y.memoBorder} strokeWidth=${1} shadowColor=${te?.color} shadowBlur=${te?.blur} shadowOffsetX=${te?.offsetX} shadowOffsetY=${te?.offsetY} shadowOpacity=${te?.opacity} shadowForStrokeEnabled=${!te&&void 0} /><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=${b-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${v.ui.color} @click=${p} @mouseenter=${e=>{fF(e,lF)}} @mouseleave=${e=>{fF(e,``)}} />${tL({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:s.hover?s.removeHover?y.active:y.foreground:aF,x:8+v.ui.width-12,y:8,click:f,mouseenter:u,mouseleave:d})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${v.ui.width} clipHeight=${v.ui.height} @click=${m} @mouseenter=${h} @mouseleave=${g} @wheel=${_}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${v.ui.width} height=${v.ui.height} fill=${oF} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${ae} text=${ie} visible=${!re} fill=${y.active} fontFamily=${XP} fontSize=${12} fontStyle=${`400`} lineHeight=${_I()} wrap="none" /></k-group><${fI} .memo=${v} .top=${oe} .left=${b} /></k-group></k-group>`}},iL={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},aL=new Map,oL=new Map,sL=ja({});let cL=iL,lL=null;function uL(e){let t=1-e;return 1-t*t*t}function dL(){lL===null&&oL.size!==0&&(lL=cL.requestFrame(fL))}function fL(){lL=null;let e=cL.now();for(let[t,n]of[...oL]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){oL.delete(t),sL[t]=a;continue}let o=r>0?r/300:0;sL[t]=i+(a-i)*uL(o)}dL()}function pL(e,t,n){return`${e} ${t}:${n}`}function mL(e){let t=sL[e];if(t!==void 0)return t;let n=oL.get(e);return n?n.from:aL.get(e)??0}function hL(e,t){let n=aL.get(e);if(n===t)return;if(n===void 0){aL.set(e,t);return}let r=mL(e);aL.set(e,t),oL.set(e,{from:r,to:t,startedAt:cL.now()}),dL()}const gL=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function _L(e){let t=gL.exec(e.trim());if(!t)return null;let n=t[1],r=n.length===6?n:[...n].map(e=>`${e}${e}`).join(``);return[0,2,4].map(e=>parseInt(r.slice(e,e+2),16))}function vL(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=_L(e),i=_L(t);return!r||!i?n<.5?e:t:`#${r.map((e,t)=>Math.round(e+(i[t]-e)*n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function yL(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 bL(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(yL(a,i,l)),r(yL(a,o,l))}return r(e[e.length-1]),n}function xL(e,t=`document`){let{start:n,end:r}=Ph(e,t),[i,a]=Ah(e,t),o=vM(n,r);return{path:SL(n,r,yM(_M(i),o),yM(_M(a),o),Mh(e,t),t),line:CL(n,r)}}function SL(e,t,n,r,i,a){let o={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}},s={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}]]:EL(a===`document`?bL(i&&i.length>1?i:OL(this.M,this.L,e.direction),8):mh(this.M,DL(e.direction),this.L,DL(t.direction)))}},c=1;return e.direction===R.left||e.direction===R.right?(e.direction===R.left&&(c*=-1),o.start.x2=e.x+c*n,o.start.x1+=c*25,s.M.x=o.start.x2,s.M.y=e.y):(e.direction===R.top||e.direction===R.bottom)&&(e.direction===R.top&&(c*=-1),o.start.y2=e.y+c*n,o.start.y1+=c*25,s.M.x=e.x,s.M.y=o.start.y2),c=1,t.direction===R.left||t.direction===R.right?(t.direction===R.left&&(c*=-1),o.end.x2=t.x+c*r,o.end.x1+=c*25,s.L.x=o.end.x2,s.L.y=t.y):(t.direction===R.top||t.direction===R.bottom)&&(t.direction===R.top&&(c*=-1),o.end.y2=t.y+c*r,o.end.y1+=c*25,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function CL(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===R.left||e.direction===R.right?(e.direction===R.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===R.top||e.direction===R.bottom)&&(e.direction===R.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===R.left||t.direction===R.right?(t.direction===R.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===R.top||t.direction===R.bottom)&&(t.direction===R.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 wL(e){if(!e.length)return``;let[[t]]=e,n=`M${TL(t.x)} ${TL(t.y)}`;for(let[,t]of e)n+=`L${TL(t.x)} ${TL(t.y)}`;return n}function TL(e){return Math.round(e*100)/100}function EL(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function DL(e){let t=xM(e);return bM(e)?{x:t,y:0}:{x:0,y:t}}function OL(e,t,n){if(bM(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 kL=`relationship-decoration`,AL=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function jL(e,t,n){return A`<k-line name=${kL} kind=${kL} points=${AL(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function ML({cx:e,cy:t},n,r){return A`<k-circle name=${kL} kind=${kL} x=${e} y=${t} radius=${6} stroke=${n} strokeWidth=${r} listening=${!1} />`}const NL={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[nh.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[nh.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[nh.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[nh.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function PL(e,{path:t,line:n},r,i){let a=NL[e];return a?A`${jL(t.line.end,r,i)}${a.ring?ML(n.circle,r,i):null}${a.ticks.map(e=>jL(n.line.end[e],r,i))}`:null}const FL=[10,10],IL=[];function LL({direction:e}){let t=e===R.left||e===R.top?-1:1;return e===R.left||e===R.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function RL({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 zL({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 BL(e){let t=LL(e),n=(n,r)=>RL(e,t,n,r),r=n(11,0);return[wL([[n(11,-7),n(11,7)]]),wL([[n(18,-7),n(18,7)]]),wL([[r,n(0,7)]]),wL([[r,n(0,-7)]]),zL(n(18,0),6)].join(``)}function VL({start:e,end:t},{line:n},r){return`${wL([[{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}]])}${BL(e)}${BL(t)}`}function HL(e){return 8/(e>0?e:1)}const UL=(e,t)=>{let n=SP(t),r=PP(t),i=nI(t),a=ja({hover:!1}),o=()=>{let{relationship:t}=e,{store:r}=n.value;a.hover=!0,r.dispatch(Sb({columnIds:[...t.start.columnIds,...t.end.columnIds]}))},s=()=>{let{store:e}=n.value;a.hover=!1,e.dispatch(Sb({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:c}=t.state,{relationship:l,strokeWidth:u}=e,d=r.value,f=i.value,{zoomLevel:p}=V_(t.state,f),m=Ph(l,f),h=xL(l,f),{path:g,line:_}=h,v=g.path.d(),y=!!c.hoverRelationshipMap[l.id],ee=a.hover||y,te=f!==`document`,ne=te?d.visualizationRelationship:l.identification?d.keyPFK:d.keyFK,re=ee?d.relationshipHover:ne,ie=pL(c.id,`relationship`,l.id),ae=0;te&&(hL(ie,+!!e.lit),ae=mL(ie));let b=vL(re,d.accentColor9,ae),oe=PL(l.relationshipType,h,b,u);return A`<k-group name=${`relationship ${l.id}`} kind="relationship" @mouseenter=${o} @mouseleave=${s}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${VL(m,g,v)} hitStrokeWidth=${HL(p)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${wL(v)} dash=${te||l.identification?IL:FL} stroke=${b} strokeWidth=${u} listening=${!1} />${jL(g.line.start,b,u)}${jL(_.line.start.base,b,u)}${l.startRelationshipType===rh.ring?A`${ML(_.startCircle,b,u)}${jL(_.line.start.center,b,u)}`:A`${jL(_.line.start.base2,b,u)}${jL(_.line.start.center2,b,u)}`}${oe}</k-group>`}},WL=(e,t)=>{let n=nI(t);return()=>{let{relationships:t,viewport:r,litIds:i}=e,a=n.value,o=e.strokeWidth??Rh(a),s=r?t.filter(e=>Q_(r,e,o,a)):t;return A`<k-group name="relationship-group" kind="relationship-group">${mu(s,e=>e.id,e=>A`<${UL} .relationship=${e} .strokeWidth=${o} .lit=${i?.has(e.id)??!1} />`)}</k-group>`}},GL=ja({pointers:{}});function KL(e,t,n,{columnId:r,columnIds:i}){let a=N_(e,t,t.columnIds.indexOf(r)),o=Math.max(i.indexOf(r),0);GL.pointers[ev(e,`document`)]={...n,grabX:n.x-j_(e,t).x,grabY:n.y-a.y+o*24,over:!0}}function qL(e,{x:t,y:n},r){let i=GL.pointers[ev(e,`document`)];i&&(i.x=t,i.y=n,i.over=r)}function JL(e){Reflect.deleteProperty(GL.pointers,ev(e,`document`))}const YL=e=>e.evt?.detail??0;function XL(){let e=null;return{track(t,n){YL(n)<=1&&(e=t)},isDouble(t,n){return YL(n)>=2&&e===t}}}const ZL={insert:1,delete:2};function QL(e,t,n){let r=t?.get(n);return r===ZL.insert?e.diffInsertBackground:r===ZL.delete?e.diffDeleteBackground:null}const $L=(e,t)=>{let n=G(e,B.primaryKey),r=G(e,B.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:aF},eR=(e,t,n,r,i)=>!t&&n?r?e.columnSelectHover:e.columnSelect:i>0?r?vL(e.columnHover,e.accentColor4,i):vL(e.tableBackground,e.accentColor3,i):r?e.columnHover:aF,tR=(e,t)=>{let n=SP(t),r=PP(t),i=ja({hover:!1,removeHover:!1}),{addUnsubscribe:a}=WF(),o=XL(),s=null,c=()=>{s?.unsubscribe(),s=null};a(c);let l=t=>{if(e.preview||e.ghost||t.evt.button!==0||e.source!==`document`)return;c();let n=!1,r=RF.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{s===r&&(s=null),n&&e.onDragend?.()}});s=r},u=!1,d=e=>{u=!!n.value.store.state.editor.drawRelationship,l(e)},f=()=>{i.hover=!0},p=()=>{i.hover=!1},m=e=>{i.removeHover=!0,fF(e,lF)},h=e=>{i.removeHover=!1,fF(e,``)},g=(e,t)=>t?i.removeHover?e.active:e.foreground:aF,_=(t,r)=>{if(e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(Xy({tableId:a.tableId,columnId:a.id,focusType:t,$mod:yP(r.evt),shiftKey:r.evt.shiftKey}))},v=(t,r)=>{if(!o.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(hw(t)?yw(t,a.tableId,a.id):nb())},y=()=>{if(u)return;let{store:t}=n.value,{column:r}=e;t.dispatch(vw(r.tableId,[r.id]))},ee=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(hj(t.id))},te=()=>{let{store:e}=n.value;e.dispatch(gj())},ne=(t,n)=>{let i=QL(r.value,e.diffPaths,t);return i?A`<k-rect name="cell-diff-background" width=${n+8} height=${b_(e.source)} fill=${i} listening=${!1} />`:null},re=({focusType:t,x:n,width:i,text:a,fill:s,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=XP})=>A`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{_(t,e),o.track(t,e)}} @dblclick=${e=>{v(t,e)}}>${ne(t,i)}<k-text name="cell-text" y=${II(e.source)} width=${i} height=${LI(e.source,m)} text=${a} fill=${s} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${XI[e.source]} />${c&&e.source===`document`?A`<k-rect name="cell-focus-border" y=${II(e.source)+RI()} width=${i} height=${nF} fill=${zI(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?A`<k-rect name="cell-shared-focus-border" y=${b_(e.source)-nF} width=${i+8} height=${nF} fill=${u} listening=${!1} />`:null}</k-group>`,ie=({columnType:t,focusType:n,x:i,width:a})=>{let{column:o}=e,s=r.value,c=e.source!==`document`;switch(t){case I.columnName:return re({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 I.columnDefault:return re({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 I.columnComment:return re({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 I.columnDataType:return re({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,opacity:c?e.litAlpha??0:1,align:c?`right`:void 0,fontFamily:c?`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`:void 0});case I.columnNotNull:return re({focusType:n,x:i,width:a,text:G(o.options,z.notNull)?`N-N`:`NULL`,fill:s.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case I.columnUnique:return re({focusType:n,x:i,width:a,text:`UQ`,fill:G(o.options,z.unique)?s.active:s.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case I.columnAutoIncrement:return re({focusType:n,x:i,width:a,text:`AI`,fill:G(o.options,z.autoIncrement)?s.active:s.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},ae=()=>{let{store:t}=n.value;return qI(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault},e.source).map(e=>({columnType:e.columnType,template:ie(e)})).filter(({template:e})=>!!e)};return()=>{let{store:t}=n.value,{editor:a}=t.state,{column:o,selected:s,width:c}=e,l=r.value,u=!!(e.hovered||i.hover||a.hoverColumnMap[o.id]),_=!!a.draggingColumnMap[o.id],v=c-18,ne=e.source!==`document`,re=eR(l,ne,s,u,ne&&e.related?e.litAlpha??0:0),ie=b_(e.source),b=ne?16:12;return A`<k-group id=${e.preview?``:`column-${o.id}`} name="column-row" kind="column-row" tableId=${o.tableId} selected=${s} y=${e.y} opacity=${_?.5:1} visible=${!e.ghost} @mousedown=${d} @mouseenter=${f} @mouseleave=${p}><k-rect name="column-row-background" x=${1} width=${c-2} height=${ie} cornerRadius=${e.last?[0,0,6,6]:0} fill=${re} />${tL({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:b,color:$L(o.ui.keys,l),x:9,y:(ie-b)/2,mouseenter:ee,mouseleave:te})}${mu(ae(),({columnType:e})=>e,({template:e})=>e)}${e.divider?A`<k-line name="column-row-divider" points=${[1,ie,c-1,ie]} stroke=${l.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${ne?null:tL({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:g(l,u),x:9+v-12,y:6,click:y,mouseenter:m,mouseleave:h})}</k-group>`}};function nR(e,t){let{settings:n}=e,{viewport:r}=e.editor,i=G_(n,t),a=G_(n,{x:t.x+t.width,y:t.y+t.height});return i.x>=0&&i.y>=0&&a.x<=r.width&&a.y<=r.height}const rR=e=>function*(t){let{viewport:n}=t.editor,r=N(t.collections).collection(`tableEntities`).selectById(e);if(!r)return;let i=j_(t,r);if(!nR(t,i)){let e=q_(t.settings.zoomLevel,{x:i.x+i.width/2,y:i.y+i.height/2},{x:n.width/2,y:n.height/2});yield gv({originX:e.x,originY:e.y})}yield fw(e,!1)};function iR(e,t){e.dispatchSync(wv({value:Jm.ERD})),e.dispatchSync(rR(t))}const aR=xi(null),oR=e=>Ka(e,aR);function sR(e,t){e.store.dispatchSync(Fg({tableIds:t,kind:ag.flow}))}function cR(e,t,n=`document`){let{collections:r}=e,i=Y_(e,n),a=N(r).collection(`tableEntities`).selectByIds(Xg(e,n).tableIds).filter(t=>Z_(i,e,t,n)).sort((e,t)=>t.ui.zIndex-e.ui.zIndex).map(t=>({table:t,rect:j_(e,t,n)})),o=(e,n)=>t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height+n,s=a.find(({rect:e})=>o(e,0))??a.find(({rect:e})=>o(e,8));if(!s)return null;let{table:c}=s,l=Yg(e,c,n),u={tableId:c.id,columnId:null,index:l.length};if(!l.length)return u;let d=N_(e,c,0,n);if(t.y<d.y)return null;let f=Math.floor((t.y-d.y)/d.height);return f>=l.length?u:{tableId:c.id,columnId:l[f],index:f}}function lR({collections:e},{tableId:t,columnIds:n},r){if(r.columnId!==null)return n.includes(r.columnId);if(r.tableId!==t)return!1;let i=N(e).collection(`tableEntities`).selectById(t);return ce(i?.columnIds.slice(-n.length),n)}const uR=`flipFade`;function dR(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 fR(e){let t=new Map,n=new Map,r=null,i=null,a=(e,t,n,r,i,a)=>{of(n);let o=!1,s=-1,c=()=>{o||(o=!0,clearTimeout(s),e.delete(t),i(),sf(n))},l=new pi({node:t,...r,duration:.3,easing:fi.EaseInOut,onFinish:c,onReset:c});l.onUpdate=a,e.set(t,()=>{l.destroy(),c()}),s=setTimeout(()=>e.get(t)?.(),500),l.play()},o=(e,n,r,i)=>{t.get(e)?.(),e.offsetX(r),e.offsetY(i),a(t,e,n,{offsetX:0,offsetY:0},()=>{e.offsetX(0),e.offsetY(0)})},s=(e,t)=>{n.get(e)?.();let r=e.opacity(),i=!1,o=()=>{i=!0,e.opacity(r*(e.getAttr(uR)??1)),i=!1};e.on(`opacityChange.${uR}`,()=>{i||(r=e.opacity())}),e.setAttr(uR,0),o();let s=()=>{e.off(`opacityChange.${uR}`),e.setAttr(uR,void 0),o()};a(n,e,t,{[uR]:1},s,o)},c=()=>{let e=r;return r=null,i?.(),i=null,e},l=()=>{let t=c();if(!t)return;for(let e of t){let{node:t}=e,n=t.getLayer();if(!n||!t.getStage())continue;let{x:r,y:i}=dR(t,e);!r&&!i||o(t,n,r,i)}let n=new Set(t.map(({node:e})=>e));for(let t of e()){let e=t.getLayer();n.has(t)||!e||!t.getStage()||s(t,e)}};return{snapshot(){r=e().map(e=>{let{x:t,y:n}=e.getAbsolutePosition();return{node:e,x:t,y:n}}),i??=tf(l)},cancel(){c(),[...t.values(),...n.values()].forEach(e=>e())}}}function pR(e,t){let n=SP(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>GF(r(),e,t,n),hasEdit:(e,n)=>qF(r(),e,t,n),hasSelectColumn:e=>KF(r(),t,e)}}function mR(e){if(JP(e))return{x:e.clientX,y:e.clientY};let{touches:t,changedTouches:n}=e,r=t?.[0]??n?.[0];return r?{x:r.clientX,y:r.clientY}:null}const hR=e=>e.type===`mouseup`||e.type===`touchend`&&!e.touches?.length;function gR(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function _R(e){return!yP(e)&&(!JP(e)||e.button===0)}function vR(e,t){let n=mR(e);!n||YP(e)||FF.pipe(Re(1)).subscribe(e=>{let r=hR(e)?mR(e):null;r&&gR(n,r)&&t()})}function yR(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!_R(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;vR(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&a_(t.state,s,a)})}}}const bR=[`icon`],xR=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,SR=(e,t)=>{let n=SP(t),r=PP(t),i=nI(t),a=oR(t),{hasEdit:o,hasFocus:s,hasSelectColumn:c}=pR(t,e.table.id),{sharedFocusColor:l,sharedFocusTableColor:u}=$F(t,e.table.id),{sharedSelectColor:d}=eI(t,e.table.id),{onMoveStart:f}=UF(t,e,i),p=yR(n,e,i),{addUnsubscribe:m}=WF(),h=ja({hover:!1,iconHover:null,dragstartId:null}),g=XL(),_=null,v=null,y=null,ee=()=>{h.hover=!0,i.value!==`document`&&e_(n.value.store.state,e.table.id,i.value)},te=()=>{h.hover=!1,i.value!==`document`&&e_(n.value.store.state,null,i.value)};m(()=>{i.value!==`document`&&t_(n.value.store.state,e.table.id,i.value)});let ne=e=>t=>{h.iconHover=e,fF(t,lF)},re=e=>{h.iconHover=null,fF(e,``)},ie=(e,t,n)=>n?h.iconHover===t?e.active:e.foreground:aF,ae=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,b=!1,oe=e=>{b=!!n.value.store.state.editor.drawRelationship,!(i.value!==`document`&&yF(e.target,bR))&&(f(e),p.onPress(e))},se=t=>{if(b)return;let{emitter:r}=n.value;r.emit(lP({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},ce=()=>{if(b)return;let{store:t}=n.value;t.dispatch(_w(e.table.id))},le=()=>{if(b)return;let{store:t}=n.value;t.dispatch(dw(e.table.id))},x=()=>{sR(n.value,[e.table.id])},ue=()=>{iR(n.value.store,e.table.id)},S=t=>{if(i.value!==`document`)return;let{store:r}=n.value;r.dispatch(Jy({tableId:e.table.id,focusType:t}))},de=(e,t)=>{if(!g.isDouble(e,t)||i.value!==`document`)return;let{store:r}=n.value;r.dispatch(nb())},C=e=>{let t=v,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},fe=e=>{let{store:t}=n.value,r=C(e);if(!r)return;let a=cR(t.state,r,i.value);if(qL(t.state,r,a!==null),!a)return;let{editor:{draggableColumn:o}}=t.state;!o||lR(t.state,o,a)||(y?.snapshot(),t.dispatch(mj(a.columnId,a.tableId)))},pe=()=>{let{store:e,emitter:t}=n.value;!_&&h.dragstartId===null||(_?.unsubscribe(),_=null,v=null,h.dragstartId=null,JL(e.state),e.dispatch(Pb()),t.emit(uP()))},me=(t,r)=>{let{store:a}=n.value;if(i.value!==`document`)return;let{editor:{focusTable:o}}=a.state;if(!o||!o.columnId)return;let s=r.target?.getStage()??null;if(!s)return;_?.unsubscribe(),v=s,h.dragstartId=t,y??=fR(()=>s.find(`.column-row`));let c=yP(r.evt),l=C(r.evt);l&&KL(a.state,e.table,l,{columnId:t,columnIds:c?o.selectColumnIds:[t]}),a.dispatch(fj(c)),_=RF.subscribe({next:({event:e})=>{fe(e)},complete:pe})};ua(()=>{let{emitter:e}=n.value;m(e.on({dragendColumnAll:()=>{_?.unsubscribe(),_=null,JL(n.value.store.state)}}),()=>{_&&JL(n.value.store.state),_?.unsubscribe(),_=null,y?.cancel()})});let he=({focusType:t,x:n,width:o,text:s,fill:c,focus:l,edit:u,sharedFocus:d})=>{let f=i.value,p=f!==`document`,m=QL(r.value,a.value?.get(e.table.id)?.[1],t);return A`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${d} x=${n} y=${0} @mousedown=${e=>{S(t),g.track(t,e)}} @dblclick=${e=>{de(t,e)}}>${m?A`<k-rect name="cell-diff-background" width=${o+8} height=${24} fill=${m} listening=${!1} />`:null}<k-text name="cell-text" y=${PI(f)} width=${o} height=${FI(f)} text=${s} fill=${c} fontFamily=${XP} fontSize=${p?14:12} fontStyle=${p?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!u} hitFunc=${QI[f]} />${l&&!p?A`<k-rect name="cell-focus-border" y=${PI(f)+18.5} width=${o} height=${nF} fill=${zI(r.value,u,e.editorFocused)} listening=${!1} />`:null}${d?A`<k-rect name="cell-shared-focus-border" y=${22.5} width=${o+8} height=${nF} fill=${d} listening=${!1} />`:null}</k-group>`};return()=>{let{store:t}=n.value,{editor:f,collections:p}=t.state,{table:m}=e,g=r.value,_=!!f.selectedMap[m.id],v=i.value,y=M_(t.state,m,v),b=j_(t.state,m,v),S=b.width-18,de=!!(e.hovered||h.hover),C=e.ghostColumnId??h.dragstartId,fe=C!==null&&!m.columnIds.includes(C)?C:null,ge=u(),_e=d(),ve=l(W.tableName),ye=l(W.tableComment),be=ge??_e,xe=v!==`document`,Se=NI(v)-9,Ce=Se+(xe?2:6),we=xe?16:12,Te=xe&&de,Ee=(e,t)=>!xe&&o(e,t),De=WI(t.state,m,v),Oe=De.find(e=>e.focusType===W.tableName),ke=De.find(e=>e.focusType===W.tableComment),Ae=Yg(t.state,m,v),je=Ae.length===0,Me=xe&&!!e.lit,Ne=xe?rF(g.minimapShadow):cF(g.tableShadow),Pe=pL(f.id,`table`,m.id),Fe=0;xe&&(hL(Pe,+!!Me),Fe=mL(Pe));let Ie=N(p).collection(`tableColumnEntities`).selectByIds(fe?[...Ae,fe]:Ae);return A`<k-group id=${e.preview?``:`table-${m.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${_} sharedFocus=${ge} sharedSelect=${_e} x=${b.x} y=${b.y} @mousedown=${oe} @touchstart=${oe} @mouseenter=${ee} @mouseleave=${te}><k-rect name="table-body" x=${1/2} y=${1/2} width=${b.width-1} height=${b.height-1} cornerRadius=${6} fill=${g.tableBackground} stroke=${vL(ae(g,_),g.accentColor9,Fe)} strokeWidth=${1} shadowColor=${Ne?.color} shadowBlur=${Ne?.blur} shadowOffsetX=${Ne?.offsetX} shadowOffsetY=${Ne?.offsetY} shadowOpacity=${Ne?.opacity} shadowForStrokeEnabled=${!Ne&&void 0} @mouseenter=${e=>{xe&&fF(e,`pointer`)}} @mouseleave=${e=>{xe&&fF(e,``)}} /><k-rect name="table-header-band" x=${1} y=${1} width=${b.width-2} height=${je?b.height-2:9+y_(v)-1} cornerRadius=${je?6:[6,6,0,0]} fill=${g.tableHeaderBackground} listening=${!1} />${Fe>0?A`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} opacity=${Fe} stroke=${g.accentColor9} strokeWidth=${1} shadowColor=${g.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${be?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} stroke=${be} strokeWidth=${1} listening=${!1} />`:null}<k-group name="table-header" x=${9} y=${9}><k-group name="table-header-inputs" y=${Se}>${tL({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:we,color:g.foreground,x:0,y:xe?0:(24-we)/2})}${Oe?he({...Oe,text:m.name.trim()?m.name:`table`,fill:xR(g,m.name,xe),focus:s(W.tableName),edit:Ee(W.tableName),sharedFocus:ve}):null}${ke?he({...ke,text:m.comment.trim()?m.comment:`comment`,fill:m.comment.trim()?g.active:g.placeholder,focus:s(W.tableComment),edit:Ee(W.tableComment),sharedFocus:ye}):null}</k-group>${xe?null:tL({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ie(g,`plus`,de),mouseenter:ne(`plus`),mouseleave:re,x:S-24-4,y:Ce,click:ce})}${xe?null:tL({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ie(g,`x`,de),mouseenter:ne(`x`),mouseleave:re,x:S-12,y:Ce,click:le})}${Te?tL({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ie(g,`waypoints`,de),mouseenter:ne(`waypoints`),mouseleave:re,x:S-28,y:Ce,click:x}):null}${Te?tL({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ie(g,`external-link`,de),mouseenter:ne(`external-link`),mouseleave:re,x:S-12,y:Ce,click:ue}):null}</k-group><k-group name="table-columns">${mu(Ie,e=>e.id,(n,r)=>A`<${tR} .column=${n} .source=${v} .related=${e.relatedColumnIds?.has(n.id)??!1} .diffPaths=${a.value?.get(n.id)?.[1]??null} .litAlpha=${Fe} .divider=${xe&&r<Ae.length-1} .last=${r===Ae.length-1} .y=${N_(t.state,m,r,v).y-b.y} .width=${b.width} .selected=${c(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${y.name} .widthDataType=${y.dataType} .widthDefault=${y.default} .widthComment=${y.comment} .focusName=${s(W.columnName,n.id)} .focusDataType=${s(W.columnDataType,n.id)} .focusNotNull=${s(W.columnNotNull,n.id)} .focusDefault=${s(W.columnDefault,n.id)} .focusComment=${s(W.columnComment,n.id)} .focusUnique=${s(W.columnUnique,n.id)} .focusAutoIncrement=${s(W.columnAutoIncrement,n.id)} .editName=${Ee(W.columnName,n.id)} .editDataType=${Ee(W.columnDataType,n.id)} .editDefault=${Ee(W.columnDefault,n.id)} .editComment=${Ee(W.columnComment,n.id)} .sharedFocusName=${l(W.columnName,n.id)} .sharedFocusDataType=${l(W.columnDataType,n.id)} .sharedFocusNotNull=${l(W.columnNotNull,n.id)} .sharedFocusDefault=${l(W.columnDefault,n.id)} .sharedFocusComment=${l(W.columnComment,n.id)} .sharedFocusUnique=${l(W.columnUnique,n.id)} .sharedFocusAutoIncrement=${l(W.columnAutoIncrement,n.id)} .ghost=${n.id===fe} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${me} .onDragend=${pe} />`)}</k-group><k-path name="table-header-color" kind="table-header-color" data=${mF(b.height)} fill=${m.ui.color} listening=${!xe} @click=${se} @mouseenter=${e=>{fF(e,lF)}} @mouseleave=${e=>{fF(e,``)}} /></k-group>`}},CR=(e,t)=>e.ui.zIndex-t.ui.zIndex,wR=(e,t)=>{let n=SP(t),r=PP(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=N(d).collection(`tableEntities`).selectByIds(c).sort(CR),m=N(d).collection(`memoEntities`).selectByIds(l).sort(CR),h=N(d).collection(`relationshipEntities`).selectByIds(u),g=ng(s);return A`<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} />${G(o,F.relationship)?A`<${WL} .relationships=${h} />`:null}${mu(p,e=>e.id,e=>g?A`<${iI} .table=${e} />`:A`<${SR} .table=${e} />`)}${mu(m,e=>e.id,e=>A`<${rL} .memo=${e} />`)}</k-layer>`}};async function TR({doc:e,theme:t,toWidth:n,zoomLevel:r}){let i=bP({toWidth:n},{devtools:!1});i.store.dispatchSync(qA(e)),S(r)&&i.store.dispatchSync(uv({value:r})),await IP(32);let a=i.store.state.settings.zoomLevel,o=BP(i.store.state),s=VP(o,a),c=FP({app:i,container:document.createElement(`div`),scene:A`<${wR} .box=${o} .scale=${s} />`,width:o.width*s,height:o.height*s,theme:t});return await lf(),{stage:c.stage,box:o,scale:s,zoomLevel:a,destroy:()=>{c.destroy(),CP(i)}}}function ER(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 DR({doc:e,theme:t,pixelRatio:n,zoomLevel:r,toWidth:i}){let a=await TR({doc:e,theme:t,toWidth:i,zoomLevel:r});try{let e=RP(n,a.stage.width(),a.stage.height()),t=a.stage.toCanvas({pixelRatio:e}),r=await ER(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 OR=`400 12px ${qP}`,kR=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function AR(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=OR,t=>Math.round(e.measureText(t).width)+2):null}function jR(e){return kR.map(t=>e(t))}function MR(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const NR=new class{async probeFontWidths(){return jR(this.createToWidth())}async render(e){let t=this.createToWidth(),n=jR(t);if(!MR(n,e.fontProbe))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.fontProbe.join()}`);return DR({...e,toWidth:t})}createToWidth(){let e=AR();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(NR,n)};
|
|
52
|
+
`;const GH={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function KH(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}KH(GH.focus),KH(GH.forceFocus);const qH=KH(GH.forwardMoveStart,{bubbles:!0,composed:!0});function JH(e){return Ee(()=>Oe(window,e))}JH(`keyup`);const YH=JH(`mousedown`),XH=JH(`mousemove`),ZH=JH(`mouseup`),QH=JH(`touchstart`),$H=JH(`touchmove`),eU=JH(`touchend`),tU=JH(`dragstart`),nU=JH(`pointercancel`),rU=JH(`blur`);Se().pipe(Pe());const iU=JH(qH.type).pipe(Ae(e=>e.detail.originEvent)),aU=je(YH,QH,iU),oU=je(ZH,eU,tU,nU,rU);let sU=0,cU=0;typeof window<`u`&&aU.subscribe(e=>{EV(e)?(sU=e.clientX,cU=e.clientY):(sU=e.touches[0].clientX,cU=e.touches[0].clientY)});const lU=je(XH.pipe(Ae(e=>{let t=e.clientX,n=e.clientY,r=t-sU,i=n-cU;return sU=t,cU=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),$H.pipe(De(e=>e.touches.length===1),Ae(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-sU,i=n-cU;return sU=t,cU=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(Re(oU)),uU={left:`left`,right:`right`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},dU={vertical:`vertical`,horizontal:`horizontal`,edge:`edge`},fU={left:`ew-resize`,right:`ew-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},pU=(e,t)=>[{shape:dU.vertical,position:uU.left},{shape:dU.vertical,position:uU.right,left:t},{shape:dU.horizontal,position:uU.bottom,top:e},{shape:dU.edge,position:uU.lt},{shape:dU.edge,position:uU.rt,left:t},{shape:dU.edge,position:uU.lb,top:e},{shape:dU.edge,position:uU.rb,top:e,left:t}],mU=({shape:e,top:t=0})=>t===0&&e===dU.vertical?t:t-5/2,hU=({shape:e,left:t=0})=>t===0&&e===dU.horizontal?t:t-5/2,gU=e=>EV(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},_U=(e,t)=>{let n=hV(t),r=UH();Ma(r.release);let i=0,a=0,o=({movementX:t,x:r},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===W.left?s.width-c:s.width+c;return 116<l&&(t<0?r<i:r>i)&&(a===W.left&&(s.x+=c),i+=t,s.width=l,s.change=!0),s},s=({movementY:t,y:r},i)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=i===W.top?s.height-c:s.height+c;return 100<l&&(t<0?r<a:r>a)&&(i===W.top&&(s.y+=c),a+=t,s.height=l,s.change=!0),s},c=(t,r)=>{t.event.type===`mousemove`&&t.event.preventDefault();let{store:i}=n.value,a=null,c=null;switch(r){case uU.left:case uU.right:a=o(t,r);break;case uU.bottom:c=s(t,W.bottom);break;case uU.lt:a=o(t,W.left),c=s(t,W.top);break;case uU.rt:a=o(t,W.right),c=s(t,W.top);break;case uU.lb:a=o(t,W.left),c=s(t,W.bottom);break;case uU.rb:a=o(t,W.right),c=s(t,W.bottom)}if(!a?.change&&!c?.change)return;let{id:l,ui:u}=e.memo,d=a?.change?a:u,f=c?.change?c:u;i.dispatch(uE({id:l,x:d.x,y:f.y,width:d.width,height:f.height}))},l=(t,r)=>{if(!kV(t.evt)||OV(t.evt))return;let o=gU(t);i=o.x,a=o.y;let s=WH(t,fU[r]),l=lU.subscribe(t=>{let{state:i}=n.value.store;if(!Z_(i)||!i.doc.memoIds.includes(e.memo.id)){l.unsubscribe();return}c(t,r)});l.add(s)};return()=>{let t=e.left-2,n=e.top-2;return A`${pU(e.top,e.left).map(e=>A`<k-rect name=${`memo-sash memo-sash-${e.position}`} kind="sash" x=${hU(e)} y=${mU(e)} width=${e.shape===dU.horizontal?t:5} height=${e.shape===dU.vertical?n:5} fill=${LH} @mousedown=${t=>{l(t,e.position)}} @touchstart=${t=>{l(t,e.position)}} @mouseenter=${t=>{r.set(t,fU[e.position])}} @mouseleave=${e=>{r.set(e,``)}} />`)}`}},vU=`400 12px ${DH}`,yU=12*1.2;let bU=null;function xU(){if(bU!==null)return bU;if(typeof document>`u`||!document.body)return yU;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:${vU};line-height:normal;white-space:pre`,e.textContent=Array.from({length:10},()=>`M`).join(`
|
|
53
|
+
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),bU=t/10||yU,bU}function SU(){return xU()/12}const CU={whiteSpace:`pre-wrap`,wordBreak:`normal`},wU=/* @__PURE__ */ new Map;function TU(e,t){let n=`${t} ${e}`,r=wU.get(n);if(r)return r;let i=gn(e,vU,CU),{lines:a}=hn(i,t,xU()),o=a.map(e=>e.text);return wU.size>=256&&wU.clear(),wU.set(n,o),o}function EU(){let e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`);return e?(e.font=vU,t=>e.measureText(t).width):()=>0}let DU=null;function OU(e){return DU??=EU(),DU(e)}function kU(e){return e.replace(/\r\n?/g,`
|
|
54
|
+
`)}function AU(e,t){let n=[],r=0;for(let i of TU(e,t)){let t=r;r+=i.length,e[r]===`
|
|
55
|
+
`&&(r+=1),n.push({text:i,start:t})}return n}function jU(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-OU(i));if(e>r)break;n=i.length,r=e}return n}function MU(e,t,n,r){let i=kU(e),a=AU(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/xU()));if(o>=a.length)return i.length;let s=a[o];return s.start+jU(s,n)}function NU(e){let t=TU(e.value,e.ui.width).length;return Math.max(0,t*xU()-e.ui.height)}function PU(e,t){return Math.min(Math.max(0,t),NU(e))}function FU(e,t){return PU(t,e.memoScrollTopMap[t.id]??0)}function IU(e,t,n,r){if(!EV(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===sg.memo?fk(n,!1):Rk(n,!1)),t.preventDefault(),a.emit(sV()),!0}const LU=Qa({active:{},travelled:{}}),RU=/* @__PURE__ */ new Map;function zU(e,t=`document`){let n=_b(e,t);RU.set(n,t===`document`&&Yy(e)?Hy(e):/* @__PURE__ */ new Map),LU.active[n]=!0,yb(e,t)}function BU(e,t=`document`){let n=_b(e,t);Reflect.deleteProperty(LU.active,n),Reflect.deleteProperty(LU.travelled,n),RU.delete(n),bb(e,t)}function VU(e,t=`document`){return LU.active[_b(e,t)]===!0}function HU(e,t=`document`){let n=_b(e,t);LU.active[n]&&(LU.travelled[n]=!0)}function UU(e,t=`document`){let n=VU(e,t),r=RU.get(_b(e,t));return n&&r?r:null}function WU(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 GU=(e,t,n)=>e===sg.memo?fk(t,n):e===sg.tableGroup?cA(t,n):Rk(t,n);function KU(e,t){let n=hV(e),r=(e,t)=>({event:r,movementX:i,movementY:a})=>{r.type===`mousemove`&&r.preventDefault();let{store:o}=n.value;o.dispatch(qR(i,a,e,t))};return{onMoveStart:e=>{if(!e?.target||OV(e.evt))return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=kV(e.evt),c=s&&(t.canMove?.()??!0)&&!WU(e.target,t.blockedKinds(o));if(c&&t.selectType!==sg.tableGroup&&IU(n.value,e.evt,a,t.selectType))return;let l=s&&fV(e.evt)||!!i.state.editor.selectedMap[a];if(i.dispatch(GU(t.selectType,a,l)),!c)return;let u=r(o,{}),d=!1,f=!1,p=0,m=0,h=0,g=0,_=e=>{h+=e.movementX,g+=e.movementY,!f&&Math.abs(h)+Math.abs(g)>=4&&(f=!0,HU(i.state,o)),u(e)},v=()=>{d&&(f&&o===`document`&&i.dispatch(sA(UU(i.state,o))),BU(i.state,o))},y=()=>{d=!0,zU(i.state,o)};WU(e.target,t.clickKinds?.(o)??[])||y(),lU.subscribe(e=>{if(d)return _(e);e.event.type===`mousemove`&&e.event.preventDefault(),p+=e.movementX,m+=e.movementY,!(Math.abs(p)+Math.abs(m)<4)&&(y(),_({...e,movementX:p,movementY:m}))}).add(v)}}}const qU=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function JU(e,t,n){return KU(e,{entityId:()=>t.memo.id,selectType:sg.memo,blockedKinds:()=>qU,source:n})}function YU(e=`document`){return e===`document`?3:9}function XU(e=`document`){return e===`document`?2:0}function ZU(e=`document`){return e===`document`?rW():16}function QU(e=`document`){return e===`document`?2:8}function $U(e=`document`,t){return e===`document`?rW(t):16}function eW(){return qv(`document`)-QU(`document`)*2-NH}function tW(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function nW(e){let{ascent:t,descent:n}=MH(e);return Math.round(18.5/2+(t-n)/2)}function rW(e){let{ascent:t,descent:n}=MH(e);return(nW(e)-(t-n)/2)*2}function iW(e=`document`){return e===`document`?29:31}function aW(e){let t=e[e.length-1];return t?t.x+t.width+8:iW()}function oW(){let{ascent:e,descent:t}=MH(OH);return(nW()-(e-t)/2)*2}function sW(e,t){let{maxWidthComment:n}=e.settings;return n===-1||n>=t.ui.widthComment?t.ui.widthComment:n}function cW(e,t,n=`document`){let r=n!==`document`,i=[{focusType:H.tableName,x:20,width:r?Wv(t.ui.widthName):t.ui.widthName}];return!r&&U(e.settings.show,P.tableComment)&&i.push({focusType:H.tableComment,x:20+t.ui.widthName+8,width:sW(e,t)}),i}const lW=[{columnType:F.columnName,focusType:H.columnName,show:null,width:e=>e.name},{columnType:F.columnDefault,focusType:H.columnDefault,show:P.columnDefault,width:e=>e.default},{columnType:F.columnComment,focusType:H.columnComment,show:P.columnComment,width:e=>e.comment},{columnType:F.columnDataType,focusType:H.columnDataType,show:P.columnDataType,width:e=>e.dataType},{columnType:F.columnNotNull,focusType:H.columnNotNull,show:P.columnNotNull,width:()=>35},{columnType:F.columnUnique,focusType:H.columnUnique,show:P.columnUnique,width:()=>22},{columnType:F.columnAutoIncrement,focusType:H.columnAutoIncrement,show:P.columnAutoIncrement,width:()=>15}],uW=[F.columnName,F.columnDataType];function dW(e,t,n=`document`){let{settings:r}=e,i=[],a=iW(n),o=n===`document`?r.columnOrder:uW;for(let e of o){let o=lW.find(t=>t.columnType===e);if(!o||n===`document`&&o.show!==null&&!U(r.show,o.show))continue;let s=o.width(t);i.push({columnType:e,focusType:o.focusType,x:a,width:s}),a+=s+8}return i}function fW(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}function pW(e){return(t,n)=>{fW(t,n,0,-QU(e),n.width()+8,qv(e))}}const mW={document:pW(`document`),flow:pW(`flow`)};function hW(e){let t=0-XU(e);return(e,n)=>{fW(e,n,0,t,n.width()+8,24)}}const gW={document:hW(`document`),flow:hW(`flow`)},_W=(e,t)=>{fW(e,t,-t.x(),-t.y(),FH,FH)},vW=([e,t],n,r)=>e===`rect`?A`<k-rect x=${Number(t.x??0)} y=${Number(t.y??0)} width=${Number(t.width)} height=${Number(t.height)} cornerRadius=${Number(t.rx??0)} stroke=${n} strokeWidth=${2} lineJoin="round" listening=${r} hitFunc=${r?_W:void 0} />`:e===`circle`?A`<k-circle x=${Number(t.cx)} y=${Number(t.cy)} radius=${Number(t.r)} fill=${n} stroke=${n} strokeWidth=${2} listening=${r} hitFunc=${r?_W:void 0} />`:A`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?_W:void 0} />`;function yW({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=bH(e);if(!u)return null;let d=r/FH;return A`<k-group name=${t} kind=${n} x=${a} y=${o} scaleX=${d} scaleY=${d} @click=${s&&EH(s)} @mouseenter=${c} @mouseleave=${l}>${u.node.map((e,t)=>vW(e,i,t===0))}</k-group>`}function bW(){let e=/* @__PURE__ */ new Set;return Ma(()=>{Array.from(e).forEach(e=>se(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}const xW={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`,tableHeaderBackground:`gray-5`,tableSelect:`accent-8`,tableBorder:`gray-6`,tableShadow:`override-transparent`,tableGroupHeaderBackground:`gray-7`,tableGroupBackground:`grayA-4`,tableGroupBorder:`gray-7`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,memoShadow:`override-transparent`,columnSelect:`accent-3`,columnSelectHover:`accent-4`,columnHover:`gray-4`,relationshipHover:`accent-8`,visualizationLink:`gray-7`,visualizationColumn:`gray-8`,visualizationRelationship:`gray-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`,toastSuccess:`custom-green--11`,toastError:`custom-red--11`,findReplaceError:`custom-red--11`,mapColumnsError:`custom-red--11`,schemaSqlWarningBackground:`custom-red--4`,schemaSqlWarningForeground:`custom-red--11`,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`},SW={amber:_n,amberA:vn,amberDark:yn,amberDarkA:bn,blue:xn,blueA:Sn,blueDark:Cn,blueDarkA:wn,bronze:Tn,bronzeA:En,bronzeDark:Dn,bronzeDarkA:On,brown:kn,brownA:An,brownDark:jn,brownDarkA:Mn,crimson:Nn,crimsonA:Pn,crimsonDark:Fn,crimsonDarkA:In,cyan:Ln,cyanA:Rn,cyanDark:zn,cyanDarkA:Bn,gold:Vn,goldA:Hn,goldDark:Un,goldDarkA:Wn,grass:Gn,grassA:Kn,grassDark:qn,grassDarkA:Jn,gray:Yn,grayA:Xn,grayDark:Zn,grayDarkA:Qn,green:$n,greenA:er,greenDark:tr,greenDarkA:nr,indigo:rr,indigoA:ir,indigoDark:ar,indigoDarkA:or,iris:sr,irisA:cr,irisDark:lr,irisDarkA:ur,jade:dr,jadeA:fr,jadeDark:pr,jadeDarkA:mr,lime:hr,limeA:gr,limeDark:_r,limeDarkA:vr,mauve:yr,mauveA:br,mauveDark:xr,mauveDarkA:Sr,mint:Cr,mintA:wr,mintDark:Tr,mintDarkA:Er,olive:Dr,oliveA:Or,oliveDark:kr,oliveDarkA:Ar,orange:jr,orangeA:Mr,orangeDark:Nr,orangeDarkA:Pr,pink:Fr,pinkA:Ir,pinkDark:Lr,pinkDarkA:Rr,plum:zr,plumA:Br,plumDark:Vr,plumDarkA:Hr,purple:Ur,purpleA:Wr,purpleDark:Gr,purpleDarkA:Kr,red:qr,redA:Jr,redDark:Yr,redDarkA:Xr,ruby:Zr,rubyA:Qr,rubyDark:$r,rubyDarkA:ei,sage:ti,sageA:ni,sageDark:ri,sageDarkA:ii,sand:ai,sandA:oi,sandDark:si,sandDarkA:ci,sky:li,skyA:ui,skyDark:di,skyDarkA:fi,slate:pi,slateA:mi,slateDark:hi,slateDarkA:gi,teal:_i,tealA:vi,tealDark:yi,tealDarkA:bi,tomato:xi,tomatoA:Si,tomatoDark:Ci,tomatoDarkA:wi,violet:Ti,violetA:Ei,violetDark:Di,violetDarkA:Oi,yellow:ki,yellowA:Ai,yellowDark:ji,yellowDarkA:Mi};[...Object.values({dark:`dark`,light:`light`})],Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`});const CW={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.values(CW),Object.keys(xW),V([CW.gray,CW.gold,CW.bronze]);const wW=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>He(SW,`${e}.${e}9`)??``);function TW(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return wW[Math.abs(t)%wW.length]}function EW(e,t){let n=hV(e),{addUnsubscribe:r}=bW(),i=Qa({force:!1}),a=()=>{i.force=!i.force};return ja(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r($a(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?TW(r.id):null}}}const DW=Hi(`document`),OW=e=>mo(e,DW);function kW(e){return e.ctrlKey?!fV(e)||Math.abs(e.deltaY)<25:!1}const AW=(e,t)=>{let n=hV(t),r=oH(t),i=OW(t),{sharedSelectColor:a}=EW(t,e.memo.id),{onMoveStart:o}=JU(t,e,i),s=Qa({hover:!1,removeHover:!1}),c=UH();Ma(c.release);let l=()=>{s.hover=!0},u=()=>{s.hover=!1},d=e=>{s.removeHover=!0,c.set(e,BH)},f=e=>{s.removeHover=!1,c.set(e,``)},p=()=>{let{store:t}=n.value;t.dispatch(dk(e.memo.id))},m=t=>{let{emitter:r}=n.value;r.emit(aV({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},h=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=FU(r.state.editor,i);i.id,MU(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(sw({id:i.id}))},g=t=>{c.set(t,e.preview?``:`text`)},_=e=>{c.set(e,``)},v=t=>{if(kW(t.evt)||(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||fV(t.evt)))return;let{store:r}=n.value,{memo:i}=e,a=FU(r.state.editor,i),o=PU(i,a+t.evt.deltaY);o!==a&&r.dispatch(hw({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:i}=t.state,{memo:y}=e,b=r.value,ee=!!i.selectedMap[y.id],te=zH(b.memoShadow),ne=a(),re=!e.preview&&i.editMemoId===y.id,ie=TU(y.value,y.ui.width).join(`
|
|
56
|
+
`),ae=e.preview?0:FU(i,y),{width:x,height:S}=uy(y),oe=1/2;return A`<k-group id=${e.preview?``:`memo-${y.id}`} name="memo" kind="memo" selected=${ee} sharedSelect=${ne} x=${y.ui.x} y=${y.ui.y} @mousedown=${o} @touchstart=${o} @mouseenter=${l} @mouseleave=${u}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${x+1} height=${S+1} cornerRadius=${7} stroke=${ne??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${oe} y=${oe} width=${x-1} height=${S-1} cornerRadius=${6} fill=${b.memoBackground} stroke=${ee?b.memoSelect:b.memoBorder} strokeWidth=${1} shadowColor=${te?.color} shadowBlur=${te?.blur} shadowOffsetX=${te?.offsetX} shadowOffsetY=${te?.offsetY} shadowOpacity=${te?.opacity} shadowForStrokeEnabled=${!te&&void 0} /><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=${x-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${y.ui.color} @click=${EH(m)} @mouseenter=${e=>{c.set(e,BH)}} @mouseleave=${e=>{c.set(e,``)}} />${yW({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:s.hover?s.removeHover?b.active:b.foreground:IH,x:8+y.ui.width-12,y:8,click:p,mouseenter:d,mouseleave:f})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${y.ui.width} clipHeight=${y.ui.height} @click=${EH(h)} @mouseenter=${g} @mouseleave=${_} @wheel=${v}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${y.ui.width} height=${y.ui.height} fill=${LH} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${ae} text=${ie} visible=${!re} fill=${b.active} fontFamily=${DH} fontSize=${12} fontStyle=${`400`} lineHeight=${SU()} wrap="none" /></k-group><${_U} .memo=${y} .top=${S} .left=${x} /></k-group></k-group>`}},jW={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},MW=/* @__PURE__ */ new Map,NW=/* @__PURE__ */ new Map,PW=Qa({});let FW=jW,IW=null;function LW(e){let t=1-e;return 1-t*t*t}function RW(){IW===null&&NW.size!==0&&(IW=FW.requestFrame(zW))}function zW(){IW=null;let e=FW.now();for(let[t,n]of[...NW]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){NW.delete(t),PW[t]=a;continue}let o=r>0?r/300:0;PW[t]=i+(a-i)*LW(o)}RW()}function BW(e,t,n){return`${e} ${t}:${n}`}function VW(e){let t=PW[e];if(t!==void 0)return t;let n=NW.get(e);return n?n.from:MW.get(e)??0}function HW(e,t){let n=MW.get(e);if(n===t)return;if(n===void 0){MW.set(e,t);return}let r=VW(e);MW.set(e,t),NW.set(e,{from:r,to:t,startedAt:FW.now()}),RW()}const UW=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function WW(e){let t=UW.exec(e.trim());if(!t)return null;let n=t[1],r=n.length===6?n:[...n].map(e=>`${e}${e}`).join(``);return[0,2,4].map(e=>parseInt(r.slice(e,e+2),16))}function GW(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=WW(e),i=WW(t);return!r||!i?n<.5?e:t:`#${r.map((e,t)=>Math.round(e+(i[t]-e)*n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function KW(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 qW(e,t,n,r){let i={x:e.x+n.x-t.x,y:e.y+n.y-t.y},a=[e];for(let t=1;t<r;t++){let o=t/r*(Math.PI/2),s=Math.cos(o),c=Math.sin(o);a.push({x:i.x+(e.x-i.x)*s+(n.x-i.x)*c,y:i.y+(e.y-i.y)*s+(n.y-i.y)*c})}return a.push(n),a}function JW(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}let u=Math.min(6,Math.ceil(l));for(let e of qW(KW(a,i,l),a,KW(a,o,l),u))r(e)}return r(e[e.length-1]),n}function YW(e,t=`document`){let{start:n,end:r}=Kg(e,t),[i,a]=Hg(e,t),o=Ix(n,r),s=n.tableId===r.tableId;return{path:XW(n,r,s?Tg(n,r):Lx(Fx(i),o),s?Tg(n,r):Lx(Fx(a),o),Wg(e,t),t),line:ZW(n,r)}}function XW(e,t,n,r,i,a){let o={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}},s={M:{x:0,y:0},L:{x:0,y:0},Q:{x:0,y:0},d(){return e.tableId===t.tableId?eG(Dg(this.M,tG(e.direction),this.L,tG(t.direction),wg(e,t))):eG(a===`document`?JW(i&&i.length>1?i:nG(this.M,this.L,e.direction),8):xg(this.M,tG(e.direction),this.L,tG(t.direction)))}},c=1;return e.direction===L.left||e.direction===L.right?(e.direction===L.left&&(c*=-1),o.start.x2=e.x+c*n,o.start.x1+=c*21,s.M.x=o.start.x2,s.M.y=e.y):(e.direction===L.top||e.direction===L.bottom)&&(e.direction===L.top&&(c*=-1),o.start.y2=e.y+c*n,o.start.y1+=c*21,s.M.x=e.x,s.M.y=o.start.y2),c=1,t.direction===L.left||t.direction===L.right?(t.direction===L.left&&(c*=-1),o.end.x2=t.x+c*r,o.end.x1+=c*21,s.L.x=o.end.x2,s.L.y=t.y):(t.direction===L.top||t.direction===L.bottom)&&(t.direction===L.top&&(c*=-1),o.end.y2=t.y+c*r,o.end.y1+=c*21,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function ZW(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===L.left||e.direction===L.right?(e.direction===L.left&&(a*=-1),n.start.base.x1=n.start.base.x2+=a*9,n.start.base2.x1=n.start.base2.x2+=a*15,n.start.center.x1=n.start.base.x1,n.start.base.y1-=6,n.start.base.y2+=6,n.start.base2.y1-=6,n.start.base2.y2+=6,n.start.center2.x1+=a*21,i.cx+=a*15):(e.direction===L.top||e.direction===L.bottom)&&(e.direction===L.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*9,n.start.base2.y1=n.start.base2.y2+=a*15,n.start.center.y1=n.start.base.y1,n.start.base.x1-=6,n.start.base.x2+=6,n.start.base2.x1-=6,n.start.base2.x2+=6,n.start.center2.y1+=a*21,i.cy+=a*15),a=1,t.direction===L.left||t.direction===L.right?(t.direction===L.left&&(a*=-1),n.end.base.x1=n.end.base.x2+=a*9,n.end.base2.x1=n.end.base2.x2+=a*15,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=6,n.end.base.y2+=6,n.end.base2.y1-=6,n.end.base2.y2+=6,n.end.left.y2+=6,n.end.right.y2-=6,n.end.center2.x1+=a*21,r.cx+=a*15):(t.direction===L.top||t.direction===L.bottom)&&(t.direction===L.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*9,n.end.base2.y1=n.end.base2.y2+=a*15,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=6,n.end.base.x2+=6,n.end.base2.x1-=6,n.end.base2.x2+=6,n.end.left.x2+=6,n.end.right.x2-=6,n.end.center2.y1+=a*21,r.cy+=a*15),{line:n,circle:r,startCircle:i}}function QW(e){if(!e.length)return``;let[[t]]=e,n=`M${$W(t.x)} ${$W(t.y)}`;for(let[,t]of e)n+=`L${$W(t.x)} ${$W(t.y)}`;return n}function $W(e){return Math.round(e*100)/100}function eG(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function tG(e){let t=zx(e);return Rx(e)?{x:t,y:0}:{x:0,y:t}}function nG(e,t,n){if(Rx(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 rG=`relationship-decoration`,iG=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function aG(e,t,n){return A`<k-line name=${rG} kind=${rG} points=${iG(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function oG({cx:e,cy:t},n,r){return A`<k-circle name=${rG} kind=${rG} x=${e} y=${t} radius=${5} stroke=${n} strokeWidth=${r} listening=${!1} />`}const sG={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[qh.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[qh.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[qh.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[qh.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function cG(e,{path:t,line:n},r,i){let a=sG[e];return a?A`${aG(t.line.end,r,i)}${a.ring?oG(n.circle,r,i):null}${a.ticks.map(e=>aG(n.line.end[e],r,i))}`:null}const lG=[10,10],uG=[];function dG({direction:e}){let t=e===L.left||e===L.top?-1:1;return e===L.left||e===L.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function fG({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 pG({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 mG(e){let t=dG(e),n=(n,r)=>fG(e,t,n,r),r=n(9,0);return[QW([[n(9,-6),n(9,6)]]),QW([[n(15,-6),n(15,6)]]),QW([[r,n(0,6)]]),QW([[r,n(0,-6)]]),pG(n(15,0),5)].join(``)}function hG({start:e,end:t},{line:n},r){return`${QW([[{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}]])}${mG(e)}${mG(t)}`}function gG(e){return 8/(e>0?e:1)}const _G=(e,t)=>{let n=hV(t),r=oH(t),i=OW(t),a=Qa({hover:!1}),o=null,s=()=>{let t=_A(e.relationship);t?o?.setAttribute(`title`,t):o?.removeAttribute(`title`)},c=()=>{o?.removeAttribute(`title`),o=null},l=e=>{i.value===`document`&&(o=e.target.getStage()?.container()??null,s())};Ma(c);let u=t=>{let{relationship:r}=e,{store:i}=n.value;a.hover=!0,e.onHover?.(r.id,!0),l(t),i.dispatch(Dw({columnIds:[...r.start.columnIds,...r.end.columnIds]}))},d=()=>{let{store:t}=n.value;a.hover=!1,e.onHover?.(e.relationship.id,!1),c(),t.dispatch(Dw({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:c}=t.state,{relationship:l,strokeWidth:f}=e,p=r.value,m=i.value,{zoomLevel:h}=ib(t.state,m),g=Kg(l,m),_=YW(l,m),{path:v,line:y}=_,b=v.path.d(),ee=!!c.hoverRelationshipMap[l.id],te=a.hover||ee,ne=m!==`document`,re=ne?p.visualizationRelationship:l.identification?p.keyPFK:p.keyFK,ie=te?p.relationshipHover:re,ae=BW(c.id,`relationship`,l.id),x=0;ne&&(HW(ae,+!!e.lit),x=VW(ae));let S=GW(ie,p.accentColor9,x),oe=cG(l.relationshipType,_,S,f);return o&&s(),A`<k-group name=${`relationship ${l.id}`} kind="relationship" @mouseenter=${u} @mouseleave=${d}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${hG(g,v,b)} hitStrokeWidth=${gG(h)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${QW(b)} dash=${ne||l.identification?uG:lG} stroke=${S} strokeWidth=${f} listening=${!1} />${aG(v.line.start,S,f)}${aG(y.line.start.base,S,f)}${l.startRelationshipType===Jh.ring?A`${oG(y.startCircle,S,f)}${aG(y.line.start.center,S,f)}`:A`${aG(y.line.start.base2,S,f)}${aG(y.line.start.center2,S,f)}`}${oe}</k-group>`}};function vG(e,t){let{x:n,y:r,direction:i}=e,a=Math.ceil(t.length*6.1)+4,o={width:a,height:14};switch(i){case L.left:return{x:n-3-a,y:r-9-14,...o};case L.right:return{x:n+3,y:r-9-14,...o};case L.top:return{x:n+9,y:r-3-14,...o};default:return{x:n+9,y:r+3,...o}}}const yG=(e,t)=>{let n=hV(t),r=oH(t),i=OW(t);return()=>{let{store:t}=n.value,{editor:a,settings:o}=t.state,{relationship:s}=e,c=r.value,l=i.value,{zoomLevel:u}=ib(t.state,l),d=l!==`document`||h_(u)||U(o.show,P.hideReferentialAction)?``:gA(s);if(!d)return null;let f=e.hovered?.id===s.id||!!a.hoverRelationshipMap[s.id],p=s.identification?c.keyPFK:c.keyFK,m=vG(Kg(s,l).end,d);return A`<k-group name=${`relationship-action-label ${s.id}`} x=${m.x} y=${m.y} listening=${!1}><k-rect name="relationship-action-box" width=${m.width} height=${m.height} fill=${c.canvasBackground} /><k-text name="relationship-action-text" x=${2} y=${2} text=${d} fill=${f?c.relationshipHover:p} fontFamily=${OH} fontSize=${10} wrap="none" /></k-group>`}},bG=(e,t)=>{let n=OW(t),r=Qa({id:``}),i=(e,t)=>{t?r.id=e:r.id===e&&(r.id=``)};return()=>{let{relationships:t,viewport:a,litIds:o}=e,s=n.value,c=e.strokeWidth??Xg(s),l=a?t.filter(e=>hb(a,e,c,s)):t;return A`<k-group name="relationship-group" kind="relationship-group">${Iu(l,e=>e.id,e=>A`<${_G} .relationship=${e} .strokeWidth=${c} .lit=${o?.has(e.id)??!1} .onHover=${i} />`)}${Iu(l,e=>e.id,e=>A`<${yG} .relationship=${e} .hovered=${r} />`)}</k-group>`}},xG=Qa({pointers:{}});function SG(e,t,n,{columnId:r,columnIds:i}){let a=cy(e,t,t.columnIds.indexOf(r)),o=Math.max(i.indexOf(r),0);xG.pointers[_b(e,`document`)]={...n,grabX:n.x-oy(e,t).x,grabY:n.y-a.y+o*24,over:!0}}function CG(e,{x:t,y:n},r){let i=xG.pointers[_b(e,`document`)];i&&(i.x=t,i.y=n,i.over=r)}function wG(e){Reflect.deleteProperty(xG.pointers,_b(e,`document`))}function TG(e){let t=Math.min(6.5,e/2),n=Math.min(4,t),r=t-Math.sqrt(t**2-(t-n)**2);return[`M ${n} ${r}`,`A ${t} ${t} 0 0 0 0 ${t}`,`L 0 ${e-t}`,`A ${t} ${t} 0 0 0 ${n} ${e-r}`,`Z`].join(` `)}const EG=e=>e.evt?.detail??0;function DG(){let e=null;return{track(t,n){EG(n)<=1&&(e=t)},isDouble(t,n){return EG(n)>=2&&e===t}}}const OG={insert:1,delete:2};function kG(e,t,n){let r=t?.get(n);return r===OG.insert?e.diffInsertBackground:r===OG.delete?e.diffDeleteBackground:null}const AG=(e,t)=>{let n=U(e,z.primaryKey),r=U(e,z.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:IH},jG=(e,t,n,r,i)=>!t&&n?r?e.columnSelectHover:e.columnSelect:i>0?r?GW(e.columnHover,e.accentColor4,i):GW(e.tableBackground,e.accentColor3,i):r?e.columnHover:IH,MG=(e,t)=>{let n=hV(t),r=oH(t),i=iH(t),a=Qa({hover:!1,removeHover:!1}),{addUnsubscribe:o}=bW(),s=DG(),c=null,l=()=>{c?.unsubscribe(),c=null};o(l);let u=t=>{if(e.preview||e.ghost||!kV(t.evt)||e.source!==`document`)return;l();let n=!1,r=lU.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{c===r&&(c=null),n&&e.onDragend?.()}});c=r},d=!1,f=null,p=t=>{d=!!n.value.store.state.editor.drawRelationship,u(t);let r=f===t.evt;if(f=null,r||!DV(t.evt))return;let{focusTable:i}=n.value.store.state.editor,a=i?.columnId===e.column.id?i.focusType:H.columnName;b(a,t)},m=()=>{a.hover=!0},h=()=>{a.hover=!1},g=e=>{a.removeHover=!0,HH(e,BH)},_=e=>{a.removeHover=!1,HH(e,``)},v=(e,t)=>t?a.removeHover?e.active:e.foreground:IH,y=t=>{if(!DV(t))return{$mod:fV(t),shiftKey:t.shiftKey};let{focusTable:r}=n.value.store.state.editor,{column:i}=e;return{$mod:r?.tableId===i.tableId&&r.selectColumnIds.includes(i.id),shiftKey:!1}},b=(t,r)=>{if(e.source!==`document`)return;f=r.evt;let{store:i}=n.value,{column:a}=e;i.dispatch(ZC({tableId:a.tableId,columnId:a.id,focusType:t,...y(r.evt)}))},ee=(t,r)=>{if(!s.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(Vk(t)?Gk(t,a.tableId,a.id):rw())},te=()=>{if(d)return;let{store:t}=n.value,{column:r}=e;t.dispatch(Wk(r.tableId,[r.id]))},ne=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(kz(t.id))},re=()=>{let{store:e}=n.value;e.dispatch(Az())},ie=(t,n)=>{let i=kG(r.value,e.diffPaths,t);return i?A`<k-rect name="cell-diff-background" width=${n+8} height=${qv(e.source)} fill=${i} listening=${!1} />`:null},ae=({focusType:t,x:n,width:i,text:a,fill:o,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=DH})=>A`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{b(t,e),s.track(t,e)}} @dblclick=${e=>{ee(t,e)}}>${ie(t,i)}<k-text name="cell-text" y=${QU(e.source)} width=${i} height=${$U(e.source,m)} text=${a} fill=${o} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${mW[e.source]} />${c&&e.source===`document`?A`<k-rect name="cell-focus-border" y=${QU(e.source)+eW()} width=${i} height=${NH} fill=${tW(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?A`<k-rect name="cell-shared-focus-border" y=${qv(e.source)-NH} width=${i+8} height=${NH} fill=${u} listening=${!1} />`:null}</k-group>`,x=({columnType:t,focusType:n,x:a,width:o})=>{let{column:s}=e,c=r.value,l=e.source!==`document`;switch(t){case F.columnName:return ae({focusType:n,x:a,width:o,text:s.name.trim()?s.name:i.value.t(`common.placeholder.column`),fill:s.name.trim()?c.active:c.placeholder,focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0});case F.columnDefault:return ae({focusType:n,x:a,width:o,text:s.default.trim()?s.default:i.value.t(`common.placeholder.default`),fill:s.default.trim()?c.active:c.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case F.columnComment:return ae({focusType:n,x:a,width:o,text:s.comment.trim()?s.comment:i.value.t(`common.placeholder.comment`),fill:s.comment.trim()?c.active:c.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case F.columnDataType:return ae({focusType:n,x:a,width:o,text:s.dataType.trim()?s.dataType:i.value.t(`common.placeholder.dataType`),fill:s.dataType.trim()?c.active:c.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0,opacity:l?e.litAlpha??0:1,align:l?`right`:void 0,fontFamily:l?OH:void 0});case F.columnNotNull:return ae({focusType:n,x:a,width:o,text:U(s.options,R.notNull)?`N-N`:`NULL`,fill:c.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case F.columnUnique:return ae({focusType:n,x:a,width:o,text:`UQ`,fill:U(s.options,R.unique)?c.active:c.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case F.columnAutoIncrement:return ae({focusType:n,x:a,width:o,text:`AI`,fill:U(s.options,R.autoIncrement)?c.active:c.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},S=e=>e.map(e=>({columnType:e.columnType,template:x(e)})).filter(({template:e})=>!!e),oe=(t,n)=>e.widthAlternateKey&&e.source===`document`?A`<k-text name="column-alternate-key" x=${aW(t)} y=${QU(e.source)} width=${e.widthAlternateKey} height=${oW()} text=${e.alternateKey??``} fill=${n.foreground} fontFamily=${OH} fontSize=${12} verticalAlign="middle" wrap="none" listening=${!1} />`:null;return()=>{let{store:t}=n.value,{editor:i}=t.state,{column:o,selected:s,width:c}=e,l=r.value,u=!!(e.hovered||a.hover||i.hoverColumnMap[o.id]),d=!!i.draggingColumnMap[o.id],f=c-18,y=e.source!==`document`,b=jG(l,y,s,u,y&&e.related?e.litAlpha??0:0),ee=qv(e.source),ie=y?16:12,ae=dW(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault},e.source);return A`<k-group id=${e.preview?``:`column-${o.id}`} name="column-row" kind="column-row" tableId=${o.tableId} selected=${s} y=${e.y} opacity=${d?.5:1} visible=${!e.ghost} @mousedown=${p} @mouseenter=${m} @mouseleave=${h}><k-rect name="column-row-background" x=${1} width=${c-2} height=${ee} cornerRadius=${e.last?[0,0,6,6]:0} fill=${b} />${yW({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:ie,color:AG(o.ui.keys,l),x:9,y:(ee-ie)/2,mouseenter:ne,mouseleave:re})}${Iu(S(ae),({columnType:e})=>e,({template:e})=>e)}${oe(ae,l)}${e.divider?A`<k-line name="column-row-divider" points=${[1,ee,c-1,ee]} stroke=${l.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${y?null:yW({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:v(l,u),x:9+f-12,y:6,click:te,mouseenter:g,mouseleave:_})}</k-group>`}},NG={automaticTablePlacement:`automaticTablePlacement`,tableProperties:`tableProperties`,search:`search`,themeBuilder:`themeBuilder`,localePicker:`localePicker`,diffViewer:`diffViewer`,timeTravel:`timeTravel`,findReplace:`findReplace`,exportImage:`exportImage`,mapColumns:`mapColumns`},PG=[NG.automaticTablePlacement,NG.diffViewer,NG.timeTravel],FG=({editor:e})=>PG.some(t=>e.openMap[t]),IG=e=>!!e.editor.openMap[NG.findReplace]&&e.settings.canvasType===zh.ERD&&!e.editor.openMap[NG.themeBuilder]&&!e.editor.openMap[NG.tableProperties]&&!e.editor.openMap[NG.exportImage]&&!e.editor.openMap[NG.localePicker]&&!e.editor.openMap[NG.mapColumns]&&!FG(e);function LG(e){if(!IG(e))return 0;let{width:t}=e.editor.viewport,n=16+Math.min(380,t-32)+16;return t-n>=160?n:0}function RG({settings:e},t){let n=cb(e,t),r=cb(e,{x:t.x+t.width,y:t.y+t.height});return[{start:n.x,end:r.x},{start:n.y,end:r.y}]}const zG=(e,t,n)=>e.start>=t&&e.end<=n;function BG(e,t,n,r){let i=e.end-e.start,a=(n+r-i)/2;if(i<=r-n)return a;let o=t.start-e.start,s=t.end-t.start;return a=Math.min(a,r-40-o-s),Math.max(a,n+40-o)}function*VG(e,t,n=0,r=t){let{width:i,height:a}=e.editor.viewport,[o,s]=RG(e,t),[c,l]=RG(e,r),[u,d]=o.end-o.start<=i-n&&s.end-s.start<=a?[o,s]:[c,l];if(zG(u,n,i)&&zG(d,0,a))return;let f=ub(e.settings.zoomLevel,t,{x:BG(o,c,n,i),y:BG(s,l,0,a)});yield Nb({originX:f.x,originY:f.y})}function HG(e,t){let n=ly(e,t);if(!h_(e.settings.zoomLevel))return n;let{y:r,height:i}=oy(e,t);return{...n,y:r+(i-n.height)/2}}function UG({toWidth:e},t){let n=n=>e(t.text.slice(0,n))-e(``);return{start:n(t.start),end:n(t.end)}}function WG(e,t,n,r){let[i]=RG(e,t),a=e.editor.viewport.width-n-80;if(!r||i.end-i.start<=a)return null;let o=Math.min(r.start,t.width);return{...t,x:t.x+o,width:Math.min(r.end,t.width)-o}}function GG(e,t,n,r,i){let a=HG(e,t);if(h_(e.settings.zoomLevel))return a;let o=cW(e,t).find(e=>e.focusType===n);if(!o)return a;let s={...a,x:a.x+9+o.x,width:o.width};return WG(e,s,r,i)||(n===H.tableComment?s:a)}function*KG(e,t,n=0,r=H.tableName,i){yield*VG(e,oy(e,t),n,GG(e,t,r,n,i))}function qG(e,t,n,r,i,a){let o=cy(e,t,n),s=dW(e,sy(e,t)).find(e=>e.focusType===r);if(!s)return o;let c={...o,x:oy(e,t).x+s.x,width:s.width};return WG(e,c,i,a)??c}function JG(e,t){let{show:n}=e.settings;return t===H.tableComment?U(n,P.tableComment)?t:H.tableName:t===H.columnComment?U(n,P.columnComment)?t:H.columnName:t}const YG=e=>function*({doc:t,collections:n}){let r=N(n).collection(`tableEntities`).selectByIds(t.tableIds),i=N(n).collection(`memoEntities`).selectByIds(t.memoIds);yield PC(),yield IC({[e]:sg.table}),yield CD({id:e,zIndex:YS(r,i)}),yield YC({tableId:e})};function XG(e,{range:t,focusType:n},r){return t&&n===r?UG(e,t):void 0}const ZG=(e,t=0)=>function*(n,r){if(e.kind===`memo`){if(!Z_(n))return;let r=N(n.collections).collection(`memoEntities`).selectById(e.memoId);if(!r)return;yield*VG(n,uy(r),t),yield fk(r.id,!1);return}let i=N(n.collections).collection(`tableEntities`).selectById(e.tableId);if(!i)return;if(e.kind===`table`){let a=e.focusType?JG(n,e.focusType):H.tableName;yield*KG(n,i,t,a,XG(r,e,a)),yield YG(i.id),e.focusType&&(yield YC({tableId:i.id,focusType:a}));return}let a=i.columnIds.indexOf(e.columnId);if(a===-1)return;let o=JG(n,e.focusType);h_(n.settings.zoomLevel)?yield*KG(n,i,t):yield*VG(n,cy(n,i,a),t,qG(n,i,a,o,t,XG(r,e,o))),yield YG(i.id),yield ZC({tableId:i.id,columnId:e.columnId,focusType:o,$mod:!1,shiftKey:!1})};function QG(e){e.state.settings.canvasType!==zh.ERD&&e.dispatchSync(Hb({value:zh.ERD}))}function $G(e,t){QG(e),e.dispatchSync(ZG(t,LG(e.state)))}function eK(e,t){$G(e,{kind:`table`,tableId:t})}const tK=Hi(null),nK=e=>mo(e,tK);function rK(e,t){e.store.dispatchSync(H_({tableIds:t,kind:lg.flow}))}function iK(e,t,n=`document`){let{collections:r}=e,i=fb(e,n),a=N(r).collection(`tableEntities`).selectByIds(iv(e,n).tableIds).filter(t=>mb(i,e,t,n)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex).reverse().map(t=>({table:t,rect:oy(e,t,n)})),o=(e,n)=>t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height+n,s=a.find(({rect:e})=>o(e,0))??a.find(({rect:e})=>o(e,8));if(!s)return null;let{table:c}=s,l=rv(e,c,n),u={tableId:c.id,columnId:null,index:l.length};if(!l.length)return u;let d=cy(e,c,0,n);if(t.y<d.y)return null;let f=Math.floor((t.y-d.y)/d.height);return f>=l.length?u:{tableId:c.id,columnId:l[f],index:f}}function aK({collections:e},{tableId:t,columnIds:n},r){if(r.columnId!==null)return n.includes(r.columnId);if(r.tableId!==t)return!1;let i=N(e).collection(`tableEntities`).selectById(t);return oe(i?.columnIds.slice(-n.length),n)}const oK=`flipFade`;function sK(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 cK(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map,r=null,i=null,a=(e,t,n,r,i,a)=>{Df(n);let o=!1,s=-1,c=()=>{o||(o=!0,clearTimeout(s),e.delete(t),i(),Of(n))},l=new Pi({node:t,...r,duration:.3,easing:Ni.EaseInOut,onFinish:c,onReset:c});l.onUpdate=a,e.set(t,()=>{l.destroy(),c()}),s=setTimeout(()=>e.get(t)?.(),500),l.play()},o=(e,n,r,i)=>{t.get(e)?.(),e.offsetX(r),e.offsetY(i),a(t,e,n,{offsetX:0,offsetY:0},()=>{e.offsetX(0),e.offsetY(0)})},s=(e,t)=>{n.get(e)?.();let r=e.opacity(),i=!1,o=()=>{i=!0,e.opacity(r*(e.getAttr(oK)??1)),i=!1};e.on(`opacityChange.${oK}`,()=>{i||(r=e.opacity())}),e.setAttr(oK,0),o();let s=()=>{e.off(`opacityChange.${oK}`),e.setAttr(oK,void 0),o()};a(n,e,t,{[oK]:1},s,o)},c=()=>{let e=r;return r=null,i?.(),i=null,e},l=()=>{let t=c();if(!t)return;for(let e of t){let{node:t}=e,n=t.getLayer();if(!n||!t.getStage())continue;let{x:r,y:i}=sK(t,e);(r||i)&&o(t,n,r,i)}let n=new Set(t.map(({node:e})=>e));for(let t of e()){let e=t.getLayer();!n.has(t)&&e&&t.getStage()&&s(t,e)}};return{snapshot(){r=e().map(e=>{let{x:t,y:n}=e.getAbsolutePosition();return{node:e,x:t,y:n}}),i??=Cf(l)},cancel(){c(),[...t.values(),...n.values()].forEach(e=>e())}}}function lK(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 uK=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function dK(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case H.tableName:case H.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}function fK(e,t){let n=hV(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>lK(r(),e,t,n),hasEdit:(e,n)=>dK(r(),e,t,n),hasSelectColumn:e=>uK(r(),t,e)}}const pK=[`table-header-color`,`column-row`,`icon`],mK=[`input-padding`],hK=[`icon`];function gK(e,t,n){return KU(e,{entityId:()=>t.table.id,selectType:sg.table,blockedKinds:e=>e===`document`?pK:hK,clickKinds:e=>e===`document`?mK:[],source:n})}function _K(e,t){let n=hV(e),{addUnsubscribe:r}=bW(),i=Qa({force:!1}),a=()=>{i.force=!i.force};ja(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r($a(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?TW(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>lK(r,e,t,n));return r?TW(r.id):null}}}function vK(e){if(EV(e))return{x:e.clientX,y:e.clientY};let{touches:t,changedTouches:n}=e,r=t?.[0]??n?.[0];return r?{x:r.clientX,y:r.clientY}:null}const yK=e=>e.type===`mouseup`||e.type===`touchend`&&!e.touches?.length;function bK(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function xK(e){return!fV(e)&&kV(e)}function SK(e,t){let n=vK(e);n&&!OV(e)&&oU.pipe(Le(1)).subscribe(e=>{let r=yK(e)?vK(e):null;r&&bK(n,r)&&t()})}function CK(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!xK(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;SK(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&pv(t.state,s,a)})}}}const wK=[`icon`],TK=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,EK=(e,t)=>{let n=hV(t),r=oH(t),i=iH(t),a=OW(t),o=nK(t),{hasEdit:s,hasFocus:c,hasSelectColumn:l}=fK(t,e.table.id),{sharedFocusColor:u,sharedFocusTableColor:d}=_K(t,e.table.id),{sharedSelectColor:f}=EW(t,e.table.id),{onMoveStart:p}=gK(t,e,a),m=CK(n,e,a),{addUnsubscribe:h}=bW(),g=Qa({hover:!1,iconHover:null,dragstartId:null}),_=DG(),v=null,y=null,b=null,ee=()=>{g.hover=!0,a.value!==`document`&&cv(n.value.store.state,e.table.id,a.value)},te=()=>{g.hover=!1,a.value!==`document`&&cv(n.value.store.state,null,a.value)};h(()=>{a.value!==`document`&&lv(n.value.store.state,e.table.id,a.value)});let ne=e=>t=>{g.iconHover=e,HH(t,BH)},re=e=>{g.iconHover=null,HH(e,``)},ie=(e,t,n,r)=>n?r?r.foreground:g.iconHover===t?e.active:e.foreground:IH,ae=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,x=!1,S=e=>{x=!!n.value.store.state.editor.drawRelationship,!(a.value!==`document`&&WU(e.target,wK))&&(p(e),m.onPress(e))},oe=t=>{if(x)return;let{emitter:r}=n.value;r.emit(aV({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},se=()=>{if(x)return;let{store:t}=n.value;t.dispatch(Uk(e.table.id))},C=()=>{if(x)return;let{store:t}=n.value;t.dispatch(Lk(e.table.id))},ce=()=>{rK(n.value,[e.table.id])},w=()=>{eK(n.value.store,e.table.id)},le=t=>{if(a.value!==`document`)return;let{store:r}=n.value;r.dispatch(YC({tableId:e.table.id,focusType:t}))},T=(e,t)=>{if(!_.isDouble(e,t)||a.value!==`document`)return;let{store:r}=n.value;r.dispatch(rw())},ue=e=>{let t=y,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=iK(t.state,r,a.value);if(CG(t.state,r,i!==null),!i)return;let{editor:{draggableColumn:o}}=t.state;o&&!aK(t.state,o,i)&&(b?.snapshot(),t.dispatch(Oz(i.columnId,i.tableId)))},fe=()=>{let{store:e,emitter:t}=n.value;(v||g.dragstartId!==null)&&(v?.unsubscribe(),v=null,y=null,g.dragstartId=null,wG(e.state),e.dispatch(Vw()),t.emit(oV()))},pe=(t,r)=>{let{store:i}=n.value;if(a.value!==`document`)return;let{editor:{focusTable:o}}=i.state;if(!o||!o.columnId)return;let s=r.target?.getStage()??null;if(!s)return;v?.unsubscribe(),y=s,g.dragstartId=t,b??=cK(()=>s.find(`.column-row`));let c=fV(r.evt),l=ue(r.evt);l&&SG(i.state,e.table,l,{columnId:t,columnIds:c?o.selectColumnIds:[t]}),i.dispatch(Ez(c)),v=lU.subscribe({next:({event:e})=>{de(e)},complete:fe})};ja(()=>{let{emitter:e}=n.value;h(e.on({dragendColumnAll:()=>{v?.unsubscribe(),v=null,wG(n.value.store.state)}}),()=>{v&&wG(n.value.store.state),v?.unsubscribe(),v=null,b?.cancel()})});let me=({focusType:t,x:n,width:i,text:s,fill:c,focus:l,edit:u,sharedFocus:d})=>{let f=a.value,p=f!==`document`,m=kG(r.value,o.value?.get(e.table.id)?.[1],t);return A`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${d} x=${n} y=${0} @mousedown=${e=>{le(t),_.track(t,e)}} @dblclick=${e=>{T(t,e)}}>${m?A`<k-rect name="cell-diff-background" width=${i+8} height=${24} fill=${m} listening=${!1} />`:null}<k-text name="cell-text" y=${XU(f)} width=${i} height=${ZU(f)} text=${s} fill=${c} fontFamily=${DH} fontSize=${p?14:12} fontStyle=${p?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!u} hitFunc=${gW[f]} />${l&&!p?A`<k-rect name="cell-focus-border" y=${XU(f)+18.5} width=${i} height=${NH} fill=${tW(r.value,u,e.editorFocused)} listening=${!1} />`:null}${d?A`<k-rect name="cell-shared-focus-border" y=${22.5} width=${i+8} height=${NH} fill=${d} listening=${!1} />`:null}</k-group>`};return()=>{let{store:t}=n.value,{editor:p,collections:m}=t.state,{table:h}=e,_=r.value,v=!!p.selectedMap[h.id],y=a.value,b=sy(t.state,h,y),x=oy(t.state,h,y),le=x.width-18,T=!!(e.hovered||g.hover),ue=e.ghostColumnId??g.dragstartId,de=ue!==null&&!h.columnIds.includes(ue)?ue:null,he=d(),ge=f(),_e=u(H.tableName),ve=u(H.tableComment),ye=he??ge,be=y!==`document`,xe=YU(y)-9,Se=xe+(be?2:6),Ce=be?16:12,we=be&&T,Te=(e,t)=>!be&&s(e,t),Ee=cW(t.state,h,y),De=Ee.find(e=>e.focusType===H.tableName),Oe=Ee.find(e=>e.focusType===H.tableComment),ke=rv(t.state,h,y),Ae=e.preview?null:e.tableGroupId===void 0?Zy(t.state,h,y):Qy(t.state,e.tableGroupId,y),je=ke.length===0,Me=be&&!!e.lit,Ne=be?PH(_.minimapShadow):zH(_.tableShadow),Pe=BW(p.id,`table`,h.id),Fe=0;be&&(HW(Pe,+!!Me),Fe=VW(Pe));let Ie=N(m).collection(`tableColumnEntities`).selectByIds(de?[...ke,de]:ke),Le=b.alternateKey?jv(t.state,h):{};return A`<k-group id=${e.preview?``:`table-${h.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${v} sharedFocus=${he} sharedSelect=${ge} x=${x.x} y=${x.y} @mousedown=${S} @touchstart=${S} @mouseenter=${ee} @mouseleave=${te}><k-rect name="table-body" x=${1/2} y=${1/2} width=${x.width-1} height=${x.height-1} cornerRadius=${6} fill=${_.tableBackground} stroke=${GW(ae(_,v),_.accentColor9,Fe)} strokeWidth=${1} shadowColor=${Ne?.color} shadowBlur=${Ne?.blur} shadowOffsetX=${Ne?.offsetX} shadowOffsetY=${Ne?.offsetY} shadowOpacity=${Ne?.opacity} shadowForStrokeEnabled=${!Ne&&void 0} @mouseenter=${e=>{be&&HH(e,`pointer`)}} @mouseleave=${e=>{be&&HH(e,``)}} /><k-rect name="table-header-band" x=${1} y=${1} width=${x.width-2} height=${je?x.height-2:9+Kv(y)-1} cornerRadius=${je?6:[6,6,0,0]} fill=${Ae?.background??_.tableHeaderBackground} listening=${!1} />${Fe>0?A`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${x.width+1} height=${x.height+1} cornerRadius=${6} opacity=${Fe} stroke=${_.accentColor9} strokeWidth=${1} shadowColor=${_.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${ye?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${x.width+1} height=${x.height+1} cornerRadius=${6} stroke=${ye} strokeWidth=${1} listening=${!1} />`:null}<k-group name="table-header" x=${9} y=${9}><k-group name="table-header-inputs" y=${xe}>${yW({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:Ce,color:Ae?.foreground??_.foreground,x:0,y:be?0:(24-Ce)/2})}${De?me({...De,text:h.name.trim()?h.name:i.value.t(`common.placeholder.table`),fill:Ae?.foreground??TK(_,h.name,be),focus:c(H.tableName),edit:Te(H.tableName),sharedFocus:_e}):null}${Oe?me({...Oe,text:h.comment.trim()?h.comment:i.value.t(`common.placeholder.comment`),fill:Ae?.foreground??(h.comment.trim()?_.active:_.placeholder),focus:c(H.tableComment),edit:Te(H.tableComment),sharedFocus:ve}):null}</k-group>${be?null:yW({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ie(_,`plus`,T,Ae),mouseenter:ne(`plus`),mouseleave:re,x:le-24-4,y:Se,click:se})}${be?null:yW({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ie(_,`x`,T,Ae),mouseenter:ne(`x`),mouseleave:re,x:le-12,y:Se,click:C})}${we?yW({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ie(_,`waypoints`,T,Ae),mouseenter:ne(`waypoints`),mouseleave:re,x:le-28,y:Se,click:ce}):null}${we?yW({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ie(_,`external-link`,T,Ae),mouseenter:ne(`external-link`),mouseleave:re,x:le-12,y:Se,click:w}):null}</k-group><k-group name="table-columns">${Iu(Ie,e=>e.id,(n,r)=>A`<${MG} .column=${n} .source=${y} .related=${e.relatedColumnIds?.has(n.id)??!1} .diffPaths=${o.value?.get(n.id)?.[1]??null} .litAlpha=${Fe} .divider=${be&&r<ke.length-1} .last=${r===ke.length-1} .y=${cy(t.state,h,r,y).y-x.y} .width=${x.width} .selected=${l(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${b.name} .widthDataType=${b.dataType} .widthDefault=${b.default} .widthComment=${b.comment} .widthAlternateKey=${b.alternateKey} .alternateKey=${Le[n.id]} .focusName=${c(H.columnName,n.id)} .focusDataType=${c(H.columnDataType,n.id)} .focusNotNull=${c(H.columnNotNull,n.id)} .focusDefault=${c(H.columnDefault,n.id)} .focusComment=${c(H.columnComment,n.id)} .focusUnique=${c(H.columnUnique,n.id)} .focusAutoIncrement=${c(H.columnAutoIncrement,n.id)} .editName=${Te(H.columnName,n.id)} .editDataType=${Te(H.columnDataType,n.id)} .editDefault=${Te(H.columnDefault,n.id)} .editComment=${Te(H.columnComment,n.id)} .sharedFocusName=${u(H.columnName,n.id)} .sharedFocusDataType=${u(H.columnDataType,n.id)} .sharedFocusNotNull=${u(H.columnNotNull,n.id)} .sharedFocusDefault=${u(H.columnDefault,n.id)} .sharedFocusComment=${u(H.columnComment,n.id)} .sharedFocusUnique=${u(H.columnUnique,n.id)} .sharedFocusAutoIncrement=${u(H.columnAutoIncrement,n.id)} .ghost=${n.id===de} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${pe} .onDragend=${fe} />`)}</k-group><k-path name="table-header-color" kind="table-header-color" data=${TG(x.height)} fill=${h.ui.color} listening=${!be} @click=${EH(oe)} @mouseenter=${e=>{HH(e,BH)}} @mouseleave=${e=>{HH(e,``)}} /></k-group>`}},DK=[];function OK(e,t,n,r){Fv();let{selectedMap:i}=e.editor,a=VU(e,n)&&!i[t.id],o=zy(e,t,{members:r,excludeTableIds:a?Object.keys(i):[]}),s=a?UU(e,n)?.get(t.id):void 0;return s?ay(s,o):o}function kK(){let e=Qa({}),t=/* @__PURE__ */ new Map,n=Qa({});return{isHovered:e=>!!(n[`${e}:frame`]||n[`${e}:body`]),setHover:(e,t,r)=>{let i=`${e}:${t}`;r?n[i]=!0:Reflect.deleteProperty(n,i)},draftOf:t=>e[t]??null,setDraft:(t,n)=>{n?e[t]=n:Reflect.deleteProperty(e,t)},guardOf:e=>{let n=t.get(e)??DG();return t.set(e,n),n}}}const AK=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function jK(){let e=/* @__PURE__ */ new Map;return t=>{let n=/* @__PURE__ */ new Map;return Uy(t).forEach((t,r)=>{let i=e.get(r);n.set(r,i&&AK(i,t)?i:t)}),e=n,e=>n.get(e)??DK}}const MK={left:`left`,right:`right`,top:`top`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},NK={left:{x:`left`},right:{x:`right`},top:{y:`top`},bottom:{y:`bottom`},lt:{x:`left`,y:`top`},rt:{x:`right`,y:`top`},lb:{x:`left`,y:`bottom`},rb:{x:`right`,y:`bottom`}},PK={left:`ew-resize`,right:`ew-resize`,top:`ns-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},FK=Object.values(MK);function IK(e,t,n,r,i){let{x:a,y:o}=NK[n],s=e.x,c=e.y,l=e.x+e.width,u=e.y+e.height;return a===`left`?s=Math.min(s+r,l-160,t?.x??1/0):a===`right`&&(l=Math.max(l+r,s+160,t?t.x+t.width:-1/0)),o===`top`?c=Math.min(c+i,u-100,t?.y??1/0):o===`bottom`&&(u=Math.max(u+i,c+100,t?t.y+t.height:-1/0)),{x:s,y:c,width:l-s,height:u-c}}const LK=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,RK=e=>EV(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},zK=(e,t)=>{let n=hV(t),r=UH(),i=null;Ma(()=>{i?.(),r.release()});let a=(t,r)=>{if(!kV(t.evt)||OV(t.evt))return;let{store:a}=n.value,{id:o}=e.group,s={...e.box},c=Wy(a.state,Ly(a.state,o)),{zoomLevel:l}=a.state.settings,u=RK(t),d=s,f=!0,p=()=>{i=null;let{state:t}=a;f&&!LK(d,s)&&Yy(t)&&t.doc.tableGroupIds.includes(o)&&a.dispatchSync(zO({id:o,...d})),e.onDraft(null)},m=WH(t,PK[r]),h=lU.subscribe(({event:t,x:n,y:i})=>{t.type===`mousemove`&&t.preventDefault(),d=IK(s,c,r,(n-u.x)/l,(i-u.y)/l),e.onDraft(d)});h.add(m),h.add(p),i=()=>{f=!1,h.unsubscribe()}};return()=>{let{width:t,height:n}=e.box,i=5/2,o={left:-2.5,top:-2.5,right:t-i,bottom:n-i};return A`${FK.map(e=>{let{x:i,y:s}=NK[e];return A`<k-rect name=${`table-group-sash table-group-sash-${e}`} kind="table-group-sash" x=${i?o[i]:0} y=${s?o[s]:0} width=${i?5:t} height=${s?5:n} fill=${LH} @mousedown=${t=>{a(t,e)}} @touchstart=${t=>{a(t,e)}} @mouseenter=${t=>{r.set(t,PK[e])}} @mouseleave=${e=>{r.set(e,``)}} />`})}`}};function BK(e=0){let t=rW();return{x:28,y:Math.round((28-t)/2),width:Math.max(e-28-28,0),height:t}}function VK(){return{x:8,y:8,size:12}}function HK(e){return{x:e-8-12,y:8,size:12}}function UK(e,t){!e.getReadonly()&&Yy(e.state)&&e.dispatch($C(),dw({id:t}))}const WK=[`table-group-title`],GK=[`icon`],KK=(e,t)=>{let n=hV(t),r=oH(t),i=iH(t),a=OW(t),{sharedSelectColor:o}=EW(t,e.group.id),s=Qa({removeHover:!1}),{onMoveStart:c}=KU(t,{entityId:()=>e.group.id,selectType:sg.tableGroup,blockedKinds:()=>GK,clickKinds:()=>WK,canMove:()=>!n.value.store.getReadonly(),source:a}),l=()=>e.links.guardOf(e.group.id),u=e=>{l().track(`title`,e),c(e)},d=t=>{l().isDouble(`title`,t)&&UK(n.value.store,e.group.id)},f=t=>{e.links.setDraft(e.group.id,t)},p=()=>{e.links.setHover(e.group.id,`frame`,!0)},m=()=>{e.links.setHover(e.group.id,`frame`,!1)},h=UH();Ma(()=>{m(),h.release()});let g=e=>{s.removeHover=!0,h.set(e,n.value.store.getReadonly()?``:BH)},_=e=>{s.removeHover=!1,h.set(e,``)},v=()=>{let{store:t}=n.value;t.getReadonly()||t.dispatch(tA(e.group.id))},y=(t,n,r)=>r||!e.links.isHovered(e.group.id)?IH:n?n.foreground:s.removeHover?t.active:t.foreground;return()=>{let{store:t}=n.value,{selectedMap:s}=t.state.editor,{group:l,members:h,links:b}=e,ee=r.value,te=!!s[l.id],ne=o(),re=t.state.editor.editTableGroupId===l.id,ie=b.draftOf(l.id)??OK(t.state,l,a.value,h),{x:ae,y:x,width:S,height:oe}=ie,se=Xy(l),C=BK(S),ce=VK(),w=HK(S),le=t.getReadonly(),T=!!l.name.trim(),ue=1/2;return A`<k-group id=${`table-group-${l.id}`} name="table-group" kind="table-group" selected=${te} sharedSelect=${ne} x=${ae} y=${x} @mouseenter=${p} @mouseleave=${m}><k-group name="table-group-title" kind="table-group-title" @mousedown=${u} @touchstart=${c} @dblclick=${EH(d)}><k-rect name="table-group-title-bar" width=${S} height=${28} cornerRadius=${[6,6,0,0]} fill=${se?.background??ee.tableGroupHeaderBackground} /><k-group name="table-group-icon-holder" listening=${!1}>${yW({icon:`group`,name:`table-group-icon`,kind:`table-group-icon`,size:ce.size,color:se?.foreground??ee.active,x:ce.x,y:ce.y})}</k-group><k-text name="table-group-name" x=${C.x} y=${C.y} width=${C.width} height=${C.height} text=${T?l.name:i.value.t(`common.unnamed`)} fill=${se?.foreground??(T?ee.active:ee.placeholder)} fontFamily=${DH} fontSize=${12} fontStyle=${`bold`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!re} listening=${!1} />${yW({icon:`x`,name:`table-group-remove`,kind:`icon`,size:w.size,color:y(ee,se,le),mouseenter:g,mouseleave:_,x:w.x,y:w.y,click:v})}</k-group><k-rect name="table-group-border" x=${ue} y=${ue} width=${S-1} height=${oe-1} cornerRadius=${6} stroke=${te?ee.memoSelect:se?.background??ee.tableGroupBorder} strokeWidth=${1} listening=${!1} /><k-rect name="table-group-shared-select" x=${-.5} y=${-.5} width=${S+1} height=${oe+1} cornerRadius=${7} stroke=${ne??``} strokeWidth=${1} listening=${!1} />${le?null:A`<${zK} .group=${l} .box=${ie} .onDraft=${f} />`}</k-group>`}},qK=(e,t)=>{let n=hV(t),r=oH(t),i=OW(t),a=()=>{e.links.setHover(e.group.id,`body`,!0)},o=()=>{e.links.setHover(e.group.id,`body`,!1)};Ma(o);let s=t=>{let{group:r,links:i}=e;if(i.guardOf(r.id).track(`body`,t),kV(t.evt)||OV(t.evt))return;let{store:a}=n.value;a.dispatch(cA(r.id,!!a.state.editor.selectedMap[r.id]))};return()=>{let{store:t}=n.value,{group:c,members:l,links:u}=e,{x:d,y:f,width:p,height:m}=u.draftOf(c.id)??OK(t.state,c,i.value,l),h=Xy(c);return A`<k-rect id=${`table-group-body-${c.id}`} name="table-group-body" kind="table-group-body" x=${d} y=${f+28} width=${p} height=${Math.max(m-28,0)} cornerRadius=${[0,0,6,6]} fill=${h?.background??r.value.tableGroupBackground} opacity=${h?.12:1} @mousedown=${s} @mouseenter=${a} @mouseleave=${o} />`}},JK=(e,t)=>{let n=hV(t),r=kK(),i=jK();return()=>{let{state:e}=n.value.store,t=N(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),a=i(e);return A`${Iu(t,e=>e.id,e=>A`<${qK} .group=${e} .members=${a(e.id)} .links=${r} />`)}${Iu(t,e=>e.id,e=>A`<${KK} .group=${e} .members=${a(e.id)} .links=${r} />`)}`}};function YK(e,t){return[...e.map(e=>({kind:`table`,entity:e})),...t.map(e=>({kind:`memo`,entity:e}))].sort((e,t)=>e.entity.ui.zIndex-t.entity.ui.zIndex)}const XK=({kind:e,entity:t})=>`${e}:${t.id}`,ZK=(e,t)=>{let n=hV(t),r=oH(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o},doc:{tableIds:s,memoIds:c,relationshipIds:l},collections:u}=t.state,d=r.value,f=YK(N(u).collection(`tableEntities`).selectByIds(s),Z_(t.state)?N(u).collection(`memoEntities`).selectByIds(c):[]),p=N(u).collection(`relationshipEntities`).selectByIds(l);return A`<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=${d.canvasBackground} />${Yy(t.state)?A`<${JK} />`:null}${U(o,P.relationship)?A`<${bG} .relationships=${p} />`:null}${Iu(f,XK,e=>e.kind===`table`?A`<${EK} .table=${e.entity} />`:A`<${AW} .memo=${e.entity} />`)}</k-layer>`}};async function QK({doc:e,theme:t,toWidth:n,maxSide:r,i18n:i}){let a=pV({toWidth:n},{devtools:!1});a.store.dispatchSync(KR(e)),a.store.dispatchSync(Db({value:1})),await cH(32);let o=fH(a.store.state),s=pH(o),c=w(r)?Math.min(s,r/Math.max(o.width,o.height)):s,l=mH(o,c),u=sH({app:a,container:document.createElement(`div`),scene:A`<${ZK} .box=${o} .scale=${c} />`,width:l.width,height:l.height,theme:t,i18n:i&&TV(i.locale,i.messages)});return await Af(),{stage:u.stage,box:o,scale:c,destroy:()=>{u.destroy(),gV(a)}}}function $K(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(/* @__PURE__ */ Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function eq({doc:e,theme:t,pixelRatio:n,maxSide:r,i18n:i,toWidth:a}){let o=await QK({doc:e,theme:t,toWidth:a,maxSide:r,i18n:i});try{let e=uH(n,o.stage.width(),o.stage.height()),t=o.stage.toCanvas({pixelRatio:e}),r=await $K(t),{width:i,height:a}=t,s=o.scale*e,c=1*n,l=null;if(s<c){let{askedWidth:e,askedHeight:t}=hH(o.box,n);l={askedWidth:e,askedHeight:t,width:i,height:a}}return{blob:r,width:i,height:a,documentWidth:o.box.width,documentHeight:o.box.height,reduction:l}}finally{o.destroy()}}const tq=[`x`,`y`,`scaleX`,`scaleY`,`offsetX`,`offsetY`,`rotation`,`visible`,`opacity`],nq=[`clipX`,`clipY`,`clipWidth`,`clipHeight`],rq=[`fill`,`stroke`,`strokeWidth`,`dash`,`lineCap`,`lineJoin`];[...tq,...nq],[...tq,...nq],[...tq,...rq],[...tq],[...tq,...rq],[...tq,...rq],[...tq,...rq];const iq=/* @__PURE__ */ new Set([``,`none`,`transparent`]),aq=/^#([0-9a-f]{4}|[0-9a-f]{8})$/i,oq=/^(rgb|hsl)a?\((.*)\)$/i,sq={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Q(e,t=3){let n=10**t,r=Math.round(e*n)/n;return String(r===0?0:r)}function cq(e){return e===9||e===10||e===13||e>=32&&e!==65534&&e!==65535}function lq(e){let t=``;for(let n of e)cq(n.codePointAt(0)??0)&&(t+=sq[n]??n);return t}function $(e,t){return` ${e}="${lq(String(t))}"`}function uq(e){let t=e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return Number.isNaN(t)?1:Math.min(Math.max(t,0),1)}function dq(e){let t=aq.exec(e);if(t){let e=t[1].toLowerCase(),n=e.length===4?Array.from(e,e=>e+e).join(``):e;return{color:`#${n.slice(0,6)}`,alpha:Number.parseInt(n.slice(6),16)/255}}let n=oq.exec(e);if(!n)return{color:e,alpha:1};let[r,i]=n[2].split(`/`),a=r.split(/[\s,]+/).filter(Boolean),o=i??(a.length===4?a[3]:void 0);return o===void 0?{color:e,alpha:1}:{color:`${n[1].toLowerCase()}(${a.slice(0,3).join(`,`)})`,alpha:uq(o.trim())}}function fq(e){if(typeof e!=`string`)return null;let t=e.trim();if(iq.has(t.toLowerCase()))return null;let n=dq(t),r=Number(Q(n.alpha));return r>0?{color:n.color,opacity:r}:null}function pq(e,{color:t,opacity:n}){return $(e,t)+(n<1?$(`${e}-opacity`,n):``)}function mq([e,t,n,r,i,a]){let o=[e,t,n,r].map(e=>Q(e,6)).join(` `),s=`${Q(i)} ${Q(a)}`;return o===`1 0 0 1`?s===`0 0`?``:$(`transform`,`translate(${s})`):$(`transform`,`matrix(${o} ${s})`)}function hq(e){return mq(e.getTransform().getMatrix())}function gq(e,{box:t,scale:n}){let[r,i,a,o,s,c]=e.getTransform().getMatrix();return mq([r/n,i/n,a/n,o/n,s/n+t.x,c/n+t.y])}function _q(e){return e.opacity()<1?$(`opacity`,Q(e.opacity())):``}function vq(e,t){let n=e.clipWidth(),r=e.clipHeight();if(!n||!r)return``;let i=`erd-clip--${t.clips.length+1}`,a=$(`x`,Q(e.clipX()??0))+$(`y`,Q(e.clipY()??0))+$(`width`,Q(n))+$(`height`,Q(r));return t.clips.push(`<clipPath id="${i}"><rect${a}/></clipPath>`),` clip-path="url(#${i})"`}function yq(e){let t=2166136261;for(let n of e)for(let e=0;e<n.length;e++)t=Math.imul(t^n.charCodeAt(e),16777619);return(t>>>0).toString(36)}function bq(e,t,n){let r=e.getChildren().map(e=>Nq(e,t)).join(``);if(!r)return``;let i=n+_q(e)+vq(e,t);return i?`<g${i}>${r}</g>`:r}function xq(e,t){let n=t?fq(e.fill()):null,r=e.strokeWidth(),i=r?fq(e.stroke()):null;if(!n&&!i)return null;let a=n?pq(`fill`,n):$(`fill`,`none`);if(!i)return a;a+=pq(`stroke`,i)+$(`stroke-width`,Q(r));let o=e.dash();o?.length&&(a+=$(`stroke-dasharray`,o.map(e=>Q(e)).join(` `)));let s=e.lineCap();s&&s!==`butt`&&(a+=$(`stroke-linecap`,s));let c=e.lineJoin();return c&&c!==`miter`&&(a+=$(`stroke-linejoin`,c)),a}function Sq(e,t,n,r=!0){let i=xq(e,r);return i?`<${t}${hq(e)}${_q(e)}${n}${i}/>`:``}function Cq(e,t,n){let r=Math.min(t/2,n/2);return(Array.isArray(e)?[0,1,2,3].map(t=>e[t]||0):[e,e,e,e]).map(e=>Math.min(e,r))}function wq(e,t,n,r,[i,a,o,s]){let c=(e,t,n)=>`A${Q(e)} ${Q(e)} 0 0 1 ${Q(t)} ${Q(n)}`;return[`M${Q(e+i)} ${Q(t)}`,`H${Q(e+n-a)}`,c(a,e+n,t+a),`V${Q(t+r-o)}`,c(o,e+n-o,t+r),`H${Q(e+s)}`,c(s,e,t+r-s),`V${Q(t+i)}`,c(i,e+i,t),`Z`].join(``)}function Tq(e){let t=Math.min(e.width(),0),n=Math.min(e.height(),0),r=Math.abs(e.width()),i=Math.abs(e.height()),a=Cq(e.cornerRadius(),r,i),[o]=a;return a.some(e=>e!==o)?Sq(e,`path`,$(`d`,wq(t,n,r,i,a))):Sq(e,`rect`,(t?$(`x`,Q(t)):``)+(n?$(`y`,Q(n)):``)+$(`width`,Q(r))+$(`height`,Q(i))+(o>0?$(`rx`,Q(o)):``))}function Eq(e){return Sq(e,`path`,$(`d`,e.data()))}function Dq(e){return Sq(e,`circle`,$(`r`,Q(e.radius())))}function Oq(e){let t=e.points();if(t.length<4)return``;let n=[];for(let e=0;e+1<t.length;e+=2)n.push(`${Q(t[e])},${Q(t[e+1])}`);let r=e.closed();return Sq(e,r?`polygon`:`polyline`,$(`points`,n.join(` `)),r)}function kq(e){let t=``;for(let n of e.trim().split(/\s+/))n===`italic`||n===`oblique`?t+=$(`font-style`,n):n&&n!==`normal`&&(t+=$(`font-weight`,n));return t}function Aq(e,t){switch(e){case`middle`:return t/2;case`bottom`:return t;default:return 0}}function jq(e,t,n){switch(e){case`right`:return{x:t-n,attribute:$(`text-anchor`,`end`)};case`center`:return{x:t/2,attribute:$(`text-anchor`,`middle`)};default:return{x:n,attribute:``}}}function Mq(e){let t=fq(e.fill());if(!t||!e.text())return``;let n=e.textArr,r=e.fontSize(),i=e.lineHeight()*r,a=e.padding(),o=e.measureSize(`M`),s=(o.fontBoundingBoxAscent-o.fontBoundingBoxDescent)/2+i/2,c=e.getHeight()-n.length*i-a*2,l=Aq(e.verticalAlign(),c),u=jq(e.align(),e.getWidth(),a),d=n.map(({text:e},t)=>({text:e,y:a+l+s+t*i})).filter(({text:e})=>e);if(!d.length)return``;let f=e.fontFamily(),p=(f===`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`?``:$(`font-family`,f))+(r===12?``:$(`font-size`,Q(r)))+kq(e.fontStyle()),m=`<text${hq(e)}${_q(e)}${p}${u.attribute}${pq(`fill`,t)}`,h=$(`x`,Q(u.x));if(d.length===1){let[{text:e,y:t}]=d;return`${m}${h}${$(`y`,Q(t))}>${lq(e)}</text>`}return`${m}>${d.map(({text:e,y:t})=>`<tspan${h}${$(`y`,Q(t))}>${lq(e)}</tspan>`).join(``)}</text>`}function Nq(e,t){if(!e.visible()||e.opacity()===0)return``;let n=e.getClassName();switch(n){case`Layer`:return bq(e,t,gq(e,t));case`Group`:return bq(e,t,hq(e));case`Rect`:return Tq(e);case`Text`:return Mq(e);case`Path`:return Eq(e);case`Line`:return Oq(e);case`Circle`:return Dq(e)}throw Error(`[export-svg] no svg element is written for a konva ${n}`)}function Pq(e,t){let{box:n}=t,r={...t,clips:[]},i=e.getChildren().map(e=>Nq(e,r)).join(``),a=r.clips.length?`<defs>${r.clips.join(``)}</defs>`:``,o=[n.x,n.y,n.width,n.height].map(e=>Q(e)).join(` `);return`<svg${$(`xmlns`,`http://www.w3.org/2000/svg`)+$(`width`,Q(n.width))+$(`height`,Q(n.height))+$(`viewBox`,o)+$(`font-family`,xH)+$(`font-size`,Q(12))+$(`xml:space`,`preserve`)}>${a}${i}</svg>`.replaceAll(`\0`,yq(r.clips))}async function Fq({doc:e,theme:t,i18n:n,toWidth:r}){let i=await QK({doc:e,theme:t,toWidth:r,maxSide:256,i18n:n});try{return Pq(i.stage,{box:i.box,scale:i.scale})}finally{i.destroy()}}const Iq=`400 12px ${xH}`,Lq=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function Rq(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=Iq,t=>Math.round(e.measureText(t).width)+2):null}function zq(e){return Lq.map(t=>e(t))}function Bq(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const Vq=new class{async probeFontWidths(){return zq(this.createToWidth())}async render(e){let t=this.createMatchingToWidth(e.fontProbe);return eq({...e,toWidth:t})}async renderSvg(e){let t=this.createMatchingToWidth(e.fontProbe);return Fq({...e,toWidth:t})}createMatchingToWidth(e){let t=this.createToWidth(),n=zq(t);if(!Bq(n,e))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.join()}`);return t}createToWidth(){let e=Rq();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(Vq,n)};
|