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
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
<script lang="ts">import { NativeTriggerService } from '../../../gen/services.gen';
|
|
2
|
+
import { validateCommonFields, getServiceConfig, getTemplatePath, saveNativeTriggerFromCfg } from './utils';
|
|
3
|
+
import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
|
|
4
|
+
import { canWrite, emptyString, sendUserToast } from '../../../utils';
|
|
5
|
+
import { Button } from '../../common';
|
|
6
|
+
import Drawer from '../../common/drawer/Drawer.svelte';
|
|
7
|
+
import DrawerContent from '../../common/drawer/DrawerContent.svelte';
|
|
8
|
+
import { Loader2, Save } from 'lucide-svelte';
|
|
9
|
+
import ScriptPicker from '../../ScriptPicker.svelte';
|
|
10
|
+
import Section from '../../Section.svelte';
|
|
11
|
+
import Required from '../../Required.svelte';
|
|
12
|
+
import NextcloudTriggerForm from './services/nextcloud/NextcloudTriggerForm.svelte';
|
|
13
|
+
import TriggerEditorToolbar from '../TriggerEditorToolbar.svelte';
|
|
14
|
+
import { handleConfigChange } from '../utils';
|
|
15
|
+
import { deepEqual } from 'fast-equals';
|
|
16
|
+
let { service, onUpdate, useDrawer = true, hideTarget = false, allowDraft = false, trigger = undefined, customLabel, isDeployed = false, cloudDisabled = false, description, onConfigChange, onDelete, onReset } = $props();
|
|
17
|
+
const serviceInfo = $derived(getServiceConfig(service));
|
|
18
|
+
const scriptTemplateUrl = $derived.by(() => {
|
|
19
|
+
const templateId = getTemplatePath(service, 'script');
|
|
20
|
+
return templateId;
|
|
21
|
+
});
|
|
22
|
+
const flowTemplateUrl = $derived.by(() => {
|
|
23
|
+
const templateId = getTemplatePath(service, 'flow');
|
|
24
|
+
return templateId;
|
|
25
|
+
});
|
|
26
|
+
let serviceFormRef = $state(null);
|
|
27
|
+
const ServiceFormComponent = $derived.by(() => {
|
|
28
|
+
switch (service) {
|
|
29
|
+
case 'nextcloud':
|
|
30
|
+
return NextcloudTriggerForm;
|
|
31
|
+
default:
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
let drawer = $state();
|
|
36
|
+
let isNew = $state(false);
|
|
37
|
+
let isRecreate = $state(false);
|
|
38
|
+
let oldExternalIdToDelete = $state(null);
|
|
39
|
+
let loading = $state(false);
|
|
40
|
+
let loadingConfig = $state(false);
|
|
41
|
+
let loadingForm = $state(false);
|
|
42
|
+
let showLoading = $state(false);
|
|
43
|
+
let serviceConfig = $state({});
|
|
44
|
+
let externalData = $state(null);
|
|
45
|
+
let errors = $state({});
|
|
46
|
+
let scriptPath = $state('');
|
|
47
|
+
let initialScriptPath = $state('');
|
|
48
|
+
let fixedScriptPath = $state('');
|
|
49
|
+
let isFlow = $state(false);
|
|
50
|
+
let externalId = $state(null);
|
|
51
|
+
let can_write = $state(true);
|
|
52
|
+
let originalConfig = $state(undefined);
|
|
53
|
+
let initialConfig = undefined;
|
|
54
|
+
export function openNew(nis_flow, fixedScriptPath_, defaultValues) {
|
|
55
|
+
if (useDrawer) {
|
|
56
|
+
drawer?.openDrawer();
|
|
57
|
+
}
|
|
58
|
+
isNew = true;
|
|
59
|
+
isRecreate = false;
|
|
60
|
+
oldExternalIdToDelete = null;
|
|
61
|
+
serviceConfig = defaultValues ? { ...defaultValues } : {};
|
|
62
|
+
externalData = defaultValues ? { ...defaultValues } : null;
|
|
63
|
+
errors = {};
|
|
64
|
+
fixedScriptPath = fixedScriptPath_ ?? '';
|
|
65
|
+
scriptPath = fixedScriptPath;
|
|
66
|
+
initialScriptPath = '';
|
|
67
|
+
isFlow = nis_flow ?? false;
|
|
68
|
+
externalId = null;
|
|
69
|
+
loadingConfig = false;
|
|
70
|
+
can_write = true;
|
|
71
|
+
originalConfig = undefined;
|
|
72
|
+
initialConfig = undefined;
|
|
73
|
+
}
|
|
74
|
+
export function openRecreate(nativeTrigger) {
|
|
75
|
+
if (useDrawer) {
|
|
76
|
+
drawer?.openDrawer();
|
|
77
|
+
}
|
|
78
|
+
isNew = true;
|
|
79
|
+
isRecreate = true;
|
|
80
|
+
oldExternalIdToDelete = nativeTrigger.external_id;
|
|
81
|
+
const cachedConfig = nativeTrigger.service_config || {};
|
|
82
|
+
serviceConfig = { ...cachedConfig };
|
|
83
|
+
// Pass cached config as externalData so the form applies it after loading events
|
|
84
|
+
externalData = { ...cachedConfig };
|
|
85
|
+
errors = {};
|
|
86
|
+
scriptPath = nativeTrigger.script_path;
|
|
87
|
+
initialScriptPath = nativeTrigger.script_path;
|
|
88
|
+
isFlow = nativeTrigger.is_flow;
|
|
89
|
+
externalId = null;
|
|
90
|
+
loadingConfig = false;
|
|
91
|
+
loadingForm = false;
|
|
92
|
+
can_write = true;
|
|
93
|
+
originalConfig = undefined;
|
|
94
|
+
initialConfig = undefined;
|
|
95
|
+
}
|
|
96
|
+
export async function openEdit(externalIdOrPath, nis_flow, defaultValues) {
|
|
97
|
+
let loadingTimeout = setTimeout(() => {
|
|
98
|
+
showLoading = true;
|
|
99
|
+
}, 100);
|
|
100
|
+
if (useDrawer) {
|
|
101
|
+
drawer?.openDrawer();
|
|
102
|
+
}
|
|
103
|
+
isNew = false;
|
|
104
|
+
isRecreate = false;
|
|
105
|
+
oldExternalIdToDelete = null;
|
|
106
|
+
externalData = null;
|
|
107
|
+
errors = {};
|
|
108
|
+
externalId = externalIdOrPath;
|
|
109
|
+
loadingConfig = true;
|
|
110
|
+
loadingForm = true;
|
|
111
|
+
initialConfig = undefined;
|
|
112
|
+
try {
|
|
113
|
+
const fullTrigger = await NativeTriggerService.getNativeTrigger({
|
|
114
|
+
workspace: $workspaceStore,
|
|
115
|
+
serviceName: service,
|
|
116
|
+
externalId: externalIdOrPath
|
|
117
|
+
});
|
|
118
|
+
serviceConfig = fullTrigger.service_config || {};
|
|
119
|
+
scriptPath = fullTrigger.script_path;
|
|
120
|
+
initialScriptPath = fullTrigger.script_path;
|
|
121
|
+
isFlow = nis_flow ?? fullTrigger.is_flow;
|
|
122
|
+
can_write = canWrite(fullTrigger.script_path, {}, $userStore);
|
|
123
|
+
externalData = fullTrigger.external_data;
|
|
124
|
+
// Apply default values if provided (for draft triggers)
|
|
125
|
+
if (defaultValues) {
|
|
126
|
+
serviceConfig = { ...serviceConfig, ...defaultValues };
|
|
127
|
+
externalData = { ...externalData, ...defaultValues };
|
|
128
|
+
}
|
|
129
|
+
originalConfig = structuredClone($state.snapshot(getSaveCfg()));
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
sendUserToast(`Failed to load trigger configuration: ${err}`, true);
|
|
133
|
+
externalData = null;
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
// For drawer mode, set initialConfig here; for inline mode, the effect handles it after form settles
|
|
137
|
+
if (!defaultValues) {
|
|
138
|
+
initialConfig = structuredClone($state.snapshot(getSaveCfg()));
|
|
139
|
+
}
|
|
140
|
+
clearTimeout(loadingTimeout);
|
|
141
|
+
loadingConfig = false;
|
|
142
|
+
showLoading = false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function getSaveCfg() {
|
|
146
|
+
return {
|
|
147
|
+
script_path: scriptPath,
|
|
148
|
+
is_flow: isFlow,
|
|
149
|
+
service_config: serviceConfig
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function close() {
|
|
153
|
+
drawer?.closeDrawer();
|
|
154
|
+
}
|
|
155
|
+
let validationErrors = $derived.by(() => {
|
|
156
|
+
if (!serviceFormRef) {
|
|
157
|
+
return {};
|
|
158
|
+
}
|
|
159
|
+
const commonErrors = validateCommonFields({
|
|
160
|
+
script_path: scriptPath
|
|
161
|
+
});
|
|
162
|
+
let serviceErrors = {};
|
|
163
|
+
if (serviceFormRef?.validate) {
|
|
164
|
+
serviceErrors = serviceFormRef.validate();
|
|
165
|
+
}
|
|
166
|
+
return { ...commonErrors, ...serviceErrors };
|
|
167
|
+
});
|
|
168
|
+
let isValid = $derived.by(() => Object.keys(validationErrors).length === 0);
|
|
169
|
+
let hasChanged = $derived(!deepEqual(getSaveCfg(), originalConfig ?? {}));
|
|
170
|
+
$effect(() => {
|
|
171
|
+
console.log('loading', getSaveCfg(), originalConfig);
|
|
172
|
+
});
|
|
173
|
+
let saveDisabled = $derived(loading ||
|
|
174
|
+
!isValid ||
|
|
175
|
+
emptyString(scriptPath) ||
|
|
176
|
+
loadingConfig ||
|
|
177
|
+
loadingForm ||
|
|
178
|
+
!can_write ||
|
|
179
|
+
!hasChanged);
|
|
180
|
+
const saveCfg = $derived.by(getSaveCfg);
|
|
181
|
+
$effect(() => {
|
|
182
|
+
if (!loadingConfig && !loadingForm) {
|
|
183
|
+
handleConfigChange(saveCfg, initialConfig, saveDisabled, !isNew, onConfigChange);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
async function save() {
|
|
187
|
+
loading = true;
|
|
188
|
+
const saveCfg = getSaveCfg();
|
|
189
|
+
const newExternalId = await saveNativeTriggerFromCfg(service, externalId ?? '', saveCfg, !isNew, $workspaceStore, usedTriggerKinds);
|
|
190
|
+
if (newExternalId) {
|
|
191
|
+
if (isNew) {
|
|
192
|
+
externalId = newExternalId;
|
|
193
|
+
isNew = false;
|
|
194
|
+
if (isRecreate && oldExternalIdToDelete) {
|
|
195
|
+
try {
|
|
196
|
+
await NativeTriggerService.deleteNativeTrigger({
|
|
197
|
+
workspace: $workspaceStore,
|
|
198
|
+
serviceName: service,
|
|
199
|
+
externalId: oldExternalIdToDelete
|
|
200
|
+
});
|
|
201
|
+
sendUserToast(`${serviceInfo?.serviceDisplayName} trigger recreated (old trigger deleted)`);
|
|
202
|
+
}
|
|
203
|
+
catch (deleteErr) {
|
|
204
|
+
// Still show success for creation, but warn about deletion failure
|
|
205
|
+
sendUserToast(`${serviceInfo?.serviceDisplayName} trigger created, but failed to delete old trigger: ${deleteErr.body || deleteErr.message}`, true);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
onUpdate?.(saveCfg.path);
|
|
210
|
+
originalConfig = structuredClone($state.snapshot(getSaveCfg()));
|
|
211
|
+
initialScriptPath = saveCfg.script_path;
|
|
212
|
+
if (useDrawer) {
|
|
213
|
+
close();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
loading = false;
|
|
217
|
+
}
|
|
218
|
+
let templateUrl = $derived(isFlow ? flowTemplateUrl : scriptTemplateUrl);
|
|
219
|
+
let itemKind = $derived(isFlow ? 'flow' : 'script');
|
|
220
|
+
</script>
|
|
221
|
+
|
|
222
|
+
{#if useDrawer}
|
|
223
|
+
<Drawer size="800px" bind:this={drawer}>
|
|
224
|
+
<DrawerContent
|
|
225
|
+
title={isRecreate
|
|
226
|
+
? `Recreate ${serviceInfo?.serviceDisplayName} trigger`
|
|
227
|
+
: isNew
|
|
228
|
+
? `New ${serviceInfo?.serviceDisplayName} trigger`
|
|
229
|
+
: `Edit ${serviceInfo?.serviceDisplayName} trigger`}
|
|
230
|
+
on:close={drawer?.closeDrawer}
|
|
231
|
+
>
|
|
232
|
+
{#snippet actions()}
|
|
233
|
+
{@render drawerActions()}
|
|
234
|
+
{/snippet}
|
|
235
|
+
{@render content()}
|
|
236
|
+
</DrawerContent>
|
|
237
|
+
</Drawer>
|
|
238
|
+
{:else}
|
|
239
|
+
<Section
|
|
240
|
+
label={!customLabel ? `${serviceInfo?.serviceDisplayName} trigger` : ''}
|
|
241
|
+
headerClass="grow min-w-0 h-[30px]"
|
|
242
|
+
>
|
|
243
|
+
{#snippet header()}
|
|
244
|
+
{#if customLabel}
|
|
245
|
+
{@render customLabel()}
|
|
246
|
+
{/if}
|
|
247
|
+
{/snippet}
|
|
248
|
+
{#snippet action()}
|
|
249
|
+
{@render inlineActions()}
|
|
250
|
+
{/snippet}
|
|
251
|
+
{@render content()}
|
|
252
|
+
</Section>
|
|
253
|
+
{/if}
|
|
254
|
+
|
|
255
|
+
{#snippet drawerActions()}
|
|
256
|
+
<Button
|
|
257
|
+
size="sm"
|
|
258
|
+
startIcon={{ icon: Save }}
|
|
259
|
+
variant="accent"
|
|
260
|
+
on:click={save}
|
|
261
|
+
disabled={saveDisabled}
|
|
262
|
+
{loading}
|
|
263
|
+
>
|
|
264
|
+
Save
|
|
265
|
+
</Button>
|
|
266
|
+
{/snippet}
|
|
267
|
+
|
|
268
|
+
{#snippet inlineActions()}
|
|
269
|
+
{#if !loadingConfig}
|
|
270
|
+
<TriggerEditorToolbar
|
|
271
|
+
{trigger}
|
|
272
|
+
permissions={loadingConfig || !can_write ? 'none' : 'create'}
|
|
273
|
+
mode="enabled"
|
|
274
|
+
{allowDraft}
|
|
275
|
+
edit={!isNew}
|
|
276
|
+
isLoading={loading}
|
|
277
|
+
{isDeployed}
|
|
278
|
+
{saveDisabled}
|
|
279
|
+
onUpdate={save}
|
|
280
|
+
{onReset}
|
|
281
|
+
{onDelete}
|
|
282
|
+
{cloudDisabled}
|
|
283
|
+
onToggleMode={() => {}}
|
|
284
|
+
disableSuspendedMode={true}
|
|
285
|
+
/>
|
|
286
|
+
{/if}
|
|
287
|
+
{/snippet}
|
|
288
|
+
|
|
289
|
+
{#snippet content()}
|
|
290
|
+
{#if loadingConfig && showLoading}
|
|
291
|
+
<Loader2 class="animate-spin" />
|
|
292
|
+
{:else}
|
|
293
|
+
<div class="flex flex-col gap-4">
|
|
294
|
+
{#if description}
|
|
295
|
+
{@render description()}
|
|
296
|
+
{/if}
|
|
297
|
+
</div>
|
|
298
|
+
<div class="flex flex-col gap-12 mt-6">
|
|
299
|
+
{#if !hideTarget}
|
|
300
|
+
<Section label="Runnable">
|
|
301
|
+
<p class="text-xs mb-1 text-primary">
|
|
302
|
+
Pick a script or flow to be triggered<Required required={true} />
|
|
303
|
+
</p>
|
|
304
|
+
<div class="flex flex-row mb-2">
|
|
305
|
+
<ScriptPicker
|
|
306
|
+
disabled={fixedScriptPath != '' || !can_write}
|
|
307
|
+
initialPath={fixedScriptPath || initialScriptPath}
|
|
308
|
+
bind:scriptPath
|
|
309
|
+
allowRefresh={can_write}
|
|
310
|
+
bind:itemKind
|
|
311
|
+
on:select={(e) => {
|
|
312
|
+
isFlow = e.detail.itemKind === 'flow'
|
|
313
|
+
}}
|
|
314
|
+
kinds={['script']}
|
|
315
|
+
allowFlow={true}
|
|
316
|
+
allowEdit={!$userStore?.operator}
|
|
317
|
+
clearable
|
|
318
|
+
/>
|
|
319
|
+
{#if emptyString(scriptPath)}
|
|
320
|
+
<Button
|
|
321
|
+
btnClasses="ml-4"
|
|
322
|
+
variant="accent"
|
|
323
|
+
size="xs"
|
|
324
|
+
href={templateUrl}
|
|
325
|
+
target="_blank"
|
|
326
|
+
disabled={!can_write}
|
|
327
|
+
>
|
|
328
|
+
Create from template
|
|
329
|
+
</Button>
|
|
330
|
+
{/if}
|
|
331
|
+
</div>
|
|
332
|
+
{#if errors.runnable_path}
|
|
333
|
+
<div class="text-red-500 text-xs mt-1">{errors.runnable_path}</div>
|
|
334
|
+
{/if}
|
|
335
|
+
</Section>
|
|
336
|
+
{/if}
|
|
337
|
+
|
|
338
|
+
{#if loadingConfig}
|
|
339
|
+
<Section label="{serviceInfo?.serviceDisplayName} configuration">
|
|
340
|
+
<div class="flex items-center gap-2 text-secondary text-xs">
|
|
341
|
+
<Loader2 class="animate-spin" size={16} />
|
|
342
|
+
Loading configuration from {serviceInfo?.serviceDisplayName}...
|
|
343
|
+
</div>
|
|
344
|
+
</Section>
|
|
345
|
+
{:else if ServiceFormComponent}
|
|
346
|
+
<ServiceFormComponent
|
|
347
|
+
bind:loading={loadingForm}
|
|
348
|
+
bind:this={serviceFormRef}
|
|
349
|
+
bind:serviceConfig
|
|
350
|
+
bind:errors
|
|
351
|
+
{externalData}
|
|
352
|
+
disabled={loading || loadingConfig || !can_write}
|
|
353
|
+
path={scriptPath}
|
|
354
|
+
{isFlow}
|
|
355
|
+
token=""
|
|
356
|
+
triggerTokens={undefined}
|
|
357
|
+
scopes={[]}
|
|
358
|
+
/>
|
|
359
|
+
{:else}
|
|
360
|
+
<Section label="{serviceInfo?.serviceDisplayName} configuration">
|
|
361
|
+
<div class="text-red-500 text-xs space-y-2">
|
|
362
|
+
<div>Failed to load service configuration component for {service}.</div>
|
|
363
|
+
<div class="text-secondary">
|
|
364
|
+
Ensure your workspace has a connected {serviceInfo?.serviceDisplayName} integration.
|
|
365
|
+
</div>
|
|
366
|
+
<Button
|
|
367
|
+
unifiedSize="xs"
|
|
368
|
+
variant="default"
|
|
369
|
+
href="/workspace_settings?tab=integrations"
|
|
370
|
+
target="_blank"
|
|
371
|
+
>
|
|
372
|
+
Manage integrations
|
|
373
|
+
</Button>
|
|
374
|
+
</div>
|
|
375
|
+
</Section>
|
|
376
|
+
{/if}
|
|
377
|
+
</div>
|
|
378
|
+
{/if}
|
|
379
|
+
{/snippet}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { NativeServiceName } from '../../../gen/types.gen';
|
|
2
|
+
import type { ExtendedNativeTrigger } from './utils';
|
|
3
|
+
import { type Trigger } from '../utils';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
interface Props {
|
|
6
|
+
service: NativeServiceName;
|
|
7
|
+
onUpdate?: (path?: string) => void;
|
|
8
|
+
useDrawer?: boolean;
|
|
9
|
+
hideTarget?: boolean;
|
|
10
|
+
allowDraft?: boolean;
|
|
11
|
+
trigger?: Trigger;
|
|
12
|
+
customLabel?: Snippet;
|
|
13
|
+
isDeployed?: boolean;
|
|
14
|
+
cloudDisabled?: boolean;
|
|
15
|
+
description?: Snippet;
|
|
16
|
+
onConfigChange?: (cfg: Record<string, any>, saveDisabled: boolean, updated: boolean) => void;
|
|
17
|
+
onDelete?: () => void;
|
|
18
|
+
onReset?: () => void;
|
|
19
|
+
}
|
|
20
|
+
declare const NativeTriggerEditor: import("svelte").Component<Props, {
|
|
21
|
+
openNew: (nis_flow?: boolean, fixedScriptPath_?: string, defaultValues?: Record<string, any>) => void;
|
|
22
|
+
openRecreate: (nativeTrigger: ExtendedNativeTrigger) => void;
|
|
23
|
+
openEdit: (externalIdOrPath: string, nis_flow?: boolean, defaultValues?: Record<string, any>) => Promise<void>;
|
|
24
|
+
}, "">;
|
|
25
|
+
type NativeTriggerEditor = ReturnType<typeof NativeTriggerEditor>;
|
|
26
|
+
export default NativeTriggerEditor;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<script lang="ts">import { NativeTriggerService } from '../../../gen/services.gen';
|
|
2
|
+
import { getServiceConfig } from './utils';
|
|
3
|
+
import { sendUserToast } from '../../../utils';
|
|
4
|
+
import { workspaceStore } from '../../../stores';
|
|
5
|
+
import Skeleton from '../../common/skeleton/Skeleton.svelte';
|
|
6
|
+
import Button from '../../common/button/Button.svelte';
|
|
7
|
+
import RowIcon from '../../common/table/RowIcon.svelte';
|
|
8
|
+
import Dropdown from '../../DropdownV2.svelte';
|
|
9
|
+
import { Eye, Pen, RefreshCw, Trash } from 'lucide-svelte';
|
|
10
|
+
import ConfirmationModal from '../../common/confirmationModal/ConfirmationModal.svelte';
|
|
11
|
+
import { goto } from '../../../navigation';
|
|
12
|
+
import Alert from '../../common/alert/Alert.svelte';
|
|
13
|
+
let { service, triggers = [], loading = false, onEdit, onRecreate } = $props();
|
|
14
|
+
const serviceConfig = $derived(getServiceConfig(service));
|
|
15
|
+
let deleteConfirmationOpen = $state(false);
|
|
16
|
+
let triggerToDelete = $state(null);
|
|
17
|
+
let isDeleting = $state(false);
|
|
18
|
+
function openDeleteConfirmation(trigger) {
|
|
19
|
+
triggerToDelete = trigger;
|
|
20
|
+
deleteConfirmationOpen = true;
|
|
21
|
+
}
|
|
22
|
+
function closeDeleteConfirmation() {
|
|
23
|
+
deleteConfirmationOpen = false;
|
|
24
|
+
triggerToDelete = null;
|
|
25
|
+
isDeleting = false;
|
|
26
|
+
}
|
|
27
|
+
async function confirmDeleteTrigger() {
|
|
28
|
+
if (!triggerToDelete)
|
|
29
|
+
return;
|
|
30
|
+
isDeleting = true;
|
|
31
|
+
try {
|
|
32
|
+
await NativeTriggerService.deleteNativeTrigger({
|
|
33
|
+
workspace: $workspaceStore,
|
|
34
|
+
serviceName: service,
|
|
35
|
+
externalId: triggerToDelete.external_id
|
|
36
|
+
});
|
|
37
|
+
sendUserToast(`${serviceConfig?.serviceDisplayName} trigger deleted`);
|
|
38
|
+
triggers = triggers.filter((native_trigger) => native_trigger.external_id !== triggerToDelete?.external_id);
|
|
39
|
+
closeDeleteConfirmation();
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
sendUserToast(`Failed to delete trigger: ${err.body || err.message}`, true);
|
|
43
|
+
isDeleting = false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<div class="w-full">
|
|
49
|
+
{#if loading}
|
|
50
|
+
{#each new Array(6) as _}
|
|
51
|
+
<Skeleton layout={[[6], 0.4]} />
|
|
52
|
+
{/each}
|
|
53
|
+
{:else if !triggers?.length}
|
|
54
|
+
<div class="text-center text-sm font-semibold text-emphasis mt-2">
|
|
55
|
+
No {serviceConfig?.serviceDisplayName} triggers
|
|
56
|
+
</div>
|
|
57
|
+
{:else}
|
|
58
|
+
<div class="border rounded-md divide-y">
|
|
59
|
+
{#each triggers as trigger (trigger.external_id)}
|
|
60
|
+
{@const isFlow = trigger.is_flow}
|
|
61
|
+
{@const href = `${isFlow ? '/flows/get' : '/scripts/get'}/${trigger.script_path}`}
|
|
62
|
+
<div
|
|
63
|
+
class="hover:bg-surface-hover w-full items-center px-4 py-2 gap-4 first-of-type:!border-t-0 first-of-type:rounded-t-md last-of-type:rounded-b-md flex flex-col"
|
|
64
|
+
>
|
|
65
|
+
<div class="w-full flex gap-5 items-center">
|
|
66
|
+
<RowIcon kind={isFlow ? 'flow' : 'script'} />
|
|
67
|
+
|
|
68
|
+
<a
|
|
69
|
+
href="#{trigger.external_id}"
|
|
70
|
+
onclick={() => onEdit?.(trigger)}
|
|
71
|
+
class="min-w-0 grow hover:underline decoration-gray-400"
|
|
72
|
+
>
|
|
73
|
+
<div class="text-emphasis flex-wrap text-left text-xs font-semibold mb-1 truncate">
|
|
74
|
+
{#if trigger.marked}
|
|
75
|
+
<span class="text-xs">
|
|
76
|
+
{@html trigger.marked}
|
|
77
|
+
</span>
|
|
78
|
+
{:else}
|
|
79
|
+
{trigger.script_path}
|
|
80
|
+
{/if}
|
|
81
|
+
</div>
|
|
82
|
+
<div class="text-secondary text-xs truncate text-left font-normal">
|
|
83
|
+
external ID: {trigger.external_id}
|
|
84
|
+
</div>
|
|
85
|
+
</a>
|
|
86
|
+
|
|
87
|
+
<div class="flex gap-2 items-center justify-end">
|
|
88
|
+
<Button
|
|
89
|
+
on:click={() => onEdit?.(trigger)}
|
|
90
|
+
unifiedSize="md"
|
|
91
|
+
startIcon={{ icon: Pen }}
|
|
92
|
+
variant="subtle"
|
|
93
|
+
>
|
|
94
|
+
Edit
|
|
95
|
+
</Button>
|
|
96
|
+
<Dropdown
|
|
97
|
+
size="md"
|
|
98
|
+
items={[
|
|
99
|
+
{
|
|
100
|
+
displayName: `View ${isFlow ? 'Flow' : 'Script'}`,
|
|
101
|
+
icon: Eye,
|
|
102
|
+
action: () => {
|
|
103
|
+
goto(href)
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
displayName: 'Delete',
|
|
108
|
+
type: 'delete' as const,
|
|
109
|
+
icon: Trash,
|
|
110
|
+
action: () => openDeleteConfirmation(trigger)
|
|
111
|
+
}
|
|
112
|
+
]}
|
|
113
|
+
/>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
{#if trigger.error}
|
|
117
|
+
<div class="w-full flex justify-between items-center gap-2">
|
|
118
|
+
<div class="text-2xs font-normal text-red-500 truncate">
|
|
119
|
+
Error: {trigger.error}
|
|
120
|
+
</div>
|
|
121
|
+
<Button
|
|
122
|
+
size="xs"
|
|
123
|
+
variant="subtle"
|
|
124
|
+
startIcon={{ icon: RefreshCw }}
|
|
125
|
+
on:click={() => onRecreate?.(trigger)}
|
|
126
|
+
>
|
|
127
|
+
Recreate
|
|
128
|
+
</Button>
|
|
129
|
+
</div>
|
|
130
|
+
{/if}
|
|
131
|
+
</div>
|
|
132
|
+
{/each}
|
|
133
|
+
</div>
|
|
134
|
+
{/if}
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<ConfirmationModal
|
|
138
|
+
open={deleteConfirmationOpen}
|
|
139
|
+
title="Delete {serviceConfig?.serviceDisplayName} trigger"
|
|
140
|
+
confirmationText="Delete"
|
|
141
|
+
loading={isDeleting}
|
|
142
|
+
onConfirmed={confirmDeleteTrigger}
|
|
143
|
+
onCanceled={closeDeleteConfirmation}
|
|
144
|
+
>
|
|
145
|
+
<div class="flex flex-col w-full space-y-4">
|
|
146
|
+
<span>Are you sure you want to delete this trigger?</span>
|
|
147
|
+
{#if triggerToDelete?.external_id}
|
|
148
|
+
<span>External ID: {triggerToDelete.external_id}</span>
|
|
149
|
+
{/if}
|
|
150
|
+
<Alert type="warning" title="Warning">
|
|
151
|
+
This will permanently delete the trigger from both Windmill and {serviceConfig?.serviceDisplayName}.
|
|
152
|
+
This action cannot be undone.
|
|
153
|
+
</Alert>
|
|
154
|
+
</div>
|
|
155
|
+
</ConfirmationModal>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NativeServiceName } from '../../../gen/types.gen';
|
|
2
|
+
import type { ExtendedNativeTrigger } from './utils';
|
|
3
|
+
type TriggerW = ExtendedNativeTrigger & {
|
|
4
|
+
marked?: any;
|
|
5
|
+
};
|
|
6
|
+
interface Props {
|
|
7
|
+
service: NativeServiceName;
|
|
8
|
+
triggers: TriggerW[];
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
onEdit?: (trigger: TriggerW) => void;
|
|
11
|
+
onRecreate?: (trigger: TriggerW) => void;
|
|
12
|
+
onSync?: () => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
declare const NativeTriggerTable: import("svelte").Component<Props, {}, "">;
|
|
15
|
+
type NativeTriggerTable = ReturnType<typeof NativeTriggerTable>;
|
|
16
|
+
export default NativeTriggerTable;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script lang="ts">import NativeTriggerEditor from './NativeTriggerEditor.svelte';
|
|
2
|
+
import Description from '../../Description.svelte';
|
|
3
|
+
import { onMount } from 'svelte';
|
|
4
|
+
import { NATIVE_TRIGGER_SERVICES } from './utils';
|
|
5
|
+
let { service, selectedTrigger, isFlow, path, isDeployed = false, defaultValues = undefined, customLabel = undefined, ...restProps } = $props();
|
|
6
|
+
let editor = $state(undefined);
|
|
7
|
+
async function openEditor(isFlow, isDraft) {
|
|
8
|
+
if (isDraft) {
|
|
9
|
+
editor?.openNew(isFlow, path, defaultValues);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
// selectedTrigger.path contains the external_id for native triggers
|
|
13
|
+
editor?.openEdit(selectedTrigger.path, isFlow, defaultValues);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
onMount(() => {
|
|
17
|
+
openEditor(isFlow, selectedTrigger.isDraft ?? false);
|
|
18
|
+
});
|
|
19
|
+
const serviceDisplayName = $derived(NATIVE_TRIGGER_SERVICES[service].serviceDisplayName);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<div class="flex flex-col gap-4">
|
|
23
|
+
<NativeTriggerEditor
|
|
24
|
+
bind:this={editor}
|
|
25
|
+
{service}
|
|
26
|
+
useDrawer={false}
|
|
27
|
+
hideTarget
|
|
28
|
+
allowDraft={true}
|
|
29
|
+
trigger={selectedTrigger}
|
|
30
|
+
{customLabel}
|
|
31
|
+
{isDeployed}
|
|
32
|
+
{...restProps}
|
|
33
|
+
>
|
|
34
|
+
{#snippet description()}
|
|
35
|
+
<Description link="https://www.windmill.dev/docs/core_concepts/{service}_triggers">
|
|
36
|
+
{serviceDisplayName} triggers execute scripts and flows in response to events in {serviceDisplayName}.
|
|
37
|
+
</Description>
|
|
38
|
+
{/snippet}
|
|
39
|
+
</NativeTriggerEditor>
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
|
+
import type { NativeServiceName } from '../../../gen';
|
|
3
|
+
import type { Trigger } from '../utils';
|
|
4
|
+
interface Props {
|
|
5
|
+
service: NativeServiceName;
|
|
6
|
+
selectedTrigger: Trigger;
|
|
7
|
+
isFlow: boolean;
|
|
8
|
+
path: string;
|
|
9
|
+
isDeployed?: boolean;
|
|
10
|
+
defaultValues?: Record<string, any>;
|
|
11
|
+
customLabel?: Snippet;
|
|
12
|
+
}
|
|
13
|
+
declare const NativeTriggersPanel: import("svelte").Component<Props, {}, "">;
|
|
14
|
+
type NativeTriggersPanel = ReturnType<typeof NativeTriggersPanel>;
|
|
15
|
+
export default NativeTriggersPanel;
|