windmill-components 1.623.1 → 1.623.2
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/package/assets/tokens/tokens.json +11 -1
- package/package/ata/apis.js +78 -5
- package/package/cancelable-promise-utils.js +4 -2
- package/package/components/AddUser.svelte +1 -1
- package/package/components/ApiConnectForm.svelte +6 -0
- package/package/components/AppConnectDrawer.svelte +1 -0
- package/package/components/AppConnectInner.svelte +1 -0
- package/package/components/AuthSettings.svelte +3 -1
- package/package/components/BedrockCredentialsCheck.svelte +241 -0
- package/package/components/BedrockCredentialsCheck.svelte.d.ts +3 -0
- package/package/components/CenteredModal.svelte +32 -24
- package/package/components/CenteredModal.svelte.d.ts +7 -27
- package/package/components/CenteredPage.svelte +6 -2
- package/package/components/CenteredPage.svelte.d.ts +3 -0
- package/package/components/CompareWorkspaces.svelte +74 -16
- package/package/components/ConcurrentJobsChart.svelte +3 -2
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +20 -23
- package/package/components/CustomPopover.svelte.d.ts +14 -39
- package/package/components/DBManager.svelte +134 -42
- package/package/components/DBManager.svelte.d.ts +13 -2
- package/package/components/DBManagerContent.svelte +25 -63
- package/package/components/DBManagerContent.svelte.d.ts +38 -4
- package/package/components/DBManagerDrawer.svelte +7 -9
- package/package/components/DBTable.svelte +1 -1
- package/package/components/DBTable.svelte.d.ts +3 -1
- package/package/components/DBTableEditor.svelte +234 -178
- package/package/components/DBTableEditor.svelte.d.ts +22 -3
- package/package/components/DateInput.svelte +29 -35
- package/package/components/DateInput.svelte.d.ts +10 -11
- package/package/components/DedicatedWorkersSelector.svelte +569 -0
- package/package/components/DedicatedWorkersSelector.svelte.d.ts +8 -0
- package/package/components/DeployWorkspace.svelte +106 -29
- package/package/components/Description.svelte +3 -2
- package/package/components/Dev.svelte +36 -2
- package/package/components/DiffDrawer.svelte +8 -29
- package/package/components/DiffEditor.svelte +32 -2
- package/package/components/DisplayResult.svelte +32 -24
- package/package/components/DropdownV2.svelte +2 -1
- package/package/components/DropdownV2.svelte.d.ts +1 -0
- package/package/components/Editor.svelte +71 -26
- package/package/components/Editor.svelte.d.ts +3 -0
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +17 -11
- package/package/components/FlowDiffViewer.svelte +37 -0
- package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
- package/package/components/FlowGraphViewer.svelte +5 -2
- package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowPreviewContent.svelte +3 -2
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowPreviewResult.svelte +0 -4
- package/package/components/FlowRestartButton.svelte +2 -3
- package/package/components/FlowRestartButton.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +55 -35
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
- package/package/components/FlowViewer.svelte +103 -2
- package/package/components/FlowViewer.svelte.d.ts +9 -3
- package/package/components/ForkWorkspaceBanner.svelte +32 -13
- package/package/components/GraphqlSchemaViewer.svelte +8 -1
- package/package/components/HistoricInputs.svelte +25 -27
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InfiniteList.svelte +27 -20
- package/package/components/InfiniteList.svelte.d.ts +2 -0
- package/package/components/InstanceSetting.svelte +38 -0
- package/package/components/InviteUser.svelte +16 -42
- package/package/components/InviteUser.svelte.d.ts +4 -18
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/JobOtelTraces.svelte +287 -0
- package/package/components/JobOtelTraces.svelte.d.ts +6 -0
- package/package/components/JsonInputs.svelte +6 -8
- package/package/components/JsonInputs.svelte.d.ts +7 -8
- package/package/components/LogViewer.svelte +91 -33
- package/package/components/Login.svelte +27 -0
- package/package/components/ManualPopover.svelte +5 -6
- package/package/components/ManualPopover.svelte.d.ts +9 -35
- package/package/components/MemoryFootprintViewer.svelte +2 -6
- package/package/components/ModulePreview.svelte +23 -21
- package/package/components/ModulePreview.svelte.d.ts +1 -0
- package/package/components/NextcloudSetting.svelte +1 -1
- package/package/components/OAuthSetting.svelte +1 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/PocketIdSetting.svelte +82 -0
- package/package/components/PocketIdSetting.svelte.d.ts +6 -0
- package/package/components/ResourceEditor.svelte +4 -4
- package/package/components/ResourcePicker.svelte +4 -0
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunButton.svelte +5 -15
- package/package/components/RunButton.svelte.d.ts +7 -19
- package/package/components/RunChart.svelte +8 -4
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunForm.svelte +9 -17
- package/package/components/RunForm.svelte.d.ts +0 -1
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +202 -537
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +7 -11
- package/package/components/S3FilePickerInner.svelte +2 -3
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputsPicker.svelte +1 -1
- package/package/components/SavedInputsV2.svelte +35 -36
- package/package/components/SchemaForm.svelte +26 -19
- package/package/components/SchemaFormWithArgPicker.svelte +4 -3
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +575 -101
- package/package/components/Section.svelte +4 -2
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +46 -2
- package/package/components/Star.svelte +8 -12
- package/package/components/Star.svelte.d.ts +6 -19
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +54 -29
- package/package/components/TemplateEditor.svelte.d.ts +13 -102
- package/package/components/TimeAgo.svelte +49 -7
- package/package/components/TimeAgo.svelte.d.ts +1 -0
- package/package/components/Toast.svelte +5 -1
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerGroup.svelte +35 -20
- package/package/components/WorkerGroup.svelte.d.ts +1 -0
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +5 -2
- package/package/components/WorkspaceTutorials.svelte +5 -0
- package/package/components/apps/components/buttons/AppButton.svelte +21 -6
- package/package/components/apps/components/buttons/AppForm.svelte +2 -1
- package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
- package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -5
- package/package/components/apps/components/display/dbtable/dbFeatures.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/dbFeatures.js +32 -0
- package/package/components/apps/components/display/dbtable/metadata.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/metadata.js +177 -148
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +322 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
- package/package/components/apps/components/display/dbtable/queries/createTable.js +13 -25
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +45 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +401 -0
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
- package/package/components/apps/components/display/dbtable/tableEditor.js +67 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +2 -0
- package/package/components/apps/components/display/dbtable/utils.js +61 -36
- package/package/components/apps/components/display/table/AppAggridTable.svelte +8 -0
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -9
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +2 -4
- package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +49 -30
- package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
- package/package/components/apps/inputType.d.ts +6 -1
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/AssetsUsageDrawer.svelte +98 -27
- package/package/components/assets/AssetsUsageDrawer.svelte.d.ts +5 -6
- package/package/components/assets/lib.d.ts +3 -2
- package/package/components/assets/lib.js +3 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/CloseButton.svelte +2 -1
- package/package/components/common/CloseButton.svelte.d.ts +1 -0
- package/package/components/common/badge/CountBadge.svelte +4 -3
- package/package/components/common/badge/CountBadge.svelte.d.ts +1 -0
- package/package/components/common/button/Button.svelte +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +2 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
- package/package/components/common/drawer/Drawer.svelte +4 -1
- package/package/components/common/drawer/DrawerContent.svelte +6 -3
- package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
- package/package/components/common/languageIcons/TypeScript.svelte +5 -3
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/common/modal/Modal2.svelte +1 -0
- package/package/components/common/table/AppRow.svelte +4 -1
- package/package/components/common/table/FlowRow.svelte +4 -1
- package/package/components/common/table/RawAppRow.svelte +4 -1
- package/package/components/common/table/Row.svelte +11 -21
- package/package/components/common/table/Row.svelte.d.ts +4 -20
- package/package/components/common/table/RowIcon.svelte +6 -2
- package/package/components/common/table/RowIcon.svelte.d.ts +1 -1
- package/package/components/common/table/ScriptRow.svelte +4 -1
- package/package/components/copilot/autocomplete/Autocompletor.d.ts +1 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +7 -6
- package/package/components/copilot/autocomplete/request.js +13 -9
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +2 -1
- package/package/components/copilot/chat/AIChat.svelte +3 -1
- package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
- package/package/components/copilot/chat/AIChatInput.svelte +275 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
- package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
- package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
- package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
- package/package/components/copilot/chat/app/core.d.ts +56 -15
- package/package/components/copilot/chat/app/core.js +141 -22
- package/package/components/copilot/chat/context.d.ts +59 -2
- package/package/components/copilot/chat/context.js +6 -2
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
- package/package/components/copilot/chat/flow/core.d.ts +3 -1
- package/package/components/copilot/chat/flow/core.js +29 -2
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
- package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
- package/package/components/copilot/chat/script/core.d.ts +4 -1
- package/package/components/copilot/chat/script/core.js +43 -6
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +24 -0
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +2 -9
- package/package/components/copilot/utils.d.ts +5 -0
- package/package/components/copilot/utils.js +8 -0
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/dbOps.d.ts +18 -4
- package/package/components/dbOps.js +25 -3
- package/package/components/debug/DebugConsole.svelte +277 -0
- package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
- package/package/components/debug/DebugPanel.svelte +97 -0
- package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
- package/package/components/debug/DebugToolbar.svelte +148 -0
- package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
- package/package/components/debug/DebugVariableViewer.svelte +115 -0
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
- package/package/components/debug/MonacoDebugger.svelte +384 -0
- package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
- package/package/components/debug/dapClient.d.ts +192 -0
- package/package/components/debug/dapClient.js +426 -0
- package/package/components/debug/debugUtils.d.ts +30 -0
- package/package/components/debug/debugUtils.js +131 -0
- package/package/components/debug/index.d.ts +75 -0
- package/package/components/debug/index.js +82 -0
- package/package/components/details/DetailPageHeader.svelte +21 -7
- package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
- package/package/components/details/DetailPageLayout.svelte +10 -1
- package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
- package/package/components/flows/CreateActionsApp.svelte +6 -4
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +15 -4
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
- package/package/components/flows/content/FlowInput.svelte +211 -37
- package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
- package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
- package/package/components/flows/content/McpToolEditor.svelte +50 -37
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
- package/package/components/flows/conversations/FlowChat.svelte +16 -2
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
- package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
- package/package/components/flows/conversations/FlowConversationsSidebar.svelte +79 -77
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
- package/package/components/flows/types.d.ts +2 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
- package/package/components/graph/FlowGraphV2.svelte +7 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +41 -24
- package/package/components/home/ItemsList.svelte +7 -6
- package/package/components/home/TutorialBanner.svelte +34 -18
- package/package/components/home/treeViewUtils.js +1 -1
- package/package/components/icons/CssIcon.svelte +20 -0
- package/package/components/icons/CssIcon.svelte.d.ts +7 -25
- package/package/components/icons/HtmlIcon.svelte +20 -0
- package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
- package/package/components/icons/JavaScriptIcon.svelte +10 -2
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
- package/package/components/icons/JsonIcon.svelte +8 -2
- package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
- package/package/components/icons/LessIcon.svelte +16 -0
- package/package/components/icons/LessIcon.svelte.d.ts +8 -0
- package/package/components/icons/MarkdownIcon.svelte +20 -0
- package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
- package/package/components/icons/NextcloudIcon.svelte +3 -2
- package/package/components/icons/NextcloudIcon.svelte.d.ts +2 -0
- package/package/components/icons/PocketIdIcon.svelte +9 -0
- package/package/components/icons/PocketIdIcon.svelte.d.ts +9 -0
- package/package/components/icons/ReactIcon.svelte +10 -2
- package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
- package/package/components/icons/SassIcon.svelte +28 -0
- package/package/components/icons/SassIcon.svelte.d.ts +8 -0
- package/package/components/icons/SvelteIcon.svelte +10 -2
- package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
- package/package/components/icons/VueIcon.svelte +10 -2
- package/package/components/icons/VueIcon.svelte.d.ts +1 -0
- package/package/components/icons/YamlIcon.svelte +20 -0
- package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
- package/package/components/icons/index.js +3 -1
- package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
- package/package/components/instanceSettings.d.ts +2 -1
- package/package/components/instanceSettings.js +33 -1
- package/package/components/jobs/JobPreview.svelte +46 -39
- package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
- package/package/components/monacoLanguagesOptions.js +16 -15
- package/package/components/propertyPicker/PropPicker.svelte +16 -2
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
- package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
- package/package/components/raw_apps/FileTreeNode.svelte +119 -83
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -3
- package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
- package/package/components/raw_apps/RawAppEditor.svelte +218 -68
- package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
- package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +13 -7
- package/package/components/raw_apps/RawAppPreview.svelte +48 -6
- package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
- package/package/components/raw_apps/RunnableRow.svelte +41 -0
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +76 -18
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
- package/package/components/runs/RunsFilter.svelte +75 -63
- package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
- package/package/components/runs/useJobsLoader.svelte.js +507 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +2 -2
- package/package/components/scriptEditor/LogPanel.svelte +17 -2
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
- package/package/components/select/MultiSelect.svelte +1 -1
- package/package/components/select/SelectDropdown.svelte +17 -5
- package/package/components/settings/AIPromptsModal.svelte +88 -0
- package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
- package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
- package/package/components/settings/ChangeWorkspaceId.svelte +16 -11
- package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
- package/package/components/settings/CreateToken.svelte +4 -4
- package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
- package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
- package/package/components/settings/WorkspaceUserSettings.svelte +537 -411
- package/package/components/sidebar/MenuButton.svelte +54 -24
- package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +4 -4
- package/package/components/sidebar/OperatorMenu.svelte +63 -88
- package/package/components/sidebar/SidebarContent.svelte +39 -6
- package/package/components/sidebar/UserMenu.svelte +3 -3
- package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
- package/package/components/sqlTypeService.js +4 -3
- package/package/components/table/DataTable.svelte +8 -3
- package/package/components/table/DataTable.svelte.d.ts +2 -0
- package/package/components/text_input/TextInput.svelte +3 -0
- package/package/components/text_input/TextInput.svelte.d.ts +2 -0
- package/package/components/triggers/AddTriggersButton.svelte +17 -4
- package/package/components/triggers/TriggersEditor.svelte +4 -0
- package/package/components/triggers/TriggersWrapper.svelte +14 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte +379 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte.d.ts +26 -0
- package/package/components/triggers/native/NativeTriggerTable.svelte +155 -0
- package/package/components/triggers/native/NativeTriggerTable.svelte.d.ts +16 -0
- package/package/components/triggers/native/NativeTriggersPanel.svelte +40 -0
- package/package/components/triggers/native/NativeTriggersPanel.svelte.d.ts +15 -0
- package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte +104 -0
- package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte.d.ts +18 -0
- package/package/components/triggers/native/utils.d.ts +74 -0
- package/package/components/triggers/native/utils.js +152 -0
- package/package/components/triggers/triggers.svelte.d.ts +2 -1
- package/package/components/triggers/triggers.svelte.js +36 -8
- package/package/components/triggers/utils.js +18 -6
- package/package/components/triggers.d.ts +1 -1
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
- package/package/components/tutorials/RunsTutorial.svelte +399 -0
- package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
- package/package/components/tutorials/utils.d.ts +16 -0
- package/package/components/tutorials/utils.js +96 -0
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
- package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
- package/package/components/vscode.js +6 -6
- package/package/components/workspace/WorkspaceCard.svelte +184 -0
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
- package/package/components/workspace/WorkspaceIcon.svelte +21 -0
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
- package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
- package/package/components/workspaceSettings/AISettings.svelte +147 -108
- package/package/components/workspaceSettings/CreateWorkspace.svelte +26 -12
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -0
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -1
- package/package/components/workspaceSettings/DataTableSettings.svelte +2 -1
- package/package/components/workspaceSettings/DucklakeSettings.svelte +54 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
- package/package/components/workspaceSettings/OAuthClientConfig.svelte +180 -0
- package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +14 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +285 -241
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +302 -0
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte.d.ts +3 -0
- package/package/consts.js +4 -3
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +517 -4
- package/package/gen/schemas.gen.js +523 -4
- package/package/gen/services.gen.d.ts +359 -22
- package/package/gen/services.gen.js +702 -44
- package/package/gen/types.gen.d.ts +1501 -121
- package/package/hub.js +2 -2
- package/package/hubPaths.json +3 -2
- package/package/infer.js +2 -0
- package/package/logout.d.ts +0 -2
- package/package/logout.js +2 -23
- package/package/logoutKit.d.ts +2 -0
- package/package/logoutKit.js +26 -0
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +11 -0
- package/package/rawAppWmillTs.js +38 -1
- package/package/refreshUser.d.ts +5 -1
- package/package/refreshUser.js +20 -30
- package/package/storeUtils.js +2 -0
- package/package/svelte5Utils.svelte.d.ts +68 -1
- package/package/svelte5Utils.svelte.js +193 -2
- package/package/svelte5UtilsKit.svelte.d.ts +3 -0
- package/package/svelte5UtilsKit.svelte.js +30 -0
- package/package/tutorialUtils.js +0 -4
- package/package/tutorials/config.js +31 -3
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +6 -2
- package/package/utils.js +162 -1
- package/package.json +1 -1
- package/package/components/SavedInputs.svelte +0 -416
- package/package/components/runs/JobsLoader.svelte +0 -468
- package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
- package/package/components/schema/SchemaPicker.svelte +0 -92
|
@@ -55,6 +55,10 @@ async function fetchSummary(kind, path, workspace) {
|
|
|
55
55
|
const app = await AppService.getAppByPath({ workspace, path });
|
|
56
56
|
return app.summary;
|
|
57
57
|
}
|
|
58
|
+
else if (kind === 'folder') {
|
|
59
|
+
const folder = await FolderService.getFolder({ workspace, name: path.slice(2) });
|
|
60
|
+
return folder.summary;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
catch (error) {
|
|
60
64
|
console.error(`Failed to fetch summary for ${kind}:${path}`, error);
|
|
@@ -63,7 +67,7 @@ async function fetchSummary(kind, path, workspace) {
|
|
|
63
67
|
}
|
|
64
68
|
async function fetchSummaries(diffs) {
|
|
65
69
|
// Only fetch summaries for scripts, flows, and apps
|
|
66
|
-
const itemsToFetch = diffs.filter((diff) => ['script', 'flow', 'app'].includes(diff.kind));
|
|
70
|
+
const itemsToFetch = diffs.filter((diff) => ['script', 'flow', 'app', 'folder'].includes(diff.kind));
|
|
67
71
|
for (const diff of itemsToFetch) {
|
|
68
72
|
const key = getItemKey(diff);
|
|
69
73
|
// Skip if already cached or loading
|
|
@@ -367,21 +371,70 @@ async function deploy(kind, path, workspaceToDeployTo, workspaceFrom) {
|
|
|
367
371
|
path: path
|
|
368
372
|
});
|
|
369
373
|
if (alreadyExists) {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
374
|
+
if (app.raw_app) {
|
|
375
|
+
const secret = await AppService.getPublicSecretOfLatestVersionOfApp({
|
|
376
|
+
workspace: workspaceFrom,
|
|
377
|
+
path: app.path
|
|
378
|
+
});
|
|
379
|
+
const js = await AppService.getRawAppData({
|
|
380
|
+
secretWithExtension: `${secret}.js`,
|
|
381
|
+
workspace: workspaceFrom
|
|
382
|
+
});
|
|
383
|
+
const css = await AppService.getRawAppData({
|
|
384
|
+
secretWithExtension: `${secret}.css`,
|
|
385
|
+
workspace: workspaceFrom
|
|
386
|
+
});
|
|
387
|
+
await AppService.updateAppRaw({
|
|
388
|
+
workspace: workspaceToDeployTo,
|
|
389
|
+
path: path,
|
|
390
|
+
formData: {
|
|
391
|
+
app,
|
|
392
|
+
css,
|
|
393
|
+
js
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
await AppService.updateApp({
|
|
399
|
+
workspace: workspaceToDeployTo,
|
|
400
|
+
path: path,
|
|
401
|
+
requestBody: {
|
|
402
|
+
...app
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}
|
|
377
406
|
}
|
|
378
407
|
else {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
}
|
|
384
|
-
|
|
408
|
+
if (app.raw_app) {
|
|
409
|
+
const secret = await AppService.getPublicSecretOfLatestVersionOfApp({
|
|
410
|
+
workspace: workspaceFrom,
|
|
411
|
+
path: app.path
|
|
412
|
+
});
|
|
413
|
+
const js = await AppService.getRawAppData({
|
|
414
|
+
secretWithExtension: `${secret}.js`,
|
|
415
|
+
workspace: workspaceFrom
|
|
416
|
+
});
|
|
417
|
+
const css = await AppService.getRawAppData({
|
|
418
|
+
secretWithExtension: `${secret}.css`,
|
|
419
|
+
workspace: workspaceFrom
|
|
420
|
+
});
|
|
421
|
+
await AppService.createAppRaw({
|
|
422
|
+
workspace: workspaceToDeployTo,
|
|
423
|
+
formData: {
|
|
424
|
+
app,
|
|
425
|
+
css,
|
|
426
|
+
js
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
await AppService.createApp({
|
|
432
|
+
workspace: workspaceToDeployTo,
|
|
433
|
+
requestBody: {
|
|
434
|
+
...app
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
}
|
|
385
438
|
}
|
|
386
439
|
}
|
|
387
440
|
else if (kind == 'variable') {
|
|
@@ -746,7 +799,8 @@ $effect(() => {
|
|
|
746
799
|
This fork is ahead of its parent
|
|
747
800
|
{/if}
|
|
748
801
|
and some of the changes are not visible by you. Only a user with access to the whole context
|
|
749
|
-
may deploy or update this fork. You can share the link to this page to someone with proper permissions
|
|
802
|
+
may deploy or update this fork. You can share the link to this page to someone with proper permissions
|
|
803
|
+
to get it deployed.
|
|
750
804
|
</Alert>
|
|
751
805
|
{/if}
|
|
752
806
|
|
|
@@ -792,7 +846,11 @@ $effect(() => {
|
|
|
792
846
|
disabled={!isSelectable}
|
|
793
847
|
selected={isSelected && !(deploymentStatus[key]?.status == 'deployed')}
|
|
794
848
|
onSelect={() => toggleItem(diff)}
|
|
795
|
-
path={diff.kind != 'resource' &&
|
|
849
|
+
path={diff.kind != 'resource' &&
|
|
850
|
+
diff.kind != 'variable' &&
|
|
851
|
+
diff.kind != 'resource_type'
|
|
852
|
+
? diff.path
|
|
853
|
+
: ''}
|
|
796
854
|
marked={undefined}
|
|
797
855
|
kind={diff.kind}
|
|
798
856
|
canFavorite={false}
|
|
@@ -3,7 +3,7 @@ import zoomPlugin from 'chartjs-plugin-zoom';
|
|
|
3
3
|
import { Chart as ChartJS, CategoryScale, Legend, LineElement, LinearScale, PointElement, TimeScale, Title, Tooltip } from 'chart.js';
|
|
4
4
|
import { getDbClockNow } from '../forLater';
|
|
5
5
|
import { Line } from './chartjs-wrappers/chartJs';
|
|
6
|
-
let { extendedJobs = undefined, maxIsNow = false, minTimeSet =
|
|
6
|
+
let { extendedJobs = undefined, maxIsNow = false, minTimeSet = null, maxTimeSet = null, onZoom } = $props();
|
|
7
7
|
function calculateTimeSeries(extendedJobs) {
|
|
8
8
|
const timeline = new Map();
|
|
9
9
|
extendedJobs.jobs.forEach((j) => {
|
|
@@ -171,7 +171,8 @@ let options = $derived({
|
|
|
171
171
|
display: false
|
|
172
172
|
},
|
|
173
173
|
min: minMaxTimes.min,
|
|
174
|
-
max: minMaxTimes.max
|
|
174
|
+
max: minMaxTimes.max,
|
|
175
|
+
ticks: { maxRotation: 0, minRotation: 0 }
|
|
175
176
|
},
|
|
176
177
|
y: {
|
|
177
178
|
grid: {
|
|
@@ -3,8 +3,8 @@ import type { ExtendedJobs } from '../gen';
|
|
|
3
3
|
interface Props {
|
|
4
4
|
extendedJobs?: ExtendedJobs | undefined;
|
|
5
5
|
maxIsNow?: boolean;
|
|
6
|
-
minTimeSet?: string |
|
|
7
|
-
maxTimeSet?: string |
|
|
6
|
+
minTimeSet?: string | null;
|
|
7
|
+
maxTimeSet?: string | null;
|
|
8
8
|
onZoom: (zoom: {
|
|
9
9
|
min: Date;
|
|
10
10
|
max: Date;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
<script lang="ts">import {
|
|
1
|
+
<script lang="ts">import { run, createBubbler } from 'svelte/legacy';
|
|
2
|
+
const bubble = createBubbler();
|
|
3
|
+
import { createPopperActions } from 'svelte-popperjs';
|
|
2
4
|
import Portal from './Portal.svelte';
|
|
3
|
-
|
|
4
|
-
export let notClickable = false;
|
|
5
|
-
export let disablePopup = false;
|
|
6
|
-
export let disappearTimeout = 100;
|
|
7
|
-
export let appearTimeout = 300;
|
|
8
|
-
export let style = undefined;
|
|
9
|
-
export let noPadding = false;
|
|
10
|
-
export let focusEl = undefined;
|
|
5
|
+
let { placement = 'bottom-end', notClickable = false, disablePopup = false, disappearTimeout = 100, appearTimeout = 300, style = undefined, noPadding = false, focusEl = undefined, class: clazz = '', children, overlay } = $props();
|
|
11
6
|
const [popperRef, popperContent] = createPopperActions({ placement });
|
|
12
7
|
const popperOptions = {
|
|
13
8
|
placement,
|
|
@@ -22,7 +17,7 @@ const popperOptions = {
|
|
|
22
17
|
}
|
|
23
18
|
]
|
|
24
19
|
};
|
|
25
|
-
let showTooltip = false;
|
|
20
|
+
let showTooltip = $state(false);
|
|
26
21
|
let timeout = undefined;
|
|
27
22
|
let inTimeout = undefined;
|
|
28
23
|
function open() {
|
|
@@ -39,36 +34,38 @@ function close() {
|
|
|
39
34
|
inTimeout = undefined;
|
|
40
35
|
timeout = setTimeout(() => (showTooltip = false), disappearTimeout);
|
|
41
36
|
}
|
|
42
|
-
|
|
37
|
+
run(() => {
|
|
38
|
+
focusEl && focusEl?.focus();
|
|
39
|
+
});
|
|
43
40
|
</script>
|
|
44
41
|
|
|
45
42
|
{#if notClickable}
|
|
46
|
-
<!-- svelte-ignore
|
|
47
|
-
<span {style} use:popperRef
|
|
48
|
-
|
|
43
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
44
|
+
<span {style} use:popperRef onmouseenter={open} onmouseleave={close} class={clazz}>
|
|
45
|
+
{@render children?.()}
|
|
49
46
|
</span>
|
|
50
47
|
{:else}
|
|
51
48
|
<button
|
|
52
49
|
{style}
|
|
53
50
|
use:popperRef
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class={
|
|
51
|
+
onmouseenter={open}
|
|
52
|
+
onmouseleave={close}
|
|
53
|
+
onclick={bubble('click')}
|
|
54
|
+
class={clazz}
|
|
58
55
|
>
|
|
59
|
-
|
|
56
|
+
{@render children?.()}
|
|
60
57
|
</button>
|
|
61
58
|
{/if}
|
|
62
59
|
{#if showTooltip && !disablePopup}
|
|
63
60
|
<Portal name="custom-popover">
|
|
64
|
-
<!-- svelte-ignore
|
|
61
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
65
62
|
<div
|
|
66
63
|
use:popperContent={popperOptions}
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
onmouseenter={open}
|
|
65
|
+
onmouseleave={close}
|
|
69
66
|
class="z-[5001] border rounded-lg shadow-lg {noPadding ? '' : 'p-4'} bg-surface"
|
|
70
67
|
>
|
|
71
|
-
|
|
68
|
+
{@render overlay?.()}
|
|
72
69
|
</div>
|
|
73
70
|
</Portal>
|
|
74
71
|
{/if}
|
|
@@ -1,42 +1,17 @@
|
|
|
1
1
|
import type { PopoverPlacement } from './Popover.model';
|
|
2
|
-
interface
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
16
|
-
default: any;
|
|
17
|
-
} ? Props extends Record<string, never> ? any : {
|
|
18
|
-
children?: any;
|
|
19
|
-
} : {});
|
|
20
|
-
declare const CustomPopover: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
21
|
-
[x: string]: any;
|
|
22
|
-
placement?: PopoverPlacement | undefined;
|
|
23
|
-
notClickable?: boolean | undefined;
|
|
24
|
-
disablePopup?: boolean | undefined;
|
|
25
|
-
disappearTimeout?: number | undefined;
|
|
26
|
-
appearTimeout?: number | undefined;
|
|
27
|
-
style?: string | undefined | undefined;
|
|
28
|
-
noPadding?: boolean | undefined;
|
|
2
|
+
interface Props {
|
|
3
|
+
placement?: PopoverPlacement;
|
|
4
|
+
notClickable?: boolean;
|
|
5
|
+
disablePopup?: boolean;
|
|
6
|
+
disappearTimeout?: number;
|
|
7
|
+
appearTimeout?: number;
|
|
8
|
+
style?: string | undefined;
|
|
9
|
+
noPadding?: boolean;
|
|
29
10
|
focusEl?: HTMLElement | undefined;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
overlay
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[evt: string]: CustomEvent<any>;
|
|
37
|
-
}, {
|
|
38
|
-
default: {};
|
|
39
|
-
overlay: {};
|
|
40
|
-
}, {}, string>;
|
|
41
|
-
type CustomPopover = InstanceType<typeof CustomPopover>;
|
|
11
|
+
class?: string;
|
|
12
|
+
children?: import('svelte').Snippet;
|
|
13
|
+
overlay?: import('svelte').Snippet;
|
|
14
|
+
}
|
|
15
|
+
declare const CustomPopover: import("svelte").Component<Props, {}, "">;
|
|
16
|
+
type CustomPopover = ReturnType<typeof CustomPopover>;
|
|
42
17
|
export default CustomPopover;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">import {} from '../stores';
|
|
2
|
-
import { ChevronDownIcon,
|
|
2
|
+
import { ChevronDownIcon, EditIcon, Loader2, Plus, Table2, Trash2Icon } from 'lucide-svelte';
|
|
3
3
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
4
4
|
import { ClearableInput, Drawer, DrawerContent } from './common';
|
|
5
5
|
import { sendUserToast } from '../toast';
|
|
@@ -12,7 +12,10 @@ import DbTableEditor from './DBTableEditor.svelte';
|
|
|
12
12
|
import Portal from './Portal.svelte';
|
|
13
13
|
import Select from './select/Select.svelte';
|
|
14
14
|
import { safeSelectItems } from './select/utils.svelte';
|
|
15
|
-
|
|
15
|
+
import { dbSupportsTransactionalDdl, diffTableEditorValues } from './apps/components/display/dbtable/queries/alterTable';
|
|
16
|
+
import { resource } from 'runed';
|
|
17
|
+
import { capitalize, onlyAlphaNumAndUnderscore, pluralize } from '../utils';
|
|
18
|
+
let { dbType, dbSchema, dbTableOpsFactory, dbSchemaOps, dbSupportsSchemas, colDefs, refresh, initialSchemaKey, initialTableKey, selectedSchemaKey = $bindable(undefined), selectedTableKey = $bindable(undefined), dbSelector, multiSelectMode = false, selectedTables = $bindable([]), disabledTables = [], features } = $props();
|
|
16
19
|
// Helper to check if a table is selected in multi-select mode
|
|
17
20
|
function isTableSelected(schema, table) {
|
|
18
21
|
return selectedTables.some((t) => t.schema === schema && t.table === table);
|
|
@@ -119,15 +122,34 @@ let tableKey = $derived(dbSupportsSchemas && selected.schemaKey
|
|
|
119
122
|
? `${selected.schemaKey}.${selected.tableKey}`
|
|
120
123
|
: selected.tableKey);
|
|
121
124
|
let askingForConfirmation = $state();
|
|
122
|
-
let dbTableEditorState = $state({
|
|
125
|
+
let dbTableEditorState = $state({
|
|
126
|
+
open: false
|
|
127
|
+
});
|
|
128
|
+
let dbTableEditorAlterTableData = resource([() => dbTableEditorState.alterTableKey, () => colDefs], async ([table]) => {
|
|
129
|
+
if (!table)
|
|
130
|
+
return;
|
|
131
|
+
let tableKey2 = dbSupportsSchemas && selected.schemaKey ? `${selected.schemaKey}.${table}` : table;
|
|
132
|
+
if (!colDefs?.[tableKey2])
|
|
133
|
+
return;
|
|
134
|
+
return await dbSchemaOps.onFetchTableEditorDefinition({
|
|
135
|
+
table: table,
|
|
136
|
+
schema: selected.schemaKey,
|
|
137
|
+
colDefs: colDefs[tableKey2]
|
|
138
|
+
});
|
|
139
|
+
});
|
|
123
140
|
let newSchemaDialogOpen = $state(false);
|
|
124
141
|
let newSchemaName = $state('');
|
|
125
142
|
// Check if the sanitized schema name already exists
|
|
126
|
-
const sanitizedNewSchemaName = $derived(
|
|
127
|
-
.trim()
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
143
|
+
const sanitizedNewSchemaName = $derived.by(() => {
|
|
144
|
+
let s = newSchemaName.trim().replace(/[^a-zA-Z0-9_]/g, '');
|
|
145
|
+
if (dbType === 'snowflake')
|
|
146
|
+
s = s.toUpperCase();
|
|
147
|
+
return s;
|
|
148
|
+
});
|
|
149
|
+
const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' &&
|
|
150
|
+
schemaKeys.map((s) => s.toLowerCase()).includes(sanitizedNewSchemaName.toLowerCase()));
|
|
151
|
+
let _dbTable = $state();
|
|
152
|
+
export const dbTable = () => _dbTable;
|
|
131
153
|
</script>
|
|
132
154
|
|
|
133
155
|
<Splitpanes>
|
|
@@ -140,20 +162,20 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
140
162
|
<Select
|
|
141
163
|
bind:value={selected.schemaKey}
|
|
142
164
|
items={safeSelectItems(schemaKeys)}
|
|
165
|
+
id="db-schema-select"
|
|
143
166
|
transformInputSelectedText={(s) => `Schema: ${s}`}
|
|
144
167
|
RightIcon={ChevronDownIcon}
|
|
145
168
|
placeholder="Search or create schema..."
|
|
146
169
|
showPlaceholderOnOpen
|
|
147
170
|
onCreateItem={(schema) => {
|
|
148
|
-
schema = schema
|
|
149
|
-
|
|
150
|
-
.toLowerCase()
|
|
151
|
-
.replace(/[^a-zA-Z0-9_]/g, '')
|
|
171
|
+
schema = schema.trim().replace(/[^a-zA-Z0-9_]/g, '')
|
|
172
|
+
if (dbType === 'snowflake') schema = schema.toUpperCase()
|
|
152
173
|
askingForConfirmation = {
|
|
153
174
|
confirmationText: `Create ${schema}`,
|
|
154
175
|
type: 'reload',
|
|
155
176
|
title: `This will run 'CREATE SCHEMA ${schema}' on your database. Are you sure ?`,
|
|
156
177
|
open: true,
|
|
178
|
+
id: 'db-create-schema-confirmation-modal',
|
|
157
179
|
onConfirm: async () => {
|
|
158
180
|
askingForConfirmation && (askingForConfirmation.loading = true)
|
|
159
181
|
try {
|
|
@@ -224,7 +246,9 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
224
246
|
<span class="truncate text-ellipsis grow text-left text-tertiary text-xs"
|
|
225
247
|
>{schemaKey}</span
|
|
226
248
|
>
|
|
227
|
-
<span class="text-2xs text-tertiary mr-2 group-hover:hidden">
|
|
249
|
+
<span class="text-2xs text-tertiary mr-2 group-hover:hidden">
|
|
250
|
+
{schemaTables.length}
|
|
251
|
+
</span>
|
|
228
252
|
<!-- Delete schema button (on hover) -->
|
|
229
253
|
<button
|
|
230
254
|
class="hidden group-hover:flex p-1 hover:bg-red-100 dark:hover:bg-red-900/30 rounded transition-colors mr-1"
|
|
@@ -258,7 +282,8 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
258
282
|
{#each schemaTables as tableKey}
|
|
259
283
|
{@const isDisabled = isTableDisabled(schemaKey, tableKey)}
|
|
260
284
|
{@const isChecked = isTableSelected(schemaKey, tableKey) || isDisabled}
|
|
261
|
-
{@const isCurrentPreview =
|
|
285
|
+
{@const isCurrentPreview =
|
|
286
|
+
selected.schemaKey === schemaKey && selected.tableKey === tableKey}
|
|
262
287
|
<div
|
|
263
288
|
class={'group w-full text-sm font-normal flex gap-2 items-center h-8 cursor-pointer pl-7 pr-1 ' +
|
|
264
289
|
(isCurrentPreview ? 'bg-gray-500/25' : 'hover:bg-gray-500/10') +
|
|
@@ -341,7 +366,10 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
341
366
|
onclick={() => (selected.tableKey = tableKey)}
|
|
342
367
|
>
|
|
343
368
|
<Table2 class="text-primary shrink-0" size={16} />
|
|
344
|
-
<p
|
|
369
|
+
<p
|
|
370
|
+
class="db-manager-table-key truncate text-ellipsis grow text-left text-emphasis text-xs"
|
|
371
|
+
>{tableKey}</p
|
|
372
|
+
>
|
|
345
373
|
<DropdownV2
|
|
346
374
|
items={() => [
|
|
347
375
|
{
|
|
@@ -352,6 +380,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
352
380
|
title: `Are you sure you want to delete ${tableKey} ? This action is irreversible`,
|
|
353
381
|
confirmationText: 'Delete permanently',
|
|
354
382
|
open: true,
|
|
383
|
+
id: 'db-manager-delete-table-confirmation-modal',
|
|
355
384
|
onConfirm: async () => {
|
|
356
385
|
askingForConfirmation && (askingForConfirmation.loading = true)
|
|
357
386
|
try {
|
|
@@ -366,17 +395,21 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
366
395
|
askingForConfirmation = undefined
|
|
367
396
|
}
|
|
368
397
|
})
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
displayName: 'Alter table',
|
|
401
|
+
icon: EditIcon,
|
|
402
|
+
action: () => {
|
|
403
|
+
dbTableEditorState = {
|
|
404
|
+
open: true,
|
|
405
|
+
alterTableKey: tableKey
|
|
406
|
+
}
|
|
407
|
+
}
|
|
369
408
|
}
|
|
370
409
|
]}
|
|
371
410
|
class="w-fit"
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
<MoreVertical
|
|
375
|
-
size={8}
|
|
376
|
-
class="w-8 h-8 p-2 hover:bg-surface-hover cursor-pointer rounded-md"
|
|
377
|
-
/>
|
|
378
|
-
</svelte:fragment>
|
|
379
|
-
</DropdownV2>
|
|
411
|
+
btnId={'db-manager-table-actions-' + onlyAlphaNumAndUnderscore(tableKey)}
|
|
412
|
+
/>
|
|
380
413
|
</button>
|
|
381
414
|
{/each}
|
|
382
415
|
{/if}
|
|
@@ -393,13 +426,9 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
393
426
|
{/if}
|
|
394
427
|
</Pane>
|
|
395
428
|
<Pane class="p-3 pt-1">
|
|
396
|
-
{#if tableKey}
|
|
397
|
-
{
|
|
398
|
-
|
|
399
|
-
{@const dbTableOps = dbTableOpsFactory({ colDefs, tableKey })}
|
|
400
|
-
<DBTable {dbTableOps} />
|
|
401
|
-
{/if}
|
|
402
|
-
{/await}
|
|
429
|
+
{#if tableKey && colDefs?.[tableKey]?.length}
|
|
430
|
+
{@const dbTableOps = dbTableOpsFactory({ colDefs: colDefs[tableKey], tableKey })}
|
|
431
|
+
<DBTable {dbTableOps} bind:this={_dbTable} />
|
|
403
432
|
{/if}
|
|
404
433
|
</Pane>
|
|
405
434
|
</Splitpanes>
|
|
@@ -417,18 +446,79 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
417
446
|
open={dbTableEditorState.open}
|
|
418
447
|
on:close={() => (dbTableEditorState = { open: false })}
|
|
419
448
|
>
|
|
420
|
-
<DrawerContent
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
449
|
+
<DrawerContent
|
|
450
|
+
id="db-table-editor-drawer"
|
|
451
|
+
on:close={() => (dbTableEditorState = { open: false })}
|
|
452
|
+
title={dbTableEditorState.alterTableKey
|
|
453
|
+
? `Alter ${dbTableEditorState.alterTableKey}`
|
|
454
|
+
: 'Create a new table'}
|
|
455
|
+
>
|
|
456
|
+
{#key dbTableEditorState.alterTableKey}
|
|
457
|
+
{#if !dbTableEditorState.alterTableKey || dbTableEditorAlterTableData.current}
|
|
458
|
+
<DbTableEditor
|
|
459
|
+
{features}
|
|
460
|
+
{dbSchema}
|
|
461
|
+
currentSchema={selected.schemaKey}
|
|
462
|
+
initialValues={dbTableEditorAlterTableData.current}
|
|
463
|
+
onConfirm={async ({ values }) => {
|
|
464
|
+
if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
|
|
465
|
+
let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
|
|
466
|
+
await dbSchemaOps.onAlter({ schema: selected.schemaKey, values: diff })
|
|
467
|
+
} else {
|
|
468
|
+
await dbSchemaOps.onCreate({ values, schema: selected.schemaKey })
|
|
469
|
+
}
|
|
470
|
+
refresh?.()
|
|
471
|
+
sendUserToast(
|
|
472
|
+
dbTableEditorState.alterTableKey
|
|
473
|
+
? dbTableEditorState.alterTableKey + ' updated!'
|
|
474
|
+
: values.name + ' created!'
|
|
475
|
+
)
|
|
476
|
+
dbTableEditorState = { open: false }
|
|
477
|
+
}}
|
|
478
|
+
{dbType}
|
|
479
|
+
computePreview={({ values }) => {
|
|
480
|
+
if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
|
|
481
|
+
let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
|
|
482
|
+
let queries = dbSchemaOps.previewAlterSql({
|
|
483
|
+
values: diff,
|
|
484
|
+
schema: selected.schemaKey
|
|
485
|
+
})
|
|
486
|
+
let alert = !dbSupportsTransactionalDdl(dbType)
|
|
487
|
+
? {
|
|
488
|
+
title: capitalize(dbType) + ' does not support transactional DDL',
|
|
489
|
+
body: 'Any of these statements failing may leave your database in an intermediate state.'
|
|
490
|
+
}
|
|
491
|
+
: undefined
|
|
492
|
+
return { sql: queries.join('\n'), ...(alert ? { alert } : {}) }
|
|
493
|
+
} else {
|
|
494
|
+
return { sql: dbSchemaOps.previewCreateSql({ values, schema: selected.schemaKey }) }
|
|
495
|
+
}
|
|
496
|
+
}}
|
|
497
|
+
computeBtnProps={({ values }) => {
|
|
498
|
+
if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
|
|
499
|
+
let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
|
|
500
|
+
let queries = dbSchemaOps.previewAlterSql({
|
|
501
|
+
values: diff,
|
|
502
|
+
schema: selected.schemaKey
|
|
503
|
+
})
|
|
504
|
+
if (!queries.length) {
|
|
505
|
+
return { text: 'No changes detected', disabled: true }
|
|
506
|
+
}
|
|
507
|
+
return {
|
|
508
|
+
text: `Alter table (${pluralize(queries.length, 'change')} detected)`
|
|
509
|
+
}
|
|
510
|
+
} else {
|
|
511
|
+
return { text: 'Create table' }
|
|
512
|
+
}
|
|
513
|
+
}}
|
|
514
|
+
/>
|
|
515
|
+
{:else if dbTableEditorAlterTableData.loading || !colDefs}
|
|
516
|
+
<Loader2 class="animate-spin" size={32} />
|
|
517
|
+
{:else}
|
|
518
|
+
<p class="text-sm text-tertiary">Failed to load table definition.</p>
|
|
519
|
+
<p>{dbTableEditorAlterTableData.error}</p>
|
|
520
|
+
{/if}
|
|
521
|
+
{/key}
|
|
432
522
|
</DrawerContent>
|
|
433
523
|
</Drawer>
|
|
434
524
|
|
|
@@ -463,6 +553,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
463
553
|
type: 'reload',
|
|
464
554
|
title: `This will run 'CREATE SCHEMA ${sanitizedNewSchemaName}' on your database. Are you sure?`,
|
|
465
555
|
open: true,
|
|
556
|
+
id: 'db-create-schema-confirmation-modal',
|
|
466
557
|
onConfirm: async () => {
|
|
467
558
|
askingForConfirmation && (askingForConfirmation.loading = true)
|
|
468
559
|
try {
|
|
@@ -500,6 +591,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
|
|
|
500
591
|
type: 'reload',
|
|
501
592
|
title: `This will run 'CREATE SCHEMA ${sanitizedNewSchemaName}' on your database. Are you sure?`,
|
|
502
593
|
open: true,
|
|
594
|
+
id: 'db-create-schema-confirmation-modal',
|
|
503
595
|
onConfirm: async () => {
|
|
504
596
|
askingForConfirmation && (askingForConfirmation.loading = true)
|
|
505
597
|
try {
|
|
@@ -3,6 +3,7 @@ import { type ColumnDef } from './apps/components/display/dbtable/utils';
|
|
|
3
3
|
import type { IDbSchemaOps, IDbTableOps } from './dbOps';
|
|
4
4
|
import type { DbType } from './dbTypes';
|
|
5
5
|
import type { Snippet } from 'svelte';
|
|
6
|
+
import type { DbFeatures } from './apps/components/display/dbtable/dbFeatures';
|
|
6
7
|
/** Represents a selected table with its schema */
|
|
7
8
|
export interface SelectedTable {
|
|
8
9
|
schema: string;
|
|
@@ -12,7 +13,7 @@ type Props = {
|
|
|
12
13
|
dbType: DbType;
|
|
13
14
|
dbSchema: DBSchema;
|
|
14
15
|
dbSupportsSchemas: boolean;
|
|
15
|
-
|
|
16
|
+
colDefs: Record<string, ColumnDef[]> | undefined;
|
|
16
17
|
dbTableOpsFactory: (params: {
|
|
17
18
|
colDefs: ColumnDef[];
|
|
18
19
|
tableKey: string;
|
|
@@ -30,7 +31,17 @@ type Props = {
|
|
|
30
31
|
selectedTables?: SelectedTable[];
|
|
31
32
|
/** Tables that are already added and should show as disabled */
|
|
32
33
|
disabledTables?: SelectedTable[];
|
|
34
|
+
features?: DbFeatures;
|
|
33
35
|
};
|
|
34
|
-
declare const DBManager: import("svelte").Component<Props, {
|
|
36
|
+
declare const DBManager: import("svelte").Component<Props, {
|
|
37
|
+
dbTable: () => ({
|
|
38
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
39
|
+
$set?(props: Partial<{
|
|
40
|
+
dbTableOps: IDbTableOps;
|
|
41
|
+
}>): void;
|
|
42
|
+
} & {
|
|
43
|
+
refresh: () => number;
|
|
44
|
+
}) | undefined;
|
|
45
|
+
}, "selectedSchemaKey" | "selectedTableKey" | "selectedTables">;
|
|
35
46
|
type DBManager = ReturnType<typeof DBManager>;
|
|
36
47
|
export default DBManager;
|