windmill-components 1.504.6 → 1.510.1
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/index.js +1 -1
- package/package/components/AppConnectInner.svelte +161 -29
- package/package/components/ArgInput.svelte +33 -103
- package/package/components/AuthSettings.svelte +45 -1
- package/package/components/Dev.svelte +31 -24
- package/package/components/DisplayResult.svelte +53 -26
- package/package/components/DisplayResult.svelte.d.ts +1 -1
- package/package/components/DynSelect.svelte +3 -3
- package/package/components/Editor.svelte +7 -4
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/ErrorOrRecoveryHandler.svelte +73 -67
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +8 -24
- package/package/components/FlowBuilder.svelte +11 -2
- package/package/components/FlowJobResult.svelte +12 -17
- package/package/components/FlowJobResult.svelte.d.ts +5 -18
- package/package/components/FlowPreviewContent.svelte +13 -10
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowPreviewResult.svelte +14 -6
- package/package/components/FlowStatusViewer.svelte +11 -24
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -18
- package/package/components/FlowStatusViewerInner.svelte +110 -131
- package/package/components/FlowStatusViewerInner.svelte.d.ts +20 -18
- package/package/components/GitDiffPreview.svelte +55 -0
- package/package/components/GitDiffPreview.svelte.d.ts +13 -0
- package/package/components/HistoricInputs.svelte +2 -2
- package/package/components/InitGitRepoPopover.svelte +410 -0
- package/package/components/InitGitRepoPopover.svelte.d.ts +13 -0
- package/package/components/InstanceSetting.svelte +21 -9
- package/package/components/InstanceSettings.svelte +16 -3
- package/package/components/JobLoader.svelte +567 -0
- package/package/components/JobLoader.svelte.d.ts +53 -0
- package/package/components/JobLogs.svelte +6 -4
- package/package/components/JobLogs.svelte.d.ts +5 -18
- package/package/components/LightweightResourcePicker.svelte +18 -39
- package/package/components/LightweightResourcePicker.svelte.d.ts +6 -22
- package/package/components/LogViewer.svelte +35 -41
- package/package/components/LogViewer.svelte.d.ts +6 -20
- package/package/components/ModulePreviewResultViewer.svelte +3 -1
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -0
- package/package/components/ModuleTest.svelte +16 -11
- package/package/components/PullGitRepoPopover.svelte +355 -0
- package/package/components/PullGitRepoPopover.svelte.d.ts +18 -0
- package/package/components/S3FilePicker.svelte +5 -3
- package/package/components/SavedInputs.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +4 -3
- package/package/components/ScriptEditor.svelte +34 -31
- package/package/components/ScriptEditor.svelte.d.ts +3 -3
- package/package/components/ServiceLogsInner.svelte +2 -1
- package/package/components/ServiceLogsInner.svelte.d.ts +1 -0
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +32 -3
- package/package/components/apps/components/buttons/AppButton.svelte +7 -1
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
- package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +16 -11
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +13 -10
- package/package/components/apps/components/display/AppMenu.svelte +5 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +3 -3
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +3 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +3 -3
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +65 -54
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -5
- package/package/components/apps/components/inputs/AppUserResource.svelte +26 -8
- package/package/components/apps/editor/AppEditorHeader.svelte +11 -5
- package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
- package/package/components/apps/editor/RunnableJobPanel.svelte +4 -4
- package/package/components/apps/editor/component/components.d.ts +12 -0
- package/package/components/apps/editor/component/components.js +19 -7
- package/package/components/assets/AssetButtons.svelte +38 -0
- package/package/components/assets/AssetButtons.svelte.d.ts +15 -0
- package/package/components/assets/AssetsDropdownButton.svelte +60 -72
- package/package/components/assets/AssetsDropdownButton.svelte.d.ts +3 -4
- package/package/components/assets/AssetsUsageDrawer.svelte +10 -10
- package/package/components/assets/JobAssetsViewer.svelte +79 -0
- package/package/components/assets/JobAssetsViewer.svelte.d.ts +7 -0
- package/package/components/assets/README_DEV.md +0 -0
- package/package/components/assets/lib.d.ts +9 -1
- package/package/components/assets/lib.js +48 -7
- package/package/components/common/fileUpload/FileUpload.svelte +126 -84
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +13 -3
- package/package/components/common/fileUpload/S3ArgInput.svelte +111 -0
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +21 -0
- package/package/components/common/table/ScriptRow.svelte +3 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +23 -5
- package/package/components/copilot/chat/AIChatDisplay.svelte +8 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +13 -8
- package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +5 -5
- package/package/components/copilot/chat/flow/core.d.ts +1 -1
- package/package/components/copilot/chat/flow/core.js +2 -38
- package/package/components/copilot/chat/navigator/apiTools.d.ts +8 -0
- package/package/components/copilot/chat/navigator/apiTools.js +95 -15
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +2 -1
- package/package/components/copilot/chat/script/core.d.ts +11 -2
- package/package/components/copilot/chat/script/core.js +135 -1
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +56 -0
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +27 -9
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +133 -0
- package/package/components/flows/FlowAssetsHandler.svelte.d.ts +14 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +16 -18
- package/package/components/flows/flowStore.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +9 -4
- package/package/components/flows/scheduleUtils.js +1 -1
- package/package/components/flows/types.d.ts +2 -1
- package/package/components/graph/FlowGraphV2.svelte +8 -104
- package/package/components/graph/FlowGraphV2.svelte.d.ts +0 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +6 -3
- package/package/components/graph/graphBuilder.svelte.js +35 -9
- package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +23 -20
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +5 -10
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
- package/package/components/graph/util.js +1 -1
- package/package/components/home/ItemsList.svelte +2 -0
- package/package/components/icons/AssetGenericIcon.svelte +0 -3
- package/package/components/jobs/JobPreview.svelte +10 -6
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +13 -12
- package/package/components/runs/BatchReRunOptionsPane.svelte +5 -1
- package/package/components/runs/JobPreview.svelte +26 -16
- package/package/components/runs/{JobLoader.svelte.d.ts → JobsLoader.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +3 -2
- package/package/components/script_builder.d.ts +2 -2
- package/package/components/settings/CreateToken.svelte +76 -41
- package/package/components/settings/CreateToken.svelte.d.ts +1 -1
- package/package/components/settings/ScopeSelector.svelte +613 -0
- package/package/components/settings/ScopeSelector.svelte.d.ts +8 -0
- package/package/components/settings/TokenDisplay.svelte +103 -0
- package/package/components/settings/TokenDisplay.svelte.d.ts +10 -0
- package/package/components/settings/TokensTable.svelte +70 -349
- package/package/components/sidebar/CriticalAlertModal.svelte +3 -0
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -1
- package/package/components/triggers/TriggerEditorToolbar.svelte +3 -3
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte +55 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +13 -0
- package/package/components/triggers/TriggersEditor.svelte +45 -3
- package/package/components/triggers/TriggersWrapper.svelte +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/gcp/utils.js +9 -1
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +1 -0
- package/package/components/triggers/http/RouteEditorInner.svelte +208 -164
- package/package/components/triggers/http/RouteEditorInner.svelte.d.ts +6 -2
- package/package/components/triggers/http/utils.js +9 -3
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/kafka/utils.js +9 -1
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +4 -132
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +2 -5
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +178 -9
- package/package/components/triggers/mqtt/utils.js +9 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/nats/utils.js +9 -1
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +41 -2
- package/package/components/triggers/postgres/utils.js +9 -1
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +34 -88
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/sqs/utils.js +9 -1
- package/package/components/triggers/utils.js +12 -0
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/websocket/utils.js +11 -1
- package/package/components/workspaceSettings/AISettings.svelte +0 -2
- package/package/components/workspaceSettings/FilterList.svelte +56 -0
- package/package/components/workspaceSettings/FilterList.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +785 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +305 -23
- package/package/gen/schemas.gen.js +305 -23
- package/package/gen/services.gen.d.ts +33 -1
- package/package/gen/services.gen.js +66 -2
- package/package/gen/types.gen.d.ts +216 -11
- package/package/history.svelte.js +0 -2
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +16 -10
- package/package/svelte5Utils.svelte.d.ts +1 -0
- package/package/svelte5Utils.svelte.js +25 -18
- package/package/toast.js +10 -0
- package/package/utils.d.ts +3 -2
- package/package/utils.js +20 -5
- package/package.json +11 -11
- package/package/components/ResultJobLoader.svelte +0 -219
- package/package/components/ResultJobLoader.svelte.d.ts +0 -52
- package/package/components/TestJobLoader.svelte +0 -274
- package/package/components/TestJobLoader.svelte.d.ts +0 -43
- package/package/components/icons/AssetVarIcon.svelte +0 -31
- package/package/components/icons/AssetVarIcon.svelte.d.ts +0 -9
- /package/package/components/runs/{JobLoader.svelte → JobsLoader.svelte} +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {} from '@xyflow/svelte';
|
|
2
|
-
import { getDependeeAndDependentComponents } from '../flows/flowExplorer';
|
|
2
|
+
import { getAllModules, getDependeeAndDependentComponents } from '../flows/flowExplorer';
|
|
3
3
|
import { dfsByModule } from '../flows/previousResults';
|
|
4
4
|
import { defaultIfEmptyString } from '../../utils';
|
|
5
|
+
import { getFlowModuleAssets } from '../assets/lib';
|
|
6
|
+
import { assetDisplaysAsOutputInFlowGraph } from './renderers/nodes/AssetNode.svelte';
|
|
5
7
|
export function isTriggerStep(module) {
|
|
6
8
|
return (module?.value != undefined &&
|
|
7
9
|
(module.value.type === 'script' || module.value.type === 'rawscript') &&
|
|
@@ -59,12 +61,17 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
|
|
|
59
61
|
insertable: extra.insertable,
|
|
60
62
|
editMode: extra.editMode,
|
|
61
63
|
isOwner: extra.isOwner,
|
|
62
|
-
flowJob: extra.flowJob
|
|
64
|
+
flowJob: extra.flowJob,
|
|
65
|
+
assets: getFlowModuleAssets(module, extra.additionalAssetsMap)
|
|
63
66
|
},
|
|
64
67
|
type: 'module'
|
|
65
68
|
});
|
|
66
69
|
return module.id;
|
|
67
70
|
}
|
|
71
|
+
// TODO : Do better than this
|
|
72
|
+
const nodeIdsWithOutputAssets = new Set(getAllModules(modules)
|
|
73
|
+
.filter((m) => getFlowModuleAssets(m, extra.additionalAssetsMap)?.some(assetDisplaysAsOutputInFlowGraph))
|
|
74
|
+
.map((m) => m.id));
|
|
68
75
|
const parents = {};
|
|
69
76
|
//
|
|
70
77
|
function detectCycle(nodeId, visited, currentPath) {
|
|
@@ -119,10 +126,12 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
|
|
|
119
126
|
// If the index is -1, it means that the target module is not in the modules array, so we set it to the length of the array
|
|
120
127
|
index: index >= 0 ? index : (mods?.length ?? 0),
|
|
121
128
|
...extra,
|
|
122
|
-
insertable: extra.insertable && !options?.disableInsert && prefix == undefined
|
|
129
|
+
insertable: extra.insertable && !options?.disableInsert && prefix == undefined,
|
|
130
|
+
shouldOffsetInsertBtnDueToAssetNode: nodeIdsWithOutputAssets.has(sourceId)
|
|
123
131
|
}
|
|
124
132
|
});
|
|
125
133
|
}
|
|
134
|
+
const inputAssets = extra.additionalAssetsMap?.['Input'];
|
|
126
135
|
const inputNode = {
|
|
127
136
|
id: 'Input',
|
|
128
137
|
type: 'input2',
|
|
@@ -139,7 +148,8 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
|
|
|
139
148
|
individualStepTests: extra.individualStepTests,
|
|
140
149
|
flowJob: extra.flowJob,
|
|
141
150
|
showJobStatus: extra.showJobStatus,
|
|
142
|
-
flowHasChanged: extra.flowHasChanged
|
|
151
|
+
flowHasChanged: extra.flowHasChanged,
|
|
152
|
+
...(inputAssets ? { assets: inputAssets } : {})
|
|
143
153
|
}
|
|
144
154
|
};
|
|
145
155
|
let triggerNode = undefined;
|
|
@@ -361,19 +371,35 @@ export function graphBuilder(modules, extra, failureModule, preprocessorModule,
|
|
|
361
371
|
type: 'branchOneEnd'
|
|
362
372
|
};
|
|
363
373
|
nodes.push(endNode);
|
|
364
|
-
// Add default branch
|
|
374
|
+
// // Add default branch
|
|
375
|
+
// const defaultBranch: NodeLayout = {
|
|
376
|
+
// id: `${module.id}-default`,
|
|
377
|
+
// data: {
|
|
378
|
+
// offset: currentOffset,
|
|
379
|
+
// label: 'Default',
|
|
380
|
+
// id: module.id,
|
|
381
|
+
// branchIndex: -1,
|
|
382
|
+
// eventHandlers: eventHandlers,
|
|
383
|
+
// branchOne: true,
|
|
384
|
+
// ...extra
|
|
385
|
+
// },
|
|
386
|
+
// type: 'noBranch'
|
|
387
|
+
// }
|
|
365
388
|
const defaultBranch = {
|
|
366
|
-
id: `${module.id}-default`,
|
|
389
|
+
id: `${module.id}-branch-default`,
|
|
367
390
|
data: {
|
|
368
391
|
offset: currentOffset,
|
|
369
392
|
label: 'Default',
|
|
370
393
|
id: module.id,
|
|
371
394
|
branchIndex: -1,
|
|
372
395
|
eventHandlers: eventHandlers,
|
|
373
|
-
|
|
374
|
-
|
|
396
|
+
insertable: extra.insertable,
|
|
397
|
+
preLabel: undefined,
|
|
398
|
+
flowModuleStates: extra.flowModuleStates,
|
|
399
|
+
selected: false,
|
|
400
|
+
modules: module.value.default
|
|
375
401
|
},
|
|
376
|
-
type: '
|
|
402
|
+
type: 'branchOneStart'
|
|
377
403
|
};
|
|
378
404
|
nodes.push(defaultBranch);
|
|
379
405
|
addEdge(module.id, defaultBranch.id, { rootId: module.id, branch: 0 }, prefix, {
|
|
@@ -4,18 +4,15 @@ import { ClipboardCopy, Hourglass } from 'lucide-svelte';
|
|
|
4
4
|
import { getContext } from 'svelte';
|
|
5
5
|
import { getStraightLinePath } from '../utils';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
-
import {} from '
|
|
8
|
-
import { assetDisplaysAsOutputInFlowGraph, NODE_WITH_WRITE_ASSET_Y_OFFSET } from '../nodes/AssetNode.svelte';
|
|
7
|
+
import { NODE_WITH_WRITE_ASSET_Y_OFFSET } from '../nodes/AssetNode.svelte';
|
|
9
8
|
import { workspaceStore } from '../../../../stores';
|
|
10
9
|
import FlowStatusWaitingForEvents from '../../../FlowStatusWaitingForEvents.svelte';
|
|
11
10
|
const { useDataflow } = getContext('FlowGraphContext');
|
|
12
|
-
const flowGraphAssetCtx = getContext('FlowGraphAssetContext');
|
|
13
11
|
let {
|
|
14
12
|
// id,
|
|
15
13
|
sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, markerEnd,
|
|
16
14
|
// style,
|
|
17
15
|
data } = $props();
|
|
18
|
-
const shouldOffsetInsertButtonDueToAssetNode = flowGraphAssetCtx?.val.assetsMap?.[data.sourceId]?.some(assetDisplaysAsOutputInFlowGraph);
|
|
19
16
|
let [edgePath] = $derived(getBezierPath({
|
|
20
17
|
sourceX,
|
|
21
18
|
sourceY: targetY - sourceY > 100 ? targetY - 100 : sourceY,
|
|
@@ -37,7 +34,7 @@ const suspendStatus = $derived(data?.suspendStatus);
|
|
|
37
34
|
|
|
38
35
|
<EdgeLabel
|
|
39
36
|
x={sourceX}
|
|
40
|
-
y={sourceY + 28 + (
|
|
37
|
+
y={sourceY + 28 + (data.shouldOffsetInsertBtnDueToAssetNode ? NODE_WITH_WRITE_ASSET_Y_OFFSET : 0)}
|
|
41
38
|
class="base-edge"
|
|
42
39
|
style=""
|
|
43
40
|
>
|
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
export const NODE_WITH_WRITE_ASSET_Y_OFFSET = 45;
|
|
3
3
|
export const READ_ASSET_Y_OFFSET = -45;
|
|
4
4
|
export const WRITE_ASSET_Y_OFFSET = 64;
|
|
5
|
-
export const assetDisplaysAsInputInFlowGraph = (a) => !a
|
|
6
|
-
export const assetDisplaysAsOutputInFlowGraph = (a) => a
|
|
5
|
+
export const assetDisplaysAsInputInFlowGraph = (a) => !getAccessType(a) || getAccessType(a) === 'r' || getAccessType(a) === 'rw';
|
|
6
|
+
export const assetDisplaysAsOutputInFlowGraph = (a) => getAccessType(a) === 'w' || getAccessType(a) === 'rw';
|
|
7
7
|
let computeAssetNodesCache;
|
|
8
|
-
export function computeAssetNodes(nodes, edges
|
|
9
|
-
if (nodes === computeAssetNodesCache?.[0]
|
|
10
|
-
return computeAssetNodesCache[
|
|
8
|
+
export function computeAssetNodes(nodes, edges) {
|
|
9
|
+
if (nodes === computeAssetNodesCache?.[0])
|
|
10
|
+
return computeAssetNodesCache[1];
|
|
11
11
|
const MAX_ASSET_ROW_WIDTH = 300;
|
|
12
12
|
const ASSETS_OVERFLOWED_NODE_WIDTH = 25;
|
|
13
13
|
const allAssetNodes = [];
|
|
14
14
|
const allAssetEdges = [];
|
|
15
15
|
const yPosMap = {};
|
|
16
16
|
for (const node of nodes) {
|
|
17
|
-
|
|
17
|
+
if (node.type !== 'module' && node.type !== 'input2')
|
|
18
|
+
continue;
|
|
19
|
+
const assets = node.data.assets ?? [];
|
|
18
20
|
// Each asset can be displayed at the top and bottom
|
|
19
21
|
// i.e once (R or W) or twice (RW)
|
|
20
22
|
const inputAssets = assets.filter(assetDisplaysAsInputInFlowGraph);
|
|
@@ -167,30 +169,26 @@ export function computeAssetNodes(nodes, edges, assetsMap, extraData) {
|
|
|
167
169
|
[...sortedNewNodes, ...allAssetNodes],
|
|
168
170
|
[...edges, ...allAssetEdges]
|
|
169
171
|
];
|
|
170
|
-
computeAssetNodesCache = [nodes,
|
|
172
|
+
computeAssetNodesCache = [nodes, ret];
|
|
171
173
|
return ret;
|
|
172
174
|
}
|
|
173
175
|
</script>
|
|
174
176
|
|
|
175
177
|
<script lang="ts">import NodeWrapper from './NodeWrapper.svelte';
|
|
176
178
|
import { AlertTriangle } from 'lucide-svelte';
|
|
177
|
-
import { assetEq, formatAssetKind } from '../../../assets/lib';
|
|
179
|
+
import { assetEq, formatAssetKind, getAccessType } from '../../../assets/lib';
|
|
178
180
|
import { twMerge } from 'tailwind-merge';
|
|
179
181
|
import { getContext } from 'svelte';
|
|
180
182
|
import ExploreAssetButton, { assetCanBeExplored } from '../../../ExploreAssetButton.svelte';
|
|
181
183
|
import { Tooltip } from '../../../meltComponents';
|
|
182
184
|
import { clone, pluralize } from '../../../../utils';
|
|
183
185
|
import AssetGenericIcon from '../../../icons/AssetGenericIcon.svelte';
|
|
184
|
-
import { deepEqual } from 'fast-equals';
|
|
185
186
|
import { NODE } from '../../util';
|
|
186
187
|
import { userStore } from '../../../../stores';
|
|
187
188
|
const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
188
|
-
const usageCount = $derived(Object.values(flowGraphAssetsCtx.val.assetsMap ?? {})
|
|
189
|
-
.flat()
|
|
190
|
-
.filter((asset) => assetEq(asset, data.asset)).length);
|
|
191
189
|
let { data } = $props();
|
|
192
|
-
const isSelected = $derived(assetEq(flowGraphAssetsCtx
|
|
193
|
-
const cachedResourceMetadata = $derived(flowGraphAssetsCtx
|
|
190
|
+
const isSelected = $derived(assetEq(flowGraphAssetsCtx?.val.selectedAsset, data.asset));
|
|
191
|
+
const cachedResourceMetadata = $derived(flowGraphAssetsCtx?.val.resourceMetadataCache[data.asset.path]);
|
|
194
192
|
</script>
|
|
195
193
|
|
|
196
194
|
<NodeWrapper>
|
|
@@ -202,8 +200,10 @@ const cachedResourceMetadata = $derived(flowGraphAssetsCtx.val.resourceMetadataC
|
|
|
202
200
|
'bg-surface h-6 flex items-center gap-1.5 rounded-sm text-tertiary border overflow-clip',
|
|
203
201
|
isSelected ? 'bg-surface-secondary !border-surface-inverse' : 'border-transparent'
|
|
204
202
|
)}
|
|
205
|
-
onmouseenter={() =>
|
|
206
|
-
|
|
203
|
+
onmouseenter={() =>
|
|
204
|
+
flowGraphAssetsCtx && (flowGraphAssetsCtx.val.selectedAsset = data.asset)}
|
|
205
|
+
onmouseleave={() =>
|
|
206
|
+
flowGraphAssetsCtx && (flowGraphAssetsCtx.val.selectedAsset = undefined)}
|
|
207
207
|
>
|
|
208
208
|
<AssetGenericIcon
|
|
209
209
|
assetKind={data.asset.kind}
|
|
@@ -225,14 +225,17 @@ const cachedResourceMetadata = $derived(flowGraphAssetsCtx.val.resourceMetadataC
|
|
|
225
225
|
asset={data.asset}
|
|
226
226
|
noText
|
|
227
227
|
buttonVariant="contained"
|
|
228
|
-
s3FilePicker={flowGraphAssetsCtx
|
|
229
|
-
dbManagerDrawer={flowGraphAssetsCtx
|
|
228
|
+
s3FilePicker={flowGraphAssetsCtx?.val.s3FilePicker}
|
|
229
|
+
dbManagerDrawer={flowGraphAssetsCtx?.val.dbManagerDrawer}
|
|
230
230
|
_resourceMetadata={cachedResourceMetadata}
|
|
231
231
|
/>
|
|
232
232
|
{/if}
|
|
233
233
|
</div>
|
|
234
234
|
<svelte:fragment slot="text">
|
|
235
|
-
Used in {pluralize(
|
|
235
|
+
Used in {pluralize(
|
|
236
|
+
flowGraphAssetsCtx?.val.computeAssetsCount?.(data.asset) ?? -1,
|
|
237
|
+
'step'
|
|
238
|
+
)}<br />
|
|
236
239
|
<a
|
|
237
240
|
href={undefined}
|
|
238
241
|
class={twMerge(
|
|
@@ -243,7 +246,7 @@ const cachedResourceMetadata = $derived(flowGraphAssetsCtx.val.resourceMetadataC
|
|
|
243
246
|
)}
|
|
244
247
|
onclick={() => {
|
|
245
248
|
if (data.asset.kind === 'resource')
|
|
246
|
-
flowGraphAssetsCtx
|
|
249
|
+
flowGraphAssetsCtx?.val.resourceEditorDrawer?.initEdit(data.asset.path)
|
|
247
250
|
}}
|
|
248
251
|
>
|
|
249
252
|
{data.asset.path}
|
|
@@ -2,17 +2,12 @@ export declare const NODE_WITH_READ_ASSET_Y_OFFSET = 45;
|
|
|
2
2
|
export declare const NODE_WITH_WRITE_ASSET_Y_OFFSET = 45;
|
|
3
3
|
export declare const READ_ASSET_Y_OFFSET = -45;
|
|
4
4
|
export declare const WRITE_ASSET_Y_OFFSET = 64;
|
|
5
|
-
export declare const assetDisplaysAsInputInFlowGraph: (a:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}) => boolean;
|
|
11
|
-
export declare function computeAssetNodes(nodes: Node[], edges: Edge[], assetsMap: Record<string, AssetWithAccessType[]>, extraData: any): [Node[], Edge[]];
|
|
12
|
-
import type { AssetN } from '../../graphBuilder.svelte';
|
|
13
|
-
import { type AssetWithAccessType } from '../../../assets/lib';
|
|
5
|
+
export declare const assetDisplaysAsInputInFlowGraph: (a: AssetWithAltAccessType) => boolean;
|
|
6
|
+
export declare const assetDisplaysAsOutputInFlowGraph: (a: AssetWithAltAccessType) => boolean;
|
|
7
|
+
export declare function computeAssetNodes(nodes: (Node & NodeLayout)[], edges: Edge[]): [(Node & NodeLayout)[], Edge[]];
|
|
8
|
+
import type { AssetN, NodeLayout } from '../../graphBuilder.svelte';
|
|
9
|
+
import { type AssetWithAltAccessType } from '../../../assets/lib';
|
|
14
10
|
import type { Edge, Node } from '@xyflow/svelte';
|
|
15
|
-
import type { AssetUsageAccessType } from '../../../../gen';
|
|
16
11
|
interface Props {
|
|
17
12
|
data: AssetN['data'];
|
|
18
13
|
}
|
|
@@ -10,7 +10,7 @@ import { assetEq } from '../../../assets/lib';
|
|
|
10
10
|
let { data } = $props();
|
|
11
11
|
const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
12
12
|
let isOpen = $state(false);
|
|
13
|
-
let includesSelected = $derived(data.overflowedAssets.some((asset) => assetEq(flowGraphAssetsCtx
|
|
13
|
+
let includesSelected = $derived(data.overflowedAssets.some((asset) => assetEq(flowGraphAssetsCtx?.val.selectedAsset, asset)));
|
|
14
14
|
let wasOpenedBecauseOfExternalSelected = false;
|
|
15
15
|
$effect(() => {
|
|
16
16
|
if (includesSelected && !isOpen) {
|
|
@@ -158,6 +158,8 @@ let collapseAll = $state(true);
|
|
|
158
158
|
let owners = $derived(Array.from(new Set(filteredItems?.map((x) => x.path.split('/').slice(0, 2).join('/')) ?? [])).sort());
|
|
159
159
|
$effect(() => {
|
|
160
160
|
if ($userStore && $workspaceStore) {
|
|
161
|
+
;
|
|
162
|
+
[archived, includeWithoutMain];
|
|
161
163
|
untrack(() => {
|
|
162
164
|
loadScripts(includeWithoutMain);
|
|
163
165
|
loadFlows();
|
|
@@ -1,7 +1,6 @@
|
|
|
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 AssetVarIcon from './AssetVarIcon.svelte';
|
|
5
4
|
let { assetKind, fill, size, class: className = '' } = $props();
|
|
6
5
|
</script>
|
|
7
6
|
|
|
@@ -9,8 +8,6 @@ let { assetKind, fill, size, class: className = '' } = $props();
|
|
|
9
8
|
<AssetS3Icon {fill} width={size} height={size} class={className} />
|
|
10
9
|
{:else if assetKind == 'resource'}
|
|
11
10
|
<AssetResIcon {fill} width={size} height={size} class={className} />
|
|
12
|
-
{:else if assetKind == 'variable'}
|
|
13
|
-
<AssetVarIcon {fill} width={size} height={size} class={className} />
|
|
14
11
|
{:else}
|
|
15
12
|
<Pyramid {size} color={fill} class={'!fill-none ' + className} />
|
|
16
13
|
{/if}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<script lang="ts">import { onDestroy, tick } from 'svelte';
|
|
5
5
|
import { fade } from 'svelte/transition';
|
|
6
6
|
import {} from '../../gen';
|
|
7
|
-
import
|
|
7
|
+
import JobLoader from '../JobLoader.svelte';
|
|
8
8
|
import DisplayResult from '../DisplayResult.svelte';
|
|
9
9
|
import JobArgs from '../JobArgs.svelte';
|
|
10
10
|
import { writable } from 'svelte/store';
|
|
@@ -19,7 +19,7 @@ let job = $state(undefined);
|
|
|
19
19
|
let hovered = $state(false);
|
|
20
20
|
let timeout;
|
|
21
21
|
let result = $state();
|
|
22
|
-
let
|
|
22
|
+
let jobLoader = $state();
|
|
23
23
|
let loaded = false;
|
|
24
24
|
let wrapper = $state();
|
|
25
25
|
let popupOnTop = $state(true);
|
|
@@ -31,7 +31,11 @@ async function instantOpen() {
|
|
|
31
31
|
openStore.set(id);
|
|
32
32
|
if (!loaded) {
|
|
33
33
|
await tick();
|
|
34
|
-
|
|
34
|
+
jobLoader?.watchJob(id, {
|
|
35
|
+
done(job) {
|
|
36
|
+
onDone(job);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
else {
|
|
@@ -58,8 +62,8 @@ function staggeredClose() {
|
|
|
58
62
|
close();
|
|
59
63
|
}, loaded ? 100 : 300);
|
|
60
64
|
}
|
|
61
|
-
function onDone(
|
|
62
|
-
job =
|
|
65
|
+
function onDone(njob) {
|
|
66
|
+
job = njob;
|
|
63
67
|
result = job['result'];
|
|
64
68
|
loaded = true;
|
|
65
69
|
}
|
|
@@ -70,7 +74,7 @@ onDestroy(() => {
|
|
|
70
74
|
|
|
71
75
|
<svelte:window onkeydown={({ key }) => ['Escape', 'Esc'].includes(key) && close()} />
|
|
72
76
|
{#if hovered}
|
|
73
|
-
<
|
|
77
|
+
<JobLoader bind:job bind:this={jobLoader} />
|
|
74
78
|
{/if}
|
|
75
79
|
|
|
76
80
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
@@ -9,7 +9,7 @@ import RawAppInputsSpecEditor from './RawAppInputsSpecEditor.svelte';
|
|
|
9
9
|
import SplitPanesWrapper from '../splitPanes/SplitPanesWrapper.svelte';
|
|
10
10
|
import SchemaForm from '../SchemaForm.svelte';
|
|
11
11
|
import RunnableJobPanelInner from '../apps/editor/RunnableJobPanelInner.svelte';
|
|
12
|
-
import
|
|
12
|
+
import JobLoader from '../JobLoader.svelte';
|
|
13
13
|
let { runnable = $bindable(), id, appPath } = $props();
|
|
14
14
|
const dispatch = createEventDispatcher();
|
|
15
15
|
async function fork(nrunnable) {
|
|
@@ -37,7 +37,7 @@ function getSchema(runnable) {
|
|
|
37
37
|
}
|
|
38
38
|
return {};
|
|
39
39
|
}
|
|
40
|
-
let
|
|
40
|
+
let jobLoader = $state();
|
|
41
41
|
let testJob = $state();
|
|
42
42
|
let testIsLoading = $state(false);
|
|
43
43
|
let scriptProgress = $state(0);
|
|
@@ -54,15 +54,15 @@ function onFieldsChange(fields) {
|
|
|
54
54
|
async function testPreview() {
|
|
55
55
|
selectedTab = 'test';
|
|
56
56
|
if (runnable?.type == 'runnableByName' && runnable.inlineScript?.language != 'frontend') {
|
|
57
|
-
await
|
|
57
|
+
await jobLoader?.runPreview(appPath + '/' + id, runnable.inlineScript?.content ?? '', runnable.inlineScript?.language, args, undefined);
|
|
58
58
|
}
|
|
59
59
|
else if (runnable?.type == 'runnableByPath') {
|
|
60
|
-
if (
|
|
60
|
+
if (jobLoader && runnable?.type == 'runnableByPath') {
|
|
61
61
|
if (runnable.runType == 'flow') {
|
|
62
|
-
await
|
|
62
|
+
await jobLoader.runFlowByPath(runnable.path, args);
|
|
63
63
|
}
|
|
64
64
|
else if (runnable.runType == 'script' || runnable.runType == 'hubscript') {
|
|
65
|
-
await
|
|
65
|
+
await jobLoader.runScriptByPath(runnable.path, args);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -74,9 +74,10 @@ $effect(() => {
|
|
|
74
74
|
});
|
|
75
75
|
</script>
|
|
76
76
|
|
|
77
|
-
<
|
|
77
|
+
<JobLoader
|
|
78
|
+
noCode={true}
|
|
78
79
|
bind:scriptProgress
|
|
79
|
-
bind:this={
|
|
80
|
+
bind:this={jobLoader}
|
|
80
81
|
bind:isLoading={testIsLoading}
|
|
81
82
|
bind:job={testJob}
|
|
82
83
|
/>
|
|
@@ -97,8 +98,8 @@ $effect(() => {
|
|
|
97
98
|
isLoading={testIsLoading}
|
|
98
99
|
onRun={testPreview}
|
|
99
100
|
onCancel={async () => {
|
|
100
|
-
if (
|
|
101
|
-
await
|
|
101
|
+
if (jobLoader) {
|
|
102
|
+
await jobLoader.cancelJob()
|
|
102
103
|
}
|
|
103
104
|
}}
|
|
104
105
|
on:delete
|
|
@@ -116,8 +117,8 @@ $effect(() => {
|
|
|
116
117
|
isLoading={testIsLoading}
|
|
117
118
|
onRun={testPreview}
|
|
118
119
|
onCancel={async () => {
|
|
119
|
-
if (
|
|
120
|
-
await
|
|
120
|
+
if (jobLoader) {
|
|
121
|
+
await jobLoader.cancelJob()
|
|
121
122
|
}
|
|
122
123
|
}}
|
|
123
124
|
/>
|
|
@@ -12,6 +12,7 @@ import Alert from '../common/alert/Alert.svelte';
|
|
|
12
12
|
import { batchReRunDefaultPropertyExpr, buildExtraLibForBatchReruns, mergeSchemasForBatchReruns } from '../jobs/batchReruns';
|
|
13
13
|
import Toggle from '../Toggle.svelte';
|
|
14
14
|
import { TriangleAlert } from 'lucide-svelte';
|
|
15
|
+
import { readFieldsRecursively } from '../../utils';
|
|
15
16
|
let { selectedIds, options = $bindable() } = $props();
|
|
16
17
|
let selected = $state();
|
|
17
18
|
$effect(() => {
|
|
@@ -103,7 +104,10 @@ function propertyAlwaysHasSameType(propertyName, group) {
|
|
|
103
104
|
const selectedUsesLatestSchema = $derived(!!selected &&
|
|
104
105
|
(selected?.kind === 'flow' ||
|
|
105
106
|
(options[selected.kind][selected.script_path]?.use_latest_version ?? false)));
|
|
106
|
-
const jobGroupsPromise = $derived(
|
|
107
|
+
const jobGroupsPromise = $derived.by(() => {
|
|
108
|
+
readFieldsRecursively(selectedIds);
|
|
109
|
+
return untrack(() => fetchJobGroups());
|
|
110
|
+
});
|
|
107
111
|
</script>
|
|
108
112
|
|
|
109
113
|
<div class="flex-1 flex flex-col">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">import { base } from '../../base';
|
|
2
2
|
import { ConcurrencyGroupsService } from '../../gen';
|
|
3
|
-
import
|
|
3
|
+
import JobLoader from '../JobLoader.svelte';
|
|
4
4
|
import DisplayResult from '../DisplayResult.svelte';
|
|
5
5
|
import JobArgs from '../JobArgs.svelte';
|
|
6
6
|
import LogViewer from '../LogViewer.svelte';
|
|
@@ -14,13 +14,14 @@ import { workspaceStore } from '../../stores';
|
|
|
14
14
|
import WorkflowTimeline from '../WorkflowTimeline.svelte';
|
|
15
15
|
import Popover from '../Popover.svelte';
|
|
16
16
|
import { isFlowPreview, isScriptPreview, truncateRev } from '../../utils';
|
|
17
|
-
import { createEventDispatcher, untrack } from 'svelte';
|
|
17
|
+
import { createEventDispatcher, setContext, untrack } from 'svelte';
|
|
18
18
|
import { ListFilter } from 'lucide-svelte';
|
|
19
|
+
import FlowAssetsHandler, { initFlowGraphAssetsCtx } from '../flows/FlowAssetsHandler.svelte';
|
|
20
|
+
import JobAssetsViewer from '../assets/JobAssetsViewer.svelte';
|
|
19
21
|
let { id, blankLink = false, workspace } = $props();
|
|
20
22
|
let job = $state(undefined);
|
|
21
23
|
let result = $state();
|
|
22
|
-
function onDone(
|
|
23
|
-
job = event.detail;
|
|
24
|
+
function onDone(job) {
|
|
24
25
|
result = job['result'];
|
|
25
26
|
}
|
|
26
27
|
let currentJob = $state(undefined);
|
|
@@ -31,6 +32,7 @@ async function getConcurrencyKey(job) {
|
|
|
31
32
|
concurrencyKey = await ConcurrencyGroupsService.getConcurrencyKey({ id: job.id });
|
|
32
33
|
}
|
|
33
34
|
let viewTab = $state('result');
|
|
35
|
+
setContext('FlowGraphAssetContext', initFlowGraphAssetsCtx({ getModules: () => job?.raw_flow?.modules ?? [] }));
|
|
34
36
|
function asWorkflowStatus(x) {
|
|
35
37
|
return x;
|
|
36
38
|
}
|
|
@@ -41,24 +43,24 @@ $effect(() => {
|
|
|
41
43
|
}
|
|
42
44
|
});
|
|
43
45
|
$effect(() => {
|
|
44
|
-
id &&
|
|
46
|
+
id &&
|
|
47
|
+
jobLoader &&
|
|
48
|
+
untrack(() => jobLoader?.watchJob(id, {
|
|
49
|
+
done(x) {
|
|
50
|
+
onDone(x);
|
|
51
|
+
}
|
|
52
|
+
}));
|
|
45
53
|
});
|
|
46
54
|
$effect(() => {
|
|
47
|
-
job?.logs == undefined && job && viewTab == 'logs' && untrack(() =>
|
|
55
|
+
job?.logs == undefined && job && viewTab == 'logs' && untrack(() => jobLoader?.getLogs());
|
|
48
56
|
});
|
|
49
57
|
$effect(() => {
|
|
50
58
|
job?.id && lastJobId !== job.id && untrack(() => job && getConcurrencyKey(job));
|
|
51
59
|
});
|
|
52
|
-
let
|
|
60
|
+
let jobLoader = $state(undefined);
|
|
53
61
|
</script>
|
|
54
62
|
|
|
55
|
-
<
|
|
56
|
-
lazyLogs
|
|
57
|
-
workspaceOverride={workspace}
|
|
58
|
-
bind:job={currentJob}
|
|
59
|
-
bind:this={testJobLoader}
|
|
60
|
-
on:done={onDone}
|
|
61
|
-
/>
|
|
63
|
+
<JobLoader lazyLogs workspaceOverride={workspace} bind:job={currentJob} bind:this={jobLoader} />
|
|
62
64
|
|
|
63
65
|
<div class="p-4 flex flex-col gap-2 items-start h-full">
|
|
64
66
|
{#if job}
|
|
@@ -165,9 +167,9 @@ let testJobLoader = $state(undefined);
|
|
|
165
167
|
{/if}
|
|
166
168
|
|
|
167
169
|
<div class=" w-full rounded-md min-h-full">
|
|
168
|
-
{#if job?.
|
|
170
|
+
{#if job?.workflow_as_code_status}
|
|
169
171
|
<WorkflowTimeline
|
|
170
|
-
flow_status={asWorkflowStatus(job.
|
|
172
|
+
flow_status={asWorkflowStatus(job.workflow_as_code_status)}
|
|
171
173
|
flowDone={job.type == 'CompletedJob'}
|
|
172
174
|
/>
|
|
173
175
|
{/if}
|
|
@@ -176,6 +178,7 @@ let testJobLoader = $state(undefined);
|
|
|
176
178
|
<Tabs bind:selected={viewTab}>
|
|
177
179
|
<Tab size="xs" value="result">Result</Tab>
|
|
178
180
|
<Tab size="xs" value="logs">Logs</Tab>
|
|
181
|
+
<Tab size="xs" value="assets">Assets</Tab>
|
|
179
182
|
{#if isScriptPreview(job?.job_kind)}
|
|
180
183
|
<Tab size="xs" value="code">Code</Tab>
|
|
181
184
|
{/if}
|
|
@@ -189,6 +192,8 @@ let testJobLoader = $state(undefined);
|
|
|
189
192
|
<FlowStatusViewer jobId={job.id} workspaceId={job.workspace_id} />
|
|
190
193
|
</div>
|
|
191
194
|
</div>
|
|
195
|
+
{:else if viewTab == 'assets'}
|
|
196
|
+
<JobAssetsViewer {job} />
|
|
192
197
|
{:else}
|
|
193
198
|
<div class="flex flex-col border rounded-md p-2 mt-2 h-full overflow-auto">
|
|
194
199
|
{#if viewTab == 'logs'}
|
|
@@ -247,3 +252,8 @@ let testJobLoader = $state(undefined);
|
|
|
247
252
|
</div>
|
|
248
253
|
{/if}
|
|
249
254
|
</div>
|
|
255
|
+
<FlowAssetsHandler
|
|
256
|
+
modules={job?.raw_flow?.modules ?? []}
|
|
257
|
+
enableDbExplore
|
|
258
|
+
enablePathScriptAndFlowAssets
|
|
259
|
+
/>
|
|
@@ -40,9 +40,9 @@ interface Props {
|
|
|
40
40
|
perPage?: number | undefined;
|
|
41
41
|
allowWildcards?: boolean;
|
|
42
42
|
}
|
|
43
|
-
declare const
|
|
43
|
+
declare const JobsLoader: import("svelte").Component<Props, {
|
|
44
44
|
loadExtraJobs: () => Promise<boolean>;
|
|
45
45
|
loadJobs: (nMinTs: string | undefined, nMaxTs: string | undefined, reset: boolean, shouldGetCount?: boolean) => Promise<void>;
|
|
46
46
|
}, "jobs" | "loading" | "minTs" | "maxTs" | "jobKinds" | "queue_count" | "suspended_count" | "completedJobs" | "externalJobs" | "extendedJobs">;
|
|
47
|
-
type
|
|
48
|
-
export default
|
|
47
|
+
type JobsLoader = ReturnType<typeof JobsLoader>;
|
|
48
|
+
export default JobsLoader;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { AlertTriangle } from 'lucide-svelte';
|
|
3
3
|
import Popover from '../Popover.svelte';
|
|
4
4
|
import { onDestroy } from 'svelte';
|
|
5
|
-
let { tag } = $props();
|
|
5
|
+
let { tag, tagLabel = undefined } = $props();
|
|
6
6
|
let noWorkerWithTag = $state(false);
|
|
7
7
|
let timeout = undefined;
|
|
8
8
|
let visible = true;
|
|
@@ -35,7 +35,7 @@ onDestroy(() => {
|
|
|
35
35
|
<Popover notClickable placement="top">
|
|
36
36
|
<AlertTriangle size={16} class="text-yellow-500" />
|
|
37
37
|
{#snippet text()}
|
|
38
|
-
No worker with tag <b>{tag}</b> is currently running.
|
|
38
|
+
No worker with {tagLabel ?? 'tag'} <b>{tag}</b> is currently running.
|
|
39
39
|
{/snippet}
|
|
40
40
|
</Popover>
|
|
41
41
|
{/if}
|
|
@@ -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" | "tag" | "success" | "worker" | "
|
|
43
|
+
}, {}, {}, "path" | "tag" | "success" | "worker" | "label" | "folder" | "user" | "isSkipped" | "argFilter" | "resultFilter" | "schedulePath" | "jobKindsCat" | "concurrencyKey" | "argError" | "resultError" | "allWorkspaces" | "allowWildcards" | "filterBy">;
|
|
44
44
|
type RunsFilter = InstanceType<typeof RunsFilter>;
|
|
45
45
|
export default RunsFilter;
|
|
@@ -76,10 +76,10 @@ let forceJson = $state(false);
|
|
|
76
76
|
{#if selectedTab === 'logs'}
|
|
77
77
|
<SplitPanesWrapper>
|
|
78
78
|
<Splitpanes horizontal>
|
|
79
|
-
{#if previewJob?.
|
|
79
|
+
{#if previewJob?.workflow_as_code_status}
|
|
80
80
|
<Pane class="relative">
|
|
81
81
|
<WorkflowTimeline
|
|
82
|
-
flow_status={asWorkflowStatus(previewJob.
|
|
82
|
+
flow_status={asWorkflowStatus(previewJob.workflow_as_code_status)}
|
|
83
83
|
flowDone={previewJob.type == 'CompletedJob'}
|
|
84
84
|
/>
|
|
85
85
|
</Pane>
|
|
@@ -93,6 +93,7 @@ let forceJson = $state(false);
|
|
|
93
93
|
isLoading={previewJob?.['running'] == false && previewIsLoading}
|
|
94
94
|
tag={previewJob?.tag}
|
|
95
95
|
download={customUi?.disableDownload !== true}
|
|
96
|
+
tagLabel={customUi?.tagLabel}
|
|
96
97
|
/>
|
|
97
98
|
</Pane>
|
|
98
99
|
<Pane>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NewScript } from '../gen';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AssetWithAltAccessType } from './assets/lib';
|
|
3
3
|
import type { ScriptBuilderWhitelabelCustomUi } from './custom_ui';
|
|
4
4
|
import type { DiffDrawerI } from './diff_drawer';
|
|
5
5
|
import type { ScriptBuilderFunctionExports } from './scriptBuilder';
|
|
@@ -8,7 +8,7 @@ import type { NewScriptWithDraftAndDraftTriggers, Trigger } from './triggers/uti
|
|
|
8
8
|
export interface ScriptBuilderProps {
|
|
9
9
|
script: NewScript & {
|
|
10
10
|
draft_triggers?: Trigger[];
|
|
11
|
-
|
|
11
|
+
assets?: AssetWithAltAccessType[];
|
|
12
12
|
};
|
|
13
13
|
disableAi?: boolean;
|
|
14
14
|
fullyLoaded?: boolean;
|