windmill-components 1.35.42 → 1.36.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/components/AppConnect.svelte +85 -59
- package/components/ArgInput.svelte +50 -33
- package/components/ArgInput.svelte.d.ts +1 -1
- package/components/Button.svelte +15 -48
- package/components/Button.svelte.d.ts +1 -1
- package/components/CronInput.svelte +1 -1
- package/components/DisplayResult.svelte +75 -67
- package/components/Dropdown.svelte +9 -7
- package/components/Editor.svelte +187 -178
- package/components/Editor.svelte.d.ts +4 -2
- package/components/EditorBar.svelte +135 -98
- package/components/EditorBar.svelte.d.ts +2 -1
- package/components/FlowBuilder.svelte +115 -134
- package/components/FlowJobResult.svelte +4 -5
- package/components/FlowModulesViewer.svelte +89 -7
- package/components/FlowModulesViewer.svelte.d.ts +1 -0
- package/components/FlowPreviewContent.svelte +88 -27
- package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/components/FlowStatusViewer.svelte +39 -24
- package/components/FlowStatusViewer.svelte.d.ts +0 -1
- package/components/FlowViewer.svelte +17 -11
- package/components/GroupModal.svelte +10 -1
- package/components/HighlightCode.svelte +22 -0
- package/components/HighlightCode.svelte.d.ts +17 -0
- package/components/IconedPath.svelte +9 -7
- package/components/InputTransformForm.svelte +97 -115
- package/components/InputTransformForm.svelte.d.ts +0 -1
- package/components/InputTransformsViewer.svelte +1 -1
- package/components/InviteGlobalUser.svelte +8 -8
- package/components/InviteUser.svelte +9 -9
- package/components/ItemPicker.svelte +37 -30
- package/components/ItemPicker.svelte.d.ts +2 -1
- package/components/JobStatus.svelte +2 -1
- package/components/LogViewer.svelte +23 -0
- package/components/LogViewer.svelte.d.ts +19 -0
- package/components/ModulePreview.svelte +107 -0
- package/components/ModulePreview.svelte.d.ts +24 -0
- package/components/Path.svelte +1 -1
- package/components/RadioButton.svelte +3 -2
- package/components/ResourceEditor.svelte +22 -34
- package/components/ResourceTypePicker.svelte +23 -34
- package/components/RunForm.svelte +34 -31
- package/components/RunForm.svelte.d.ts +6 -2
- package/components/SchemaEditor.svelte +19 -11
- package/components/SchemaForm.svelte +3 -3
- package/components/SchemaForm.svelte.d.ts +1 -1
- package/components/SchemaModal.svelte +18 -7
- package/components/ScriptBuilder.svelte +99 -83
- package/components/ScriptBuilder.svelte.d.ts +2 -4
- package/components/ScriptEditor.svelte +71 -143
- package/components/ScriptEditor.svelte.d.ts +0 -5
- package/components/ScriptPicker.svelte +24 -14
- package/components/ScriptPicker.svelte.d.ts +2 -1
- package/components/ScriptSchema.svelte +8 -11
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/ShareModal.svelte +6 -6
- package/components/SharedBadge.svelte +5 -13
- package/components/SimpleEditor.svelte +14 -10
- package/components/StringTypeNarrowing.svelte +24 -30
- package/components/TestJobLoader.svelte +106 -0
- package/components/TestJobLoader.svelte.d.ts +26 -0
- package/components/Tooltip.svelte +3 -2
- package/components/VariableEditor.svelte +15 -24
- package/components/common/actionRow/ActionRow.svelte +31 -0
- package/components/common/actionRow/ActionRow.svelte.d.ts +22 -0
- package/components/common/alert/Alert.svelte +53 -0
- package/components/common/alert/Alert.svelte.d.ts +20 -0
- package/components/common/alert/model.d.ts +1 -0
- package/components/common/alert/model.js +1 -0
- package/components/common/badge/Badge.svelte +76 -0
- package/components/common/badge/Badge.svelte.d.ts +28 -0
- package/components/common/badge/model.d.ts +8 -0
- package/components/common/badge/model.js +1 -0
- package/components/common/button/Button.svelte +110 -0
- package/components/common/button/Button.svelte.d.ts +39 -0
- package/components/common/button/model.d.ts +6 -0
- package/components/common/button/model.js +1 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte +72 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +23 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +41 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +14 -0
- package/components/common/confirmationModal/dirtyStore.d.ts +1 -0
- package/components/common/confirmationModal/dirtyStore.js +2 -0
- package/components/common/drawer/Drawer.svelte +3 -0
- package/components/common/drawer/Drawer.svelte.d.ts +2 -0
- package/components/common/index.d.ts +14 -0
- package/components/common/index.js +14 -0
- package/components/common/tabs/TabContent.svelte +3 -2
- package/components/common/tabs/TabContent.svelte.d.ts +1 -0
- package/components/common/tabs/Tabs.svelte +8 -1
- package/components/common/tabs/Tabs.svelte.d.ts +2 -0
- package/components/common/toggleButton/ToggleButton.svelte +20 -0
- package/components/common/toggleButton/ToggleButton.svelte.d.ts +19 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte +33 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +24 -0
- package/components/flows/FlowEditor.svelte +30 -0
- package/components/{FlowEditor.svelte.d.ts → flows/FlowEditor.svelte.d.ts} +1 -6
- package/components/flows/common/FlowCard.svelte +9 -0
- package/components/flows/common/FlowCard.svelte.d.ts +21 -0
- package/components/flows/common/FlowCardHeader.svelte +39 -0
- package/components/flows/common/FlowCardHeader.svelte.d.ts +20 -0
- package/components/flows/content/CopyFirstStepSchema.svelte +13 -0
- package/components/flows/{CopyFirstStepSchema.svelte.d.ts → content/CopyFirstStepSchema.svelte.d.ts} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte → content/DynamicInputHelpBox.svelte} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte.d.ts → content/DynamicInputHelpBox.svelte.d.ts} +0 -0
- package/components/flows/content/FlowEditorPanel.svelte +25 -0
- package/components/flows/content/FlowEditorPanel.svelte.d.ts +16 -0
- package/components/flows/content/FlowFailureModule.svelte +15 -0
- package/components/flows/content/FlowFailureModule.svelte.d.ts +14 -0
- package/components/flows/content/FlowInput.svelte +26 -0
- package/components/flows/{FlowInput.svelte.d.ts → content/FlowInput.svelte.d.ts} +0 -0
- package/components/flows/content/FlowInputs.svelte +91 -0
- package/components/flows/{FlowInputs.svelte.d.ts → content/FlowInputs.svelte.d.ts} +1 -0
- package/components/flows/content/FlowLoop.svelte +168 -0
- package/components/flows/content/FlowLoop.svelte.d.ts +18 -0
- package/components/flows/content/FlowLoopWrapper.svelte +9 -0
- package/components/flows/content/FlowLoopWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowModule.svelte +211 -0
- package/components/flows/content/FlowModule.svelte.d.ts +29 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte +76 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleHeader.svelte +157 -0
- package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts} +5 -3
- package/components/flows/content/FlowModuleScript.svelte +21 -0
- package/components/flows/content/FlowModuleScript.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleSuspend.svelte +27 -0
- package/components/flows/content/FlowModuleSuspend.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleWrapper.svelte +45 -0
- package/components/flows/content/FlowModuleWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowRetries.svelte +80 -0
- package/components/flows/content/FlowRetries.svelte.d.ts +17 -0
- package/components/flows/content/FlowSchedules.svelte +18 -0
- package/components/flows/content/FlowSchedules.svelte.d.ts +14 -0
- package/components/flows/content/FlowSettings.svelte +78 -0
- package/components/flows/{FlowSettings.svelte.d.ts → content/FlowSettings.svelte.d.ts} +2 -6
- package/components/flows/content/RemoveStepConfirmationModal.svelte +32 -0
- package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +19 -0
- package/components/flows/flowState.d.ts +8 -7
- package/components/flows/flowState.js +25 -46
- package/components/flows/flowStateUtils.d.ts +16 -14
- package/components/flows/flowStateUtils.js +81 -73
- package/components/flows/flowStore.js +7 -4
- package/components/flows/header/FlowImportExportMenu.svelte +55 -0
- package/components/flows/header/FlowImportExportMenu.svelte.d.ts +14 -0
- package/components/flows/header/FlowPreviewButtons.svelte +57 -0
- package/components/flows/header/FlowPreviewButtons.svelte.d.ts +14 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte +60 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +14 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte +80 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +32 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte +241 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +20 -0
- package/components/flows/pickers/PickHubScript.svelte +5 -3
- package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -1
- package/components/flows/pickers/PickScript.svelte +4 -12
- package/components/flows/pickers/PickScript.svelte.d.ts +1 -1
- package/components/flows/propPicker/PropPickerWrapper.svelte +44 -0
- package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +33 -0
- package/components/flows/scheduleUtils.d.ts +0 -1
- package/components/flows/scheduleUtils.js +0 -1
- package/components/flows/types.d.ts +8 -0
- package/components/flows/types.js +1 -0
- package/components/flows/utils.d.ts +3 -1
- package/components/flows/utils.js +26 -10
- package/components/icons/AirtableIcon.svelte +1 -1
- package/components/icons/DiscordIcon.svelte +1 -1
- package/components/icons/GCloudIcon.svelte +1 -1
- package/components/icons/GItlabIcon.svelte +1 -1
- package/components/icons/GSheetsIcon.svelte +1 -1
- package/components/icons/GcalIcon.svelte +1 -1
- package/components/icons/GdriveIcon.svelte +1 -1
- package/components/icons/GithubIcon.svelte +1 -1
- package/components/icons/GmailIcon.svelte +1 -1
- package/components/icons/HatIcon.svelte +19 -0
- package/components/icons/HatIcon.svelte.d.ts +16 -0
- package/components/icons/MastodonIcon.svelte +1 -1
- package/components/icons/MatrixIcon.svelte +1 -1
- package/components/icons/PostgresIcon.svelte +1 -1
- package/components/icons/S3Icon.svelte +1 -1
- package/components/icons/Slack.svelte +1 -1
- package/components/icons/TogglIcon.svelte +8 -46
- package/components/jobs/JobDetail.svelte +1 -1
- package/components/landing/FlowGettingStarted.svelte +22 -68
- package/components/landing/FlowLandingBox.svelte +1 -1
- package/components/landing/RessourceGettingStarted.svelte +7 -37
- package/components/landing/ScriptBox.svelte +33 -60
- package/components/landing/ScriptGettingStarted.svelte +23 -69
- package/components/propertyPicker/ObjectViewer.svelte +18 -12
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +108 -11
- package/components/propertyPicker/WarningMessage.svelte +2 -15
- package/components/script_editor/LogPanel.svelte +108 -119
- package/components/script_editor/LogPanel.svelte.d.ts +2 -0
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/editorUtils.d.ts +3 -0
- package/editorUtils.js +1 -0
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +1 -0
- package/gen/models/CompletedJob.d.ts +2 -1
- package/gen/models/CompletedJob.js +1 -0
- package/gen/models/FlowModule.d.ts +3 -0
- package/gen/models/FlowStatus.d.ts +3 -0
- package/gen/models/FlowStatusModule.d.ts +1 -1
- package/gen/models/Preview.d.ts +2 -1
- package/gen/models/Preview.js +1 -0
- package/gen/models/QueuedJob.d.ts +2 -1
- package/gen/models/QueuedJob.js +1 -0
- package/gen/models/RawScript.d.ts +2 -1
- package/gen/models/RawScript.js +1 -0
- package/gen/models/Retry.d.ts +11 -0
- package/gen/models/Retry.js +4 -0
- package/gen/models/Script.d.ts +9 -2
- package/gen/models/Script.js +8 -0
- package/gen/services/JobService.d.ts +40 -0
- package/gen/services/JobService.js +70 -0
- package/gen/services/ScriptService.d.ts +14 -3
- package/gen/services/ScriptService.js +13 -0
- package/infer.d.ts +1 -1
- package/infer.js +6 -1
- package/package.json +71 -38
- package/script_helpers.d.ts +8 -2
- package/script_helpers.js +88 -16
- package/stores.d.ts +1 -1
- package/utils.d.ts +8 -6
- package/utils.js +57 -21
- package/components/FlowEditor.svelte +0 -55
- package/components/FlowPreview.svelte +0 -107
- package/components/FlowPreview.svelte.d.ts +0 -23
- package/components/ModuleStep.svelte +0 -131
- package/components/ModuleStep.svelte.d.ts +0 -25
- package/components/flows/CopyFirstStepSchema.svelte +0 -13
- package/components/flows/FlowBox.svelte +0 -16
- package/components/flows/FlowBox.svelte.d.ts +0 -23
- package/components/flows/FlowBoxHeader.svelte +0 -16
- package/components/flows/FlowBoxHeader.svelte.d.ts +0 -21
- package/components/flows/FlowInput.svelte +0 -22
- package/components/flows/FlowInputs.svelte +0 -65
- package/components/flows/FlowModuleHeader.svelte +0 -109
- package/components/flows/FlowSettings.svelte +0 -165
- package/components/flows/FlowTimeline.svelte +0 -169
- package/components/flows/FlowTimeline.svelte.d.ts +0 -21
- package/components/flows/stepOpenedStore.d.ts +0 -1
- package/components/flows/stepOpenedStore.js +0 -6
- package/components/propertyPicker/OverlayPropertyPicker.svelte +0 -69
- package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +0 -24
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>import { truncate } from '../../utils';
|
|
2
2
|
import { createEventDispatcher } from 'svelte';
|
|
3
|
+
import { NEVER_TESTED_THIS_FAR } from '../flows/flowStateUtils';
|
|
3
4
|
import { getTypeAsString } from '../flows/utils';
|
|
4
5
|
import { computeKey } from './utils';
|
|
5
6
|
import WarningMessage from './WarningMessage.svelte';
|
|
@@ -9,6 +10,7 @@ export let isLast = true;
|
|
|
9
10
|
export let currentPath = '';
|
|
10
11
|
export let pureViewer = false;
|
|
11
12
|
export let collapsed = level == 3 || Array.isArray(json);
|
|
13
|
+
export let rawKey = false;
|
|
12
14
|
const collapsedSymbol = '...';
|
|
13
15
|
let keys;
|
|
14
16
|
let isArray;
|
|
@@ -25,21 +27,21 @@ function collapse() {
|
|
|
25
27
|
}
|
|
26
28
|
const dispatch = createEventDispatcher();
|
|
27
29
|
function selectProp(key) {
|
|
28
|
-
dispatch('select', computeKey(key, isArray, currentPath));
|
|
30
|
+
dispatch('select', rawKey ? key : computeKey(key, isArray, currentPath));
|
|
29
31
|
}
|
|
30
32
|
</script>
|
|
31
33
|
|
|
32
34
|
{#if keys.length > 0}
|
|
33
35
|
<span class:hidden={collapsed}>
|
|
34
|
-
{#if level != 0}
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
{#if level != 0}
|
|
37
|
+
<span class="cursor-pointer hover:bg-gray-200 px-1 rounded" on:click={collapse}> (-) </span>
|
|
38
|
+
{/if}
|
|
37
39
|
<ul class="w-full">
|
|
38
40
|
{#each keys as key, index}
|
|
39
41
|
<li class="pt-1">
|
|
40
|
-
<button on:click={() => selectProp(key)} class="key rounded px-1 hover:bg-
|
|
41
|
-
|
|
42
|
-
>
|
|
42
|
+
<button on:click={() => selectProp(key)} class="key rounded px-1 hover:bg-blue-100">
|
|
43
|
+
{!isArray ? key : index}:
|
|
44
|
+
</button>
|
|
43
45
|
|
|
44
46
|
{#if getTypeAsString(json[key]) === 'object'}
|
|
45
47
|
<svelte:self
|
|
@@ -52,11 +54,13 @@ function selectProp(key) {
|
|
|
52
54
|
/>
|
|
53
55
|
{:else}
|
|
54
56
|
<button
|
|
55
|
-
class="val rounded px-1 hover:bg-
|
|
57
|
+
class="val rounded px-1 hover:bg-blue-100 {getTypeAsString(json[key])}"
|
|
56
58
|
on:click={() => selectProp(key)}
|
|
57
59
|
>
|
|
58
|
-
{#if json[key] ===
|
|
60
|
+
{#if json[key] === NEVER_TESTED_THIS_FAR}
|
|
59
61
|
<WarningMessage />
|
|
62
|
+
{:else if json[key] == undefined}
|
|
63
|
+
<span>undefined</span>
|
|
60
64
|
{:else}
|
|
61
65
|
<span>{truncate(JSON.stringify(json[key]), 40)}</span>
|
|
62
66
|
{/if}
|
|
@@ -66,7 +70,7 @@ function selectProp(key) {
|
|
|
66
70
|
{/each}
|
|
67
71
|
</ul>
|
|
68
72
|
</span>
|
|
69
|
-
<span class="cursor-pointer hover:bg-
|
|
73
|
+
<span class="cursor-pointer hover:bg-gray-200" class:hidden={!collapsed} on:click={collapse}>
|
|
70
74
|
{openBracket}{collapsedSymbol}{closeBracket}
|
|
71
75
|
</span>
|
|
72
76
|
{#if !isLast && collapsed}
|
|
@@ -83,6 +87,8 @@ function selectProp(key) {
|
|
|
83
87
|
border-left: 1px dotted lightgray;
|
|
84
88
|
--tw-text-opacity: 1;
|
|
85
89
|
color: rgb(0 0 0 / var(--tw-text-opacity));
|
|
90
|
+
font-size: 0.875rem;
|
|
91
|
+
line-height: 1.25rem;
|
|
86
92
|
}
|
|
87
93
|
|
|
88
94
|
.val {
|
|
@@ -99,7 +105,7 @@ function selectProp(key) {
|
|
|
99
105
|
}
|
|
100
106
|
.val.string {
|
|
101
107
|
--tw-text-opacity: 1;
|
|
102
|
-
color: rgb(
|
|
108
|
+
color: rgb(5 122 85 / var(--tw-text-opacity));
|
|
103
109
|
}
|
|
104
110
|
.val.number {
|
|
105
111
|
--tw-text-opacity: 1;
|
|
@@ -107,5 +113,5 @@ function selectProp(key) {
|
|
|
107
113
|
}
|
|
108
114
|
.val.boolean {
|
|
109
115
|
--tw-text-opacity: 1;
|
|
110
|
-
color: rgb(
|
|
116
|
+
color: rgb(28 100 242 / var(--tw-text-opacity));
|
|
111
117
|
}</style>
|
|
@@ -1,22 +1,119 @@
|
|
|
1
|
-
<script>import
|
|
1
|
+
<script>import { ResourceService, VariableService } from '../../gen';
|
|
2
|
+
import { workspaceStore } from '../../stores';
|
|
3
|
+
import { faClose } from '@fortawesome/free-solid-svg-icons';
|
|
4
|
+
import { getContext } from 'svelte';
|
|
5
|
+
import Icon from 'svelte-awesome';
|
|
6
|
+
import { Button } from '../common';
|
|
7
|
+
import { createEventDispatcher } from 'svelte';
|
|
8
|
+
import ObjectViewer from './ObjectViewer.svelte';
|
|
2
9
|
import { keepByKey } from './utils';
|
|
3
10
|
export let pickableProperties = {};
|
|
11
|
+
let variables = {};
|
|
12
|
+
let resources = {};
|
|
13
|
+
let displayVariable = false;
|
|
14
|
+
let displayResources = false;
|
|
15
|
+
const dispatch = createEventDispatcher();
|
|
4
16
|
const EMPTY_STRING = '';
|
|
5
17
|
let search = '';
|
|
18
|
+
const { propPickerConfig, clearFocus } = getContext('PropPickerWrapper');
|
|
6
19
|
$: propsFiltered =
|
|
7
20
|
search === EMPTY_STRING ? pickableProperties : keepByKey(pickableProperties, search);
|
|
21
|
+
async function loadVariables() {
|
|
22
|
+
variables = Object.fromEntries((await VariableService.listVariable({
|
|
23
|
+
workspace: $workspaceStore ?? ''
|
|
24
|
+
})).map((variable) => [variable.path, variable.is_secret ? '***' : variable.value ?? '']));
|
|
25
|
+
}
|
|
26
|
+
async function loadResources() {
|
|
27
|
+
resources = Object.fromEntries((await ResourceService.listResource({
|
|
28
|
+
workspace: $workspaceStore ?? ''
|
|
29
|
+
})).map((resource) => [resource.path, resource.description ?? '']));
|
|
30
|
+
}
|
|
8
31
|
</script>
|
|
9
32
|
|
|
10
|
-
<div
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
33
|
+
<div class="px-2 pt-2">
|
|
34
|
+
<input
|
|
35
|
+
type="text"
|
|
36
|
+
bind:value={search}
|
|
37
|
+
class="bg-gray-50 mt-1 border border-gray-300 text-gray-900 text-sm rounded-lg block px-2 mb-2 w-full"
|
|
38
|
+
placeholder="Search prop..."
|
|
39
|
+
/>
|
|
40
|
+
<div class="flex justify-between items-center space-x-1">
|
|
41
|
+
<span class="font-bold text-sm">Step Context</span>
|
|
42
|
+
<div class="flex space-x-2 items-center">
|
|
43
|
+
{#if $propPickerConfig}
|
|
44
|
+
<span
|
|
45
|
+
class="flex items-center bg-blue-100 text-blue-800 text-xs font-semibold px-2 py-1 rounded dark:bg-green-200 dark:text-green-900"
|
|
46
|
+
>
|
|
47
|
+
{`Selected: ${$propPickerConfig?.propName}`}
|
|
48
|
+
</span>
|
|
49
|
+
<span
|
|
50
|
+
class="flex items-center bg-blue-100 text-blue-800 text-xs font-semibold px-2 py-1 rounded dark:bg-green-200 dark:text-green-900"
|
|
51
|
+
>
|
|
52
|
+
{`Mode: ${$propPickerConfig?.insertionMode}`}
|
|
53
|
+
</span>
|
|
54
|
+
<button
|
|
55
|
+
class="border px-2 py-1 text-xs rounded-md flex items-center hover:bg-gray-50 hover:text-gray-900"
|
|
56
|
+
on:click={() => clearFocus()}
|
|
57
|
+
>
|
|
58
|
+
<Icon data={faClose} class="mr-2" scale={0.8} />
|
|
59
|
+
Deselect
|
|
60
|
+
</button>
|
|
61
|
+
{/if}
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="overflow-y-auto mb-2">
|
|
20
65
|
<ObjectViewer json={propsFiltered} on:select />
|
|
21
66
|
</div>
|
|
67
|
+
<span class="font-bold text-sm">Variables </span>
|
|
68
|
+
<div class="overflow-y-auto mb-2">
|
|
69
|
+
{#if displayVariable}
|
|
70
|
+
<Button
|
|
71
|
+
color="light"
|
|
72
|
+
size="xs"
|
|
73
|
+
on:click={() => {
|
|
74
|
+
displayVariable = false
|
|
75
|
+
}}>(-)</Button
|
|
76
|
+
>
|
|
77
|
+
<ObjectViewer
|
|
78
|
+
rawKey={true}
|
|
79
|
+
json={variables}
|
|
80
|
+
on:select={(e) => dispatch('select', `variable('${e.detail}')`)}
|
|
81
|
+
/>
|
|
82
|
+
{:else}
|
|
83
|
+
<Button
|
|
84
|
+
color="light"
|
|
85
|
+
size="xs"
|
|
86
|
+
on:click={async () => {
|
|
87
|
+
await loadVariables()
|
|
88
|
+
displayVariable = true
|
|
89
|
+
}}>{'{...}'}</Button
|
|
90
|
+
>
|
|
91
|
+
{/if}
|
|
92
|
+
</div>
|
|
93
|
+
<span class="font-bold text-sm">Resources</span>
|
|
94
|
+
<div class="overflow-y-auto mb-2">
|
|
95
|
+
{#if displayResources}
|
|
96
|
+
<Button
|
|
97
|
+
color="light"
|
|
98
|
+
size="xs"
|
|
99
|
+
on:click={() => {
|
|
100
|
+
displayResources = false
|
|
101
|
+
}}>(-)</Button
|
|
102
|
+
>
|
|
103
|
+
<ObjectViewer
|
|
104
|
+
rawKey={true}
|
|
105
|
+
json={resources}
|
|
106
|
+
on:select={(e) => dispatch('select', `resource('${e.detail}')`)}
|
|
107
|
+
/>
|
|
108
|
+
{:else}
|
|
109
|
+
<Button
|
|
110
|
+
color="light"
|
|
111
|
+
size="xs"
|
|
112
|
+
on:click={async () => {
|
|
113
|
+
await loadResources()
|
|
114
|
+
displayResources = true
|
|
115
|
+
}}>{'{...}'}</Button
|
|
116
|
+
>
|
|
117
|
+
{/if}
|
|
118
|
+
</div>
|
|
22
119
|
</div>
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
<div class="flex px-
|
|
2
|
-
<
|
|
3
|
-
class="flex-shrink-0 w-5 h-5 text-yellow-700 dark:text-yellow-800"
|
|
4
|
-
fill="currentColor"
|
|
5
|
-
viewBox="0 0 20 20"
|
|
6
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
7
|
-
><path
|
|
8
|
-
fill-rule="evenodd"
|
|
9
|
-
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
|
|
10
|
-
clip-rule="evenodd"
|
|
11
|
-
/></svg
|
|
12
|
-
>
|
|
13
|
-
<div class="ml-3 text-sm font-medium text-yellow-700 dark:text-yellow-800">
|
|
14
|
-
Previous results are not available unless a preview is run on the previous step.
|
|
15
|
-
</div>
|
|
1
|
+
<div class="flex px-2 bg-yellow-100 rounded-lg dark:bg-yellow-200" role="alert">
|
|
2
|
+
<div class="text-sm font-medium text-yellow-700 dark:text-yellow-800">Require testing flow</div>
|
|
16
3
|
</div>
|
|
@@ -11,8 +11,11 @@ import DisplayResult from '../DisplayResult.svelte';
|
|
|
11
11
|
import TableCustom from '../TableCustom.svelte';
|
|
12
12
|
import Drawer from '../common/drawer/Drawer.svelte';
|
|
13
13
|
import { Highlight } from 'svelte-highlight';
|
|
14
|
-
import { json
|
|
14
|
+
import { json } from 'svelte-highlight/languages';
|
|
15
15
|
import DrawerContent from '../common/drawer/DrawerContent.svelte';
|
|
16
|
+
import HighlightCode from '../HighlightCode.svelte';
|
|
17
|
+
import { VSplitPane } from 'svelte-split-pane';
|
|
18
|
+
import LogViewer from '../LogViewer.svelte';
|
|
16
19
|
export let path;
|
|
17
20
|
export let lang;
|
|
18
21
|
export let previewIsLoading = false;
|
|
@@ -22,6 +25,9 @@ export let lastSave;
|
|
|
22
25
|
let selectedTab = 'logs';
|
|
23
26
|
let drawerOpen = false;
|
|
24
27
|
let drawerContent = undefined;
|
|
28
|
+
export function setFocusToLogs() {
|
|
29
|
+
selectedTab = 'logs';
|
|
30
|
+
}
|
|
25
31
|
function openDrawer(newContent) {
|
|
26
32
|
drawerContent = newContent;
|
|
27
33
|
drawerOpen = true;
|
|
@@ -39,134 +45,117 @@ function closeDrawer() {
|
|
|
39
45
|
<pre class="overflow-x-auto break-all relative h-full m-2 text-xs bg-white shadow-inner p-2">
|
|
40
46
|
{drawerContent?.content}
|
|
41
47
|
</pre>
|
|
42
|
-
{:else if drawerContent?.mode === 'deno'}
|
|
43
|
-
<
|
|
44
|
-
{:else if drawerContent?.mode === 'python3'}
|
|
45
|
-
<Highlight language={python} code={drawerContent?.content} />
|
|
48
|
+
{:else if drawerContent?.mode === 'deno' || drawerContent?.mode === 'python3' || drawerContent?.mode === 'go'}
|
|
49
|
+
<HighlightCode language={drawerContent?.mode} code={drawerContent?.content} />
|
|
46
50
|
{/if}
|
|
47
51
|
</DrawerContent>
|
|
48
52
|
</Drawer>
|
|
49
53
|
|
|
50
54
|
<Tabs bind:selected={selectedTab}>
|
|
51
|
-
<Tab value="logs"><span class="text-xs">Logs</span></Tab>
|
|
52
|
-
<Tab value="results"><span class="text-xs">Results</span></Tab>
|
|
55
|
+
<Tab value="logs"><span class="text-xs">Logs/Result</span></Tab>
|
|
53
56
|
<Tab value="history"><span class="text-xs">History</span></Tab>
|
|
54
57
|
<Tab value="last_save"><span class="text-xs">Last save</span></Tab>
|
|
55
58
|
|
|
56
59
|
<svelte:fragment slot="content">
|
|
57
|
-
<
|
|
58
|
-
<
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<pre class="overflow-x-auto break-all relative h-full">
|
|
71
|
-
{#if previewJob && 'result' in previewJob && previewJob.result}
|
|
72
|
-
<DisplayResult result={previewJob.result} />
|
|
73
|
-
{:else if previewIsLoading}
|
|
74
|
-
Running...
|
|
75
|
-
{:else}
|
|
76
|
-
No output is available yet
|
|
77
|
-
{/if}
|
|
60
|
+
<TabContent value="logs" class="h-full w-full relative">
|
|
61
|
+
<VSplitPane topPanelSize="50%" downPanelSize="50%">
|
|
62
|
+
<top slot="top">
|
|
63
|
+
<LogViewer content={previewJob?.logs} isLoading={previewIsLoading} />
|
|
64
|
+
</top>
|
|
65
|
+
<down slot="down">
|
|
66
|
+
<pre
|
|
67
|
+
class="overflow-x-auto break-all relative h-full p-2 text-sm">{#if previewJob && 'result' in previewJob && previewJob.result}<DisplayResult
|
|
68
|
+
result={previewJob.result}
|
|
69
|
+
/>
|
|
70
|
+
{:else if previewIsLoading}Waiting for Result...
|
|
71
|
+
{:else}Test to see the result here
|
|
72
|
+
{/if}
|
|
78
73
|
</pre>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
</
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
74
|
+
</down>
|
|
75
|
+
</VSplitPane>
|
|
76
|
+
</TabContent>
|
|
77
|
+
<TabContent value="history" class="p-2">
|
|
78
|
+
<TableCustom>
|
|
79
|
+
<tr slot="header-row">
|
|
80
|
+
<th class="text-xs">Id</th>
|
|
81
|
+
<th class="text-xs">Created at</th>
|
|
82
|
+
<th class="text-xs">Success</th>
|
|
83
|
+
<th class="text-xs">Result</th>
|
|
84
|
+
<th class="text-xs">Code</th>
|
|
85
|
+
<th class="text-xs">Logs</th>
|
|
86
|
+
</tr>
|
|
87
|
+
<tbody slot="body">
|
|
88
|
+
{#each pastPreviews as { id, created_at, success, result }}
|
|
89
|
+
<tr class="">
|
|
90
|
+
<td class="text-xs">
|
|
91
|
+
<a class="pr-3" href="/run/{id}" target="_blank">{id.substring(30)}</a>
|
|
92
|
+
</td>
|
|
93
|
+
<td class="text-xs">{displayDate(created_at)}</td>
|
|
94
|
+
<td class="text-xs">
|
|
95
|
+
{#if success}
|
|
96
|
+
<Icon class="text-green-600" data={check} scale={0.6} />
|
|
97
|
+
{:else}
|
|
98
|
+
<Icon class="text-red-700" data={faTimes} scale={0.6} />
|
|
99
|
+
{/if}
|
|
100
|
+
</td>
|
|
101
|
+
<td class="text-xs">
|
|
102
|
+
<a
|
|
103
|
+
href="#result"
|
|
104
|
+
class="text-xs"
|
|
105
|
+
on:click={() => {
|
|
106
|
+
openDrawer({ mode: 'json', content: result, title: 'Result' })
|
|
107
|
+
}}
|
|
108
|
+
>
|
|
109
|
+
{JSON.stringify(result).substring(0, 30)}...
|
|
110
|
+
</a>
|
|
111
|
+
</td>
|
|
112
|
+
<td class="text-xs">
|
|
113
|
+
<a
|
|
114
|
+
href="#code"
|
|
115
|
+
class="text-xs"
|
|
116
|
+
on:click={async () => {
|
|
117
|
+
const code = (
|
|
118
|
+
await JobService.getCompletedJob({
|
|
119
|
+
workspace: $workspaceStore ?? 'NO_W',
|
|
120
|
+
id
|
|
121
|
+
})
|
|
122
|
+
).raw_code
|
|
126
123
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
>
|
|
164
|
-
View last local save for path {path}
|
|
165
|
-
</a>
|
|
166
|
-
{:else}
|
|
167
|
-
No local save
|
|
168
|
-
{/if}
|
|
169
|
-
</TabContent>
|
|
170
|
-
</div>
|
|
124
|
+
openDrawer({ mode: lang, content: String(code), title: `Code ${lang}` })
|
|
125
|
+
}}
|
|
126
|
+
>
|
|
127
|
+
View code
|
|
128
|
+
</a>
|
|
129
|
+
</td>
|
|
130
|
+
<td>
|
|
131
|
+
<a
|
|
132
|
+
href="#logs"
|
|
133
|
+
class="text-xs"
|
|
134
|
+
on:click={async () => {
|
|
135
|
+
const logs = (
|
|
136
|
+
await JobService.getCompletedJob({
|
|
137
|
+
workspace: $workspaceStore ?? 'NO_W',
|
|
138
|
+
id
|
|
139
|
+
})
|
|
140
|
+
).logs
|
|
141
|
+
openDrawer({ mode: 'plain', content: String(logs), title: `Code ${lang}` })
|
|
142
|
+
}}
|
|
143
|
+
>
|
|
144
|
+
View logs
|
|
145
|
+
</a>
|
|
146
|
+
</td>
|
|
147
|
+
</tr>
|
|
148
|
+
{/each}
|
|
149
|
+
</tbody>
|
|
150
|
+
</TableCustom>
|
|
151
|
+
</TabContent>
|
|
152
|
+
<TabContent value="last_save" class="p-2">
|
|
153
|
+
{#if lastSave}
|
|
154
|
+
<h2>last local save for path {path}</h2>
|
|
155
|
+
<HighlightCode language={lang} code={lastSave} />
|
|
156
|
+
{:else}
|
|
157
|
+
No local save
|
|
158
|
+
{/if}
|
|
159
|
+
</TabContent>
|
|
171
160
|
</svelte:fragment>
|
|
172
161
|
</Tabs>
|
|
@@ -8,6 +8,7 @@ declare const __propDef: {
|
|
|
8
8
|
previewJob: Job | undefined;
|
|
9
9
|
pastPreviews?: CompletedJob[] | undefined;
|
|
10
10
|
lastSave: string | null;
|
|
11
|
+
setFocusToLogs?: (() => void) | undefined;
|
|
11
12
|
};
|
|
12
13
|
events: {
|
|
13
14
|
[evt: string]: CustomEvent<any>;
|
|
@@ -18,5 +19,6 @@ export declare type LogPanelProps = typeof __propDef.props;
|
|
|
18
19
|
export declare type LogPanelEvents = typeof __propDef.events;
|
|
19
20
|
export declare type LogPanelSlots = typeof __propDef.slots;
|
|
20
21
|
export default class LogPanel extends SvelteComponentTyped<LogPanelProps, LogPanelEvents, LogPanelSlots> {
|
|
22
|
+
get setFocusToLogs(): () => void;
|
|
21
23
|
}
|
|
22
24
|
export {};
|
|
@@ -12,7 +12,6 @@ const mainMenuLinks = [
|
|
|
12
12
|
{ label: 'Resources', href: '/resources', icon: faCubes }
|
|
13
13
|
];
|
|
14
14
|
$: secondaryMenuLinks = [
|
|
15
|
-
{ label: 'Workers', href: '/workers', icon: faRobot },
|
|
16
15
|
{ label: 'Groups', href: '/groups', icon: faUsersCog },
|
|
17
16
|
{ label: 'Audit Logs', href: '/audit_logs', icon: faEye },
|
|
18
17
|
{
|
|
@@ -20,7 +19,8 @@ $: secondaryMenuLinks = [
|
|
|
20
19
|
href: '/workspace_settings',
|
|
21
20
|
icon: faCog,
|
|
22
21
|
disabled: !$userStore?.is_admin
|
|
23
|
-
}
|
|
22
|
+
},
|
|
23
|
+
{ label: 'Workers', href: '/workers', icon: faRobot }
|
|
24
24
|
];
|
|
25
25
|
const thirdMenuLinks = [
|
|
26
26
|
{ label: 'Documentation', href: 'https://docs.windmill.dev/docs/intro/', icon: faBookOpen },
|
package/editorUtils.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ export declare function editorConfig(model: any, code: string, lang: string, aut
|
|
|
7
7
|
fixedOverflowWidgets: boolean;
|
|
8
8
|
autoDetectHighContrast: boolean;
|
|
9
9
|
lineNumbersMinChars: number;
|
|
10
|
+
scrollbar: {
|
|
11
|
+
alwaysConsumeMouseWheel: boolean;
|
|
12
|
+
};
|
|
10
13
|
lineNumbers: (ln: any) => string;
|
|
11
14
|
folding: boolean;
|
|
12
15
|
scrollBeyondLastLine: boolean;
|
package/editorUtils.js
CHANGED
|
@@ -10,6 +10,7 @@ export function editorConfig(model, code, lang, automaticLayout) {
|
|
|
10
10
|
//lineNumbers: 'off',
|
|
11
11
|
//lineDecorationsWidth: 0,
|
|
12
12
|
lineNumbersMinChars: 4,
|
|
13
|
+
scrollbar: { alwaysConsumeMouseWheel: false },
|
|
13
14
|
lineNumbers: (ln) => '<span class="pr-4 text-gray-400">' + ln + '</span>',
|
|
14
15
|
folding: false,
|
|
15
16
|
scrollBeyondLastLine: false,
|
package/gen/core/OpenAPI.js
CHANGED
package/gen/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export { QueuedJob } from './models/QueuedJob';
|
|
|
42
42
|
export { RawScript } from './models/RawScript';
|
|
43
43
|
export type { Resource } from './models/Resource';
|
|
44
44
|
export type { ResourceType } from './models/ResourceType';
|
|
45
|
+
export type { Retry } from './models/Retry';
|
|
45
46
|
export type { Schedule } from './models/Schedule';
|
|
46
47
|
export { Script } from './models/Script';
|
|
47
48
|
export type { ScriptArgs } from './models/ScriptArgs';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { FlowModuleValue } from './FlowModuleValue';
|
|
2
2
|
import type { InputTransform } from './InputTransform';
|
|
3
|
+
import type { Retry } from './Retry';
|
|
3
4
|
export declare type FlowModule = {
|
|
4
5
|
input_transforms: Record<string, InputTransform>;
|
|
5
6
|
value: FlowModuleValue;
|
|
@@ -8,4 +9,6 @@ export declare type FlowModule = {
|
|
|
8
9
|
expr: string;
|
|
9
10
|
};
|
|
10
11
|
summary?: string;
|
|
12
|
+
suspend?: number;
|
|
13
|
+
retry?: Retry;
|
|
11
14
|
};
|
package/gen/models/Preview.d.ts
CHANGED