windmill-components 1.394.7 → 1.405.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/ata/edgeCases.d.ts +0 -1
- package/package/ata/edgeCases.js +2 -8
- package/package/ata/index.js +4 -3
- package/package/common.d.ts +1 -1
- package/package/common.js +2 -2
- package/package/components/ApiConnectForm.svelte +33 -7
- package/package/components/ArgInput.svelte +4 -2
- package/package/components/CenteredModal.svelte +4 -1
- package/package/components/CenteredModal.svelte.d.ts +1 -0
- package/package/components/DateInput.svelte +2 -0
- package/package/components/DateInput.svelte.d.ts +1 -0
- package/package/components/DefaultScripts.svelte +8 -3
- package/package/components/DefaultScripts.svelte.d.ts +5 -1
- package/package/components/DefaultScriptsInner.svelte +16 -7
- package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
- package/package/components/Dev.svelte +68 -11
- package/package/components/DropdownV2.svelte.d.ts +3 -3
- package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
- package/package/components/EditableSchemaForm.svelte +1 -0
- package/package/components/Editor.svelte +3 -2
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/ExecutionDuration.svelte +44 -0
- package/package/components/ExecutionDuration.svelte.d.ts +24 -0
- package/package/components/FlowBuilder.svelte +20 -12
- package/package/components/FlowGraphViewer.svelte +9 -2
- package/package/components/FlowGraphViewerStep.svelte +23 -10
- package/package/components/FlowJobResult.svelte +0 -1
- package/package/components/FlowStatusViewerInner.svelte +17 -4
- package/package/components/FlowTimeline.svelte +3 -3
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/IconedResourceType.svelte +17 -10
- package/package/components/IconedResourceType.svelte.d.ts +2 -0
- package/package/components/IdEditorInput.svelte +0 -1
- package/package/components/InstanceSettings.svelte +247 -129
- package/package/components/InstanceSettings.svelte.d.ts +2 -0
- package/package/components/JobArgs.svelte +3 -1
- package/package/components/LightweightArgInput.svelte +35 -10
- package/package/components/LightweightArgInput.svelte.d.ts +1 -0
- package/package/components/LightweightObjectResourceInput.svelte +2 -0
- package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/LightweightSchemaForm.svelte +2 -0
- package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
- package/package/components/Login.svelte +10 -5
- package/package/components/Login.svelte.d.ts +1 -0
- package/package/components/ModulePreview.svelte +21 -2
- package/package/components/ModuleStatus.svelte +3 -0
- package/package/components/ModuleStatus.svelte.d.ts +1 -0
- package/package/components/OAuthSetting.svelte +40 -15
- package/package/components/ObjectStoreConfigSettings.svelte +78 -76
- package/package/components/ParqetCsvTableRenderer.svelte +25 -3
- package/package/components/Password.svelte.d.ts +1 -1
- package/package/components/Path.svelte +74 -54
- package/package/components/Path.svelte.d.ts +2 -1
- package/package/components/ResourceEditor.svelte +38 -9
- package/package/components/ResultJobLoader.svelte +6 -3
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/ScheduleEditorInner.svelte +2 -2
- package/package/components/SchemaForm.svelte +6 -1
- package/package/components/ScriptBuilder.svelte +12 -5
- package/package/components/ScriptEditor.svelte +33 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/Scrollable.svelte +47 -0
- package/package/components/Scrollable.svelte.d.ts +21 -0
- package/package/components/ShareModal.svelte.d.ts +2 -2
- package/package/components/SuperadminSettings.svelte +5 -7
- package/package/components/TestJobLoader.svelte +46 -5
- package/package/components/TestJobLoader.svelte.d.ts +2 -1
- package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
- package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
- package/package/components/WorkspaceGroup.svelte +3 -2
- package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
- package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
- package/package/components/apps/editor/component/components.d.ts +79 -79
- package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
- package/package/components/common/fileUpload/FileUpload.svelte +1 -1
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/menu/Menu.svelte +2 -1
- package/package/components/common/menu/MenuV2.svelte +3 -1
- package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +22 -12
- package/package/components/common/popup/Popup.svelte.d.ts +2 -0
- package/package/components/common/popup/PopupV2.svelte +58 -0
- package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
- package/package/components/copilot/CronGen.svelte +1 -1
- package/package/components/copilot/RegexGen.svelte +4 -4
- package/package/components/copilot/StepGen.svelte +6 -6
- package/package/components/copilot/StepGenQuick.svelte +57 -0
- package/package/components/copilot/StepGenQuick.svelte.d.ts +23 -0
- package/package/components/copilot/flow.d.ts +2 -0
- package/package/components/copilot/flow.js +55 -0
- package/package/components/details/DetailPageDetailPanel.svelte +9 -1
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
- package/package/components/details/DetailPageLayout.svelte +2 -0
- package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
- package/package/components/details/utils.d.ts +0 -1
- package/package/components/details/utils.js +1 -12
- package/package/components/flows/FlowEditor.svelte +2 -1
- package/package/components/flows/FlowProgressBar.svelte +16 -1
- package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowConstants.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -0
- package/package/components/flows/content/FlowInputs.svelte +7 -6
- package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
- package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
- package/package/components/flows/content/FlowLoop.svelte +7 -1
- package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
- package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
- package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
- package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
- package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
- package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
- package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
- package/package/components/flows/content/GenAiQuick.svelte +30 -0
- package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
- package/package/components/flows/flowInfers.js +1 -1
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
- package/package/components/flows/idUtils.js +3 -1
- package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
- package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
- package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +61 -18
- package/package/components/flows/map/InsertModuleButton.svelte +161 -138
- package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
- package/package/components/flows/map/MapItem.svelte +11 -0
- package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
- package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
- package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
- package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
- package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
- package/package/components/flows/types.d.ts +1 -0
- package/package/components/graph/FlowGraphV2.svelte +93 -58
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
- package/package/components/graph/graphBuilder.d.ts +2 -1
- package/package/components/graph/graphBuilder.js +345 -280
- package/package/components/graph/model.d.ts +1 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
- package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
- package/package/components/graph/util.d.ts +1 -1
- package/package/components/graph/util.js +7 -2
- package/package/components/home/ListFiltersQuick.svelte +51 -0
- package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
- package/package/components/icons/AnsibleIcon.svelte +42 -0
- package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
- package/package/components/icons/WindmillIcon2.svelte +141 -0
- package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
- package/package/components/icons/index.d.ts +2 -1
- package/package/components/icons/index.js +2 -1
- package/package/components/instanceSettings.d.ts +2 -2
- package/package/components/instanceSettings.js +25 -58
- package/package/components/jobs/JobProgressBar.svelte +52 -0
- package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
- package/package/components/progressBar/ProgressBar.svelte +18 -1
- package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
- package/package/components/runs/JobPreview.svelte +1 -0
- package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
- package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
- package/package/components/schema/AddProperty.svelte +1 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
- package/package/components/schema/FlowPropertyEditor.svelte +12 -0
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
- package/package/components/scriptEditor/LogPanel.svelte +1 -0
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
- package/package/components/search/GlobalSearchModal.svelte +2 -1
- package/package/components/sidebar/SidebarContent.svelte +69 -8
- package/package/components/sidebar/changelogs.js +10 -0
- package/package/components/triggers/RouteEditor.svelte +19 -0
- package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
- package/package/components/triggers/RouteEditorInner.svelte +327 -0
- package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
- package/package/components/triggers/RoutesPanel.svelte +74 -0
- package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
- package/package/editorUtils.js +2 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +159 -8
- package/package/gen/schemas.gen.js +161 -8
- package/package/gen/services.gen.d.ts +139 -1
- package/package/gen/services.gen.js +282 -1
- package/package/gen/types.gen.d.ts +455 -12
- package/package/hubPaths.json +6 -8
- package/package/infer.d.ts +4 -2
- package/package/infer.js +25 -23
- package/package/inferArgSig.js +8 -2
- package/package/monaco_workers/build_workers.js +8 -13
- package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
- package/package/relative_imports.d.ts +3 -0
- package/package/relative_imports.js +25 -0
- package/package/script_helpers.d.ts +7 -2
- package/package/script_helpers.js +151 -3
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +5 -1
- package/package/stores.d.ts +1 -0
- package/package/stores.js +1 -0
- package/package/utils.d.ts +1 -0
- package/package/utils.js +4 -0
- package/package.json +16 -7
- package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
- package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
- package/package/monaco_workers/cssWorker-es.js +0 -43763
- package/package/monaco_workers/editorWorker-es.d.ts +0 -2
- package/package/monaco_workers/editorWorker-es.js +0 -8066
- package/package/monaco_workers/htmlWorker-es.js +0 -21551
- package/package/monaco_workers/jsonWorker-es.js +0 -13523
- package/package/monaco_workers/tsWorker-es.d.ts +0 -103
- package/package/monaco_workers/tsWorker-es.js +0 -212193
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script>import { createEventDispatcher, getContext, tick } from 'svelte';
|
|
2
|
-
import { createBranchAll, createBranches, createLoop, createWhileLoop, deleteFlowStateById, emptyModule, pickScript } from '../flowStateUtils';
|
|
2
|
+
import { createInlineScriptModule, createBranchAll, createBranches, createLoop, createWhileLoop, deleteFlowStateById, emptyModule, pickScript, pickFlow } from '../flowStateUtils';
|
|
3
3
|
import { emptyFlowModuleState, initFlowStepWarnings } from '../utils';
|
|
4
4
|
import FlowSettingsItem from './FlowSettingsItem.svelte';
|
|
5
5
|
import FlowConstantsItem from './FlowConstantsItem.svelte';
|
|
@@ -25,11 +25,15 @@ export let disableSettings = false;
|
|
|
25
25
|
export let smallErrorHandler = false;
|
|
26
26
|
let flowTutorials = undefined;
|
|
27
27
|
const { selectedId, moving, history, flowStateStore, flowStore, flowInputsStore } = getContext('FlowEditorContext');
|
|
28
|
-
async function insertNewModuleAtIndex(modules, index, kind, wsScript) {
|
|
28
|
+
async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsFlow, inlineScript) {
|
|
29
29
|
push(history, $flowStore);
|
|
30
30
|
var module = emptyModule($flowStateStore, $flowStore, kind == 'flow');
|
|
31
31
|
var state = emptyFlowModuleState();
|
|
32
|
-
if (
|
|
32
|
+
if (wsFlow) {
|
|
33
|
+
;
|
|
34
|
+
[module, state] = await pickFlow(wsFlow.path, wsFlow.summary, module.id);
|
|
35
|
+
}
|
|
36
|
+
else if (wsScript) {
|
|
33
37
|
;
|
|
34
38
|
[module, state] = await pickScript(wsScript.path, wsScript.summary, module.id, wsScript.hash);
|
|
35
39
|
}
|
|
@@ -60,11 +64,32 @@ async function insertNewModuleAtIndex(modules, index, kind, wsScript) {
|
|
|
60
64
|
module.summary = 'Terminate flow';
|
|
61
65
|
module.stop_after_if = { skip_if_stopped: false, expr: 'true' };
|
|
62
66
|
}
|
|
67
|
+
if (inlineScript) {
|
|
68
|
+
const { language, kind, subkind } = inlineScript;
|
|
69
|
+
[module, state] = await createInlineScriptModule(language, kind, subkind, module.id, module.summary);
|
|
70
|
+
}
|
|
63
71
|
if (!modules)
|
|
64
72
|
return [module];
|
|
65
73
|
modules.splice(index, 0, module);
|
|
66
74
|
return modules;
|
|
67
75
|
}
|
|
76
|
+
async function insertNewPreprocessorModule(inlineScript, wsScript) {
|
|
77
|
+
var module = {
|
|
78
|
+
id: 'preprocessor',
|
|
79
|
+
value: { type: 'identity' }
|
|
80
|
+
};
|
|
81
|
+
var state = emptyFlowModuleState();
|
|
82
|
+
if (inlineScript) {
|
|
83
|
+
;
|
|
84
|
+
[module, state] = await createInlineScriptModule(inlineScript.language, 'script', inlineScript.subkind, 'preprocessor');
|
|
85
|
+
}
|
|
86
|
+
else if (wsScript) {
|
|
87
|
+
;
|
|
88
|
+
[module, state] = await pickScript(wsScript.path, wsScript.summary, module.id, wsScript.hash);
|
|
89
|
+
}
|
|
90
|
+
$flowStore.value.preprocessor_module = module;
|
|
91
|
+
$flowStateStore[module.id] = state;
|
|
92
|
+
}
|
|
68
93
|
function removeAtId(modules, id) {
|
|
69
94
|
const index = modules.findIndex((mod) => mod.id == id);
|
|
70
95
|
if (index != -1) {
|
|
@@ -203,7 +228,7 @@ async function updateFlowInputsStore() {
|
|
|
203
228
|
{/if}
|
|
204
229
|
</div>
|
|
205
230
|
|
|
206
|
-
<div class="z-10 flex-auto grow" bind:clientHeight={minHeight}>
|
|
231
|
+
<div class="z-10 flex-auto grow bg-surface-secondary" bind:clientHeight={minHeight}>
|
|
207
232
|
<FlowGraphV2
|
|
208
233
|
{disableAi}
|
|
209
234
|
insertable
|
|
@@ -212,6 +237,7 @@ async function updateFlowInputsStore() {
|
|
|
212
237
|
moving={$moving?.module.id}
|
|
213
238
|
maxHeight={minHeight}
|
|
214
239
|
modules={$flowStore.value?.modules}
|
|
240
|
+
preprocessorModule={$flowStore.value?.preprocessor_module}
|
|
215
241
|
{selectedId}
|
|
216
242
|
{flowInputsStore}
|
|
217
243
|
on:delete={({ detail }) => {
|
|
@@ -219,13 +245,15 @@ async function updateFlowInputsStore() {
|
|
|
219
245
|
dependents = getDependentComponents(e.id, $flowStore)
|
|
220
246
|
const cb = () => {
|
|
221
247
|
push(history, $flowStore)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
248
|
+
if (e.id === 'preprocessor') {
|
|
249
|
+
$selectedId = 'Input'
|
|
250
|
+
$flowStore.value.preprocessor_module = undefined
|
|
251
|
+
} else {
|
|
252
|
+
selectNextId(e.id)
|
|
253
|
+
removeAtId($flowStore.value.modules, e.id)
|
|
254
|
+
if ($flowInputsStore) {
|
|
255
|
+
delete $flowInputsStore[e.id]
|
|
256
|
+
}
|
|
229
257
|
}
|
|
230
258
|
$flowStore = $flowStore
|
|
231
259
|
|
|
@@ -256,13 +284,20 @@ async function updateFlowInputsStore() {
|
|
|
256
284
|
$selectedId = $moving.module.id
|
|
257
285
|
$moving = undefined
|
|
258
286
|
} else {
|
|
259
|
-
|
|
260
|
-
detail.
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
287
|
+
if (detail.detail === 'preprocessor') {
|
|
288
|
+
insertNewPreprocessorModule(detail.inlineScript, detail.script)
|
|
289
|
+
$selectedId = 'preprocessor'
|
|
290
|
+
} else {
|
|
291
|
+
await insertNewModuleAtIndex(
|
|
292
|
+
detail.modules,
|
|
293
|
+
detail.index ?? 0,
|
|
294
|
+
detail.kind,
|
|
295
|
+
detail.script,
|
|
296
|
+
detail.flow,
|
|
297
|
+
detail.inlineScript
|
|
298
|
+
)
|
|
299
|
+
$selectedId = detail.modules[detail.index ?? 0].id
|
|
300
|
+
}
|
|
266
301
|
}
|
|
267
302
|
|
|
268
303
|
if (['branchone', 'branchall'].includes(detail.detail)) {
|
|
@@ -299,6 +334,14 @@ async function updateFlowInputsStore() {
|
|
|
299
334
|
}
|
|
300
335
|
})
|
|
301
336
|
)
|
|
337
|
+
} else if (mod?.value?.type === 'forloopflow') {
|
|
338
|
+
if (mod.value.iterator.type === 'javascript') {
|
|
339
|
+
mod.value.iterator.expr = replaceId(mod.value.iterator.expr, id, newId)
|
|
340
|
+
}
|
|
341
|
+
} else if (mod?.value?.type === 'branchone') {
|
|
342
|
+
mod.value.branches.forEach((branch) => {
|
|
343
|
+
branch.expr = replaceId(branch.expr, id, newId)
|
|
344
|
+
})
|
|
302
345
|
}
|
|
303
346
|
})
|
|
304
347
|
}
|
|
@@ -1,164 +1,187 @@
|
|
|
1
|
-
<script>import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
<script>import { createEventDispatcher, getContext } from 'svelte';
|
|
2
|
+
import { Cross, Zap } from 'lucide-svelte';
|
|
3
|
+
import StepGenQuick from '../../copilot/StepGenQuick.svelte';
|
|
4
|
+
import FlowInputsQuick from '../content/FlowInputsQuick.svelte';
|
|
5
|
+
import ToggleHubWorkspaceQuick from '../../ToggleHubWorkspaceQuick.svelte';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
+
import TopLevelNode from '../pickers/TopLevelNode.svelte';
|
|
8
|
+
import PopupV2 from '../../common/popup/PopupV2.svelte';
|
|
9
|
+
import { flip, offset } from 'svelte-floating-ui/dom';
|
|
10
|
+
// import type { Writable } from 'svelte/store'
|
|
7
11
|
const dispatch = createEventDispatcher();
|
|
8
|
-
export let trigger = false;
|
|
9
12
|
export let stop = false;
|
|
10
|
-
export let
|
|
11
|
-
export let index;
|
|
13
|
+
export let index = 0;
|
|
12
14
|
export let funcDesc = '';
|
|
13
|
-
export let modules;
|
|
15
|
+
export let modules = [];
|
|
14
16
|
export let disableAi = false;
|
|
17
|
+
export let kind = 'script';
|
|
18
|
+
export let allowTrigger = true;
|
|
19
|
+
export let placement = 'bottom-center';
|
|
20
|
+
let floatingConfig = {
|
|
21
|
+
strategy: 'fixed',
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
placement,
|
|
24
|
+
middleware: [offset(8), flip()],
|
|
25
|
+
autoUpdate: true
|
|
26
|
+
};
|
|
15
27
|
$: !open && (funcDesc = '');
|
|
16
28
|
let customUi = getContext('customUi');
|
|
29
|
+
let selectedKind = kind;
|
|
30
|
+
let preFilter = 'all';
|
|
31
|
+
let loading = false;
|
|
32
|
+
let small = false;
|
|
33
|
+
let open = false;
|
|
34
|
+
$: small = kind === 'preprocessor' || kind === 'failure';
|
|
17
35
|
</script>
|
|
18
36
|
|
|
19
|
-
<Menu
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
<!-- <Menu transitionDuration={0} pointerDown bind:show={open} noMinW {placement} let:close> -->
|
|
38
|
+
|
|
39
|
+
<!-- {floatingConfig}
|
|
40
|
+
floatingClasses="mt-2"
|
|
41
|
+
containerClasses="border rounded-lg shadow-lg bg-surface"
|
|
42
|
+
noTransition
|
|
43
|
+
shouldUsePortal={true} -->
|
|
44
|
+
|
|
45
|
+
<PopupV2 {floatingConfig} bind:open let:close target="#flow-editor">
|
|
46
|
+
<svelte:fragment let:pointerdown let:pointerup slot="button">
|
|
28
47
|
<button
|
|
29
|
-
title=
|
|
48
|
+
title={`Add ${
|
|
49
|
+
kind === 'failure'
|
|
50
|
+
? ' failure module '
|
|
51
|
+
: kind === 'preprocessor'
|
|
52
|
+
? 'preprocessor step'
|
|
53
|
+
: kind === 'trigger'
|
|
54
|
+
? 'trigger'
|
|
55
|
+
: 'step'
|
|
56
|
+
}`}
|
|
30
57
|
id={`flow-editor-add-step-${index}`}
|
|
31
58
|
type="button"
|
|
32
59
|
class={twMerge(
|
|
33
60
|
'w-5 h-5 flex items-center justify-center',
|
|
34
61
|
'outline-[1px] outline dark:outline-gray-500 outline-gray-300',
|
|
35
62
|
'text-secondary',
|
|
36
|
-
'bg-surface focus:outline-none hover:bg-surface-hover
|
|
63
|
+
'bg-surface focus:outline-none hover:bg-surface-hover rounded '
|
|
37
64
|
)}
|
|
65
|
+
on:pointerdown|preventDefault|stopPropagation={pointerdown}
|
|
66
|
+
on:pointerup={pointerup}
|
|
38
67
|
>
|
|
39
|
-
|
|
68
|
+
{#if kind === 'trigger'}
|
|
69
|
+
<Zap size={12} />
|
|
70
|
+
{:else}
|
|
71
|
+
<Cross size={12} />
|
|
72
|
+
{/if}
|
|
40
73
|
</button>
|
|
41
74
|
</svelte:fragment>
|
|
42
|
-
|
|
43
|
-
|
|
75
|
+
<!-- FOO -->
|
|
76
|
+
<div
|
|
77
|
+
id="flow-editor-insert-module"
|
|
78
|
+
class="flex flex-col h-[400px] {small ? 'w-[450px]' : 'w-[650px]'} pt-1 pr-1 pl-1 gap-1.5"
|
|
79
|
+
on:wheel={(e) => {
|
|
80
|
+
e.stopPropagation()
|
|
81
|
+
}}
|
|
82
|
+
role="none"
|
|
83
|
+
>
|
|
84
|
+
<div class="flex flex-row items-center gap-2">
|
|
85
|
+
<StepGenQuick on:insert bind:funcDesc {preFilter} {loading} />
|
|
86
|
+
{#if selectedKind != 'preprocessor' && selectedKind != 'flow'}
|
|
87
|
+
<ToggleHubWorkspaceQuick bind:selected={preFilter} />
|
|
88
|
+
{/if}
|
|
89
|
+
</div>
|
|
44
90
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
role="menuitem"
|
|
54
|
-
tabindex="-1"
|
|
55
|
-
>
|
|
56
|
-
<Code size={14} />
|
|
57
|
-
Action
|
|
58
|
-
</button>
|
|
59
|
-
{#if customUi?.triggers != false && trigger}
|
|
60
|
-
<button
|
|
61
|
-
class="w-full text-left py-2 px-3 hover:bg-surface-hover whitespace-nowrap flex flex-row gap-2 items-center"
|
|
62
|
-
on:pointerdown={() => {
|
|
63
|
-
close()
|
|
64
|
-
dispatch('new', 'trigger')
|
|
91
|
+
<div class="flex flex-row grow min-h-0">
|
|
92
|
+
{#if kind === 'script' || kind == 'trigger'}
|
|
93
|
+
<div class="flex-none flex flex-col text-xs text-primary">
|
|
94
|
+
<TopLevelNode
|
|
95
|
+
label="Action"
|
|
96
|
+
selected={selectedKind === 'script'}
|
|
97
|
+
on:select={() => {
|
|
98
|
+
selectedKind = 'script'
|
|
65
99
|
}}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
dispatch('new', 'whileloop')
|
|
102
|
-
}}
|
|
103
|
-
role="menuitem"
|
|
104
|
-
>
|
|
105
|
-
<Repeat size={14} />
|
|
106
|
-
|
|
107
|
-
While Loop
|
|
108
|
-
</button>
|
|
109
|
-
|
|
110
|
-
<button
|
|
111
|
-
class="w-full text-left py-2 px-3 hover:bg-surface-hover whitespace-nowrap flex flex-row gap-2 items-center"
|
|
112
|
-
on:pointerdown={() => {
|
|
113
|
-
close()
|
|
114
|
-
dispatch('new', 'branchone')
|
|
115
|
-
}}
|
|
116
|
-
role="menuitem"
|
|
117
|
-
>
|
|
118
|
-
<GitBranch size={14} />
|
|
119
|
-
Branch to one
|
|
120
|
-
</button>
|
|
121
|
-
|
|
122
|
-
<button
|
|
123
|
-
class="w-full text-left py-2 px-3 hover:bg-surface-hover whitespace-nowrap flex flex-row gap-2 items-center"
|
|
124
|
-
on:pointerdown={() => {
|
|
125
|
-
close()
|
|
126
|
-
dispatch('new', 'branchall')
|
|
127
|
-
}}
|
|
128
|
-
role="menuitem"
|
|
129
|
-
>
|
|
130
|
-
<GitBranch size={14} />
|
|
131
|
-
|
|
132
|
-
Branch to all
|
|
133
|
-
</button>
|
|
100
|
+
/>
|
|
101
|
+
{#if customUi?.triggers != false && allowTrigger}
|
|
102
|
+
<TopLevelNode
|
|
103
|
+
label="Trigger"
|
|
104
|
+
selected={selectedKind === 'trigger'}
|
|
105
|
+
on:select={() => {
|
|
106
|
+
selectedKind = 'trigger'
|
|
107
|
+
}}
|
|
108
|
+
/>
|
|
109
|
+
{/if}
|
|
110
|
+
<TopLevelNode
|
|
111
|
+
label="Approval/Prompt"
|
|
112
|
+
selected={selectedKind === 'approval'}
|
|
113
|
+
on:select={() => {
|
|
114
|
+
selectedKind = 'approval'
|
|
115
|
+
}}
|
|
116
|
+
/>
|
|
117
|
+
{#if customUi?.flowNode != false}
|
|
118
|
+
<TopLevelNode
|
|
119
|
+
label="Flow"
|
|
120
|
+
selected={selectedKind === 'flow'}
|
|
121
|
+
on:select={() => {
|
|
122
|
+
selectedKind = 'flow'
|
|
123
|
+
}}
|
|
124
|
+
/>
|
|
125
|
+
{/if}
|
|
126
|
+
{#if stop}
|
|
127
|
+
<TopLevelNode
|
|
128
|
+
label="End Flow"
|
|
129
|
+
selected={selectedKind === 'script'}
|
|
130
|
+
on:select={() => {
|
|
131
|
+
selectedKind = 'script'
|
|
132
|
+
}}
|
|
133
|
+
/>
|
|
134
|
+
{/if}
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
<TopLevelNode
|
|
137
|
+
label="For Loop"
|
|
138
|
+
on:select={() => {
|
|
139
|
+
close(null)
|
|
140
|
+
dispatch('new', { kind: 'forloop' })
|
|
141
|
+
}}
|
|
142
|
+
/>
|
|
143
|
+
<TopLevelNode
|
|
144
|
+
label="While Loop"
|
|
145
|
+
on:select={() => {
|
|
146
|
+
close(null)
|
|
147
|
+
dispatch('new', { kind: 'whileloop' })
|
|
141
148
|
}}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
{#if stop}
|
|
149
|
-
<button
|
|
150
|
-
class="w-full text-left py-2 px-3 hover:bg-surface-hover inline-flex gap-2.5"
|
|
151
|
-
on:pointerdown={() => {
|
|
152
|
-
close()
|
|
153
|
-
dispatch('new', 'end')
|
|
149
|
+
/>
|
|
150
|
+
<TopLevelNode
|
|
151
|
+
label="Branch to one"
|
|
152
|
+
on:select={() => {
|
|
153
|
+
close(null)
|
|
154
|
+
dispatch('new', { kind: 'branchone' })
|
|
154
155
|
}}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
156
|
+
/>
|
|
157
|
+
<TopLevelNode
|
|
158
|
+
label="Branch to all"
|
|
159
|
+
on:select={() => {
|
|
160
|
+
close(null)
|
|
161
|
+
dispatch('new', { kind: 'branchall' })
|
|
162
|
+
}}
|
|
163
|
+
/>
|
|
164
|
+
</div>
|
|
165
|
+
{/if}
|
|
166
|
+
|
|
167
|
+
<FlowInputsQuick
|
|
168
|
+
{selectedKind}
|
|
169
|
+
bind:loading
|
|
170
|
+
filter={funcDesc}
|
|
171
|
+
{modules}
|
|
172
|
+
{index}
|
|
173
|
+
{disableAi}
|
|
174
|
+
{funcDesc}
|
|
175
|
+
{kind}
|
|
176
|
+
on:close={() => {
|
|
177
|
+
close(null)
|
|
178
|
+
}}
|
|
179
|
+
on:new
|
|
180
|
+
on:pickScript
|
|
181
|
+
on:pickFlow
|
|
182
|
+
{preFilter}
|
|
183
|
+
{small}
|
|
184
|
+
/>
|
|
185
|
+
</div>
|
|
163
186
|
</div>
|
|
164
|
-
</
|
|
187
|
+
</PopupV2>
|
|
@@ -2,17 +2,20 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
import type { FlowModule } from '../../../gen';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
trigger?: boolean | undefined;
|
|
6
5
|
stop?: boolean | undefined;
|
|
7
|
-
|
|
8
|
-
index: number;
|
|
6
|
+
index?: number | undefined;
|
|
9
7
|
funcDesc?: string | undefined;
|
|
10
|
-
modules
|
|
8
|
+
modules?: FlowModule[] | undefined;
|
|
11
9
|
disableAi?: boolean | undefined;
|
|
10
|
+
kind?: "script" | "failure" | "trigger" | "preprocessor" | undefined;
|
|
11
|
+
allowTrigger?: boolean | undefined;
|
|
12
|
+
placement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "top-center" | "bottom-center" | undefined;
|
|
12
13
|
};
|
|
13
14
|
events: {
|
|
14
15
|
insert: CustomEvent<any>;
|
|
15
16
|
new: CustomEvent<any>;
|
|
17
|
+
pickScript: CustomEvent<any>;
|
|
18
|
+
pickFlow: CustomEvent<any>;
|
|
16
19
|
} & {
|
|
17
20
|
[evt: string]: CustomEvent<any>;
|
|
18
21
|
};
|
|
@@ -8,8 +8,10 @@ import { prettyLanguage } from '../../../common';
|
|
|
8
8
|
import { msToSec } from '../../../utils';
|
|
9
9
|
import BarsStaggered from '../../icons/BarsStaggered.svelte';
|
|
10
10
|
import FlowJobsMenu from './FlowJobsMenu.svelte';
|
|
11
|
+
import FlowCopilotButton from './FlowCopilotButton.svelte';
|
|
11
12
|
export let mod;
|
|
12
13
|
export let insertable;
|
|
14
|
+
export let disableAi;
|
|
13
15
|
export let annotation = undefined;
|
|
14
16
|
export let bgColor = '';
|
|
15
17
|
export let modules;
|
|
@@ -24,6 +26,7 @@ $: itemProps = {
|
|
|
24
26
|
selected: $selectedId === mod.id,
|
|
25
27
|
retry: mod.retry?.constant != undefined || mod.retry?.exponential != undefined,
|
|
26
28
|
earlyStop: mod.stop_after_if != undefined || mod.stop_after_all_iters_if != undefined,
|
|
29
|
+
skip: Boolean(mod.skip_if),
|
|
27
30
|
suspend: Boolean(mod.suspend),
|
|
28
31
|
sleep: Boolean(mod.sleep),
|
|
29
32
|
cache: Boolean(mod.cache_ttl),
|
|
@@ -37,6 +40,9 @@ function onDelete(event) {
|
|
|
37
40
|
|
|
38
41
|
{#if mod}
|
|
39
42
|
<div class="relative">
|
|
43
|
+
{#if insertable && !disableAi && mod.id === 'preprocessor'}
|
|
44
|
+
<FlowCopilotButton className="-top-10" />
|
|
45
|
+
{/if}
|
|
40
46
|
{#if moving == mod.id}
|
|
41
47
|
<div class="absolute z-10 right-20 top-0.5 center-center">
|
|
42
48
|
<Button color="dark" on:click={() => dispatch('move')} size="xs" variant="border">
|
|
@@ -140,6 +146,11 @@ function onDelete(event) {
|
|
|
140
146
|
modType={mod.value.type}
|
|
141
147
|
{bgColor}
|
|
142
148
|
label={mod.summary ||
|
|
149
|
+
(mod.id === 'preprocessor'
|
|
150
|
+
? 'Preprocessor'
|
|
151
|
+
: mod.id.startsWith('failure')
|
|
152
|
+
? 'Error Handler'
|
|
153
|
+
: undefined) ||
|
|
143
154
|
(`path` in mod.value ? mod.value.path : undefined) ||
|
|
144
155
|
(mod.value.type === 'rawscript'
|
|
145
156
|
? `Inline ${prettyLanguage(mod.value.language)}`
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script>import LanguageIcon from '../../common/languageIcons/LanguageIcon.svelte';
|
|
2
|
+
import { sendUserToast } from '../../../toast';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
export let label;
|
|
6
|
+
export let lang = undefined;
|
|
7
|
+
export let selected = false;
|
|
8
|
+
export let eeRestricted;
|
|
9
|
+
export let enterpriseLangs = [];
|
|
10
|
+
const dispatch = createEventDispatcher();
|
|
11
|
+
function handleKeydown(event) {
|
|
12
|
+
if (selected && event.key === 'Enter') {
|
|
13
|
+
click();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function click() {
|
|
17
|
+
if (eeRestricted) {
|
|
18
|
+
sendUserToast(`The languages ${enterpriseLangs.join(', ')} are only available on the enterprise edition`, true);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
dispatch('click');
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<svelte:window on:keydown={handleKeydown} />
|
|
26
|
+
|
|
27
|
+
<button
|
|
28
|
+
class={twMerge(
|
|
29
|
+
'px-3 py-2 gap-2 w-full text-left hover:bg-surface-hover flex flex-row items-center transition-all rounded-md',
|
|
30
|
+
selected ? 'bg-surface-hover' : ''
|
|
31
|
+
)}
|
|
32
|
+
on:click={click}
|
|
33
|
+
role="menuitem"
|
|
34
|
+
>
|
|
35
|
+
{#if lang}
|
|
36
|
+
<LanguageIcon {lang} width={14} height={14} />
|
|
37
|
+
{/if}
|
|
38
|
+
<span
|
|
39
|
+
class="grow truncate text-left text-2xs font-normal {eeRestricted
|
|
40
|
+
? 'text-secondary'
|
|
41
|
+
: 'text-primary'}"
|
|
42
|
+
>
|
|
43
|
+
{label}{#if eeRestricted} (EE){/if}
|
|
44
|
+
</span>
|
|
45
|
+
{#if selected}
|
|
46
|
+
<kbd class="!text-xs">↵</kbd>
|
|
47
|
+
{/if}
|
|
48
|
+
</button>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { SupportedLanguage } from '../../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
label: string;
|
|
6
|
+
lang?: SupportedLanguage | 'docker' | 'javascript' | undefined;
|
|
7
|
+
selected?: boolean | undefined;
|
|
8
|
+
eeRestricted: boolean;
|
|
9
|
+
enterpriseLangs?: string[] | undefined;
|
|
10
|
+
};
|
|
11
|
+
events: {
|
|
12
|
+
click: CustomEvent<any>;
|
|
13
|
+
} & {
|
|
14
|
+
[evt: string]: CustomEvent<any>;
|
|
15
|
+
};
|
|
16
|
+
slots: {};
|
|
17
|
+
};
|
|
18
|
+
export type FlowScriptPickerQuickProps = typeof __propDef.props;
|
|
19
|
+
export type FlowScriptPickerQuickEvents = typeof __propDef.events;
|
|
20
|
+
export type FlowScriptPickerQuickSlots = typeof __propDef.slots;
|
|
21
|
+
export default class FlowScriptPickerQuick extends SvelteComponent<FlowScriptPickerQuickProps, FlowScriptPickerQuickEvents, FlowScriptPickerQuickSlots> {
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script>import { createEventDispatcher } from 'svelte';
|
|
2
|
+
import TopLevelNode from './TopLevelNode.svelte';
|
|
3
|
+
export let label;
|
|
4
|
+
export let selected = false;
|
|
5
|
+
const dispatch = createEventDispatcher();
|
|
6
|
+
function handleKeydown(event) {
|
|
7
|
+
if (selected && event.key === 'Enter') {
|
|
8
|
+
event.preventDefault();
|
|
9
|
+
click();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function click() {
|
|
13
|
+
dispatch('click');
|
|
14
|
+
}
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<svelte:window on:keydown={handleKeydown} />
|
|
18
|
+
|
|
19
|
+
<TopLevelNode class="px-3" {label} {selected} returnIcon on:select={click} />
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
label: string;
|
|
5
|
+
selected?: boolean | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
click: CustomEvent<any>;
|
|
9
|
+
} & {
|
|
10
|
+
[evt: string]: CustomEvent<any>;
|
|
11
|
+
};
|
|
12
|
+
slots: {};
|
|
13
|
+
};
|
|
14
|
+
export type FlowToplevelNodeProps = typeof __propDef.props;
|
|
15
|
+
export type FlowToplevelNodeEvents = typeof __propDef.events;
|
|
16
|
+
export type FlowToplevelNodeSlots = typeof __propDef.slots;
|
|
17
|
+
export default class FlowToplevelNode extends SvelteComponent<FlowToplevelNodeProps, FlowToplevelNodeEvents, FlowToplevelNodeSlots> {
|
|
18
|
+
}
|
|
19
|
+
export {};
|