windmill-components 1.511.1 → 1.522.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +42 -14
- package/package/components/ArgInput.svelte.d.ts +2 -10
- package/package/components/AssignableTagsInner.svelte +5 -0
- package/package/components/AuthSettings.svelte +4 -2
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/DBManagerDrawer.svelte +154 -151
- package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
- package/package/components/DBTable.svelte +3 -3
- package/package/components/DBTable.svelte.d.ts +1 -0
- package/package/components/DBTableEditor.svelte +7 -7
- package/package/components/DBTableEditor.svelte.d.ts +1 -1
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/DisplayResult.svelte +34 -8
- package/package/components/DisplayResult.svelte.d.ts +4 -1
- package/package/components/DynSelect.svelte +58 -34
- package/package/components/DynSelect.svelte.d.ts +3 -11
- package/package/components/EditableSchemaForm.svelte +126 -6
- package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +82 -4
- package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
- package/package/components/ExploreAssetButton.svelte +14 -4
- package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
- package/package/components/FlowJobResult.svelte +3 -3
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +9 -1
- package/package/components/FlowPreviewResult.svelte +4 -1
- package/package/components/FlowPreviewResult.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +21 -3
- package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -1
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/GitDiffPreview.svelte +14 -18
- package/package/components/GitDiffPreview.svelte.d.ts +2 -8
- package/package/components/GitHubAppIntegration.svelte +3 -1
- package/package/components/IdEditorInput.svelte +25 -22
- package/package/components/IdEditorInput.svelte.d.ts +11 -23
- package/package/components/InstanceSetting.svelte +7 -2
- package/package/components/InstanceSettings.svelte +1 -0
- package/package/components/JobLoader.svelte +48 -5
- package/package/components/JobLoader.svelte.d.ts +7 -2
- package/package/components/Login.svelte +8 -2
- package/package/components/MemoryFootprintViewer.svelte +1 -1
- package/package/components/ModulePreviewResultViewer.svelte +2 -2
- package/package/components/MoveDrawer.svelte.d.ts +2 -2
- package/package/components/NextcloudSetting.svelte +84 -0
- package/package/components/NextcloudSetting.svelte.d.ts +7 -0
- package/package/components/ObjectResourceInput.svelte +3 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ParqetCsvTableRenderer.svelte +1 -1
- package/package/components/ResourceEditor.svelte +1 -1
- package/package/components/ResourcePicker.svelte +8 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultStreamDisplay.svelte +5 -0
- package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
- package/package/components/RunForm.svelte +9 -1
- package/package/components/SchemaForm.svelte +2 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -10
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptWrapper.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleAgTable.svelte +2 -0
- package/package/components/SimpleAgTable.svelte.d.ts +2 -0
- package/package/components/SqlRepl.svelte +21 -7
- package/package/components/SqlRepl.svelte.d.ts +2 -2
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/WorkerTagSelect.svelte +70 -1
- package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
- package/package/components/apps/components/display/AppText.svelte +2 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
- package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
- package/package/components/apps/components/display/dbtable/utils.js +52 -28
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +5 -4
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/utils.js +7 -4
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -2
- package/package/components/apps/components/helpers/RunnableComponent.svelte +4 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
- package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
- package/package/components/apps/components/layout/AppStepper.svelte +1 -1
- package/package/components/apps/components/layout/AppTabs.svelte +1 -1
- package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
- package/package/components/apps/editor/GridViewer.svelte +1 -0
- package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +8 -12
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +3 -3
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/JobAssetsViewer.svelte +2 -2
- package/package/components/assets/lib.js +4 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
- package/package/components/common/button/Button.svelte +4 -3
- package/package/components/common/button/Button.svelte.d.ts +1 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
- package/package/components/common/modal/Modal.svelte +2 -5
- package/package/components/common/tabs/TabsV2.svelte +2 -1
- package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +61 -7
- package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
- package/package/components/copilot/chat/script/core.js +28 -29
- package/package/components/copilot/chat/shared.d.ts +1 -1
- package/package/components/copilot/chat/shared.js +8 -2
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/dbOps.d.ts +20 -8
- package/package/components/dbOps.js +85 -40
- package/package/components/details/DetailPageHeader.svelte +0 -2
- package/package/components/flows/content/FlowInput.svelte +5 -0
- package/package/components/flows/content/FlowModuleScript.svelte +0 -1
- package/package/components/flows/idUtils.js +2 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -3
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -0
- package/package/components/flows/map/InsertModuleButton.svelte +4 -1
- package/package/components/flows/propPicker/OutputBadge.svelte +5 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +9 -5
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
- package/package/components/flows/propPicker/StepHistory.svelte +4 -1
- package/package/components/git_sync/DetectionFlow.svelte +202 -0
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +461 -0
- package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncSection.svelte +89 -0
- package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
- package/package/components/graph/FlowGraphV2.svelte +5 -1
- package/package/components/graph/graphBuilder.svelte.js +1 -1
- package/package/components/graph/renderers/nodes/AssetNode.svelte +4 -4
- package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
- package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
- package/package/components/icons/AssetGenericIcon.svelte +3 -0
- package/package/components/icons/DucklakeIcon.svelte +18 -0
- package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
- package/package/components/instanceSettings.js +11 -3
- package/package/components/runs/JobPreview.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +3 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +0 -2
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
- package/package/components/scriptEditor/LogPanel.svelte +5 -3
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
- package/package/components/select/Select.svelte +7 -4
- package/package/components/select/Select.svelte.d.ts +5 -0
- package/package/components/select/SelectDropdown.svelte +2 -1
- package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/components/table/AutoDataTable.svelte +6 -4
- package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +12 -10
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/kafka/utils.js +1 -1
- package/package/components/triggers/mqtt/utils.js +1 -1
- package/package/components/triggers/nats/utils.js +1 -1
- package/package/components/triggers/postgres/utils.js +1 -1
- package/package/components/triggers/sqs/utils.js +1 -1
- package/package/components/triggers/utils.js +2 -1
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
- package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
- package/package/components/triggers/websocket/utils.js +1 -1
- package/package/components/workspaceSettings/AISettings.svelte +52 -36
- package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
- package/package/consts.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +7 -6
- package/package/gen/schemas.gen.js +7 -6
- package/package/gen/services.gen.d.ts +19 -1
- package/package/gen/services.gen.js +38 -0
- package/package/gen/types.gen.d.ts +78 -3
- package/package/git-sync.d.ts +36 -0
- package/package/git-sync.js +1 -0
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +3 -2
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +29 -11
- package/package/services/JobManager.d.ts +28 -0
- package/package/services/JobManager.js +114 -0
- package/package/stores.d.ts +1 -1
- package/package/utils.d.ts +18 -1
- package/package/utils.js +55 -2
- package/package.json +5 -4
- package/package/components/InitGitRepoPopover.svelte +0 -410
- package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
- package/package/components/PullGitRepoPopover.svelte +0 -355
- package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
- package/package/inferArgSig.d.ts +0 -42
- package/package/inferArgSig.js +0 -198
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
<script lang="ts">import Modal from '../common/modal/Modal.svelte';
|
|
2
|
+
import { Button, Alert } from '../common';
|
|
3
|
+
import { Loader2, CheckCircle2, XCircle, Terminal, ChevronDown, ChevronUp } from 'lucide-svelte';
|
|
4
|
+
import GitDiffPreview from '../GitDiffPreview.svelte';
|
|
5
|
+
import { JobService } from '../../gen';
|
|
6
|
+
import { workspaceStore } from '../../stores';
|
|
7
|
+
import hubPaths from '../../hubPaths.json';
|
|
8
|
+
import { tryEvery } from '../../utils';
|
|
9
|
+
let { open = $bindable(false), gitRepoResourcePath, uiState, onSuccess, isNewConnection = false, onSaveWithoutInit } = $props();
|
|
10
|
+
// Job state
|
|
11
|
+
let previewJobId = $state(null);
|
|
12
|
+
let previewJobStatus = $state(undefined);
|
|
13
|
+
let isPreviewLoading = $state(false);
|
|
14
|
+
let previewError = $state('');
|
|
15
|
+
let applyJobId = $state(null);
|
|
16
|
+
let applyJobStatus = $state(undefined);
|
|
17
|
+
let isApplying = $state(false);
|
|
18
|
+
let applyError = $state('');
|
|
19
|
+
// UI state
|
|
20
|
+
let showCliInstructions = $state(false);
|
|
21
|
+
let previewResult = $state(null);
|
|
22
|
+
// Note: Escape key is handled by the Modal component itself
|
|
23
|
+
// Reset state when modal opens/closes
|
|
24
|
+
$effect(() => {
|
|
25
|
+
if (!open) {
|
|
26
|
+
previewJobId = null;
|
|
27
|
+
previewJobStatus = undefined;
|
|
28
|
+
isPreviewLoading = false;
|
|
29
|
+
previewError = '';
|
|
30
|
+
applyJobId = null;
|
|
31
|
+
applyJobStatus = undefined;
|
|
32
|
+
isApplying = false;
|
|
33
|
+
applyError = '';
|
|
34
|
+
showCliInstructions = false;
|
|
35
|
+
previewResult = null;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
// Execute job with dry run or actual execution
|
|
39
|
+
async function executeJob(isDryRun) {
|
|
40
|
+
const isPreview = isDryRun;
|
|
41
|
+
if (isPreview) {
|
|
42
|
+
isPreviewLoading = true;
|
|
43
|
+
previewError = '';
|
|
44
|
+
previewResult = null;
|
|
45
|
+
previewJobId = null;
|
|
46
|
+
previewJobStatus = undefined;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
isApplying = true;
|
|
50
|
+
applyError = '';
|
|
51
|
+
applyJobId = null;
|
|
52
|
+
applyJobStatus = undefined;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const workspace = $workspaceStore;
|
|
56
|
+
if (!workspace)
|
|
57
|
+
return;
|
|
58
|
+
const payload = {
|
|
59
|
+
workspace_id: workspace,
|
|
60
|
+
repo_url_resource_path: gitRepoResourcePath,
|
|
61
|
+
dry_run: isDryRun,
|
|
62
|
+
pull: false,
|
|
63
|
+
settings_json: JSON.stringify(uiState)
|
|
64
|
+
};
|
|
65
|
+
const jobId = await JobService.runScriptByPath({
|
|
66
|
+
workspace,
|
|
67
|
+
path: hubPaths.gitInitRepo,
|
|
68
|
+
requestBody: payload,
|
|
69
|
+
skipPreprocessor: true
|
|
70
|
+
});
|
|
71
|
+
if (isPreview) {
|
|
72
|
+
previewJobId = jobId;
|
|
73
|
+
previewJobStatus = 'running';
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
applyJobId = jobId;
|
|
77
|
+
applyJobStatus = 'running';
|
|
78
|
+
}
|
|
79
|
+
let jobSuccess = false;
|
|
80
|
+
let result = {};
|
|
81
|
+
await tryEvery({
|
|
82
|
+
tryCode: async () => {
|
|
83
|
+
const testResult = await JobService.getCompletedJob({ workspace, id: jobId });
|
|
84
|
+
jobSuccess = !!testResult.success;
|
|
85
|
+
if (jobSuccess) {
|
|
86
|
+
const jobResult = await JobService.getCompletedJobResult({ workspace, id: jobId });
|
|
87
|
+
result = jobResult;
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
timeoutCode: async () => {
|
|
91
|
+
try {
|
|
92
|
+
await JobService.cancelQueuedJob({
|
|
93
|
+
workspace,
|
|
94
|
+
id: jobId,
|
|
95
|
+
requestBody: { reason: `${isPreview ? 'Preview' : 'Apply'} job timed out after 60s` }
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (err) { }
|
|
99
|
+
},
|
|
100
|
+
interval: 500,
|
|
101
|
+
timeout: 60000
|
|
102
|
+
});
|
|
103
|
+
if (isPreview) {
|
|
104
|
+
previewJobStatus = jobSuccess ? 'success' : 'failure';
|
|
105
|
+
if (jobSuccess) {
|
|
106
|
+
previewResult = result;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
previewError = 'Preview failed';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
applyJobStatus = jobSuccess ? 'success' : 'failure';
|
|
114
|
+
if (jobSuccess) {
|
|
115
|
+
onSuccess?.();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
applyError = 'Push failed';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
const errorMsg = e?.message || 'Operation failed';
|
|
124
|
+
if (isPreview) {
|
|
125
|
+
previewJobStatus = 'failure';
|
|
126
|
+
previewError = errorMsg;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
applyJobStatus = 'failure';
|
|
130
|
+
applyError = errorMsg;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
if (isPreview) {
|
|
135
|
+
isPreviewLoading = false;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
isApplying = false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
</script>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
<Modal bind:open title="Push Workspace to Git Repository" class="sm:max-w-4xl">
|
|
146
|
+
<div class="flex flex-col gap-4">
|
|
147
|
+
<!-- Description -->
|
|
148
|
+
<p class="text-sm text-secondary">Push your current workspace content to the connected Git repository based on the configured filters.</p>
|
|
149
|
+
<p class="text-sm text-tertiary">Note: This will not update git sync settings in wmill.yaml. Settings can only be pulled from the repository as it is the source of truth.</p>
|
|
150
|
+
|
|
151
|
+
<!-- Settings display for new connections -->
|
|
152
|
+
{#if isNewConnection}
|
|
153
|
+
<div class="bg-surface-secondary border border-border rounded-lg p-3">
|
|
154
|
+
<h4 class="text-sm font-medium text-primary mb-2">Settings that will be pushed to repository</h4>
|
|
155
|
+
<div class="text-xs text-secondary space-y-1">
|
|
156
|
+
<div><strong>Include paths:</strong> {uiState.include_path?.join(', ') || 'None'}</div>
|
|
157
|
+
<div><strong>Exclude paths:</strong> {uiState.exclude_path?.join(', ') || 'None'}</div>
|
|
158
|
+
{#if uiState.extra_include_path?.length > 0}
|
|
159
|
+
<div><strong>Extra include paths:</strong> {uiState.extra_include_path.join(', ')}</div>
|
|
160
|
+
{/if}
|
|
161
|
+
<div><strong>Include types:</strong> {uiState.include_type?.join(', ') || 'None'}</div>
|
|
162
|
+
</div>
|
|
163
|
+
<p class="text-xs text-tertiary mt-2">To modify these settings, cancel and configure them in the workspace settings.</p>
|
|
164
|
+
</div>
|
|
165
|
+
{/if}
|
|
166
|
+
|
|
167
|
+
<!-- Preview section -->
|
|
168
|
+
{#if !previewResult}
|
|
169
|
+
<div class="flex justify-start pt-4">
|
|
170
|
+
<Button
|
|
171
|
+
size="md"
|
|
172
|
+
color="dark"
|
|
173
|
+
onclick={() => executeJob(true)}
|
|
174
|
+
disabled={isPreviewLoading}
|
|
175
|
+
startIcon={{
|
|
176
|
+
icon: isPreviewLoading ? Loader2 : undefined,
|
|
177
|
+
classes: isPreviewLoading ? 'animate-spin' : ''
|
|
178
|
+
}}
|
|
179
|
+
>
|
|
180
|
+
{isPreviewLoading ? 'Previewing...' : 'Preview changes'}
|
|
181
|
+
</Button>
|
|
182
|
+
</div>
|
|
183
|
+
{/if}
|
|
184
|
+
|
|
185
|
+
<!-- Job status for preview -->
|
|
186
|
+
{#if previewJobId}
|
|
187
|
+
<div class="flex items-center gap-2 text-xs text-tertiary">
|
|
188
|
+
{#if previewJobStatus === 'running'}
|
|
189
|
+
<Loader2 class="animate-spin" size={14} />
|
|
190
|
+
{:else if previewJobStatus === 'success'}
|
|
191
|
+
<CheckCircle2 size={14} class="text-green-600" />
|
|
192
|
+
{:else if previewJobStatus === 'failure'}
|
|
193
|
+
<XCircle size={14} class="text-red-700" />
|
|
194
|
+
{/if}
|
|
195
|
+
Preview job:
|
|
196
|
+
<a
|
|
197
|
+
target="_blank"
|
|
198
|
+
class="underline"
|
|
199
|
+
href={`/run/${previewJobId}?workspace=${$workspaceStore}`}
|
|
200
|
+
>
|
|
201
|
+
{previewJobId}
|
|
202
|
+
</a>
|
|
203
|
+
</div>
|
|
204
|
+
{/if}
|
|
205
|
+
|
|
206
|
+
<!-- Preview error -->
|
|
207
|
+
{#if previewError}
|
|
208
|
+
<Alert type="error" title="Preview failed">
|
|
209
|
+
{previewError}
|
|
210
|
+
</Alert>
|
|
211
|
+
{/if}
|
|
212
|
+
|
|
213
|
+
<!-- Preview results -->
|
|
214
|
+
{#if previewResult && !previewError}
|
|
215
|
+
<div class="space-y-3">
|
|
216
|
+
<h4 class="text-sm font-semibold text-primary">Changes to Push</h4>
|
|
217
|
+
|
|
218
|
+
{#if previewResult.changes?.length > 0}
|
|
219
|
+
<GitDiffPreview previewResult={previewResult} />
|
|
220
|
+
{:else}
|
|
221
|
+
<div class="bg-surface-secondary rounded-lg p-3">
|
|
222
|
+
<div class="text-sm text-tertiary">No changes to push to the repository.</div>
|
|
223
|
+
</div>
|
|
224
|
+
{/if}
|
|
225
|
+
</div>
|
|
226
|
+
{/if}
|
|
227
|
+
|
|
228
|
+
<!-- Apply section (shown after successful preview) -->
|
|
229
|
+
{#if previewResult && !previewError}
|
|
230
|
+
{@const hasChanges = previewResult.changes?.length > 0}
|
|
231
|
+
{#if hasChanges}
|
|
232
|
+
<div class="border-t pt-4 mt-4">
|
|
233
|
+
<div class="flex justify-start gap-2">
|
|
234
|
+
<Button
|
|
235
|
+
size="xs"
|
|
236
|
+
onclick={() => executeJob(false)}
|
|
237
|
+
disabled={isApplying}
|
|
238
|
+
startIcon={{
|
|
239
|
+
icon: isApplying ? Loader2 : undefined,
|
|
240
|
+
classes: isApplying ? 'animate-spin' : ''
|
|
241
|
+
}}
|
|
242
|
+
>
|
|
243
|
+
{isApplying ?
|
|
244
|
+
(isNewConnection ? 'Initializing...' : 'Pushing...') :
|
|
245
|
+
(isNewConnection ? 'Initialize repo and save connection' : 'Push to repository')
|
|
246
|
+
}
|
|
247
|
+
</Button>
|
|
248
|
+
{#if isNewConnection && onSaveWithoutInit}
|
|
249
|
+
<Button
|
|
250
|
+
size="xs"
|
|
251
|
+
color="light"
|
|
252
|
+
onclick={onSaveWithoutInit}
|
|
253
|
+
disabled={isApplying}
|
|
254
|
+
>
|
|
255
|
+
Save without initializing repo
|
|
256
|
+
</Button>
|
|
257
|
+
{/if}
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
{/if}
|
|
261
|
+
{/if}
|
|
262
|
+
|
|
263
|
+
<!-- Job status for apply -->
|
|
264
|
+
{#if applyJobId}
|
|
265
|
+
<div class="flex items-center gap-2 text-xs text-tertiary">
|
|
266
|
+
{#if applyJobStatus === 'running'}
|
|
267
|
+
<Loader2 class="animate-spin" size={14} />
|
|
268
|
+
{:else if applyJobStatus === 'success'}
|
|
269
|
+
<CheckCircle2 size={14} class="text-green-600" />
|
|
270
|
+
{:else if applyJobStatus === 'failure'}
|
|
271
|
+
<XCircle size={14} class="text-red-700" />
|
|
272
|
+
{/if}
|
|
273
|
+
Push job:
|
|
274
|
+
<a
|
|
275
|
+
target="_blank"
|
|
276
|
+
class="underline"
|
|
277
|
+
href={`/run/${applyJobId}?workspace=${$workspaceStore}`}
|
|
278
|
+
>
|
|
279
|
+
{applyJobId}
|
|
280
|
+
</a>
|
|
281
|
+
</div>
|
|
282
|
+
{/if}
|
|
283
|
+
|
|
284
|
+
<!-- Apply error -->
|
|
285
|
+
{#if applyError}
|
|
286
|
+
<Alert type="error" title="Push failed">
|
|
287
|
+
{applyError}
|
|
288
|
+
</Alert>
|
|
289
|
+
{/if}
|
|
290
|
+
|
|
291
|
+
<!-- CLI Instructions (collapsible) -->
|
|
292
|
+
<div class="border-t pt-4 mt-4">
|
|
293
|
+
<button
|
|
294
|
+
class="flex items-center gap-2 text-sm text-secondary hover:text-primary transition-colors"
|
|
295
|
+
onclick={() => showCliInstructions = !showCliInstructions}
|
|
296
|
+
>
|
|
297
|
+
<Terminal size={16} />
|
|
298
|
+
<span>CLI Instructions</span>
|
|
299
|
+
{#if showCliInstructions}
|
|
300
|
+
<ChevronUp size={16} />
|
|
301
|
+
{:else}
|
|
302
|
+
<ChevronDown size={16} />
|
|
303
|
+
{/if}
|
|
304
|
+
</button>
|
|
305
|
+
|
|
306
|
+
{#if showCliInstructions}
|
|
307
|
+
<div class="mt-3 bg-surface-secondary rounded-lg p-3">
|
|
308
|
+
<pre class="text-xs bg-surface p-3 rounded overflow-x-auto whitespace-pre-wrap break-all">
|
|
309
|
+
# Setup (only needed if local folder not initialized yet)
|
|
310
|
+
npm install -g windmill-cli
|
|
311
|
+
wmill workspace add {$workspaceStore} {$workspaceStore} {window.location.origin}
|
|
312
|
+
wmill init --workspace {$workspaceStore} --repository {gitRepoResourcePath}
|
|
313
|
+
|
|
314
|
+
# Pull workspace content to git repository
|
|
315
|
+
wmill sync pull --workspace {$workspaceStore} --repository {gitRepoResourcePath}</pre>
|
|
316
|
+
</div>
|
|
317
|
+
{/if}
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
</Modal>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SettingsObject } from '../../git-sync';
|
|
2
|
+
interface Props {
|
|
3
|
+
open: boolean;
|
|
4
|
+
gitRepoResourcePath: string;
|
|
5
|
+
uiState: SettingsObject;
|
|
6
|
+
onSuccess?: () => void;
|
|
7
|
+
isNewConnection?: boolean;
|
|
8
|
+
onSaveWithoutInit?: () => void;
|
|
9
|
+
}
|
|
10
|
+
declare const PushWorkspaceModal: import("svelte").Component<Props, {}, "open">;
|
|
11
|
+
type PushWorkspaceModal = ReturnType<typeof PushWorkspaceModal>;
|
|
12
|
+
export default PushWorkspaceModal;
|
|
@@ -326,7 +326,11 @@ export function isNodeVisible(nodeId) {
|
|
|
326
326
|
<FlowYamlEditor bind:drawer={yamlEditorDrawer} />
|
|
327
327
|
{/if}
|
|
328
328
|
|
|
329
|
-
<div
|
|
329
|
+
<div
|
|
330
|
+
style={`height: ${height}px; max-height: ${maxHeight}px;`}
|
|
331
|
+
class="overflow-clip"
|
|
332
|
+
bind:clientWidth={debouncedWidth}
|
|
333
|
+
>
|
|
330
334
|
{#if graph?.error}
|
|
331
335
|
<div class="center-center p-2">
|
|
332
336
|
<Alert title="Error parsing the flow" type="error" class="max-w-1/2">
|
|
@@ -436,7 +436,7 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
|
|
|
436
436
|
let expanded = expandedSubflows[module.id];
|
|
437
437
|
if (expanded) {
|
|
438
438
|
expanded = $state.snapshot(expanded);
|
|
439
|
-
const startId = `${module.id}
|
|
439
|
+
const startId = `${module.id}`;
|
|
440
440
|
const idWithoutPrefix = module.id.startsWith('subflow:')
|
|
441
441
|
? module.id.substring(8)
|
|
442
442
|
: module.id;
|
|
@@ -189,6 +189,7 @@ const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
|
189
189
|
let { data } = $props();
|
|
190
190
|
const isSelected = $derived(assetEq(flowGraphAssetsCtx?.val.selectedAsset, data.asset));
|
|
191
191
|
const cachedResourceMetadata = $derived(flowGraphAssetsCtx?.val.resourceMetadataCache[data.asset.path]);
|
|
192
|
+
const usageCount = $derived(flowGraphAssetsCtx?.val.computeAssetsCount?.(data.asset));
|
|
192
193
|
</script>
|
|
193
194
|
|
|
194
195
|
<NodeWrapper>
|
|
@@ -232,10 +233,9 @@ const cachedResourceMetadata = $derived(flowGraphAssetsCtx?.val.resourceMetadata
|
|
|
232
233
|
{/if}
|
|
233
234
|
</div>
|
|
234
235
|
<svelte:fragment slot="text">
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
)}<br />
|
|
236
|
+
{#if usageCount !== undefined}
|
|
237
|
+
Used in {pluralize(usageCount, 'step')}<br />
|
|
238
|
+
{/if}
|
|
239
239
|
<a
|
|
240
240
|
href={undefined}
|
|
241
241
|
class={twMerge(
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">"use strict";
|
|
2
|
+
let { height = '24px', width = '24px', fill = 'black', class: className = '' } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svg
|
|
6
|
+
{width}
|
|
7
|
+
{height}
|
|
8
|
+
class={className}
|
|
9
|
+
viewBox="0 0 22 22"
|
|
10
|
+
fill="none"
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
d="M11.0586 0.306641C11.3106 0.315989 11.5582 0.378277 11.7822 0.495117C12.0247 0.621655 12.2331 0.805033 12.3897 1.0293L12.3916 1.03223L17.9033 9H16.2022L11.6963 2.4873V9H10.2959V2.4873L1.75196 14.8457C1.72867 14.8796 1.71294 14.9186 1.70508 14.959C1.69725 14.9995 1.69803 15.0418 1.70704 15.082C1.71605 15.1222 1.73351 15.1601 1.75782 15.1934C1.78213 15.2266 1.81309 15.2546 1.84864 15.2754H1.84766L8.75001 19.2158V20.8281L1.14844 16.4883L1.14258 16.4844C0.940872 16.3666 0.765826 16.2081 0.627936 16.0195C0.489969 15.8308 0.391887 15.6158 0.340827 15.3877C0.289772 15.1595 0.286682 14.9229 0.331061 14.6934C0.375447 14.4641 0.466395 14.2462 0.59864 14.0537L0.599616 14.0518L9.59962 1.03223L9.60157 1.0293C9.75823 0.804889 9.9673 0.62167 10.21 0.495117C10.4336 0.378564 10.6802 0.316161 10.9316 0.306641C10.9528 0.304686 10.9744 0.299805 10.9961 0.299805C11.0172 0.299841 11.038 0.304797 11.0586 0.306641Z"
|
|
15
|
+
{fill}
|
|
16
|
+
stroke="none"
|
|
17
|
+
/>
|
|
18
|
+
<path
|
|
19
|
+
d="M14.036 10C16.4558 10 18.4768 11.6945 18.9614 13.9535H17.2654C16.8219 12.6035 15.5438 11.6279 14.036 11.6279C12.1603 11.6279 10.6396 13.1376 10.6396 15C10.6396 16.8624 12.1603 18.3721 14.036 18.3721C15.7121 18.3721 17.1044 17.1667 17.3819 15.5814H19.038C18.7478 18.0689 16.6193 20 14.036 20C11.2547 20 9 17.7614 9 15C9 12.2386 11.2547 10 14.036 10Z"
|
|
20
|
+
{fill}
|
|
21
|
+
stroke="none"
|
|
22
|
+
/>
|
|
23
|
+
<path
|
|
24
|
+
d="M22 14.7674C22 16.0338 20.9049 16.9767 19.6618 16.9767L18.018 16.9767V15.5814L19.6618 15.5814C20.2251 15.5814 20.5946 15.1708 20.5946 14.7674C20.5946 14.3641 20.2251 13.9535 19.6618 13.9535L18.018 13.9535V12.5581L19.6618 12.5581C20.9049 12.5581 22 13.5011 22 14.7674Z"
|
|
25
|
+
{fill}
|
|
26
|
+
stroke="none"
|
|
27
|
+
/>
|
|
28
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
height?: string;
|
|
3
|
+
width?: string;
|
|
4
|
+
fill?: string;
|
|
5
|
+
class?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const AssetDucklakeIcon: import("svelte").Component<Props, {}, "">;
|
|
8
|
+
type AssetDucklakeIcon = ReturnType<typeof AssetDucklakeIcon>;
|
|
9
|
+
export default AssetDucklakeIcon;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import { Pyramid } from 'lucide-svelte';
|
|
2
2
|
import AssetResIcon from './AssetResIcon.svelte';
|
|
3
3
|
import AssetS3Icon from './AssetS3Icon.svelte';
|
|
4
|
+
import AssetDucklakeIcon from './AssetDucklakeIcon.svelte';
|
|
4
5
|
let { assetKind, fill, size, class: className = '' } = $props();
|
|
5
6
|
</script>
|
|
6
7
|
|
|
@@ -8,6 +9,8 @@ let { assetKind, fill, size, class: className = '' } = $props();
|
|
|
8
9
|
<AssetS3Icon {fill} width={size} height={size} class={className} />
|
|
9
10
|
{:else if assetKind == 'resource'}
|
|
10
11
|
<AssetResIcon {fill} width={size} height={size} class={className} />
|
|
12
|
+
{:else if assetKind == 'ducklake'}
|
|
13
|
+
<AssetDucklakeIcon {fill} width={size} height={size} class={className} />
|
|
11
14
|
{:else}
|
|
12
15
|
<Pyramid {size} color={fill} class={'!fill-none ' + className} />
|
|
13
16
|
{/if}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script lang="ts">"use strict";
|
|
2
|
+
let { size = 24 } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svg
|
|
6
|
+
width={size}
|
|
7
|
+
height={size}
|
|
8
|
+
viewBox="0 0 13 13"
|
|
9
|
+
style="fill:currentcolor;"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
d="M5.03604 1.5C7.45583 1.5 9.4768 3.19448 9.96136 5.45349H8.26545C7.82193 4.10348 6.54384 3.12791 5.03604 3.12791C3.16026 3.12791 1.63964 4.63764 1.63964 6.5C1.63964 8.36236 3.16026 9.87209 5.03604 9.87209C6.71211 9.87209 8.10437 8.66667 8.38188 7.0814H10.038C9.74784 9.56889 7.61927 11.5 5.03604 11.5C2.25471 11.5 0 9.26142 0 6.5C0 3.73858 2.25471 1.5 5.03604 1.5Z"
|
|
14
|
+
/>
|
|
15
|
+
<path
|
|
16
|
+
d="M13 6.26744C13 7.53379 11.9049 8.47674 10.6618 8.47674L9.01802 8.47674V7.0814L10.6618 7.0814C11.2251 7.0814 11.5946 6.67079 11.5946 6.26744C11.5946 5.86409 11.2251 5.45349 10.6618 5.45349L9.01802 5.45349V4.05814L10.6618 4.05814C11.9049 4.05814 13 5.00109 13 6.26744Z"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
@@ -28,11 +28,11 @@ export const settings = {
|
|
|
28
28
|
placeholder: 'https://windmill.com',
|
|
29
29
|
storage: 'setting',
|
|
30
30
|
error: 'Base url must start with http:// or https:// and not end with / or a space',
|
|
31
|
-
isValid: (value) => value == undefined
|
|
32
|
-
|
|
31
|
+
isValid: (value) => value == undefined ||
|
|
32
|
+
(value?.startsWith('http') &&
|
|
33
33
|
value.includes('://') &&
|
|
34
34
|
!value?.endsWith('/') &&
|
|
35
|
-
!value?.endsWith(' ')
|
|
35
|
+
!value?.endsWith(' '))
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
label: 'Email domain',
|
|
@@ -158,6 +158,14 @@ export const settings = {
|
|
|
158
158
|
storage: 'setting',
|
|
159
159
|
ee_only: '',
|
|
160
160
|
requiresReloadOnChange: true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
label: 'App workspace prefix',
|
|
164
|
+
description: 'When enabled apps will be accessible at /a/{workspace_id}/{custom_path} instead of /a/{custom_path} allowing you to define same custom path for apps in different workspace without conflict',
|
|
165
|
+
key: 'app_workspaced_route',
|
|
166
|
+
fieldType: 'boolean',
|
|
167
|
+
storage: 'setting',
|
|
168
|
+
ee_only: ''
|
|
161
169
|
}
|
|
162
170
|
],
|
|
163
171
|
'Auth/OAuth/SAML': [],
|
|
@@ -60,7 +60,7 @@ $effect(() => {
|
|
|
60
60
|
let jobLoader = $state(undefined);
|
|
61
61
|
</script>
|
|
62
62
|
|
|
63
|
-
<JobLoader
|
|
63
|
+
<JobLoader noLogs workspaceOverride={workspace} bind:job={currentJob} bind:this={jobLoader} />
|
|
64
64
|
|
|
65
65
|
<div class="p-4 flex flex-col gap-2 items-start h-full">
|
|
66
66
|
{#if job}
|
|
@@ -217,7 +217,7 @@ let jobLoader = $state(undefined);
|
|
|
217
217
|
{:else}
|
|
218
218
|
<Skeleton layout={[[5]]} />
|
|
219
219
|
{/if}
|
|
220
|
-
{:else if job !== undefined &&
|
|
220
|
+
{:else if job !== undefined && (job.result_stream || (job.type == 'CompletedJob' && job.result !== undefined))}
|
|
221
221
|
<DisplayResult
|
|
222
222
|
workspaceId={job?.workspace_id}
|
|
223
223
|
jobId={job?.id}
|
|
@@ -8,14 +8,14 @@ let timeout = undefined;
|
|
|
8
8
|
let visible = true;
|
|
9
9
|
async function lookForTag() {
|
|
10
10
|
try {
|
|
11
|
-
const existsWorkerWithTag = await WorkerService.
|
|
12
|
-
noWorkerWithTag = !existsWorkerWithTag;
|
|
11
|
+
const existsWorkerWithTag = await WorkerService.existsWorkersWithTags({ tags: tag });
|
|
12
|
+
noWorkerWithTag = !existsWorkerWithTag[tag];
|
|
13
13
|
if (noWorkerWithTag) {
|
|
14
14
|
timeout = setTimeout(() => {
|
|
15
15
|
if (visible) {
|
|
16
16
|
lookForTag();
|
|
17
17
|
}
|
|
18
|
-
},
|
|
18
|
+
}, 2500);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
catch (err) {
|
|
@@ -40,6 +40,6 @@ declare const RunsFilter: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
|
40
40
|
successChange: CustomEvent<any>;
|
|
41
41
|
} & {
|
|
42
42
|
[evt: string]: CustomEvent<any>;
|
|
43
|
-
}, {}, {}, "path" | "
|
|
43
|
+
}, {}, {}, "path" | "folder" | "user" | "tag" | "success" | "worker" | "label" | "isSkipped" | "argFilter" | "resultFilter" | "schedulePath" | "jobKindsCat" | "concurrencyKey" | "argError" | "resultError" | "allWorkspaces" | "allowWildcards" | "filterBy">;
|
|
44
44
|
type RunsFilter = InstanceType<typeof RunsFilter>;
|
|
45
45
|
export default RunsFilter;
|
|
@@ -57,6 +57,7 @@ function renameVariant(name, selected) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? 'resource' : 'custom-object');
|
|
60
|
+
let isDynSelect = $derived(format?.startsWith('dynselect-') ?? false);
|
|
60
61
|
</script>
|
|
61
62
|
|
|
62
63
|
<div class="flex flex-col gap-2">
|
|
@@ -217,7 +218,7 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
217
218
|
}}
|
|
218
219
|
/>
|
|
219
220
|
{/if}
|
|
220
|
-
{:else if type === 'object' && format !== 'resource-s3_object'}
|
|
221
|
+
{:else if type === 'object' && format !== 'resource-s3_object' && !isDynSelect}
|
|
221
222
|
<Tabs
|
|
222
223
|
bind:selected={initialObjectSelected}
|
|
223
224
|
on:selected={(e) => {
|
|
@@ -258,7 +259,7 @@ let initialObjectSelected = $state(Object.keys(properties ?? {}).length == 0 ? '
|
|
|
258
259
|
</Tabs>
|
|
259
260
|
{/if}
|
|
260
261
|
|
|
261
|
-
{#if !(type === 'object' && oneOf && oneOf.length >= 2) && !(type == 'object' && initialObjectSelected == 'custom-object')}
|
|
262
|
+
{#if !(type === 'object' && oneOf && oneOf.length >= 2) && !(type == 'object' && initialObjectSelected == 'custom-object') && !isDynSelect}
|
|
262
263
|
<Label label="Default">
|
|
263
264
|
<ArgInput
|
|
264
265
|
noDefaultOnSelectFirst
|
|
@@ -47,6 +47,6 @@ declare const FlowPropertyEditor: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
|
47
47
|
requiredChange: CustomEvent<any>;
|
|
48
48
|
} & {
|
|
49
49
|
[evt: string]: CustomEvent<any>;
|
|
50
|
-
}, {}, {}, "disabled" | "properties" | "defaultValue" | "oneOf" | "format" | "
|
|
50
|
+
}, {}, {}, "disabled" | "properties" | "defaultValue" | "oneOf" | "format" | "order" | "nullable" | "showExpr" | "requiredProperty">;
|
|
51
51
|
type FlowPropertyEditor = InstanceType<typeof FlowPropertyEditor>;
|
|
52
52
|
export default FlowPropertyEditor;
|
|
@@ -198,8 +198,6 @@ $effect(() => {
|
|
|
198
198
|
/>
|
|
199
199
|
</div>
|
|
200
200
|
{/if}
|
|
201
|
-
{:else if type == 'object' && format?.startsWith('dynselect-')}
|
|
202
|
-
<div class="text-tertiary text-xs">No settings available for Dynamic Select</div>
|
|
203
201
|
{:else if type == 'object' && !format?.startsWith('resource-') && !isFlowInput && !isAppInput}
|
|
204
202
|
<div class="border">
|
|
205
203
|
<EditableSchemaForm
|
|
@@ -46,6 +46,6 @@ declare const PropertyEditor: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
|
46
46
|
[evt: string]: CustomEvent<any>;
|
|
47
47
|
}, {}, {
|
|
48
48
|
focus: () => void;
|
|
49
|
-
}, "description" | "title" | "properties" | "placeholder" | "pattern" | "extra" | "oneOf" | "format" | "
|
|
49
|
+
}, "description" | "title" | "properties" | "placeholder" | "pattern" | "extra" | "oneOf" | "format" | "order" | "enum_" | "contentEncoding" | "itemsType" | "customErrorMessage">;
|
|
50
50
|
type PropertyEditor = InstanceType<typeof PropertyEditor>;
|
|
51
51
|
export default PropertyEditor;
|
|
@@ -3,7 +3,7 @@ import { dragHandle } from '@windmill-labs/svelte-dnd-action';
|
|
|
3
3
|
import SchemaForm from '../SchemaForm.svelte';
|
|
4
4
|
import { GripVertical } from 'lucide-svelte';
|
|
5
5
|
import { deepEqual } from 'fast-equals';
|
|
6
|
-
let { dndType = undefined, schema = $bindable(), args = $bindable(undefined), prettifyHeader = false, onlyMaskPassword = false, disablePortal = false, disabled = false, hiddenArgs = [], nestedParent = undefined, disableDnd = false, shouldDispatchChanges = false, diff = {}, nestedClasses = '', isValid = $bindable(true), noVariablePicker = false } = $props();
|
|
6
|
+
let { dndType = undefined, schema = $bindable(), args = $bindable(undefined), prettifyHeader = false, onlyMaskPassword = false, disablePortal = false, disabled = false, hiddenArgs = [], nestedParent = undefined, disableDnd = false, shouldDispatchChanges = false, helperScript = undefined, diff = {}, nestedClasses = '', isValid = $bindable(true), noVariablePicker = false } = $props();
|
|
7
7
|
$effect.pre(() => {
|
|
8
8
|
if (args == undefined) {
|
|
9
9
|
args = {};
|
|
@@ -66,6 +66,7 @@ $effect(() => {
|
|
|
66
66
|
{onlyMaskPassword}
|
|
67
67
|
{disablePortal}
|
|
68
68
|
{disabled}
|
|
69
|
+
{helperScript}
|
|
69
70
|
bind:schema
|
|
70
71
|
dndConfig={disableDnd
|
|
71
72
|
? undefined
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '../../common';
|
|
2
2
|
import type { SchemaDiff } from './schemaUtils.svelte';
|
|
3
|
+
import type { DynamicSelect } from '../../utils';
|
|
3
4
|
interface Props {
|
|
4
5
|
dndType?: string | undefined;
|
|
5
6
|
schema: Schema;
|
|
@@ -19,6 +20,7 @@ interface Props {
|
|
|
19
20
|
nestedClasses?: string;
|
|
20
21
|
isValid?: boolean;
|
|
21
22
|
noVariablePicker?: boolean;
|
|
23
|
+
helperScript?: DynamicSelect.HelperScript;
|
|
22
24
|
}
|
|
23
25
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
24
26
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|