windmill-components 1.405.0 → 1.406.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/assets/app.css +20 -0
- package/package/components/AppConnectLightweightResourcePicker.svelte +66 -0
- package/package/components/AppConnectLightweightResourcePicker.svelte.d.ts +21 -0
- package/package/components/ArgInput.svelte +6 -2
- package/package/components/ArgInput.svelte.d.ts +1 -0
- package/package/components/CustomPopover.svelte +1 -1
- package/package/components/DisplayResult.svelte +1 -1
- package/package/components/FlowBuilder.svelte +2 -0
- package/package/components/FlowBuilder.svelte.d.ts +1 -0
- package/package/components/FlowInputViewer.svelte +25 -0
- package/package/components/FlowInputViewer.svelte.d.ts +19 -0
- package/package/components/FlowJobResult.svelte +8 -1
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowMetadata.svelte +2 -2
- package/package/components/FlowPreviewContent.svelte +2 -1
- package/package/components/FlowStatusViewer.svelte +3 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +4 -1
- package/package/components/FlowViewer.svelte +2 -21
- package/package/components/LightweightResourcePicker.svelte +34 -30
- package/package/components/LogViewer.svelte +4 -3
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/ManualPopover.svelte +1 -1
- package/package/components/ObjectResourceInput.svelte +5 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
- package/package/components/Popover.svelte +1 -1
- package/package/components/Portal.svelte +7 -8
- package/package/components/Portal.svelte.d.ts +3 -7
- package/package/components/QueueMetricsDrawer.svelte +368 -3
- package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -0
- package/package/components/ResourceEditor.svelte +4 -5
- package/package/components/ResourcePicker.svelte +14 -9
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +1 -1
- package/package/components/SavedInputs.svelte +2 -2
- package/package/components/ScriptVersionHistory.svelte +54 -59
- package/package/components/TestConnection.svelte +1 -0
- package/package/components/TimeAgo.svelte +5 -6
- package/package/components/TimeAgo.svelte.d.ts +1 -1
- package/package/components/apps/components/buttons/AppButton.svelte +1 -1
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
- package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
- package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +1 -1
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppModal.svelte +1 -1
- package/package/components/apps/editor/AppEditor.svelte +11 -3
- package/package/components/apps/editor/GridEditor.svelte +57 -4
- package/package/components/apps/editor/GridEditor.svelte.d.ts +8 -0
- package/package/components/apps/editor/GridEditorMenu.svelte +1 -1
- package/package/components/apps/editor/SubGridEditor.svelte +82 -3
- package/package/components/apps/editor/SubGridEditor.svelte.d.ts +16 -0
- package/package/components/apps/editor/appUtils.d.ts +19 -2
- package/package/components/apps/editor/appUtils.js +103 -7
- package/package/components/apps/editor/component/Component.svelte +36 -8
- package/package/components/apps/editor/component/Component.svelte.d.ts +3 -1
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +1 -1
- package/package/components/apps/svelte-grid/Grid.svelte +235 -12
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +7 -7
- package/package/components/apps/svelte-grid/MoveResize.svelte +104 -11
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +7 -0
- package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
- package/package/components/apps/svelte-grid/utils/item.js +2 -3
- package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +1 -1
- package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +1 -1
- package/package/components/common/button/ButtonDropdown.svelte +1 -1
- package/package/components/common/drawer/ConditionalPortal.svelte +1 -1
- package/package/components/common/menu/MenuV2.svelte +1 -1
- package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
- package/package/components/common/popup/PopupV2.svelte +1 -1
- package/package/components/copilot/StepGenQuick.svelte +3 -2
- package/package/components/copilot/StepGenQuick.svelte.d.ts +1 -0
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/details/Menu.svelte +1 -1
- package/package/components/flows/CreateActionsApp.svelte +1 -1
- package/package/components/flows/FlowEditor.svelte +2 -1
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/FlowHistory.svelte +10 -195
- package/package/components/flows/FlowHistory.svelte.d.ts +0 -1
- package/package/components/flows/FlowHistoryInner.svelte +200 -0
- package/package/components/flows/FlowHistoryInner.svelte.d.ts +19 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInput.svelte +66 -58
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +6 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +3 -2
- package/package/components/flows/map/InsertModuleButton.svelte +1 -1
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +1 -1
- package/package/components/graph/model.d.ts +1 -0
- package/package/components/icons/WindmillIcon.svelte +119 -105
- package/package/components/icons/store.d.ts +4 -0
- package/package/components/icons/store.js +1 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte +1 -1
- package/package/components/propertyPicker/ObjectViewer.svelte +1 -1
- package/package/components/runs/RunRow.svelte +3 -7
- package/package/components/schema/FlowPropertyEditor.svelte +1 -0
- package/package/components/search/GlobalSearchModal.svelte +1 -1
- package/package/script_helpers.d.ts +37 -38
- package/package/script_helpers.js +100 -38
- package/package.json +23 -1
- package/package/init_scripts/python_failure_module.d.ts +0 -2
- package/package/init_scripts/python_failure_module.js +0 -8
- package/package/init_scripts/python_init_code.d.ts +0 -2
- package/package/init_scripts/python_init_code.js +0 -40
- package/package/init_scripts/python_init_code_clear.d.ts +0 -2
- package/package/init_scripts/python_init_code_clear.js +0 -5
- package/package/init_scripts/python_init_code_trigger.d.ts +0 -2
- package/package/init_scripts/python_init_code_trigger.js +0 -14
|
@@ -9,6 +9,7 @@ import { dfs } from '../dfs';
|
|
|
9
9
|
import FlowPreprocessorModule from './FlowPreprocessorModule.svelte';
|
|
10
10
|
export let noEditor = false;
|
|
11
11
|
export let enableAi = false;
|
|
12
|
+
export let disabledFlowInputs = false;
|
|
12
13
|
const { selectedId, flowStore, flowStateStore, flowInputsStore } = getContext('FlowEditorContext');
|
|
13
14
|
function checkDup(modules) {
|
|
14
15
|
let seenModules = [];
|
|
@@ -41,7 +42,7 @@ onMount(() => {
|
|
|
41
42
|
{#if $selectedId?.startsWith('settings')}
|
|
42
43
|
<FlowSettings {noEditor} />
|
|
43
44
|
{:else if $selectedId === 'Input'}
|
|
44
|
-
<FlowInput {noEditor} />
|
|
45
|
+
<FlowInput {noEditor} disabled={disabledFlowInputs} />
|
|
45
46
|
{:else if $selectedId === 'Result'}
|
|
46
47
|
<p class="p-4 text-secondary">Nothing to show about the result node. Happy flow building!</p>
|
|
47
48
|
{:else if $selectedId === 'constants'}
|
|
@@ -10,7 +10,9 @@ import { sendUserToast } from '../../../toast';
|
|
|
10
10
|
import SavedInputs from '../../SavedInputs.svelte';
|
|
11
11
|
import EditableSchemaForm from '../../EditableSchemaForm.svelte';
|
|
12
12
|
import AddProperty from '../../schema/AddProperty.svelte';
|
|
13
|
+
import FlowInputViewer from '../../FlowInputViewer.svelte';
|
|
13
14
|
export let noEditor;
|
|
15
|
+
export let disabled;
|
|
14
16
|
const { flowStore, flowStateStore, previewArgs, initialPath } = getContext('FlowEditorContext');
|
|
15
17
|
let capturePayload;
|
|
16
18
|
let inputLibraryDrawer;
|
|
@@ -32,67 +34,73 @@ const yOffset = 191;
|
|
|
32
34
|
<CapturePayload bind:this={capturePayload} />
|
|
33
35
|
|
|
34
36
|
<FlowCard {noEditor} title="Flow Input">
|
|
35
|
-
|
|
36
|
-
<div
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
$flowStore.value.modules
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<
|
|
37
|
+
{#if !disabled}
|
|
38
|
+
<div class="flex flex-row items-center gap-2 px-4 py-2 border-b">
|
|
39
|
+
<div>Copy input's schema from</div>
|
|
40
|
+
<Button
|
|
41
|
+
color="dark"
|
|
42
|
+
size="xs"
|
|
43
|
+
on:click={() => {
|
|
44
|
+
capturePayload.openDrawer()
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
A request
|
|
48
|
+
</Button>
|
|
49
|
+
<Button
|
|
50
|
+
color="dark"
|
|
51
|
+
size="xs"
|
|
52
|
+
on:click={() => {
|
|
53
|
+
jsonPayload.openDrawer()
|
|
54
|
+
}}
|
|
55
|
+
>
|
|
56
|
+
A JSON
|
|
57
|
+
</Button>
|
|
58
|
+
<Button
|
|
59
|
+
color="dark"
|
|
60
|
+
size="xs"
|
|
61
|
+
on:click={() => {
|
|
62
|
+
inputLibraryDrawer.openDrawer()
|
|
63
|
+
}}
|
|
64
|
+
>
|
|
65
|
+
Past Runs/Input library
|
|
66
|
+
</Button>
|
|
67
|
+
<Button
|
|
68
|
+
color="dark"
|
|
69
|
+
size="xs"
|
|
70
|
+
disabled={$flowStore.value.modules.length === 0 ||
|
|
71
|
+
$flowStore.value.modules[0].value.type == 'identity'}
|
|
72
|
+
on:click={() => copyFirstStepSchema($flowStateStore, flowStore)}
|
|
73
|
+
>
|
|
74
|
+
First step's inputs
|
|
75
|
+
</Button>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="p-4 border-b">
|
|
78
|
+
<AddProperty
|
|
79
|
+
bind:schema={$flowStore.schema}
|
|
80
|
+
bind:this={addProperty}
|
|
81
|
+
on:change={() => {
|
|
82
|
+
$flowStore = $flowStore
|
|
83
|
+
}}
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<EditableSchemaForm
|
|
76
88
|
bind:schema={$flowStore.schema}
|
|
77
|
-
|
|
78
|
-
on:
|
|
79
|
-
|
|
89
|
+
isFlowInput
|
|
90
|
+
on:edit={(e) => {
|
|
91
|
+
addProperty?.openDrawer(e.detail)
|
|
80
92
|
}}
|
|
93
|
+
on:delete={(e) => {
|
|
94
|
+
addProperty?.handleDeleteArgument([e.detail])
|
|
95
|
+
}}
|
|
96
|
+
offset={yOffset}
|
|
97
|
+
displayWebhookWarning
|
|
81
98
|
/>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
on:edit={(e) => {
|
|
88
|
-
addProperty?.openDrawer(e.detail)
|
|
89
|
-
}}
|
|
90
|
-
on:delete={(e) => {
|
|
91
|
-
addProperty?.handleDeleteArgument([e.detail])
|
|
92
|
-
}}
|
|
93
|
-
offset={yOffset}
|
|
94
|
-
displayWebhookWarning
|
|
95
|
-
/>
|
|
99
|
+
{:else}
|
|
100
|
+
<div class="p-4 border-b">
|
|
101
|
+
<FlowInputViewer schema={$flowStore.schema} />
|
|
102
|
+
</div>
|
|
103
|
+
{/if}
|
|
96
104
|
</FlowCard>
|
|
97
105
|
|
|
98
106
|
<Drawer bind:this={jsonPayload} size="800px">
|
|
@@ -53,7 +53,7 @@ export let showDiff = false;
|
|
|
53
53
|
|
|
54
54
|
<div class="flex flex-col flex-1 h-full overflow-auto p-2">
|
|
55
55
|
{#if showDate && date}
|
|
56
|
-
<span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent
|
|
56
|
+
<span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent {date} /></span>
|
|
57
57
|
{/if}
|
|
58
58
|
{#if notFound}
|
|
59
59
|
<div class="text-red-400">script not found at {path} in workspace {$workspaceStore}</div>
|
|
@@ -3,9 +3,9 @@ import DrawerContent from '../../common/drawer/DrawerContent.svelte';
|
|
|
3
3
|
import { getContext } from 'svelte';
|
|
4
4
|
import { filteredContentForExport } from '../utils';
|
|
5
5
|
import YAML from 'yaml';
|
|
6
|
-
import SimpleEditor from '../../SimpleEditor.svelte';
|
|
7
6
|
import { Button } from '../../common';
|
|
8
7
|
import { sendUserToast } from '../../../toast';
|
|
8
|
+
import { Loader2 } from 'lucide-svelte';
|
|
9
9
|
const { flowStore } = getContext('FlowEditorContext');
|
|
10
10
|
export let drawer;
|
|
11
11
|
let code = '';
|
|
@@ -49,7 +49,11 @@ function apply() {
|
|
|
49
49
|
</svelte:fragment>
|
|
50
50
|
|
|
51
51
|
{#if $flowStore}
|
|
52
|
-
|
|
52
|
+
{#await import('../../SimpleEditor.svelte')}
|
|
53
|
+
<Loader2 class="animate-spin" />
|
|
54
|
+
{:then Module}
|
|
55
|
+
<Module.default autoHeight bind:code lang="yaml" />
|
|
56
|
+
{/await}
|
|
53
57
|
{/if}
|
|
54
58
|
</DrawerContent>
|
|
55
59
|
</Drawer>
|
|
@@ -67,6 +67,7 @@ async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsFlow, in
|
|
|
67
67
|
if (inlineScript) {
|
|
68
68
|
const { language, kind, subkind } = inlineScript;
|
|
69
69
|
[module, state] = await createInlineScriptModule(language, kind, subkind, module.id, module.summary);
|
|
70
|
+
$flowStateStore[module.id] = state;
|
|
70
71
|
}
|
|
71
72
|
if (!modules)
|
|
72
73
|
return [module];
|
|
@@ -181,7 +182,7 @@ async function updateFlowInputsStore() {
|
|
|
181
182
|
}
|
|
182
183
|
</script>
|
|
183
184
|
|
|
184
|
-
<Portal>
|
|
185
|
+
<Portal name="flow-module">
|
|
185
186
|
<ConfirmationModal
|
|
186
187
|
title="Confirm deleting step with dependents"
|
|
187
188
|
confirmationText="Delete step"
|
|
@@ -303,7 +304,7 @@ async function updateFlowInputsStore() {
|
|
|
303
304
|
if (['branchone', 'branchall'].includes(detail.detail)) {
|
|
304
305
|
await addBranch(detail.modules[detail.index ?? 0])
|
|
305
306
|
}
|
|
306
|
-
|
|
307
|
+
$flowStateStore = $flowStateStore
|
|
307
308
|
$flowStore = $flowStore
|
|
308
309
|
dispatch('change')
|
|
309
310
|
}
|
|
@@ -82,7 +82,7 @@ shouldUsePortal={true} -->
|
|
|
82
82
|
role="none"
|
|
83
83
|
>
|
|
84
84
|
<div class="flex flex-row items-center gap-2">
|
|
85
|
-
<StepGenQuick on:insert bind:funcDesc {preFilter} {loading} />
|
|
85
|
+
<StepGenQuick {disableAi} on:insert bind:funcDesc {preFilter} {loading} />
|
|
86
86
|
{#if selectedKind != 'preprocessor' && selectedKind != 'flow'}
|
|
87
87
|
<ToggleHubWorkspaceQuick bind:selected={preFilter} />
|
|
88
88
|
{/if}
|
|
@@ -1,112 +1,126 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script>import { customIcon } from './store';
|
|
2
|
+
export let height = '24px';
|
|
2
3
|
export let width = '24px';
|
|
3
4
|
export let white = false;
|
|
4
5
|
export let spin = undefined;
|
|
5
6
|
</script>
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
18
|
-
x="0px"
|
|
19
|
-
y="0px"
|
|
20
|
-
{width}
|
|
21
|
-
{height}
|
|
22
|
-
viewBox="0 0 256 256"
|
|
23
|
-
style="enable-background:new 0 0 256 256;"
|
|
24
|
-
xml:space="preserve"
|
|
25
|
-
>
|
|
26
|
-
<style>
|
|
27
|
-
.st0 {
|
|
28
|
-
fill: #ffffff;
|
|
29
|
-
}
|
|
30
|
-
.st1 {
|
|
31
|
-
opacity: 0.4;
|
|
32
|
-
fill: #ffffff;
|
|
33
|
-
}
|
|
34
|
-
.st2 {
|
|
35
|
-
fill: #bcd4fc;
|
|
36
|
-
}
|
|
37
|
-
.st2-gray {
|
|
38
|
-
fill: #cccccc;
|
|
39
|
-
}
|
|
40
|
-
.st3 {
|
|
41
|
-
fill: #3b82f6;
|
|
42
|
-
}
|
|
43
|
-
.st4 {
|
|
44
|
-
fill: #b3b3b3;
|
|
45
|
-
}
|
|
46
|
-
.st5 {
|
|
47
|
-
fill: url(#SVGID_1_);
|
|
48
|
-
}
|
|
49
|
-
.st6 {
|
|
50
|
-
fill: url(#SVGID_00000021089067129159788970000008246765442136188072_);
|
|
51
|
-
}
|
|
52
|
-
.st7 {
|
|
53
|
-
fill: url(#SVGID_00000117639240116366130650000015074833605515028638_);
|
|
54
|
-
}
|
|
55
|
-
.st8 {
|
|
56
|
-
opacity: 0.4;
|
|
57
|
-
fill: url(#SVGID_00000101781798616409025840000016567063639337360777_);
|
|
58
|
-
}
|
|
59
|
-
.st9 {
|
|
60
|
-
opacity: 0.4;
|
|
61
|
-
fill: url(#SVGID_00000052086836598721292040000002033117744178971046_);
|
|
62
|
-
}
|
|
63
|
-
.st10 {
|
|
64
|
-
opacity: 0.4;
|
|
65
|
-
fill: url(#SVGID_00000159460939004760751800000002448009281983951536_);
|
|
66
|
-
}
|
|
67
|
-
.st11 {
|
|
68
|
-
opacity: 0.4;
|
|
69
|
-
fill: url(#SVGID_00000013177830667419993080000017721442101626521532_);
|
|
70
|
-
}
|
|
71
|
-
.st12 {
|
|
72
|
-
opacity: 0.4;
|
|
73
|
-
fill: url(#SVGID_00000152235521444854938490000006526001119318383285_);
|
|
74
|
-
}
|
|
75
|
-
.st13 {
|
|
76
|
-
opacity: 0.4;
|
|
77
|
-
fill: url(#SVGID_00000119823135212293698520000012774889010992664993_);
|
|
78
|
-
}</style>
|
|
79
|
-
<g>
|
|
80
|
-
<polygon
|
|
81
|
-
class:st2={!white}
|
|
82
|
-
class:st2-gray={white}
|
|
83
|
-
points="134.78,14.22 114.31,48.21 101.33,69.75 158.22,69.75 177.97,36.95 191.67,14.22 "
|
|
8
|
+
{#if customIcon}
|
|
9
|
+
{#if white}
|
|
10
|
+
<img src={customIcon.white} alt="Windmill Custom icon" {width} {height} class={$$props.class} />
|
|
11
|
+
{:else}
|
|
12
|
+
<img
|
|
13
|
+
src={customIcon.normal}
|
|
14
|
+
alt="Windmill Custom icon"
|
|
15
|
+
{width}
|
|
16
|
+
{height}
|
|
17
|
+
class={$$props.class}
|
|
84
18
|
/>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
19
|
+
{/if}
|
|
20
|
+
{:else}
|
|
21
|
+
<svg
|
|
22
|
+
class={$$props.class}
|
|
23
|
+
class:animate-[spin_2s_linear_infinite]={spin === 'veryfast'}
|
|
24
|
+
class:animate-[spin_5s_linear_infinite]={spin === 'fast'}
|
|
25
|
+
class:animate-[spin_15s_linear_infinite]={spin === 'medium'}
|
|
26
|
+
class:animate-[spin_50s_linear_infinite]={spin === 'slow'}
|
|
27
|
+
version="1.1"
|
|
28
|
+
id="Calque_1"
|
|
29
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
30
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
31
|
+
x="0px"
|
|
32
|
+
y="0px"
|
|
33
|
+
{width}
|
|
34
|
+
{height}
|
|
35
|
+
viewBox="0 0 256 256"
|
|
36
|
+
style="enable-background:new 0 0 256 256;"
|
|
37
|
+
xml:space="preserve"
|
|
38
|
+
>
|
|
39
|
+
<style>
|
|
40
|
+
.st0 {
|
|
41
|
+
fill: #ffffff;
|
|
42
|
+
}
|
|
43
|
+
.st1 {
|
|
44
|
+
opacity: 0.4;
|
|
45
|
+
fill: #ffffff;
|
|
46
|
+
}
|
|
47
|
+
.st2 {
|
|
48
|
+
fill: #bcd4fc;
|
|
49
|
+
}
|
|
50
|
+
.st2-gray {
|
|
51
|
+
fill: #cccccc;
|
|
52
|
+
}
|
|
53
|
+
.st3 {
|
|
54
|
+
fill: #3b82f6;
|
|
55
|
+
}
|
|
56
|
+
.st4 {
|
|
57
|
+
fill: #b3b3b3;
|
|
58
|
+
}
|
|
59
|
+
.st5 {
|
|
60
|
+
fill: url(#SVGID_1_);
|
|
61
|
+
}
|
|
62
|
+
.st6 {
|
|
63
|
+
fill: url(#SVGID_00000021089067129159788970000008246765442136188072_);
|
|
64
|
+
}
|
|
65
|
+
.st7 {
|
|
66
|
+
fill: url(#SVGID_00000117639240116366130650000015074833605515028638_);
|
|
67
|
+
}
|
|
68
|
+
.st8 {
|
|
69
|
+
opacity: 0.4;
|
|
70
|
+
fill: url(#SVGID_00000101781798616409025840000016567063639337360777_);
|
|
71
|
+
}
|
|
72
|
+
.st9 {
|
|
73
|
+
opacity: 0.4;
|
|
74
|
+
fill: url(#SVGID_00000052086836598721292040000002033117744178971046_);
|
|
75
|
+
}
|
|
76
|
+
.st10 {
|
|
77
|
+
opacity: 0.4;
|
|
78
|
+
fill: url(#SVGID_00000159460939004760751800000002448009281983951536_);
|
|
79
|
+
}
|
|
80
|
+
.st11 {
|
|
81
|
+
opacity: 0.4;
|
|
82
|
+
fill: url(#SVGID_00000013177830667419993080000017721442101626521532_);
|
|
83
|
+
}
|
|
84
|
+
.st12 {
|
|
85
|
+
opacity: 0.4;
|
|
86
|
+
fill: url(#SVGID_00000152235521444854938490000006526001119318383285_);
|
|
87
|
+
}
|
|
88
|
+
.st13 {
|
|
89
|
+
opacity: 0.4;
|
|
90
|
+
fill: url(#SVGID_00000119823135212293698520000012774889010992664993_);
|
|
91
|
+
}</style>
|
|
92
|
+
<g>
|
|
93
|
+
<polygon
|
|
94
|
+
class:st2={!white}
|
|
95
|
+
class:st2-gray={white}
|
|
96
|
+
points="134.78,14.22 114.31,48.21 101.33,69.75 158.22,69.75 177.97,36.95 191.67,14.22 "
|
|
97
|
+
/>
|
|
98
|
+
<polygon
|
|
99
|
+
class:st3={!white}
|
|
100
|
+
class:st0={white}
|
|
101
|
+
points="227.55,69.75 186.61,69.75 101.33,69.75 129.78,119.02 158.16,119.02 228.61,119.02 256,119.02 "
|
|
102
|
+
/>
|
|
103
|
+
<polygon
|
|
104
|
+
class:st3={!white}
|
|
105
|
+
class:st0={white}
|
|
106
|
+
points="136.93,132.47 116.46,167.93 73.82,241.78 130.71,241.78 144.9,217.2 180.13,156.18 193.82,132.46
|
|
94
107
|
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
</svg>
|
|
108
|
+
/>
|
|
109
|
+
<polygon
|
|
110
|
+
class:st3={!white}
|
|
111
|
+
class:st0={white}
|
|
112
|
+
points="121.7,131.95 101.23,96.49 58.59,22.63 30.15,71.91 44.34,96.49 79.57,157.5 93.26,181.22 "
|
|
113
|
+
/>
|
|
114
|
+
<polygon
|
|
115
|
+
class:st2={!white}
|
|
116
|
+
class:st2-gray={white}
|
|
117
|
+
points="64.81,131.95 25.15,131.21 0,130.74 28.44,180.01 66.73,180.72 93.26,181.21 "
|
|
118
|
+
/>
|
|
119
|
+
<polygon
|
|
120
|
+
class:st2={!white}
|
|
121
|
+
class:st2-gray={white}
|
|
122
|
+
points="165.38,181.74 184.58,216.46 196.75,238.47 225.19,189.2 206.66,155.69 193.83,132.46 "
|
|
123
|
+
/>
|
|
124
|
+
</g>
|
|
125
|
+
</svg>
|
|
126
|
+
{/if}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export let customIcon = undefined;
|
|
@@ -71,7 +71,7 @@ let open = false;
|
|
|
71
71
|
</div>
|
|
72
72
|
</MultiSelect>
|
|
73
73
|
</div>
|
|
74
|
-
<Portal>
|
|
74
|
+
<Portal name="multi-select">
|
|
75
75
|
<div use:floatingContent class="z5000" hidden={!open}>
|
|
76
76
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
77
77
|
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
@@ -25,7 +25,7 @@ function isJobCancelable(j) {
|
|
|
25
25
|
}
|
|
26
26
|
</script>
|
|
27
27
|
|
|
28
|
-
<Portal>
|
|
28
|
+
<Portal name="run-row">
|
|
29
29
|
<ScheduleEditor on:update={() => goto('/schedules')} bind:this={scheduleEditor} />
|
|
30
30
|
</Portal>
|
|
31
31
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
@@ -86,7 +86,7 @@ function isJobCancelable(j) {
|
|
|
86
86
|
<div class="flex flex-row items-center gap-1 text-gray-500 dark:text-gray-300 text-2xs">
|
|
87
87
|
{#if job}
|
|
88
88
|
{#if 'started_at' in job && job.started_at}
|
|
89
|
-
Started <TimeAgo
|
|
89
|
+
Started <TimeAgo agoOnlyIfRecent date={job.started_at ?? ''} />
|
|
90
90
|
{#if job && 'duration_ms' in job && job.duration_ms != undefined}
|
|
91
91
|
(Ran in {msToReadableTime(
|
|
92
92
|
job.duration_ms
|
|
@@ -102,11 +102,7 @@ function isJobCancelable(j) {
|
|
|
102
102
|
{:else if `scheduled_for` in job && job.scheduled_for && forLater(job.scheduled_for)}
|
|
103
103
|
Scheduled for {displayDate(job.scheduled_for)}
|
|
104
104
|
{:else}
|
|
105
|
-
Waiting for executor (created <TimeAgo
|
|
106
|
-
withDate
|
|
107
|
-
agoOnlyIfRecent
|
|
108
|
-
date={job.created_at || ''}
|
|
109
|
-
/>)
|
|
105
|
+
Waiting for executor (created <TimeAgo agoOnlyIfRecent date={job.created_at || ''} />)
|
|
110
106
|
{/if}
|
|
111
107
|
{/if}
|
|
112
108
|
</div>
|