windmill-components 1.339.2 → 1.352.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 +0 -12
- package/package/ata/index.js +1 -0
- package/package/autosize.js +1 -1
- package/package/common.d.ts +6 -2
- package/package/common.js +2 -1
- package/package/components/AppConnectDrawer.svelte +1 -1
- package/package/components/AppConnectInner.svelte +9 -15
- package/package/components/ArgEnum.svelte +4 -1
- package/package/components/ArgEnum.svelte.d.ts +3 -1
- package/package/components/ArgInput.svelte +184 -141
- package/package/components/ArgInput.svelte.d.ts +7 -7
- package/package/components/ArrayTypeNarrowing.svelte +29 -27
- package/package/components/CenteredPage.svelte +2 -2
- package/package/components/DefaultTagsInner.svelte +1 -1
- package/package/components/Dev.svelte +2 -1
- package/package/components/DiffDrawer.svelte +1 -2
- package/package/components/DisplayResult.svelte +293 -233
- package/package/components/DurationMs.svelte +11 -3
- package/package/components/DurationMs.svelte.d.ts +2 -0
- package/package/components/EditableSchemaForm.svelte +447 -103
- package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
- package/package/components/Editor.svelte +3 -1
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/FlowBuilder.svelte +14 -6
- package/package/components/FlowGraphViewer.svelte +1 -1
- package/package/components/FlowGraphViewerStep.svelte +37 -9
- package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
- package/package/components/FlowJobResult.svelte +1 -3
- package/package/components/FlowMetadata.svelte +1 -1
- package/package/components/FlowPreviewContent.svelte +5 -3
- package/package/components/FlowStatusViewer.svelte +4 -0
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +50 -17
- package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
- package/package/components/FlowTimeline.svelte +13 -0
- package/package/components/FlowTimeline.svelte.d.ts +2 -0
- package/package/components/FlowViewer.svelte +0 -5
- package/package/components/FolderEditor.svelte +25 -0
- package/package/components/FolderEditor.svelte.d.ts +2 -0
- package/package/components/GroupEditor.svelte +36 -91
- package/package/components/GroupInfo.svelte +1 -1
- package/package/components/InputTransformForm.svelte +16 -1
- package/package/components/InputTransformForm.svelte.d.ts +2 -0
- package/package/components/InputTransformSchemaForm.svelte +6 -0
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
- package/package/components/InstanceSettings.svelte +36 -3
- package/package/components/InstanceSettings.svelte.d.ts +2 -0
- package/package/components/JobStatus.svelte +2 -2
- package/package/components/LightweightArgInput.svelte +66 -14
- package/package/components/LightweightArgInput.svelte.d.ts +3 -2
- package/package/components/LightweightSchemaForm.svelte +24 -15
- package/package/components/ModulePreviewForm.svelte +1 -0
- package/package/components/NumberTypeNarrowing.svelte +71 -44
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ObjectTypeNarrowing.svelte +0 -1
- package/package/components/ParqetCsvTableRenderer.svelte +181 -0
- package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
- package/package/components/Path.svelte +2 -2
- package/package/components/PersistentScriptDrawer.svelte +6 -3
- package/package/components/Range.svelte +88 -286
- package/package/components/Range.svelte.d.ts +9 -23
- package/package/components/ResourceEditor.svelte +138 -141
- package/package/components/ResourceEditor.svelte.d.ts +9 -2
- package/package/components/ResourceEditorDrawer.svelte +45 -0
- package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
- package/package/components/ResourcePicker.svelte +5 -2
- package/package/components/ResourceTypePicker.svelte +88 -36
- package/package/components/RunChart.svelte +55 -5
- package/package/components/RunChart.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +1 -1
- package/package/components/S3FilePicker.svelte +20 -8
- package/package/components/S3FilePicker.svelte.d.ts +2 -0
- package/package/components/ScheduleEditorInner.svelte +40 -37
- package/package/components/SchemaForm.svelte +192 -103
- package/package/components/SchemaForm.svelte.d.ts +16 -2
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptSchedules.svelte +11 -8
- package/package/components/ScriptSchema.svelte +3 -21
- package/package/components/ScriptVersionHistory.svelte +1 -1
- package/package/components/StringTypeNarrowing.svelte +217 -174
- package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
- package/package/components/Toggle.svelte +6 -3
- package/package/components/Toggle.svelte.d.ts +1 -0
- package/package/components/UserSettings.svelte +24 -1
- package/package/components/WorkspaceGroup.svelte +11 -13
- package/package/components/apps/components/buttons/AppButton.svelte +2 -0
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
- package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
- package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
- package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
- package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/eval.js +1 -36
- package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppStepper.svelte +5 -1
- package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
- package/package/components/apps/components/layout/AppTabs.svelte +3 -1
- package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
- package/package/components/apps/editor/SettingsPanel.svelte +13 -3
- package/package/components/apps/editor/component/Component.svelte +8 -16
- package/package/components/apps/editor/component/components.d.ts +11 -2
- package/package/components/apps/editor/component/components.js +2 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
- package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
- package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
- package/package/components/common/button/ButtonDropdown.svelte +1 -0
- package/package/components/common/drawer/Disposable.svelte +3 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
- package/package/components/common/drawer/Drawer.svelte +12 -2
- package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
- package/package/components/common/fileDownload/FileDownload.svelte +4 -2
- package/package/components/common/fileUpload/FileUpload.svelte +4 -3
- package/package/components/common/modal/Modal.svelte +4 -1
- package/package/components/common/modal/Modal.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
- package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
- package/package/components/flows/content/FlowInput.svelte +63 -53
- package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
- package/package/components/flows/content/FlowModuleScript.svelte +40 -1
- package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
- package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
- package/package/components/flows/content/FlowSchedules.svelte +11 -8
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
- package/package/components/flows/flowStateUtils.js +4 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
- package/package/components/flows/types.d.ts +4 -0
- package/package/components/flows/utils.d.ts +5 -1
- package/package/components/flows/utils.js +36 -0
- package/package/components/graph/FlowGraph.svelte +5 -2
- package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
- package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
- package/package/components/graph/svelvet/container/models/index.js +1 -1
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
- package/package/components/graph/util.d.ts +1 -37
- package/package/components/graph/util.js +0 -34
- package/package/components/instanceSettings.js +2 -1
- package/package/components/jobs/JobPreview.svelte +1 -1
- package/package/components/multiselect/MultiSelect.svelte +4 -3
- package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
- package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
- package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
- package/package/components/runs/JobPreview.svelte +5 -1
- package/package/components/runs/RunRow.svelte +22 -3
- package/package/components/runs/RunRow.svelte.d.ts +2 -1
- package/package/components/runs/RunsTable.svelte +22 -9
- package/package/components/runs/RunsTable.svelte.d.ts +2 -1
- package/package/components/schema/AddProperty.svelte +149 -0
- package/package/components/schema/AddProperty.svelte.d.ts +23 -0
- package/package/components/schema/AddPropertyForm.svelte +33 -0
- package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
- package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
- package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
- package/package/components/schema/FlowPropertyEditor.svelte +393 -0
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
- package/package/components/schema/PropertyEditor.svelte +185 -0
- package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
- package/package/components/schema/SchemaFormDND.svelte +75 -0
- package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
- package/package/components/table/AutoDataTable.svelte +90 -104
- package/package/components/table/Cell.svelte +4 -1
- package/package/components/table/Cell.svelte.d.ts +1 -0
- package/package/components/table/DownloadCsv.svelte +30 -0
- package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
- package/package/components/table/tableUtils.d.ts +8 -0
- package/package/components/table/tableUtils.js +37 -0
- package/package/consts.js +3 -1
- package/package/deno_fetch.d.ts.txt +6 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +76 -0
- package/package/gen/schemas.gen.js +76 -0
- package/package/gen/services.gen.d.ts +100 -5
- package/package/gen/services.gen.js +216 -16
- package/package/gen/types.gen.d.ts +378 -5
- package/package/inferArgSig.d.ts +10 -0
- package/package/inferArgSig.js +59 -2
- package/package/scripts.d.ts +2 -0
- package/package/scripts.js +6 -3
- package/package/utils.d.ts +4 -3
- package/package/utils.js +9 -4
- package/package/workspace_settings.d.ts +15 -0
- package/package/workspace_settings.js +81 -0
- package/package.json +16 -7
- package/package/components/ParqetTableRenderer.svelte +0 -117
- package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
- package/package/components/PropertyRow.svelte +0 -88
- package/package/components/PropertyRow.svelte.d.ts +0 -23
- package/package/components/SchemaEditor.svelte +0 -346
- package/package/components/SchemaEditor.svelte.d.ts +0 -25
- package/package/components/SchemaModal.svelte +0 -443
- package/package/components/SchemaModal.svelte.d.ts +0 -33
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
- package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script>import { VariableService } from '../gen';
|
|
2
2
|
import { workspaceStore } from '../stores';
|
|
3
3
|
import { allTrue, computeShow } from '../utils';
|
|
4
|
-
import ArgInput from './ArgInput.svelte';
|
|
5
4
|
import { Button } from './common';
|
|
6
5
|
import ItemPicker from './ItemPicker.svelte';
|
|
7
6
|
import VariableEditor from './VariableEditor.svelte';
|
|
@@ -9,6 +8,12 @@ import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte
|
|
|
9
8
|
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
|
|
10
9
|
import { getResourceTypes } from './resourceTypesStore';
|
|
11
10
|
import { Plus } from 'lucide-svelte';
|
|
11
|
+
import ArgInput from './ArgInput.svelte';
|
|
12
|
+
import { createEventDispatcher } from 'svelte';
|
|
13
|
+
import LightweightArgInput from './LightweightArgInput.svelte';
|
|
14
|
+
import { deepEqual } from 'fast-equals';
|
|
15
|
+
import { dragHandleZone } from '@windmill-labs/svelte-dnd-action';
|
|
16
|
+
import { flip } from 'svelte/animate';
|
|
12
17
|
export let schema;
|
|
13
18
|
export let schemaSkippedValues = [];
|
|
14
19
|
export let schemaFieldTooltip = {};
|
|
@@ -29,8 +34,10 @@ export let disablePortal = false;
|
|
|
29
34
|
export let showSchemaExplorer = false;
|
|
30
35
|
export let showReset = false;
|
|
31
36
|
export let onlyMaskPassword = false;
|
|
32
|
-
let
|
|
33
|
-
export
|
|
37
|
+
export let lightweightMode = false;
|
|
38
|
+
export let dndConfig = undefined;
|
|
39
|
+
export let items = undefined;
|
|
40
|
+
const dispatch = createEventDispatcher();
|
|
34
41
|
let inputCheck = {};
|
|
35
42
|
$: if (args == undefined || typeof args !== 'object') {
|
|
36
43
|
args = {};
|
|
@@ -39,12 +46,15 @@ export function setDefaults() {
|
|
|
39
46
|
const nargs = {};
|
|
40
47
|
Object.keys(schema?.properties ?? {}).forEach((key) => {
|
|
41
48
|
if (schema?.properties[key].default != undefined && args[key] == undefined) {
|
|
42
|
-
|
|
49
|
+
let value = schema?.properties[key].default;
|
|
50
|
+
nargs[key] = value === 'object' ? JSON.parse(JSON.stringify(value)) : value;
|
|
43
51
|
}
|
|
44
52
|
});
|
|
45
53
|
args = nargs;
|
|
46
54
|
}
|
|
47
|
-
let keys =
|
|
55
|
+
let keys = Array.isArray(schema?.order)
|
|
56
|
+
? schema?.order
|
|
57
|
+
: Object.keys(schema?.properties ?? {});
|
|
48
58
|
function removeExtraKey() {
|
|
49
59
|
const nargs = {};
|
|
50
60
|
Object.keys(args ?? {}).forEach((key) => {
|
|
@@ -57,15 +67,6 @@ function removeExtraKey() {
|
|
|
57
67
|
let pickForField;
|
|
58
68
|
let itemPicker = undefined;
|
|
59
69
|
let variableEditor = undefined;
|
|
60
|
-
$: {
|
|
61
|
-
let lkeys = Object.keys(schema?.properties ?? {});
|
|
62
|
-
if (schema?.properties && JSON.stringify(lkeys) != JSON.stringify(keys)) {
|
|
63
|
-
keys = lkeys;
|
|
64
|
-
if (!noDelete) {
|
|
65
|
-
removeExtraKey();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
70
|
$: isValid = allTrue(inputCheck ?? {});
|
|
70
71
|
let resourceTypes = undefined;
|
|
71
72
|
async function loadResourceTypes() {
|
|
@@ -73,113 +74,201 @@ async function loadResourceTypes() {
|
|
|
73
74
|
}
|
|
74
75
|
loadResourceTypes();
|
|
75
76
|
$: schema && reorder();
|
|
77
|
+
function hasExtraKeys() {
|
|
78
|
+
return Object.keys(args ?? {}).some((x) => !keys.includes(x));
|
|
79
|
+
}
|
|
76
80
|
function reorder() {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
dispatch('change');
|
|
82
|
+
let lkeys = Object.keys(schema?.properties ?? {});
|
|
83
|
+
if (!deepEqual(schema?.order, lkeys) || !deepEqual(keys, lkeys)) {
|
|
84
|
+
if (schema?.order && Array.isArray(schema.order)) {
|
|
85
|
+
const n = {};
|
|
86
|
+
schema.order.forEach((x) => {
|
|
87
|
+
if (schema.properties && schema.properties[x] != undefined) {
|
|
88
|
+
n[x] = schema.properties[x];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
Object.keys(schema.properties ?? {})
|
|
92
|
+
.filter((x) => !schema.order?.includes(x))
|
|
93
|
+
.forEach((x) => {
|
|
81
94
|
n[x] = schema.properties[x];
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
.filter((x) => !schema.order?.includes(x))
|
|
86
|
-
.forEach((x) => {
|
|
87
|
-
n[x] = schema.properties[x];
|
|
88
|
-
});
|
|
89
|
-
schema.properties = n;
|
|
95
|
+
});
|
|
96
|
+
schema.properties = n;
|
|
97
|
+
}
|
|
90
98
|
keys = Object.keys(schema.properties ?? {});
|
|
91
99
|
}
|
|
100
|
+
if (!noDelete && hasExtraKeys()) {
|
|
101
|
+
removeExtraKey();
|
|
102
|
+
}
|
|
92
103
|
}
|
|
104
|
+
$: fields = items ?? keys.map((x) => ({ id: x, value: x }));
|
|
93
105
|
</script>
|
|
94
106
|
|
|
95
107
|
{#if showReset}
|
|
96
108
|
<div class="flex flex-row-reverse w-full">
|
|
97
|
-
<Button size="xs" color="light" on:click={() => setDefaults()}
|
|
98
|
-
|
|
99
|
-
>
|
|
109
|
+
<Button size="xs" color="light" on:click={() => setDefaults()}>
|
|
110
|
+
Reset args to runnable's defaults
|
|
111
|
+
</Button>
|
|
100
112
|
</div>
|
|
101
113
|
{/if}
|
|
102
|
-
|
|
114
|
+
|
|
115
|
+
<div
|
|
116
|
+
class="w-full {$$props.class} {flexWrap ? 'flex flex-row flex-wrap gap-x-6 ' : ''}"
|
|
117
|
+
use:dragHandleZone={dndConfig ?? { items: [], dragDisabled: true }}
|
|
118
|
+
on:finalize
|
|
119
|
+
on:consider
|
|
120
|
+
>
|
|
103
121
|
{#if keys.length > 0}
|
|
104
|
-
{#each
|
|
105
|
-
{
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
122
|
+
{#each fields as item, i (item.id)}
|
|
123
|
+
{@const argName = item.value}
|
|
124
|
+
<div animate:flip={{ duration: 200 }}>
|
|
125
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
126
|
+
{#if !schemaSkippedValues.includes(argName) && Object.keys(schema?.properties ?? {}).includes(argName)}
|
|
127
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
128
|
+
<div
|
|
129
|
+
class="flex flex-row items-center bg-surface"
|
|
130
|
+
on:click={() => {
|
|
131
|
+
dispatch('click', argName)
|
|
132
|
+
}}
|
|
133
|
+
>
|
|
134
|
+
{#if typeof args == 'object' && schema?.properties[argName]}
|
|
135
|
+
{#if computeShow(argName, schema?.properties[argName].showExpr, args)}
|
|
136
|
+
{#if lightweightMode}
|
|
137
|
+
<LightweightArgInput
|
|
138
|
+
label={argName}
|
|
139
|
+
description={schema.properties[argName].description}
|
|
140
|
+
bind:value={args[argName]}
|
|
141
|
+
type={schema.properties[argName].type}
|
|
142
|
+
oneOf={schema.properties[argName].oneOf}
|
|
143
|
+
required={schema?.required?.includes(argName)}
|
|
144
|
+
pattern={schema.properties[argName].pattern}
|
|
145
|
+
bind:valid={inputCheck[argName]}
|
|
146
|
+
defaultValue={schema.properties[argName].default}
|
|
147
|
+
enum_={schema.properties[argName].enum}
|
|
148
|
+
format={schema.properties[argName].format}
|
|
149
|
+
contentEncoding={schema.properties[argName].contentEncoding}
|
|
150
|
+
customErrorMessage={schema.properties[argName].customErrorMessage}
|
|
151
|
+
bind:properties={schema.properties[argName].properties}
|
|
152
|
+
nestedRequired={schema.properties[argName]?.required}
|
|
153
|
+
itemsType={schema.properties[argName].items}
|
|
154
|
+
extra={schema.properties[argName]}
|
|
155
|
+
title={schema.properties[argName].title}
|
|
156
|
+
placeholder={schema.properties[argName].placeholder}
|
|
157
|
+
>
|
|
158
|
+
<svelte:fragment slot="actions">
|
|
159
|
+
<slot name="actions" />
|
|
160
|
+
{#if linkedSecretCandidates?.includes(argName)}
|
|
161
|
+
<div>
|
|
162
|
+
<ToggleButtonGroup
|
|
163
|
+
selected={linkedSecret == argName}
|
|
164
|
+
on:selected={(e) => {
|
|
165
|
+
if (e.detail) {
|
|
166
|
+
linkedSecret = argName
|
|
167
|
+
} else if (linkedSecret == argName) {
|
|
168
|
+
linkedSecret = undefined
|
|
169
|
+
}
|
|
170
|
+
}}
|
|
171
|
+
>
|
|
172
|
+
<ToggleButton
|
|
173
|
+
value={false}
|
|
174
|
+
size="sm"
|
|
175
|
+
label="Inlined"
|
|
176
|
+
tooltip="The value is inlined in the resource and thus has no special treatment."
|
|
177
|
+
/>
|
|
178
|
+
<ToggleButton
|
|
179
|
+
position="right"
|
|
180
|
+
value={true}
|
|
181
|
+
size="sm"
|
|
182
|
+
label="Secret"
|
|
183
|
+
tooltip="The value will be stored in a newly created linked secret variable at the same path. That variable can be permissioned differently, will be treated as a secret the UI, operators will not be able to load it and every access will generate a corresponding audit log."
|
|
184
|
+
/>
|
|
185
|
+
</ToggleButtonGroup>
|
|
186
|
+
</div>{/if}
|
|
187
|
+
</svelte:fragment>
|
|
188
|
+
</LightweightArgInput>
|
|
189
|
+
{:else}
|
|
190
|
+
<ArgInput
|
|
191
|
+
on:change={() => dispatch('change')}
|
|
192
|
+
{disablePortal}
|
|
193
|
+
{resourceTypes}
|
|
194
|
+
{prettifyHeader}
|
|
195
|
+
autofocus={i == 0 && autofocus ? true : null}
|
|
196
|
+
label={argName}
|
|
197
|
+
description={schema.properties[argName].description}
|
|
198
|
+
bind:value={args[argName]}
|
|
199
|
+
type={schema.properties[argName].type}
|
|
200
|
+
oneOf={schema.properties[argName].oneOf}
|
|
201
|
+
required={schema?.required?.includes(argName)}
|
|
202
|
+
pattern={schema.properties[argName].pattern}
|
|
203
|
+
bind:valid={inputCheck[argName]}
|
|
204
|
+
defaultValue={schema.properties[argName].default}
|
|
205
|
+
enum_={schema.properties[argName].enum}
|
|
206
|
+
format={schema.properties[argName].format}
|
|
207
|
+
contentEncoding={schema.properties[argName].contentEncoding}
|
|
208
|
+
customErrorMessage={schema.properties[argName].customErrorMessage}
|
|
209
|
+
bind:properties={schema.properties[argName].properties}
|
|
210
|
+
bind:order={schema.properties[argName].order}
|
|
211
|
+
nestedRequired={schema.properties[argName]?.required}
|
|
212
|
+
itemsType={schema.properties[argName].items}
|
|
213
|
+
disabled={disabledArgs.includes(argName) || disabled}
|
|
214
|
+
{compact}
|
|
215
|
+
{variableEditor}
|
|
216
|
+
{itemPicker}
|
|
217
|
+
bind:pickForField
|
|
218
|
+
password={linkedSecret == argName}
|
|
219
|
+
extra={schema.properties[argName]}
|
|
220
|
+
{showSchemaExplorer}
|
|
221
|
+
simpleTooltip={schemaFieldTooltip[argName]}
|
|
222
|
+
{onlyMaskPassword}
|
|
223
|
+
nullable={schema.properties[argName].nullable}
|
|
224
|
+
title={schema.properties[argName].title}
|
|
225
|
+
placeholder={schema.properties[argName].placeholder}
|
|
226
|
+
orderEditable={dndConfig != undefined}
|
|
227
|
+
>
|
|
228
|
+
<svelte:fragment slot="actions">
|
|
229
|
+
<slot name="actions" />
|
|
230
|
+
{#if linkedSecretCandidates?.includes(argName)}
|
|
231
|
+
<div>
|
|
232
|
+
<ToggleButtonGroup
|
|
233
|
+
selected={linkedSecret == argName}
|
|
234
|
+
on:selected={(e) => {
|
|
235
|
+
if (e.detail) {
|
|
236
|
+
linkedSecret = argName
|
|
237
|
+
} else if (linkedSecret == argName) {
|
|
238
|
+
linkedSecret = undefined
|
|
239
|
+
}
|
|
240
|
+
}}
|
|
241
|
+
>
|
|
242
|
+
<ToggleButton
|
|
243
|
+
value={false}
|
|
244
|
+
size="sm"
|
|
245
|
+
label="Inlined"
|
|
246
|
+
tooltip="The value is inlined in the resource and thus has no special treatment."
|
|
247
|
+
/>
|
|
248
|
+
<ToggleButton
|
|
249
|
+
position="right"
|
|
250
|
+
value={true}
|
|
251
|
+
size="sm"
|
|
252
|
+
label="Secret"
|
|
253
|
+
tooltip="The value will be stored in a newly created linked secret variable at the same path. That variable can be permissioned differently, will be treated as a secret the UI, operators will not be able to load it and every access will generate a corresponding audit log."
|
|
254
|
+
/>
|
|
255
|
+
</ToggleButtonGroup>
|
|
256
|
+
</div>{/if}</svelte:fragment
|
|
257
|
+
>
|
|
258
|
+
</ArgInput>
|
|
259
|
+
{/if}
|
|
260
|
+
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
261
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
262
|
+
{/if}
|
|
173
263
|
{/if}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
264
|
+
</div>
|
|
265
|
+
{/if}
|
|
266
|
+
</div>
|
|
177
267
|
{/each}
|
|
178
268
|
{:else if !shouldHideNoInputs}
|
|
179
269
|
<div class="text-secondary text-sm">No inputs</div>
|
|
180
270
|
{/if}
|
|
181
271
|
</div>
|
|
182
|
-
|
|
183
272
|
{#if !noVariablePicker}
|
|
184
273
|
<ItemPicker
|
|
185
274
|
bind:this={itemPicker}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type { Schema } from '../common';
|
|
3
|
+
import { type Options as DndOptions } from '@windmill-labs/svelte-dnd-action';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
6
|
+
[x: string]: any;
|
|
5
7
|
schema: Schema | any;
|
|
6
8
|
schemaSkippedValues?: string[] | undefined;
|
|
7
9
|
schemaFieldTooltip?: Record<string, string> | undefined;
|
|
@@ -22,13 +24,25 @@ declare const __propDef: {
|
|
|
22
24
|
showSchemaExplorer?: boolean | undefined;
|
|
23
25
|
showReset?: boolean | undefined;
|
|
24
26
|
onlyMaskPassword?: boolean | undefined;
|
|
25
|
-
|
|
27
|
+
lightweightMode?: boolean | undefined;
|
|
28
|
+
dndConfig?: DndOptions | undefined;
|
|
29
|
+
items?: {
|
|
30
|
+
id: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}[] | undefined;
|
|
26
33
|
setDefaults?: (() => void) | undefined;
|
|
27
34
|
};
|
|
28
35
|
events: {
|
|
36
|
+
finalize: Event | ClipboardEvent | CompositionEvent | UIEvent | FocusEvent | InputEvent | SubmitEvent | FormDataEvent | KeyboardEvent | MouseEvent | DragEvent | TouchEvent | PointerEvent | WheelEvent | AnimationEvent | TransitionEvent | ErrorEvent | ProgressEvent<EventTarget> | SecurityPolicyViolationEvent;
|
|
37
|
+
consider: Event | ClipboardEvent | CompositionEvent | UIEvent | FocusEvent | InputEvent | SubmitEvent | FormDataEvent | KeyboardEvent | MouseEvent | DragEvent | TouchEvent | PointerEvent | WheelEvent | AnimationEvent | TransitionEvent | ErrorEvent | ProgressEvent<EventTarget> | SecurityPolicyViolationEvent;
|
|
38
|
+
click: CustomEvent<any>;
|
|
39
|
+
change: CustomEvent<any>;
|
|
40
|
+
} & {
|
|
29
41
|
[evt: string]: CustomEvent<any>;
|
|
30
42
|
};
|
|
31
|
-
slots: {
|
|
43
|
+
slots: {
|
|
44
|
+
actions: {};
|
|
45
|
+
};
|
|
32
46
|
};
|
|
33
47
|
export type SchemaFormProps = typeof __propDef.props;
|
|
34
48
|
export type SchemaFormEvents = typeof __propDef.events;
|
|
@@ -22,7 +22,6 @@ import Toggle from './Toggle.svelte';
|
|
|
22
22
|
import ScriptSchema from './ScriptSchema.svelte';
|
|
23
23
|
import Section from './Section.svelte';
|
|
24
24
|
import Label from './Label.svelte';
|
|
25
|
-
import { cloneDeep } from 'lodash';
|
|
26
25
|
import WorkerTagPicker from './WorkerTagPicker.svelte';
|
|
27
26
|
import MetadataGen from './copilot/MetadataGen.svelte';
|
|
28
27
|
import ScriptSchedules from './ScriptSchedules.svelte';
|
|
@@ -225,7 +224,7 @@ async function editScript(stay) {
|
|
|
225
224
|
else if (enabled) {
|
|
226
225
|
await createSchedule(script.path);
|
|
227
226
|
}
|
|
228
|
-
savedScript =
|
|
227
|
+
savedScript = structuredClone(script);
|
|
229
228
|
if (!disableHistoryChange) {
|
|
230
229
|
history.replaceState(history.state, '', `/scripts/edit/${script.path}`);
|
|
231
230
|
}
|
|
@@ -324,9 +323,9 @@ async function saveDraft(forceSave = false) {
|
|
|
324
323
|
});
|
|
325
324
|
savedScript = {
|
|
326
325
|
...(initialPath == '' || savedScript?.draft_only
|
|
327
|
-
? { ...
|
|
326
|
+
? { ...structuredClone(script), draft_only: true }
|
|
328
327
|
: savedScript),
|
|
329
|
-
draft:
|
|
328
|
+
draft: structuredClone(script)
|
|
330
329
|
};
|
|
331
330
|
if (initialPath == '' || (savedScript?.draft_only && script.path !== initialPath)) {
|
|
332
331
|
initialPath = script.path;
|
|
@@ -387,7 +386,11 @@ let selectedTab = 'metadata';
|
|
|
387
386
|
<slot />
|
|
388
387
|
|
|
389
388
|
{#if !$userStore?.operator}
|
|
390
|
-
<Drawer
|
|
389
|
+
<Drawer
|
|
390
|
+
placement="right"
|
|
391
|
+
bind:open={metadataOpen}
|
|
392
|
+
size={selectedTab === 'ui' ? '1200px' : '800px'}
|
|
393
|
+
>
|
|
391
394
|
<DrawerContent noPadding title="Settings" on:close={() => (metadataOpen = false)}>
|
|
392
395
|
<!-- svelte-ignore a11y-autofocus -->
|
|
393
396
|
<Tabs bind:selected={selectedTab}>
|
|
@@ -404,7 +407,10 @@ let selectedTab = 'metadata';
|
|
|
404
407
|
</Tab>
|
|
405
408
|
<Tab value="schedule" active={$scheduleStore.enabled}>Schedule</Tab>
|
|
406
409
|
<svelte:fragment slot="content">
|
|
407
|
-
<div
|
|
410
|
+
<div
|
|
411
|
+
class={selectedTab === 'ui' ? 'p-0' : 'p-4'}
|
|
412
|
+
style={selectedTab === 'ui' ? `height: calc(100% - 32px);` : ''}
|
|
413
|
+
>
|
|
408
414
|
<TabContent value="metadata">
|
|
409
415
|
<div class="flex flex-col gap-8">
|
|
410
416
|
<Section label="Metadata">
|
|
@@ -896,8 +902,7 @@ let selectedTab = 'metadata';
|
|
|
896
902
|
{/if}
|
|
897
903
|
</div>
|
|
898
904
|
</TabContent>
|
|
899
|
-
<TabContent value="ui">
|
|
900
|
-
<div class="mt-4" />
|
|
905
|
+
<TabContent value="ui" class="h-full">
|
|
901
906
|
<ScriptSchema bind:schema={script.schema} />
|
|
902
907
|
</TabContent>
|
|
903
908
|
<TabContent value="schedule">
|
|
@@ -7,6 +7,7 @@ import ScheduleEditor from './ScheduleEditor.svelte';
|
|
|
7
7
|
import { ScheduleService } from '../gen';
|
|
8
8
|
import { workspaceStore } from '../stores';
|
|
9
9
|
import { Calendar } from 'lucide-svelte';
|
|
10
|
+
import Label from './Label.svelte';
|
|
10
11
|
export let initialPath;
|
|
11
12
|
export let schema;
|
|
12
13
|
export let schedule;
|
|
@@ -29,15 +30,17 @@ let scheduleEditor;
|
|
|
29
30
|
$: initialPath && loadSchedules();
|
|
30
31
|
</script>
|
|
31
32
|
|
|
32
|
-
<div class="w-full
|
|
33
|
+
<div class="w-full flex flex-col gap-4 mb-4">
|
|
33
34
|
<!-- svelte-ignore a11y-autofocus -->
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
<Label label="Summary">
|
|
36
|
+
<input
|
|
37
|
+
autofocus
|
|
38
|
+
type="text"
|
|
39
|
+
placeholder="Short summary to be displayed when listed"
|
|
40
|
+
class="text-sm w-full"
|
|
41
|
+
bind:value={$schedule.summary}
|
|
42
|
+
/>
|
|
43
|
+
</Label>
|
|
41
44
|
</div>
|
|
42
45
|
|
|
43
46
|
<CronInput bind:schedule={$schedule.cron} bind:timezone={$schedule.timezone} />
|
|
@@ -1,27 +1,9 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import Tabs from './common/tabs/Tabs.svelte';
|
|
3
|
-
import TabContent from './common/tabs/TabContent.svelte';
|
|
4
|
-
import Highlight from 'svelte-highlight';
|
|
5
|
-
import json from 'svelte-highlight/languages/json';
|
|
6
|
-
import EditableSchemaForm from './EditableSchemaForm.svelte';
|
|
1
|
+
<script>import EditableSchemaForm from './EditableSchemaForm.svelte';
|
|
7
2
|
export let schema;
|
|
8
3
|
export function setSchema(newSchema) {
|
|
9
4
|
schema = newSchema;
|
|
10
5
|
}
|
|
6
|
+
const yOffset = 80;
|
|
11
7
|
</script>
|
|
12
8
|
|
|
13
|
-
<
|
|
14
|
-
<Tabs selected="ui">
|
|
15
|
-
<Tab value="ui">Arguments</Tab>
|
|
16
|
-
<Tab value="jsonschema">JSON Schema</Tab>
|
|
17
|
-
<svelte:fragment slot="content">
|
|
18
|
-
<TabContent value="ui">
|
|
19
|
-
<div class="mt-4" />
|
|
20
|
-
<EditableSchemaForm bind:schema />
|
|
21
|
-
</TabContent>
|
|
22
|
-
<TabContent value="jsonschema">
|
|
23
|
-
<Highlight language={json} code={JSON.stringify(schema, null, 4)} />
|
|
24
|
-
</TabContent>
|
|
25
|
-
</svelte:fragment>
|
|
26
|
-
</Tabs>
|
|
27
|
-
</div>
|
|
9
|
+
<EditableSchemaForm bind:schema uiOnly offset={yOffset} />
|