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.
Files changed (231) hide show
  1. package/package/assets/app.css +0 -12
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +1 -1
  4. package/package/common.d.ts +6 -2
  5. package/package/common.js +2 -1
  6. package/package/components/AppConnectDrawer.svelte +1 -1
  7. package/package/components/AppConnectInner.svelte +9 -15
  8. package/package/components/ArgEnum.svelte +4 -1
  9. package/package/components/ArgEnum.svelte.d.ts +3 -1
  10. package/package/components/ArgInput.svelte +184 -141
  11. package/package/components/ArgInput.svelte.d.ts +7 -7
  12. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  13. package/package/components/CenteredPage.svelte +2 -2
  14. package/package/components/DefaultTagsInner.svelte +1 -1
  15. package/package/components/Dev.svelte +2 -1
  16. package/package/components/DiffDrawer.svelte +1 -2
  17. package/package/components/DisplayResult.svelte +293 -233
  18. package/package/components/DurationMs.svelte +11 -3
  19. package/package/components/DurationMs.svelte.d.ts +2 -0
  20. package/package/components/EditableSchemaForm.svelte +447 -103
  21. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  22. package/package/components/Editor.svelte +3 -1
  23. package/package/components/EditorBar.svelte +2 -2
  24. package/package/components/FlowBuilder.svelte +14 -6
  25. package/package/components/FlowGraphViewer.svelte +1 -1
  26. package/package/components/FlowGraphViewerStep.svelte +37 -9
  27. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  28. package/package/components/FlowJobResult.svelte +1 -3
  29. package/package/components/FlowMetadata.svelte +1 -1
  30. package/package/components/FlowPreviewContent.svelte +5 -3
  31. package/package/components/FlowStatusViewer.svelte +4 -0
  32. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  33. package/package/components/FlowStatusViewerInner.svelte +50 -17
  34. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  35. package/package/components/FlowTimeline.svelte +13 -0
  36. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  37. package/package/components/FlowViewer.svelte +0 -5
  38. package/package/components/FolderEditor.svelte +25 -0
  39. package/package/components/FolderEditor.svelte.d.ts +2 -0
  40. package/package/components/GroupEditor.svelte +36 -91
  41. package/package/components/GroupInfo.svelte +1 -1
  42. package/package/components/InputTransformForm.svelte +16 -1
  43. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  44. package/package/components/InputTransformSchemaForm.svelte +6 -0
  45. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  46. package/package/components/InstanceSettings.svelte +36 -3
  47. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  48. package/package/components/JobStatus.svelte +2 -2
  49. package/package/components/LightweightArgInput.svelte +66 -14
  50. package/package/components/LightweightArgInput.svelte.d.ts +3 -2
  51. package/package/components/LightweightSchemaForm.svelte +24 -15
  52. package/package/components/ModulePreviewForm.svelte +1 -0
  53. package/package/components/NumberTypeNarrowing.svelte +71 -44
  54. package/package/components/ObjectResourceInput.svelte +2 -0
  55. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  56. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  57. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  58. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  59. package/package/components/Path.svelte +2 -2
  60. package/package/components/PersistentScriptDrawer.svelte +6 -3
  61. package/package/components/Range.svelte +88 -286
  62. package/package/components/Range.svelte.d.ts +9 -23
  63. package/package/components/ResourceEditor.svelte +138 -141
  64. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  65. package/package/components/ResourceEditorDrawer.svelte +45 -0
  66. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  67. package/package/components/ResourcePicker.svelte +5 -2
  68. package/package/components/ResourceTypePicker.svelte +88 -36
  69. package/package/components/RunChart.svelte +55 -5
  70. package/package/components/RunChart.svelte.d.ts +1 -0
  71. package/package/components/RunForm.svelte +1 -1
  72. package/package/components/S3FilePicker.svelte +20 -8
  73. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  74. package/package/components/ScheduleEditorInner.svelte +40 -37
  75. package/package/components/SchemaForm.svelte +192 -103
  76. package/package/components/SchemaForm.svelte.d.ts +16 -2
  77. package/package/components/ScriptBuilder.svelte +13 -8
  78. package/package/components/ScriptSchedules.svelte +11 -8
  79. package/package/components/ScriptSchema.svelte +3 -21
  80. package/package/components/ScriptVersionHistory.svelte +1 -1
  81. package/package/components/StringTypeNarrowing.svelte +217 -174
  82. package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
  83. package/package/components/Toggle.svelte +6 -3
  84. package/package/components/Toggle.svelte.d.ts +1 -0
  85. package/package/components/UserSettings.svelte +24 -1
  86. package/package/components/WorkspaceGroup.svelte +11 -13
  87. package/package/components/apps/components/buttons/AppButton.svelte +2 -0
  88. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  89. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  90. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  91. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
  92. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  93. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
  94. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  95. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  96. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  97. package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
  98. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
  99. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
  100. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  101. package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
  102. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  103. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
  104. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  105. package/package/components/apps/components/helpers/eval.js +1 -36
  106. package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
  107. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  108. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  109. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  110. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
  111. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  112. package/package/components/apps/components/layout/AppStepper.svelte +5 -1
  113. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  114. package/package/components/apps/components/layout/AppTabs.svelte +3 -1
  115. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  116. package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
  117. package/package/components/apps/editor/SettingsPanel.svelte +13 -3
  118. package/package/components/apps/editor/component/Component.svelte +8 -16
  119. package/package/components/apps/editor/component/components.d.ts +11 -2
  120. package/package/components/apps/editor/component/components.js +2 -1
  121. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  122. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  123. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
  124. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  125. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  126. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  127. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  128. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
  129. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
  130. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
  131. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  132. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  133. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
  134. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  135. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  136. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  137. package/package/components/common/drawer/Disposable.svelte +3 -2
  138. package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
  139. package/package/components/common/drawer/Drawer.svelte +12 -2
  140. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  141. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  142. package/package/components/common/fileUpload/FileUpload.svelte +4 -3
  143. package/package/components/common/modal/Modal.svelte +4 -1
  144. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  145. package/package/components/common/popup/Popup.svelte +1 -1
  146. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  147. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  148. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  149. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  150. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  151. package/package/components/flows/content/FlowInput.svelte +63 -53
  152. package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
  153. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  154. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  155. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  156. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  157. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  158. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
  159. package/package/components/flows/flowStateUtils.js +4 -1
  160. package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
  161. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  162. package/package/components/flows/types.d.ts +4 -0
  163. package/package/components/flows/utils.d.ts +5 -1
  164. package/package/components/flows/utils.js +36 -0
  165. package/package/components/graph/FlowGraph.svelte +5 -2
  166. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  167. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  168. package/package/components/graph/svelvet/container/models/index.js +1 -1
  169. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  170. package/package/components/graph/util.d.ts +1 -37
  171. package/package/components/graph/util.js +0 -34
  172. package/package/components/instanceSettings.js +2 -1
  173. package/package/components/jobs/JobPreview.svelte +1 -1
  174. package/package/components/multiselect/MultiSelect.svelte +4 -3
  175. package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
  176. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  177. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  178. package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
  179. package/package/components/runs/JobPreview.svelte +5 -1
  180. package/package/components/runs/RunRow.svelte +22 -3
  181. package/package/components/runs/RunRow.svelte.d.ts +2 -1
  182. package/package/components/runs/RunsTable.svelte +22 -9
  183. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  184. package/package/components/schema/AddProperty.svelte +149 -0
  185. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  186. package/package/components/schema/AddPropertyForm.svelte +33 -0
  187. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  188. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  189. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  190. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  191. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  192. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  193. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  194. package/package/components/schema/PropertyEditor.svelte +185 -0
  195. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  196. package/package/components/schema/SchemaFormDND.svelte +75 -0
  197. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  198. package/package/components/table/AutoDataTable.svelte +90 -104
  199. package/package/components/table/Cell.svelte +4 -1
  200. package/package/components/table/Cell.svelte.d.ts +1 -0
  201. package/package/components/table/DownloadCsv.svelte +30 -0
  202. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  203. package/package/components/table/tableUtils.d.ts +8 -0
  204. package/package/components/table/tableUtils.js +37 -0
  205. package/package/consts.js +3 -1
  206. package/package/deno_fetch.d.ts.txt +6 -0
  207. package/package/gen/core/OpenAPI.js +1 -1
  208. package/package/gen/schemas.gen.d.ts +76 -0
  209. package/package/gen/schemas.gen.js +76 -0
  210. package/package/gen/services.gen.d.ts +100 -5
  211. package/package/gen/services.gen.js +216 -16
  212. package/package/gen/types.gen.d.ts +378 -5
  213. package/package/inferArgSig.d.ts +10 -0
  214. package/package/inferArgSig.js +59 -2
  215. package/package/scripts.d.ts +2 -0
  216. package/package/scripts.js +6 -3
  217. package/package/utils.d.ts +4 -3
  218. package/package/utils.js +9 -4
  219. package/package/workspace_settings.d.ts +15 -0
  220. package/package/workspace_settings.js +81 -0
  221. package/package.json +16 -7
  222. package/package/components/ParqetTableRenderer.svelte +0 -117
  223. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  224. package/package/components/PropertyRow.svelte +0 -88
  225. package/package/components/PropertyRow.svelte.d.ts +0 -23
  226. package/package/components/SchemaEditor.svelte +0 -346
  227. package/package/components/SchemaEditor.svelte.d.ts +0 -25
  228. package/package/components/SchemaModal.svelte +0 -443
  229. package/package/components/SchemaModal.svelte.d.ts +0 -33
  230. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  231. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -1,346 +0,0 @@
1
- <script>import { modalToSchema } from '../common';
2
- import { emptySchema, emptyString, sendUserToast } from '../utils';
3
- import { Button } from './common';
4
- import { createEventDispatcher } from 'svelte';
5
- import SchemaModal, { DEFAULT_PROPERTY, schemaToModal } from './SchemaModal.svelte';
6
- import PropertyRow from './PropertyRow.svelte';
7
- import SimpleEditor from './SimpleEditor.svelte';
8
- import TableCustom from './TableCustom.svelte';
9
- import Toggle from './Toggle.svelte';
10
- import Tooltip from './Tooltip.svelte';
11
- import { flip } from 'svelte/animate';
12
- import Portal from 'svelte-portal';
13
- import { Plus } from 'lucide-svelte';
14
- export let isFlowInput = false;
15
- export let variableEditor = undefined;
16
- const dispatch = createEventDispatcher();
17
- export let lightMode = false;
18
- const moveAnimationDuration = 300;
19
- export let schema = emptySchema();
20
- if (!schema) {
21
- schema = emptySchema();
22
- }
23
- let schemaModal;
24
- let schemaString = '';
25
- // Internal state: bound to args builder modal
26
- let argError = '';
27
- let editing = false;
28
- let oldArgName; // when editing argument and changing name
29
- let viewJsonSchema = false;
30
- let jsonEditor;
31
- // Binding is not enough because monaco Editor does not support two-way binding
32
- export function getSchema() {
33
- try {
34
- if (viewJsonSchema) {
35
- schema = JSON.parse(schemaString);
36
- return schema;
37
- }
38
- else {
39
- schemaString = JSON.stringify(schema, null, '\t');
40
- return schema;
41
- }
42
- }
43
- catch (err) {
44
- throw Error(`Error: input is not a valid schema: ${err}`);
45
- }
46
- }
47
- reorder();
48
- function reorder() {
49
- if (schema.order && Array.isArray(schema.order)) {
50
- const n = {};
51
- schema.order.forEach((x) => {
52
- if (schema.properties && schema.properties[x] != undefined) {
53
- n[x] = schema.properties[x];
54
- }
55
- });
56
- Object.keys(schema.properties ?? {})
57
- .filter((x) => !schema.order?.includes(x))
58
- .forEach((x) => {
59
- n[x] = schema.properties[x];
60
- });
61
- schema.properties = n;
62
- }
63
- }
64
- function syncOrders() {
65
- if (schema) {
66
- schema.order = Object.keys(schema.properties ?? {});
67
- }
68
- }
69
- function handleAddOrEditArgument(modalProperty) {
70
- // If editing the arg's name, oldName containing the old argument name must be provided
71
- argError = '';
72
- modalProperty.name = modalProperty.name.trim();
73
- if (modalProperty.name.length === 0) {
74
- argError = 'Arguments need to have a name';
75
- }
76
- else if (Object.keys(schema.properties ?? {}).includes(modalProperty.name) &&
77
- (!editing || (editing && oldArgName && oldArgName !== modalProperty.name))) {
78
- argError = 'There is already an argument with this name';
79
- }
80
- else {
81
- if (!schema.properties) {
82
- schema.properties = {};
83
- }
84
- if (!schema.required) {
85
- schema.required = [];
86
- }
87
- if (!schema.order || !Array.isArray(schema.order)) {
88
- syncOrders();
89
- }
90
- schema.properties[modalProperty.name] = modalToSchema(modalProperty);
91
- if (modalProperty.required) {
92
- if (!schema.required.includes(modalProperty.name)) {
93
- schema.required.push(modalProperty.name);
94
- }
95
- }
96
- else if (schema.required.includes(modalProperty.name)) {
97
- const index = schema.required.indexOf(modalProperty.name, 0);
98
- if (index > -1) {
99
- schema.required.splice(index, 1);
100
- }
101
- }
102
- if (editing && oldArgName && oldArgName !== modalProperty.name) {
103
- let oldPosition = schema.order.indexOf(oldArgName);
104
- schema.order[oldPosition] = modalProperty.name;
105
- reorder();
106
- handleDeleteArgument([oldArgName]);
107
- }
108
- if (!schema.order?.includes(modalProperty.name)) {
109
- schema.order.push(modalProperty.name);
110
- }
111
- modalProperty = Object.assign({}, DEFAULT_PROPERTY);
112
- editing = false;
113
- oldArgName = undefined;
114
- schemaModal.closeDrawer();
115
- }
116
- schema = schema;
117
- schemaString = JSON.stringify(schema, null, '\t');
118
- jsonEditor?.setCode(schemaString);
119
- dispatch('change', schema);
120
- }
121
- function handleStartEditEvent(event) {
122
- startEditArgument(event.detail);
123
- }
124
- function startEditArgument(argName) {
125
- argError = '';
126
- if (Object.keys(schema.properties).includes(argName)) {
127
- editing = true;
128
- const modalProperty = schemaToModal(schema.properties[argName], argName, schema.required.includes(argName));
129
- oldArgName = argName;
130
- schemaModal.openDrawer(modalProperty);
131
- }
132
- else {
133
- sendUserToast(`This argument does not exist and can't be edited`, true);
134
- }
135
- }
136
- function handleDeleteEvent(event) {
137
- handleDeleteArgument(event.detail);
138
- }
139
- function handleDeleteArgument(argPath) {
140
- try {
141
- let modifiedObject = schema;
142
- let modifiedProperties = modifiedObject.properties;
143
- let argName = argPath.pop();
144
- argPath.forEach((property) => {
145
- if (Object.keys(modifiedProperties).includes(property)) {
146
- modifiedObject = modifiedProperties[property];
147
- modifiedProperties = modifiedObject.properties;
148
- }
149
- else {
150
- throw Error('Nested argument not found!');
151
- }
152
- });
153
- if (Object.keys(modifiedProperties).includes(argName)) {
154
- delete modifiedProperties[argName];
155
- modifiedObject.required = schema.required.filter((arg) => arg !== argName);
156
- if (modifiedObject.order) {
157
- modifiedObject.order = modifiedObject.order.filter((arg) => arg !== argName);
158
- }
159
- schema = schema;
160
- schemaString = JSON.stringify(schema, null, '\t');
161
- dispatch('change', schema);
162
- }
163
- else {
164
- throw Error('Argument not found!');
165
- }
166
- syncOrders();
167
- }
168
- catch (err) {
169
- sendUserToast(`Could not delete argument: ${err}`, true);
170
- }
171
- }
172
- function switchTab() {
173
- if (viewJsonSchema) {
174
- if (schemaString === '') {
175
- schemaString = JSON.stringify(emptySchema(), null, 4);
176
- }
177
- viewJsonSchema = false;
178
- }
179
- else {
180
- schemaString = JSON.stringify(schema, null, '\t');
181
- viewJsonSchema = true;
182
- }
183
- }
184
- function handleChangePositionEvent(event) {
185
- changePosition(event.detail.i, event.detail.up);
186
- }
187
- function changePosition(i, up) {
188
- isAnimated = true;
189
- setTimeout(() => {
190
- isAnimated = false;
191
- }, moveAnimationDuration);
192
- const entries = Object.entries(schema.properties);
193
- var element = entries[i];
194
- entries.splice(i, 1);
195
- entries.splice(up ? i - 1 : i + 1, 0, element);
196
- schema.properties = Object.fromEntries(entries);
197
- syncOrders();
198
- }
199
- let isAnimated = false;
200
- let error = '';
201
- function schemaPropertiesToDisplay(schema) {
202
- return propertiesToDisplay(schema.properties, schema.required, []);
203
- }
204
- function propertiesToDisplay(properties, required, path) {
205
- return Object.entries(properties)
206
- .map(([name, property], index) => {
207
- const isRequired = required.includes(name);
208
- const displayInfo = {
209
- property: property,
210
- name: name,
211
- isRequired: isRequired,
212
- path: path,
213
- index: index,
214
- propertiesNumber: Object.entries(properties).length
215
- };
216
- if (property?.type === 'object') {
217
- const newPath = [...path, name];
218
- return [
219
- displayInfo,
220
- ...propertiesToDisplay(property.properties || {}, property.required || [], newPath)
221
- ];
222
- }
223
- else {
224
- return [displayInfo];
225
- }
226
- })
227
- .flat();
228
- }
229
- /* Small hash function to generate a unique key for each property */
230
- function displayInfoKey(displayInfo) {
231
- const pathLengthString = displayInfo.path.length.toString();
232
- return pathLengthString + [...displayInfo.path, displayInfo.name].join(pathLengthString);
233
- }
234
- </script>
235
-
236
- <div class="flex flex-col">
237
- <div class="flex justify-between items-center gap-x-2">
238
- <div>
239
- <Button
240
- variant="contained"
241
- color="dark"
242
- size={lightMode ? 'xs2' : 'sm'}
243
- startIcon={{ icon: Plus }}
244
- on:click={() => {
245
- schemaModal.openDrawer(Object.assign({}, DEFAULT_PROPERTY))
246
- }}
247
- id="flow-editor-add-property"
248
- >
249
- Add Argument
250
- </Button>
251
- </div>
252
-
253
- <div class="flex items-center">
254
- <Toggle
255
- size={lightMode ? 'xs' : 'sm'}
256
- on:change={() => switchTab()}
257
- options={{
258
- right: 'As JSON'
259
- }}
260
- />
261
- <div class="ml-2">
262
- <Tooltip
263
- documentationLink="https://www.windmill.dev/docs/core_concepts/json_schema_and_parsing#script-parameters-to-json-schema"
264
- >
265
- Arguments can be edited either using the wizard, or by editing their JSON Schema.
266
- </Tooltip>
267
- </div>
268
- </div>
269
- </div>
270
-
271
- <!--json schema or table view-->
272
- <div class="h-full">
273
- {#if !viewJsonSchema}
274
- <div class="h-full overflow-auto">
275
- {#if schema.properties && Object.keys(schema.properties).length > 0 && schema.required}
276
- <TableCustom wFull>
277
- <tr slot="header-row">
278
- <th>Name</th>
279
- <th>Type</th>
280
- {#if !lightMode}
281
- <th>Default</th>
282
- <th>Description</th>
283
- {/if}
284
- <th />
285
- </tr>
286
- <tbody slot="body">
287
- {#key schema.required}
288
- {#each schemaPropertiesToDisplay(schema) as displayInfo (displayInfoKey(displayInfo))}
289
- <tr class="w-full" animate:flip={{ duration: moveAnimationDuration }}>
290
- <PropertyRow
291
- {displayInfo}
292
- {isAnimated}
293
- {lightMode}
294
- on:startEditArgument={handleStartEditEvent}
295
- on:deleteArgument={handleDeleteEvent}
296
- on:changePosition={handleChangePositionEvent}
297
- />
298
- </tr>
299
- {/each}
300
- {/key}
301
- </tbody>
302
- </TableCustom>
303
- {:else}
304
- <div class="text-secondary text-xs italic mt-2">This schema has no arguments.</div>
305
- {/if}
306
- </div>
307
- {:else}
308
- <div class="border rounded p-2">
309
- <SimpleEditor
310
- small
311
- bind:this={jsonEditor}
312
- fixedOverflowWidgets={false}
313
- on:change={() => {
314
- try {
315
- schema = JSON.parse(schemaString)
316
- error = ''
317
- } catch (err) {
318
- error = err.message
319
- }
320
- }}
321
- bind:code={schemaString}
322
- lang="json"
323
- class="small-editor"
324
- />
325
- </div>
326
- {#if !emptyString(error)}
327
- <div class="text-red-400">{error}</div>
328
- {:else}
329
- <div><br /></div>
330
- {/if}
331
- {/if}
332
- </div>
333
- </div>
334
-
335
- <Portal>
336
- <SchemaModal
337
- {isFlowInput}
338
- bind:this={schemaModal}
339
- bind:error={argError}
340
- on:save={(e) => handleAddOrEditArgument(e.detail)}
341
- bind:editing
342
- bind:oldArgName
343
- propsNames={Object.keys(schema.properties ?? {})}
344
- {variableEditor}
345
- />
346
- </Portal>
@@ -1,25 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type Schema } from '../common';
3
- import type VariableEditor from './VariableEditor.svelte';
4
- declare const __propDef: {
5
- props: {
6
- isFlowInput?: boolean | undefined;
7
- variableEditor?: VariableEditor | undefined;
8
- lightMode?: boolean | undefined;
9
- schema?: Schema | any;
10
- getSchema?: (() => Schema) | undefined;
11
- };
12
- events: {
13
- change: CustomEvent<any>;
14
- } & {
15
- [evt: string]: CustomEvent<any>;
16
- };
17
- slots: {};
18
- };
19
- export type SchemaEditorProps = typeof __propDef.props;
20
- export type SchemaEditorEvents = typeof __propDef.events;
21
- export type SchemaEditorSlots = typeof __propDef.slots;
22
- export default class SchemaEditor extends SvelteComponent<SchemaEditorProps, SchemaEditorEvents, SchemaEditorSlots> {
23
- get getSchema(): () => Schema;
24
- }
25
- export {};