windmill-components 1.444.2 → 1.447.5
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/autosize.js +1 -1
- package/package/components/AppConnectInner.svelte +2 -1
- package/package/components/ArgInput.svelte +37 -24
- package/package/components/CapturesInputs.svelte +16 -0
- package/package/components/CapturesInputs.svelte.d.ts +21 -0
- package/package/components/Dev.svelte +7 -1
- package/package/components/EditableSchemaForm.svelte +369 -290
- package/package/components/EditableSchemaForm.svelte.d.ts +12 -2
- package/package/components/Editor.svelte +5 -7
- package/package/components/FirstStepInputs.svelte +111 -0
- package/package/components/FirstStepInputs.svelte.d.ts +17 -0
- package/package/components/FlowBuilder.svelte +28 -7
- package/package/components/FlowPreviewContent.svelte +72 -1
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -0
- package/package/components/GfmMarkdown.svelte +93 -2
- package/package/components/HighlightCode.svelte +2 -0
- package/package/components/HistoricInputs.svelte +193 -0
- package/package/components/HistoricInputs.svelte.d.ts +20 -0
- package/package/components/InfiniteList.svelte +161 -0
- package/package/components/InfiniteList.svelte.d.ts +40 -0
- package/package/components/LightweightArgInput.svelte +19 -15
- package/package/components/MoveDrawer.svelte +2 -1
- package/package/components/Path.svelte +7 -1
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +2 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/SaveInputsButton.svelte +53 -0
- package/package/components/SaveInputsButton.svelte.d.ts +24 -0
- package/package/components/SavedInputs.svelte +33 -61
- package/package/components/SavedInputsPicker.svelte +264 -0
- package/package/components/SavedInputsPicker.svelte.d.ts +20 -0
- package/package/components/ScheduleEditorInner.svelte +0 -1
- package/package/components/SchemaForm.svelte +22 -3
- package/package/components/ScriptBuilder.svelte +595 -562
- package/package/components/ScriptEditor.svelte +10 -3
- package/package/components/ScriptEditor.svelte.d.ts +5 -2
- package/package/components/ScriptSchema.svelte +1 -2
- package/package/components/Section.svelte +6 -4
- package/package/components/ShareModal.svelte.d.ts +2 -2
- package/package/components/SimpleEditor.svelte +39 -7
- package/package/components/SimpleEditor.svelte.d.ts +1 -4
- package/package/components/StringTypeNarrowing.svelte +3 -1
- package/package/components/TestConnection.svelte +5 -0
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/WorkerGroup.svelte +2 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -0
- package/package/components/apps/editor/component/components.d.ts +79 -79
- package/package/components/apps/editor/component/default-codes.d.ts +1 -1
- package/package/components/apps/editor/component/default-codes.js +10 -10
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +2 -1
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/common/button/Button.svelte +10 -52
- package/package/components/common/button/PulseButton.svelte +81 -0
- package/package/components/common/button/PulseButton.svelte.d.ts +34 -0
- package/package/components/common/button/RoundIconButton.svelte +11 -0
- package/package/components/common/button/RoundIconButton.svelte.d.ts +19 -0
- package/package/components/common/button/model.d.ts +1 -0
- package/package/components/common/button/model.js +47 -0
- package/package/components/common/fileUpload/FileUpload.svelte +3 -1
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +1 -0
- package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
- package/package/components/common/layout/List.svelte +10 -4
- package/package/components/common/layout/List.svelte.d.ts +1 -0
- package/package/components/common/tabs/Tab.svelte +14 -1
- package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
- package/package/components/copilot/ScriptGen.svelte +1 -1
- package/package/components/copilot/lib.js +1 -1
- package/package/components/copilot/prompts/edit.yaml +1 -1
- package/package/components/copilot/prompts/editPrompt.js +1 -1
- package/package/components/copilot/prompts/fix.yaml +1 -1
- package/package/components/copilot/prompts/fixPrompt.js +1 -1
- package/package/components/copilot/prompts/gen.yaml +1 -1
- package/package/components/copilot/prompts/genPrompt.js +1 -1
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/details/DetailPageDetailPanel.svelte +20 -19
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +4 -1
- package/package/components/details/DetailPageLayout.svelte +4 -1
- package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
- package/package/components/details/DetailPageTriggerPanel.svelte +84 -63
- package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +3 -1
- package/package/components/details/EmailTriggerConfigSection.svelte +1 -1
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +2 -1
- package/package/components/details/EmailTriggerPanel.svelte +2 -0
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +2 -0
- package/package/components/flows/FlowEditor.svelte +8 -2
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCard.svelte +12 -6
- package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +15 -9
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInput.svelte +449 -98
- package/package/components/flows/content/FlowInput.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowInputEditor.svelte +46 -0
- package/package/components/flows/content/FlowInputEditor.svelte.d.ts +25 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +192 -194
- package/package/components/flows/content/FlowModuleComponent.svelte +372 -382
- package/package/components/flows/content/FlowModuleMock.svelte +6 -7
- package/package/components/flows/content/FlowPathViewer.svelte +2 -1
- package/package/components/flows/content/FlowSettings.svelte +25 -3
- package/package/components/flows/content/FlowWhileLoop.svelte +97 -99
- package/package/components/flows/flowStore.d.ts +13 -0
- package/package/components/flows/flowStore.js +41 -0
- package/package/components/flows/header/FlowPreviewButtons.svelte +10 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte.d.ts +4 -2
- package/package/components/flows/header/FlowYamlEditor.svelte +3 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +8 -58
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +67 -0
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +24 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
- package/package/components/flows/pickers/FlowScriptPicker.svelte +1 -1
- package/package/components/flows/previousResults.d.ts +1 -1
- package/package/components/flows/previousResults.js +7 -2
- package/package/components/flows/types.d.ts +7 -0
- package/package/components/flows/utils.d.ts +1 -0
- package/package/components/flows/utils.js +3 -0
- package/package/components/graph/graphBuilder.js +1 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +22 -8
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte.d.ts +1 -1
- package/package/components/icons/NatsIcon.svelte +19 -0
- package/package/components/icons/NatsIcon.svelte.d.ts +18 -0
- package/package/components/icons/OracleDBIcon.svelte +15 -0
- package/package/components/icons/OracleDBIcon.svelte.d.ts +25 -0
- package/package/components/icons/index.d.ts +7 -1
- package/package/components/icons/index.js +8 -2
- package/package/components/meltComponents/ButtonDropDown.svelte +32 -0
- package/package/components/meltComponents/ButtonDropDown.svelte.d.ts +27 -0
- package/package/components/meltComponents/Popover.svelte +7 -4
- package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte +2 -2
- package/package/components/schema/AddPropertyFormV2.svelte +46 -0
- package/package/components/schema/AddPropertyFormV2.svelte.d.ts +18 -0
- package/package/components/schema/AddPropertyV2.svelte +151 -0
- package/package/components/schema/AddPropertyV2.svelte.d.ts +25 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +17 -8
- package/package/components/schema/EditableSchemaWrapper.svelte +58 -14
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +0 -1
- package/package/components/schema/FlowPropertyEditor.svelte +8 -3
- package/package/components/schema/JobSchemaPicker.svelte +32 -0
- package/package/components/schema/JobSchemaPicker.svelte.d.ts +19 -0
- package/package/components/schema/PropertyEditor.svelte +9 -1
- package/package/components/schema/RunningJobSchemaPicker.svelte +67 -0
- package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +21 -0
- package/package/components/schema/SchemaFormDND.svelte +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/schema/SchemaPicker.svelte.d.ts +23 -0
- package/package/components/schema/SchemaPickerRow.svelte +95 -0
- package/package/components/schema/SchemaPickerRow.svelte.d.ts +22 -0
- package/package/components/scriptEditor/LogPanel.svelte +1 -1
- package/package/components/settings/ChangeWorkspaceColor.svelte +103 -0
- package/package/components/settings/ChangeWorkspaceColor.svelte.d.ts +16 -0
- package/package/components/settings/ChangeWorkspaceId.svelte +1 -0
- package/package/components/settings/ChangeWorkspaceName.svelte +4 -0
- package/package/components/sidebar/MenuButton.svelte +5 -2
- package/package/components/sidebar/MenuButton.svelte.d.ts +1 -0
- package/package/components/sidebar/SidebarContent.svelte +8 -0
- package/package/components/sidebar/WorkspaceMenu.svelte +40 -21
- package/package/components/table/DataTable.svelte +43 -3
- package/package/components/table/DataTable.svelte.d.ts +2 -0
- package/package/components/table/Head.svelte +1 -1
- package/package/components/table/Row.svelte +11 -1
- package/package/components/table/Row.svelte.d.ts +3 -0
- package/package/components/table/index.d.ts +3 -0
- package/package/components/table/index.js +3 -0
- package/package/components/triggers/CaptureButton.svelte +38 -4
- package/package/components/triggers/CaptureButton.svelte.d.ts +3 -1
- package/package/components/triggers/CaptureIcon.svelte +7 -4
- package/package/components/triggers/CaptureIcon.svelte.d.ts +7 -13
- package/package/components/triggers/CaptureSection.svelte +50 -17
- package/package/components/triggers/CaptureSection.svelte.d.ts +5 -3
- package/package/components/triggers/CaptureTable.svelte +239 -186
- package/package/components/triggers/CaptureTable.svelte.d.ts +9 -11
- package/package/components/triggers/CaptureWrapper.svelte +126 -109
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +3 -1
- package/package/components/triggers/KafkaTriggerEditorInner.svelte +1 -0
- package/package/components/triggers/KafkaTriggersConfigSection.svelte +16 -4
- package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +3 -1
- package/package/components/triggers/KafkaTriggersPanel.svelte +2 -0
- package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +2 -0
- package/package/components/triggers/NatsTriggerEditor.svelte +19 -0
- package/package/components/triggers/NatsTriggerEditor.svelte.d.ts +21 -0
- package/package/components/triggers/NatsTriggerEditorInner.svelte +239 -0
- package/package/components/triggers/NatsTriggerEditorInner.svelte.d.ts +21 -0
- package/package/components/triggers/NatsTriggersConfigSection.svelte +276 -0
- package/package/components/triggers/NatsTriggersConfigSection.svelte.d.ts +37 -0
- package/package/components/triggers/NatsTriggersPanel.svelte +126 -0
- package/package/components/triggers/NatsTriggersPanel.svelte.d.ts +26 -0
- package/package/components/triggers/RouteEditorConfigSection.svelte +12 -2
- package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +5 -1
- package/package/components/triggers/RouteEditorInner.svelte +5 -0
- package/package/components/triggers/RoutesPanel.svelte +4 -0
- package/package/components/triggers/RoutesPanel.svelte.d.ts +3 -0
- package/package/components/triggers/TriggersEditor.svelte +146 -97
- package/package/components/triggers/TriggersEditor.svelte.d.ts +2 -0
- package/package/components/triggers/TriggersEditorSection.svelte +19 -13
- package/package/components/triggers/TriggersEditorSection.svelte.d.ts +3 -0
- package/package/components/triggers/TriggersWrapper.svelte +7 -3
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +2 -1
- package/package/components/triggers/WebhooksConfigSection.svelte +1 -0
- package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/WebhooksPanel.svelte +2 -0
- package/package/components/triggers/WebhooksPanel.svelte.d.ts +2 -0
- package/package/components/triggers/WebsocketEditorConfigSection.svelte +3 -1
- package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/WebsocketTriggersPanel.svelte +2 -0
- package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +2 -0
- package/package/components/triggers.d.ts +2 -1
- package/package/components/triggers.js +2 -0
- package/package/components/vscode.js +12 -8
- package/package/consts.d.ts +1 -0
- package/package/consts.js +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +207 -13
- package/package/gen/schemas.gen.js +207 -13
- package/package/gen/services.gen.d.ts +118 -10
- package/package/gen/services.gen.js +237 -17
- package/package/gen/types.gen.d.ts +400 -40
- package/package/hubPaths.json +2 -1
- package/package/infer.js +11 -2
- package/package/monaco_workers/build_workers.js +39 -37
- package/package/monaco_workers/graphql.worker.bundle.js +18371 -36513
- package/package/script_helpers.d.ts +5 -2
- package/package/script_helpers.js +46 -8
- package/package/scripts.js +4 -0
- package/package/stores.d.ts +2 -1
- package/package/stores.js +2 -1
- package/package.json +14 -16
- package/package/monaco_workers/graphql.worker.bundle.d.ts +0 -0
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
import { InputService, JobService } from '../gen/index.js';
|
|
3
3
|
import { userStore, workspaceStore } from '../stores.js';
|
|
4
4
|
import { base } from '../base';
|
|
5
|
-
import { classNames,
|
|
5
|
+
import { classNames, displayDateOnly, sendUserToast } from '../utils.js';
|
|
6
6
|
import { createEventDispatcher } from 'svelte';
|
|
7
7
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
8
8
|
import ObjectViewer from './propertyPicker/ObjectViewer.svelte';
|
|
9
|
-
import { ArrowLeftIcon, Edit, ExternalLink,
|
|
9
|
+
import { ArrowLeftIcon, Edit, ExternalLink, X } from 'lucide-svelte';
|
|
10
10
|
import Toggle from './Toggle.svelte';
|
|
11
11
|
import Tooltip from './Tooltip.svelte';
|
|
12
12
|
import TimeAgo from './TimeAgo.svelte';
|
|
13
13
|
import JobLoader from './runs/JobLoader.svelte';
|
|
14
14
|
import Skeleton from './common/skeleton/Skeleton.svelte';
|
|
15
|
+
import SaveInputsButton from './SaveInputsButton.svelte';
|
|
15
16
|
export let scriptHash = null;
|
|
16
17
|
export let scriptPath = null;
|
|
17
18
|
export let flowPath = null;
|
|
@@ -24,7 +25,6 @@ let savedInputs = undefined;
|
|
|
24
25
|
let selectedInput;
|
|
25
26
|
let jobs = [];
|
|
26
27
|
let loading = false;
|
|
27
|
-
let savingInputs = false;
|
|
28
28
|
const dispatch = createEventDispatcher();
|
|
29
29
|
$: runnableId = scriptHash || scriptPath || flowPath || undefined;
|
|
30
30
|
let runnableType = undefined;
|
|
@@ -61,34 +61,6 @@ async function loadSavedInputs() {
|
|
|
61
61
|
perPage: 10
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
async function saveInput(args) {
|
|
65
|
-
savingInputs = true;
|
|
66
|
-
const requestBody = {
|
|
67
|
-
name: 'Saved ' + displayDate(new Date()),
|
|
68
|
-
args: args
|
|
69
|
-
};
|
|
70
|
-
try {
|
|
71
|
-
let id = await InputService.createInput({
|
|
72
|
-
workspace: $workspaceStore,
|
|
73
|
-
runnableId,
|
|
74
|
-
runnableType,
|
|
75
|
-
requestBody
|
|
76
|
-
});
|
|
77
|
-
const input = {
|
|
78
|
-
id,
|
|
79
|
-
created_by: '',
|
|
80
|
-
created_at: new Date().toISOString(),
|
|
81
|
-
is_public: false,
|
|
82
|
-
...requestBody
|
|
83
|
-
};
|
|
84
|
-
savedInputs = [input, ...(savedInputs ?? [])];
|
|
85
|
-
}
|
|
86
|
-
catch (err) {
|
|
87
|
-
console.error(err);
|
|
88
|
-
sendUserToast(`Failed to save Input: ${err}`, true);
|
|
89
|
-
}
|
|
90
|
-
savingInputs = false;
|
|
91
|
-
}
|
|
92
64
|
async function updateInput(input) {
|
|
93
65
|
input.isSaving = true;
|
|
94
66
|
try {
|
|
@@ -145,25 +117,26 @@ async function loadLargeArgs(id, input, allowLarge) {
|
|
|
145
117
|
}
|
|
146
118
|
</script>
|
|
147
119
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
/>
|
|
120
|
+
{#if runnableId}
|
|
121
|
+
<JobLoader
|
|
122
|
+
bind:jobs
|
|
123
|
+
path={runnableId}
|
|
124
|
+
isSkipped={false}
|
|
125
|
+
jobKindsCat="all"
|
|
126
|
+
user={null}
|
|
127
|
+
label={null}
|
|
128
|
+
folder={null}
|
|
129
|
+
concurrencyKey={null}
|
|
130
|
+
tag={null}
|
|
131
|
+
success="running"
|
|
132
|
+
argFilter={undefined}
|
|
133
|
+
bind:loading
|
|
134
|
+
syncQueuedRunsCount={false}
|
|
135
|
+
refreshRate={10000}
|
|
136
|
+
computeMinAndMax={undefined}
|
|
137
|
+
perPage={5}
|
|
138
|
+
/>
|
|
139
|
+
{/if}
|
|
167
140
|
|
|
168
141
|
<div class="min-w-[300px] h-full">
|
|
169
142
|
<Splitpanes horizontal={true}>
|
|
@@ -171,21 +144,20 @@ async function loadLargeArgs(id, input, allowLarge) {
|
|
|
171
144
|
<div class="w-full flex flex-col gap-4 p-2">
|
|
172
145
|
<div class="w-full flex justify-between items-center gap-4 flex-wrap">
|
|
173
146
|
<span class="text-sm font-semibold flex-shrink-0"
|
|
174
|
-
>Saved Inputs
|
|
147
|
+
>Saved Inputs<Tooltip
|
|
175
148
|
>Shared inputs are available to anyone with access to the script</Tooltip
|
|
176
149
|
></span
|
|
177
150
|
>
|
|
178
151
|
{#if canSaveInputs}
|
|
179
|
-
<
|
|
180
|
-
|
|
152
|
+
<SaveInputsButton
|
|
153
|
+
{args}
|
|
181
154
|
disabled={!isValid}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
</Button>
|
|
155
|
+
{runnableId}
|
|
156
|
+
{runnableType}
|
|
157
|
+
on:update={() => {
|
|
158
|
+
loadSavedInputs()
|
|
159
|
+
}}
|
|
160
|
+
/>
|
|
189
161
|
{/if}
|
|
190
162
|
</div>
|
|
191
163
|
|
|
@@ -354,7 +326,7 @@ async function loadLargeArgs(id, input, allowLarge) {
|
|
|
354
326
|
>
|
|
355
327
|
{/if}
|
|
356
328
|
{:else}
|
|
357
|
-
<div class="text-left text-tertiary text-xs">No running
|
|
329
|
+
<div class="text-left text-tertiary text-xs">No job currently running</div>
|
|
358
330
|
{/if}
|
|
359
331
|
</div>
|
|
360
332
|
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
<script>import { Button } from './common';
|
|
2
|
+
import { InputService } from '../gen/index.js';
|
|
3
|
+
import { userStore, workspaceStore } from '../stores.js';
|
|
4
|
+
import { sendUserToast } from '../utils.js';
|
|
5
|
+
import { createEventDispatcher, onDestroy } from 'svelte';
|
|
6
|
+
import { Edit, Trash2, Save } from 'lucide-svelte';
|
|
7
|
+
import Toggle from './Toggle.svelte';
|
|
8
|
+
import { Cell } from './table/index';
|
|
9
|
+
import { clickOutside } from '../utils';
|
|
10
|
+
import SaveInputsButton from './SaveInputsButton.svelte';
|
|
11
|
+
import Popover from './Popover.svelte';
|
|
12
|
+
import InfiniteList from './InfiniteList.svelte';
|
|
13
|
+
import { twMerge } from 'tailwind-merge';
|
|
14
|
+
export let flowPath = null;
|
|
15
|
+
export let previewArgs = undefined;
|
|
16
|
+
let infiniteList = null;
|
|
17
|
+
let draft = true;
|
|
18
|
+
let selectedInput = null;
|
|
19
|
+
let isEditing = null;
|
|
20
|
+
const dispatch = createEventDispatcher();
|
|
21
|
+
$: runnableId = flowPath || undefined;
|
|
22
|
+
let runnableType = undefined;
|
|
23
|
+
$: runnableType = flowPath ? 'FlowPath' : undefined;
|
|
24
|
+
async function updateInput(input) {
|
|
25
|
+
if (!input)
|
|
26
|
+
return;
|
|
27
|
+
input.isSaving = true;
|
|
28
|
+
try {
|
|
29
|
+
await InputService.updateInput({
|
|
30
|
+
workspace: $workspaceStore,
|
|
31
|
+
requestBody: {
|
|
32
|
+
id: input.id,
|
|
33
|
+
name: input.name,
|
|
34
|
+
is_public: input.is_public
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
console.error(err);
|
|
40
|
+
sendUserToast(`Failed to update Input: ${err}`, true);
|
|
41
|
+
}
|
|
42
|
+
input.isSaving = false;
|
|
43
|
+
}
|
|
44
|
+
function initLoadInputs() {
|
|
45
|
+
const loadInputsPageFn = async (page, perPage) => {
|
|
46
|
+
return await InputService.listInputs({
|
|
47
|
+
workspace: $workspaceStore,
|
|
48
|
+
runnableId,
|
|
49
|
+
runnableType,
|
|
50
|
+
page,
|
|
51
|
+
perPage
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
infiniteList?.setLoader(loadInputsPageFn);
|
|
55
|
+
const deleteInputFn = async (id) => {
|
|
56
|
+
await InputService.deleteInput({
|
|
57
|
+
workspace: $workspaceStore,
|
|
58
|
+
input: id
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
infiniteList?.setDeleteItemFn(deleteInputFn);
|
|
62
|
+
}
|
|
63
|
+
async function loadLargeArgs(id, input, allowLarge) {
|
|
64
|
+
if (!id)
|
|
65
|
+
return;
|
|
66
|
+
return await InputService.getArgsFromHistoryOrSavedInput({
|
|
67
|
+
jobOrInputId: id,
|
|
68
|
+
workspace: $workspaceStore,
|
|
69
|
+
input,
|
|
70
|
+
allowLarge
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
let selectedArgs = undefined;
|
|
74
|
+
async function handleSelect(input) {
|
|
75
|
+
if (input.isEditing)
|
|
76
|
+
return;
|
|
77
|
+
if (selectedInput === input.id) {
|
|
78
|
+
selectedInput = null;
|
|
79
|
+
selectedArgs = undefined;
|
|
80
|
+
dispatch('select', undefined);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
selectedInput = input.id;
|
|
84
|
+
selectedArgs = await loadLargeArgs(input.id, true, false);
|
|
85
|
+
dispatch('select', selectedArgs);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
onDestroy(() => {
|
|
89
|
+
selectedInput = null;
|
|
90
|
+
selectedArgs = undefined;
|
|
91
|
+
dispatch('select', undefined);
|
|
92
|
+
});
|
|
93
|
+
async function getPropPickerElements() {
|
|
94
|
+
const elements = document.querySelectorAll('[data-schema-picker], [data-schema-picker] *');
|
|
95
|
+
return elements ? Array.from(elements) : [];
|
|
96
|
+
}
|
|
97
|
+
function handleKeydown(event) {
|
|
98
|
+
if (event.key === 'Escape' && isEditing) {
|
|
99
|
+
setEditing(null);
|
|
100
|
+
}
|
|
101
|
+
else if (event.key === 'Escape' && selectedInput) {
|
|
102
|
+
selectedInput = null;
|
|
103
|
+
selectedArgs = undefined;
|
|
104
|
+
dispatch('select', undefined);
|
|
105
|
+
}
|
|
106
|
+
if (event.key === 'Enter' && isEditing) {
|
|
107
|
+
updateInput(isEditing).then(() => {
|
|
108
|
+
setEditing(null);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function setEditing(input) {
|
|
113
|
+
isEditing = input;
|
|
114
|
+
dispatch('isEditing', !!input);
|
|
115
|
+
}
|
|
116
|
+
function handleError(error) {
|
|
117
|
+
if (error.type === 'delete') {
|
|
118
|
+
sendUserToast(`Failed to delete saved input: ${error.error}`, true);
|
|
119
|
+
}
|
|
120
|
+
else if (error.type === 'load') {
|
|
121
|
+
sendUserToast(`Failed to load saved inputs: ${error.error}`, true);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
$: $workspaceStore && flowPath && (infiniteList && initLoadInputs(), (draft = false));
|
|
125
|
+
</script>
|
|
126
|
+
|
|
127
|
+
<svelte:window on:keydown={handleKeydown} />
|
|
128
|
+
|
|
129
|
+
<div
|
|
130
|
+
class="w-full flex flex-col gap-1 h-full overflow-y-auto p"
|
|
131
|
+
use:clickOutside={{ capture: false, exclude: getPropPickerElements }}
|
|
132
|
+
on:click_outside={() => {
|
|
133
|
+
selectedInput = null
|
|
134
|
+
selectedArgs = undefined
|
|
135
|
+
dispatch('select', undefined)
|
|
136
|
+
}}
|
|
137
|
+
>
|
|
138
|
+
<div>
|
|
139
|
+
<Popover class="w-full" placement="bottom" disablePopup={flowPath && previewArgs}>
|
|
140
|
+
<svelte:fragment slot="text">
|
|
141
|
+
{#if !flowPath}
|
|
142
|
+
Save draft first before you can save inputs
|
|
143
|
+
{:else if !previewArgs}
|
|
144
|
+
Add inputs before saving
|
|
145
|
+
{/if}
|
|
146
|
+
</svelte:fragment>
|
|
147
|
+
<SaveInputsButton
|
|
148
|
+
{runnableId}
|
|
149
|
+
{runnableType}
|
|
150
|
+
args={previewArgs ?? {}}
|
|
151
|
+
disabled={!previewArgs || !flowPath}
|
|
152
|
+
on:update={() => {
|
|
153
|
+
infiniteList?.loadData('refresh')
|
|
154
|
+
}}
|
|
155
|
+
showTooltip={true}
|
|
156
|
+
/>
|
|
157
|
+
</Popover>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="grow min-h-0">
|
|
160
|
+
{#if !draft}
|
|
161
|
+
<InfiniteList
|
|
162
|
+
bind:this={infiniteList}
|
|
163
|
+
selectedItemId={selectedInput}
|
|
164
|
+
on:error={(e) => handleError(e.detail)}
|
|
165
|
+
on:select={(e) => handleSelect(e.detail)}
|
|
166
|
+
>
|
|
167
|
+
<svelte:fragment slot="columns">
|
|
168
|
+
<colgroup>
|
|
169
|
+
<col class="w-8" />
|
|
170
|
+
<col />
|
|
171
|
+
</colgroup>
|
|
172
|
+
</svelte:fragment>
|
|
173
|
+
<svelte:fragment let:item>
|
|
174
|
+
<Cell>
|
|
175
|
+
<div class="center-center">
|
|
176
|
+
<Save size={12} />
|
|
177
|
+
</div>
|
|
178
|
+
</Cell>
|
|
179
|
+
<Cell>
|
|
180
|
+
<div
|
|
181
|
+
class="w-full flex items-center text-sm justify-between gap-4 px-4 text-left transition-all"
|
|
182
|
+
>
|
|
183
|
+
<div class="w-full h-full items-center justify-between flex gap-1 min-w-0 p-1">
|
|
184
|
+
{#if isEditing && isEditing.id === item.id}
|
|
185
|
+
<form
|
|
186
|
+
on:submit={() => {
|
|
187
|
+
updateInput(isEditing)
|
|
188
|
+
setEditing(null)
|
|
189
|
+
}}
|
|
190
|
+
class="w-full"
|
|
191
|
+
>
|
|
192
|
+
<input type="text" bind:value={isEditing.name} class="text-secondary" />
|
|
193
|
+
</form>
|
|
194
|
+
{:else}
|
|
195
|
+
<small
|
|
196
|
+
class="whitespace-nowrap overflow-hidden text-ellipsis flex-shrink text-left"
|
|
197
|
+
>
|
|
198
|
+
{item.name}
|
|
199
|
+
</small>
|
|
200
|
+
{/if}
|
|
201
|
+
{#if item.created_by == $userStore?.username || $userStore?.is_admin || $userStore?.is_super_admin}
|
|
202
|
+
<div class="items-center flex gap-2">
|
|
203
|
+
{#if !isEditing || isEditing?.id !== item.id}
|
|
204
|
+
<div class="group-hover:block hidden -my-2">
|
|
205
|
+
<Toggle
|
|
206
|
+
size="xs"
|
|
207
|
+
options={{ right: 'shared' }}
|
|
208
|
+
checked={item.is_public}
|
|
209
|
+
on:change={(e) => {
|
|
210
|
+
updateInput({ ...item, is_public: e.detail })
|
|
211
|
+
}}
|
|
212
|
+
/>
|
|
213
|
+
</div>
|
|
214
|
+
{/if}
|
|
215
|
+
|
|
216
|
+
<Button
|
|
217
|
+
loading={isEditing?.id === item.id && isEditing?.isSaving}
|
|
218
|
+
color="light"
|
|
219
|
+
size="xs"
|
|
220
|
+
variant="border"
|
|
221
|
+
spacingSize="xs2"
|
|
222
|
+
btnClasses={'group-hover:block hidden -my-2'}
|
|
223
|
+
on:click={(e) => {
|
|
224
|
+
e.stopPropagation()
|
|
225
|
+
if (isEditing?.id === item.id) {
|
|
226
|
+
updateInput(isEditing)
|
|
227
|
+
setEditing(null)
|
|
228
|
+
} else {
|
|
229
|
+
setEditing(item)
|
|
230
|
+
}
|
|
231
|
+
}}
|
|
232
|
+
>
|
|
233
|
+
<Edit class="w-4 h-4" />
|
|
234
|
+
</Button>
|
|
235
|
+
<Button
|
|
236
|
+
color="light"
|
|
237
|
+
size="xs"
|
|
238
|
+
spacingSize="xs2"
|
|
239
|
+
variant="contained"
|
|
240
|
+
btnClasses={twMerge(
|
|
241
|
+
isEditing?.id === item.id ? 'block' : 'group-hover:block hidden -my-2',
|
|
242
|
+
'hover:text-white hover:bg-red-500 text-red-500'
|
|
243
|
+
)}
|
|
244
|
+
on:click={() => {
|
|
245
|
+
infiniteList?.deleteItem(item.id)
|
|
246
|
+
}}
|
|
247
|
+
>
|
|
248
|
+
<Trash2 class="w-4 h-4" />
|
|
249
|
+
</Button>
|
|
250
|
+
</div>
|
|
251
|
+
{:else}
|
|
252
|
+
<span class="text-xs text-tertiary">By {item.created_by}</span>
|
|
253
|
+
{/if}
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
</Cell>
|
|
257
|
+
</svelte:fragment>
|
|
258
|
+
<svelte:fragment slot="empty">
|
|
259
|
+
<div class="text-center text-xs text-tertiary">No saved Inputs</div>
|
|
260
|
+
</svelte:fragment>
|
|
261
|
+
</InfiniteList>
|
|
262
|
+
{/if}
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
flowPath?: string | null | undefined;
|
|
5
|
+
previewArgs?: any;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
select: CustomEvent<any>;
|
|
9
|
+
isEditing: CustomEvent<any>;
|
|
10
|
+
} & {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {};
|
|
14
|
+
};
|
|
15
|
+
export type SavedInputsPickerProps = typeof __propDef.props;
|
|
16
|
+
export type SavedInputsPickerEvents = typeof __propDef.events;
|
|
17
|
+
export type SavedInputsPickerSlots = typeof __propDef.slots;
|
|
18
|
+
export default class SavedInputsPicker extends SvelteComponent<SavedInputsPickerProps, SavedInputsPickerEvents, SavedInputsPickerSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -68,13 +68,12 @@ function removeExtraKey() {
|
|
|
68
68
|
let pickForField;
|
|
69
69
|
let itemPicker = undefined;
|
|
70
70
|
let variableEditor = undefined;
|
|
71
|
-
$: isValid = allTrue(inputCheck ?? {});
|
|
72
71
|
let resourceTypes = undefined;
|
|
73
72
|
async function loadResourceTypes() {
|
|
74
73
|
resourceTypes = await getResourceTypes();
|
|
75
74
|
}
|
|
76
75
|
loadResourceTypes();
|
|
77
|
-
$: schema && reorder();
|
|
76
|
+
$: schema && (reorder(), (hidden = {}));
|
|
78
77
|
function hasExtraKeys() {
|
|
79
78
|
return Object.keys(args ?? {}).some((x) => !keys.includes(x));
|
|
80
79
|
}
|
|
@@ -106,8 +105,28 @@ function reorder() {
|
|
|
106
105
|
}
|
|
107
106
|
}
|
|
108
107
|
$: fields = items ?? keys.map((x) => ({ id: x, value: x }));
|
|
108
|
+
let hidden = {};
|
|
109
|
+
function handleHiddenFields(schema, args) {
|
|
110
|
+
for (const x of fields) {
|
|
111
|
+
if (schema?.properties[x.value]?.showExpr) {
|
|
112
|
+
if (computeShow(x.value, schema.properties[x.value].showExpr, args)) {
|
|
113
|
+
hidden[x.value] = false;
|
|
114
|
+
}
|
|
115
|
+
else if (!hidden[x.value]) {
|
|
116
|
+
hidden[x.value] = true;
|
|
117
|
+
// remove arg (important: will not trigger a re-render)
|
|
118
|
+
delete args[x.value];
|
|
119
|
+
// make sure it's made valid
|
|
120
|
+
inputCheck[x.value] = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
$: handleHiddenFields(schema, args);
|
|
126
|
+
$: isValid = allTrue(inputCheck ?? {});
|
|
109
127
|
</script>
|
|
110
128
|
|
|
129
|
+
<!-- {JSON.stringify(args)} -->
|
|
111
130
|
{#if showReset}
|
|
112
131
|
<div class="flex flex-row-reverse w-full">
|
|
113
132
|
<Button size="xs" color="light" on:click={() => setDefaults()}>
|
|
@@ -136,7 +155,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
|
|
|
136
155
|
}}
|
|
137
156
|
>
|
|
138
157
|
{#if typeof args == 'object' && schema?.properties[argName]}
|
|
139
|
-
{#if
|
|
158
|
+
{#if !hidden[argName]}
|
|
140
159
|
{#if lightweightMode}
|
|
141
160
|
<LightweightArgInput
|
|
142
161
|
label={argName}
|