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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<script>import { modalToSchema } from '../../common';
|
|
2
|
+
import { emptySchema, sendUserToast } from '../../utils';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import SimpleEditor from '../SimpleEditor.svelte';
|
|
5
|
+
import AddPropertyForm from './AddPropertyForm.svelte';
|
|
6
|
+
export let schema = emptySchema();
|
|
7
|
+
export const DEFAULT_PROPERTY = {
|
|
8
|
+
selectedType: 'string',
|
|
9
|
+
description: '',
|
|
10
|
+
name: '',
|
|
11
|
+
required: false
|
|
12
|
+
};
|
|
13
|
+
const dispatch = createEventDispatcher();
|
|
14
|
+
if (!schema) {
|
|
15
|
+
schema = emptySchema();
|
|
16
|
+
}
|
|
17
|
+
let schemaString = '';
|
|
18
|
+
// Internal state: bound to args builder modal
|
|
19
|
+
let argError = '';
|
|
20
|
+
let editing = false;
|
|
21
|
+
let oldArgName; // when editing argument and changing name
|
|
22
|
+
let jsonEditor;
|
|
23
|
+
reorder();
|
|
24
|
+
function reorder() {
|
|
25
|
+
if (schema.order && Array.isArray(schema.order)) {
|
|
26
|
+
const n = {};
|
|
27
|
+
schema.order.forEach((x) => {
|
|
28
|
+
if (schema.properties && schema.properties[x] != undefined) {
|
|
29
|
+
n[x] = schema.properties[x];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.keys(schema.properties ?? {})
|
|
33
|
+
.filter((x) => !schema.order?.includes(x))
|
|
34
|
+
.forEach((x) => {
|
|
35
|
+
n[x] = schema.properties[x];
|
|
36
|
+
});
|
|
37
|
+
schema.properties = n;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function syncOrders() {
|
|
41
|
+
if (schema) {
|
|
42
|
+
schema.order = Object.keys(schema.properties ?? {});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function handleAddOrEditArgument(modalProperty) {
|
|
46
|
+
// If editing the arg's name, oldName containing the old argument name must be provided
|
|
47
|
+
argError = '';
|
|
48
|
+
modalProperty.name = modalProperty.name.trim();
|
|
49
|
+
if (modalProperty.name.length === 0) {
|
|
50
|
+
argError = 'Arguments need to have a name';
|
|
51
|
+
}
|
|
52
|
+
else if (Object.keys(schema.properties ?? {}).includes(modalProperty.name) &&
|
|
53
|
+
(!editing || (editing && oldArgName && oldArgName !== modalProperty.name))) {
|
|
54
|
+
argError = 'There is already an argument with this name';
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
if (!schema.properties) {
|
|
58
|
+
schema.properties = {};
|
|
59
|
+
}
|
|
60
|
+
if (!schema.required) {
|
|
61
|
+
schema.required = [];
|
|
62
|
+
}
|
|
63
|
+
if (!schema.order || !Array.isArray(schema.order)) {
|
|
64
|
+
syncOrders();
|
|
65
|
+
}
|
|
66
|
+
schema.properties[modalProperty.name] = modalToSchema(modalProperty);
|
|
67
|
+
if (modalProperty.required) {
|
|
68
|
+
if (!schema.required.includes(modalProperty.name)) {
|
|
69
|
+
schema.required.push(modalProperty.name);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (schema.required.includes(modalProperty.name)) {
|
|
73
|
+
const index = schema.required.indexOf(modalProperty.name, 0);
|
|
74
|
+
if (index > -1) {
|
|
75
|
+
schema.required.splice(index, 1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (editing && oldArgName && oldArgName !== modalProperty.name) {
|
|
79
|
+
let oldPosition = schema.order.indexOf(oldArgName);
|
|
80
|
+
schema.order[oldPosition] = modalProperty.name;
|
|
81
|
+
reorder();
|
|
82
|
+
handleDeleteArgument([oldArgName]);
|
|
83
|
+
}
|
|
84
|
+
if (!schema.order?.includes(modalProperty.name)) {
|
|
85
|
+
schema.order.push(modalProperty.name);
|
|
86
|
+
}
|
|
87
|
+
modalProperty = Object.assign({}, DEFAULT_PROPERTY);
|
|
88
|
+
editing = false;
|
|
89
|
+
oldArgName = undefined;
|
|
90
|
+
}
|
|
91
|
+
schema = schema;
|
|
92
|
+
schemaString = JSON.stringify(schema, null, '\t');
|
|
93
|
+
jsonEditor?.setCode(schemaString);
|
|
94
|
+
if (argError !== '') {
|
|
95
|
+
sendUserToast(argError, true);
|
|
96
|
+
}
|
|
97
|
+
dispatch('change', schema);
|
|
98
|
+
}
|
|
99
|
+
export function handleDeleteArgument(argPath) {
|
|
100
|
+
try {
|
|
101
|
+
let modifiedObject = schema;
|
|
102
|
+
let modifiedProperties = modifiedObject.properties;
|
|
103
|
+
let argName = argPath.pop();
|
|
104
|
+
argPath.forEach((property) => {
|
|
105
|
+
if (Object.keys(modifiedProperties).includes(property)) {
|
|
106
|
+
modifiedObject = modifiedProperties[property];
|
|
107
|
+
modifiedProperties = modifiedObject.properties;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
throw Error('Nested argument not found!');
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
if (Object.keys(modifiedProperties).includes(argName)) {
|
|
114
|
+
delete modifiedProperties[argName];
|
|
115
|
+
modifiedObject.required = schema.required.filter((arg) => arg !== argName);
|
|
116
|
+
if (modifiedObject.order) {
|
|
117
|
+
modifiedObject.order = modifiedObject.order.filter((arg) => arg !== argName);
|
|
118
|
+
}
|
|
119
|
+
schema = schema;
|
|
120
|
+
schemaString = JSON.stringify(schema, null, '\t');
|
|
121
|
+
dispatch('change', schema);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
throw Error('Argument not found!');
|
|
125
|
+
}
|
|
126
|
+
syncOrders();
|
|
127
|
+
dispatch('change', schema);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
sendUserToast(`Could not delete argument: ${err}`, true);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
</script>
|
|
134
|
+
|
|
135
|
+
<div class="flex">
|
|
136
|
+
<AddPropertyForm
|
|
137
|
+
on:add={(e) => {
|
|
138
|
+
try {
|
|
139
|
+
handleAddOrEditArgument({
|
|
140
|
+
...DEFAULT_PROPERTY,
|
|
141
|
+
selectedType: 'string',
|
|
142
|
+
name: e.detail.name
|
|
143
|
+
})
|
|
144
|
+
} catch (err) {
|
|
145
|
+
sendUserToast(`Could not add argument: ${err}`, true)
|
|
146
|
+
}
|
|
147
|
+
}}
|
|
148
|
+
/>
|
|
149
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type Schema, type ModalSchemaProperty } from '../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
schema?: Schema | any;
|
|
6
|
+
DEFAULT_PROPERTY?: ModalSchemaProperty | undefined;
|
|
7
|
+
handleDeleteArgument?: ((argPath: string[]) => void) | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
change: CustomEvent<any>;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {};
|
|
15
|
+
};
|
|
16
|
+
export type AddPropertyProps = typeof __propDef.props;
|
|
17
|
+
export type AddPropertyEvents = typeof __propDef.events;
|
|
18
|
+
export type AddPropertySlots = typeof __propDef.slots;
|
|
19
|
+
export default class AddProperty extends SvelteComponent<AddPropertyProps, AddPropertyEvents, AddPropertySlots> {
|
|
20
|
+
get DEFAULT_PROPERTY(): ModalSchemaProperty;
|
|
21
|
+
get handleDeleteArgument(): (argPath: string[]) => void;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script>import { createEventDispatcher } from 'svelte';
|
|
2
|
+
import { Button } from '../common';
|
|
3
|
+
import { Plus } from 'lucide-svelte';
|
|
4
|
+
let name = '';
|
|
5
|
+
const dispatch = createEventDispatcher();
|
|
6
|
+
function addField() {
|
|
7
|
+
dispatch('add', { name });
|
|
8
|
+
name = '';
|
|
9
|
+
}
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<div class="flex flex-row gap-2">
|
|
13
|
+
<input
|
|
14
|
+
bind:value={name}
|
|
15
|
+
placeholder="Field name"
|
|
16
|
+
on:keydown={(event) => {
|
|
17
|
+
if (event.key === 'Enter') {
|
|
18
|
+
addField()
|
|
19
|
+
}
|
|
20
|
+
}}
|
|
21
|
+
/>
|
|
22
|
+
<Button
|
|
23
|
+
variant="contained"
|
|
24
|
+
color="dark"
|
|
25
|
+
size="xs"
|
|
26
|
+
startIcon={{ icon: Plus }}
|
|
27
|
+
id="flow-editor-add-property"
|
|
28
|
+
on:click={addField}
|
|
29
|
+
disabled={!name}
|
|
30
|
+
>
|
|
31
|
+
Add field
|
|
32
|
+
</Button>
|
|
33
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: Record<string, never>;
|
|
4
|
+
events: {
|
|
5
|
+
add: CustomEvent<any>;
|
|
6
|
+
} & {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {};
|
|
10
|
+
};
|
|
11
|
+
export type AddPropertyFormProps = typeof __propDef.props;
|
|
12
|
+
export type AddPropertyFormEvents = typeof __propDef.events;
|
|
13
|
+
export type AddPropertyFormSlots = typeof __propDef.slots;
|
|
14
|
+
export default class AddPropertyForm extends SvelteComponent<AddPropertyFormProps, AddPropertyFormEvents, AddPropertyFormSlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<script>import { GripVertical, Pen, Trash } from 'lucide-svelte';
|
|
2
|
+
import EditableSchemaForm from '../EditableSchemaForm.svelte';
|
|
3
|
+
import { Drawer, DrawerContent } from '../common';
|
|
4
|
+
import AddProperty from './AddProperty.svelte';
|
|
5
|
+
import { dragHandle, dragHandleZone } from '@windmill-labs/svelte-dnd-action';
|
|
6
|
+
import { flip } from 'svelte/animate';
|
|
7
|
+
import { emptyString, generateRandomString } from '../../utils';
|
|
8
|
+
import Button from '../common/button/Button.svelte';
|
|
9
|
+
import { createEventDispatcher, tick } from 'svelte';
|
|
10
|
+
import Label from '../Label.svelte';
|
|
11
|
+
import Toggle from '../Toggle.svelte';
|
|
12
|
+
import SimpleEditor from '../SimpleEditor.svelte';
|
|
13
|
+
export let schema;
|
|
14
|
+
export let parentId = undefined;
|
|
15
|
+
const flipDurationMs = 200;
|
|
16
|
+
const dispatch = createEventDispatcher();
|
|
17
|
+
let addProperty = undefined;
|
|
18
|
+
let schemaFormDrawer = undefined;
|
|
19
|
+
let editableSchemaForm = undefined;
|
|
20
|
+
$: items = ((schema?.order ?? Object.keys(schema.properties ?? {}))?.map((item, index) => {
|
|
21
|
+
return { value: item, id: generateRandomString() };
|
|
22
|
+
}) ?? []);
|
|
23
|
+
function handleConsider(e) {
|
|
24
|
+
const { items: newItems } = e.detail;
|
|
25
|
+
items = newItems;
|
|
26
|
+
}
|
|
27
|
+
function handleFinalize(e) {
|
|
28
|
+
const { items: newItems } = e.detail;
|
|
29
|
+
items = newItems;
|
|
30
|
+
const keys = items.map((item) => item.value);
|
|
31
|
+
schema.properties = keys.reduce((acc, key) => {
|
|
32
|
+
acc[key] = schema.properties[key];
|
|
33
|
+
return acc;
|
|
34
|
+
}, {});
|
|
35
|
+
schema.order = keys;
|
|
36
|
+
schema = { ...schema };
|
|
37
|
+
dispatch('change', schema);
|
|
38
|
+
}
|
|
39
|
+
const yOffset = 49;
|
|
40
|
+
export let jsonView = false;
|
|
41
|
+
let schemaString = JSON.stringify(schema, null, '\t');
|
|
42
|
+
let editor = undefined;
|
|
43
|
+
let error = undefined;
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<div class="flex flex-col items-end mb-2 w-full">
|
|
47
|
+
<Toggle
|
|
48
|
+
bind:checked={jsonView}
|
|
49
|
+
label="JSON View"
|
|
50
|
+
size="xs"
|
|
51
|
+
options={{
|
|
52
|
+
right: 'JSON Editor',
|
|
53
|
+
rightTooltip:
|
|
54
|
+
'Arguments can be edited either using the wizard, or by editing their JSON Schema.'
|
|
55
|
+
}}
|
|
56
|
+
lightMode
|
|
57
|
+
on:change={() => {
|
|
58
|
+
schemaString = JSON.stringify(schema, null, '\t')
|
|
59
|
+
editor?.setCode(schemaString)
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<AddProperty
|
|
65
|
+
on:change={() => {
|
|
66
|
+
if (jsonView) {
|
|
67
|
+
schemaString = JSON.stringify(schema, null, '\t')
|
|
68
|
+
editor?.setCode(schemaString)
|
|
69
|
+
}
|
|
70
|
+
dispatch('change', schema)
|
|
71
|
+
}}
|
|
72
|
+
bind:schema
|
|
73
|
+
bind:this={addProperty}
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
{#if !jsonView}
|
|
77
|
+
<div
|
|
78
|
+
use:dragHandleZone={{
|
|
79
|
+
items,
|
|
80
|
+
flipDurationMs,
|
|
81
|
+
dropTargetStyle: {},
|
|
82
|
+
type: parentId ? `app-editor-fields-${parentId}` : 'app-editor-fields'
|
|
83
|
+
}}
|
|
84
|
+
on:consider={handleConsider}
|
|
85
|
+
on:finalize={handleFinalize}
|
|
86
|
+
class="gap-1 flex flex-col mt-2"
|
|
87
|
+
>
|
|
88
|
+
{#if items?.length > 0}
|
|
89
|
+
{#each items as item (item.id)}
|
|
90
|
+
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
91
|
+
<div
|
|
92
|
+
animate:flip={{ duration: 200 }}
|
|
93
|
+
class="w-full flex flex-col justify-between border items-center py-1 px-2 rounded-md bg-surface text-sm"
|
|
94
|
+
>
|
|
95
|
+
{#if schema.properties?.[item.value]}
|
|
96
|
+
<div class="flex flex-row justify-between items-center w-full">
|
|
97
|
+
{`${item.value}${
|
|
98
|
+
schema.properties?.[item.value]?.title
|
|
99
|
+
? ` (title: ${schema.properties?.[item.value]?.title})`
|
|
100
|
+
: ''
|
|
101
|
+
} `}
|
|
102
|
+
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
103
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
104
|
+
<div class="flex flex-row gap-1 item-center h-full justify-center">
|
|
105
|
+
<Button
|
|
106
|
+
iconOnly
|
|
107
|
+
size="xs2"
|
|
108
|
+
color="light"
|
|
109
|
+
startIcon={{ icon: Trash }}
|
|
110
|
+
on:click={() => {
|
|
111
|
+
addProperty?.handleDeleteArgument([item.value])
|
|
112
|
+
}}
|
|
113
|
+
/>
|
|
114
|
+
<Button
|
|
115
|
+
iconOnly
|
|
116
|
+
size="xs2"
|
|
117
|
+
color="light"
|
|
118
|
+
startIcon={{ icon: Pen }}
|
|
119
|
+
on:click={() => {
|
|
120
|
+
schemaFormDrawer?.openDrawer()
|
|
121
|
+
|
|
122
|
+
tick().then(() => {
|
|
123
|
+
editableSchemaForm?.openField(item.value)
|
|
124
|
+
})
|
|
125
|
+
}}
|
|
126
|
+
/>
|
|
127
|
+
|
|
128
|
+
<div class="cursor-move flex items-center handle" use:dragHandle>
|
|
129
|
+
<GripVertical size={16} />
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
{#if schema.properties[item.value]?.type === 'object' && !(schema.properties[item.value].oneOf && schema.properties[item.value].oneOf.length >= 2)}
|
|
135
|
+
<div class="flex flex-col w-full mt-2">
|
|
136
|
+
<Label label="Nested Properties">
|
|
137
|
+
<svelte:self
|
|
138
|
+
on:change={() => (schema = schema)}
|
|
139
|
+
schema={schema.properties[item.value]}
|
|
140
|
+
parentId={item.value}
|
|
141
|
+
/>
|
|
142
|
+
</Label>
|
|
143
|
+
</div>
|
|
144
|
+
{/if}
|
|
145
|
+
{:else}
|
|
146
|
+
<div class="text-tertiary"> Value is undefined </div>
|
|
147
|
+
{/if}
|
|
148
|
+
</div>
|
|
149
|
+
{/each}
|
|
150
|
+
{/if}
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<Drawer bind:this={schemaFormDrawer} size="1200px">
|
|
154
|
+
<DrawerContent noPadding title="UI Customisation" on:close={schemaFormDrawer.closeDrawer}>
|
|
155
|
+
<svelte:fragment slot="actions">
|
|
156
|
+
<AddProperty bind:schema />
|
|
157
|
+
</svelte:fragment>
|
|
158
|
+
<EditableSchemaForm
|
|
159
|
+
bind:this={editableSchemaForm}
|
|
160
|
+
bind:schema
|
|
161
|
+
isAppInput
|
|
162
|
+
on:edit={(e) => {
|
|
163
|
+
addProperty?.openDrawer(e.detail)
|
|
164
|
+
}}
|
|
165
|
+
on:delete={(e) => {
|
|
166
|
+
addProperty?.handleDeleteArgument([e.detail])
|
|
167
|
+
}}
|
|
168
|
+
offset={yOffset}
|
|
169
|
+
lightweightMode
|
|
170
|
+
dndType="drawer"
|
|
171
|
+
/>
|
|
172
|
+
</DrawerContent>
|
|
173
|
+
</Drawer>
|
|
174
|
+
{:else}
|
|
175
|
+
<div class="mt-2" />
|
|
176
|
+
<SimpleEditor
|
|
177
|
+
bind:this={editor}
|
|
178
|
+
small
|
|
179
|
+
fixedOverflowWidgets={false}
|
|
180
|
+
on:change={() => {
|
|
181
|
+
try {
|
|
182
|
+
schema = JSON.parse(schemaString)
|
|
183
|
+
error = ''
|
|
184
|
+
} catch (err) {
|
|
185
|
+
error = err.message
|
|
186
|
+
}
|
|
187
|
+
}}
|
|
188
|
+
bind:code={schemaString}
|
|
189
|
+
lang="json"
|
|
190
|
+
autoHeight
|
|
191
|
+
automaticLayout
|
|
192
|
+
/>
|
|
193
|
+
{#if !emptyString(error)}
|
|
194
|
+
<div class="text-red-400 text-xs">{error}</div>
|
|
195
|
+
{:else}
|
|
196
|
+
<div><br /> </div>
|
|
197
|
+
{/if}
|
|
198
|
+
{/if}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { Schema } from '../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
schema: Schema | undefined | any;
|
|
6
|
+
parentId?: string | undefined;
|
|
7
|
+
jsonView?: boolean | undefined;
|
|
8
|
+
};
|
|
9
|
+
events: {
|
|
10
|
+
change: CustomEvent<any>;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {};
|
|
15
|
+
};
|
|
16
|
+
export type EditableSchemaDrawerProps = typeof __propDef.props;
|
|
17
|
+
export type EditableSchemaDrawerEvents = typeof __propDef.events;
|
|
18
|
+
export type EditableSchemaDrawerSlots = typeof __propDef.slots;
|
|
19
|
+
export default class EditableSchemaDrawer extends SvelteComponent<EditableSchemaDrawerProps, EditableSchemaDrawerEvents, EditableSchemaDrawerSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script>import { twMerge } from 'tailwind-merge';
|
|
2
|
+
import EditableSchemaForm from '../EditableSchemaForm.svelte';
|
|
3
|
+
import AddProperty from './AddProperty.svelte';
|
|
4
|
+
export let schema;
|
|
5
|
+
export let offset = 0;
|
|
6
|
+
export let uiOnly = false;
|
|
7
|
+
export let noPreview = false;
|
|
8
|
+
export let fullHeight = true;
|
|
9
|
+
export let lightweightMode = false;
|
|
10
|
+
let addProperty = undefined;
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<div class={twMerge(fullHeight ? 'h-full' : 'h-80', 'border overflow-y-auto rounded-md')}>
|
|
14
|
+
<div class="p-4 border-b">
|
|
15
|
+
<AddProperty bind:schema bind:this={addProperty} />
|
|
16
|
+
</div>
|
|
17
|
+
<EditableSchemaForm
|
|
18
|
+
bind:schema
|
|
19
|
+
isFlowInput
|
|
20
|
+
on:edit={(e) => {
|
|
21
|
+
addProperty?.openDrawer(e.detail)
|
|
22
|
+
}}
|
|
23
|
+
on:delete={(e) => {
|
|
24
|
+
addProperty?.handleDeleteArgument([e.detail])
|
|
25
|
+
}}
|
|
26
|
+
{offset}
|
|
27
|
+
{uiOnly}
|
|
28
|
+
{noPreview}
|
|
29
|
+
{lightweightMode}
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type { Schema } from '../../common';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
schema: Schema | undefined | any;
|
|
6
|
+
offset?: number | undefined;
|
|
7
|
+
uiOnly?: boolean | undefined;
|
|
8
|
+
noPreview?: boolean | undefined;
|
|
9
|
+
fullHeight?: boolean | undefined;
|
|
10
|
+
lightweightMode?: boolean | undefined;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {};
|
|
16
|
+
};
|
|
17
|
+
export type EditableSchemaWrapperProps = typeof __propDef.props;
|
|
18
|
+
export type EditableSchemaWrapperEvents = typeof __propDef.events;
|
|
19
|
+
export type EditableSchemaWrapperSlots = typeof __propDef.slots;
|
|
20
|
+
export default class EditableSchemaWrapper extends SvelteComponent<EditableSchemaWrapperProps, EditableSchemaWrapperEvents, EditableSchemaWrapperSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|