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,6 +1,6 @@
1
1
  <script>import Button from '../../../common/button/Button.svelte';
2
2
  import PanelSection from './common/PanelSection.svelte';
3
- import { dndzone } from 'svelte-dnd-action';
3
+ import { dragHandle, dragHandleZone } from '@windmill-labs/svelte-dnd-action';
4
4
  import { GripVertical, Plus, X } from 'lucide-svelte';
5
5
  import InputsSpecEditor from './InputsSpecEditor.svelte';
6
6
  import { generateRandomString } from '../../../../utils';
@@ -10,7 +10,6 @@ import { getContext, tick } from 'svelte';
10
10
  import { deleteGridItem } from '../appUtils';
11
11
  export let conditions = [];
12
12
  export let component;
13
- let dragDisabled = true;
14
13
  let items = conditions.slice(0, -1).map((condition, index) => {
15
14
  return { value: condition, id: generateRandomString(), originalIndex: index };
16
15
  });
@@ -53,16 +52,6 @@ function handleFinalize(e) {
53
52
  $componentControl[component.id]?.setTab?.(targetIndex);
54
53
  });
55
54
  }
56
- dragDisabled = true;
57
- }
58
- function startDrag(event) {
59
- event.preventDefault();
60
- dragDisabled = false;
61
- }
62
- function handleKeyDown(event) {
63
- if ((event.key === 'Enter' || event.key === ' ') && dragDisabled) {
64
- dragDisabled = false;
65
- }
66
55
  }
67
56
  function deleteSubgrid(index) {
68
57
  let subgrid = `${component.id}-${index}`;
@@ -120,11 +109,10 @@ function addCondition() {
120
109
  {/if}
121
110
  <div class="w-full flex flex-col mt-2">
122
111
  <section
123
- use:dndzone={{
112
+ use:dragHandleZone={{
124
113
  items: items,
125
114
  flipDurationMs: 200,
126
- dropTargetStyle: {},
127
- dragDisabled
115
+ dropTargetStyle: {}
128
116
  }}
129
117
  on:consider={handleConsider}
130
118
  on:finalize={handleFinalize}
@@ -133,27 +121,23 @@ function addCondition() {
133
121
  {@const condition = item.value}
134
122
  <div class="w-full flex flex-row gap-2 items-center relative">
135
123
  <div class={twMerge('grow border p-3 my-2 rounded-md bg-surface relative')}>
136
- {#if dragDisabled}
137
- <InputsSpecEditor
138
- key={`condition${index + 1}`}
139
- bind:componentInput={item.value}
140
- id={component.id}
141
- userInputEnabled={false}
142
- shouldCapitalize={true}
143
- resourceOnly={false}
144
- fieldType={condition?.['fieldType']}
145
- subFieldType={condition?.['subFieldType']}
146
- format={condition?.['format']}
147
- selectOptions={condition?.['selectOptions']}
148
- tooltip={condition?.['tooltip']}
149
- fileUpload={condition?.['fileUpload']}
150
- placeholder={condition?.['placeholder']}
151
- customTitle={condition?.['customTitle']}
152
- displayType={false}
153
- />
154
- {:else}
155
- <pre><code>{condition?.['expr']}</code></pre>
156
- {/if}
124
+ <InputsSpecEditor
125
+ key={`condition${index + 1}`}
126
+ bind:componentInput={item.value}
127
+ id={component.id}
128
+ userInputEnabled={false}
129
+ shouldCapitalize={true}
130
+ resourceOnly={false}
131
+ fieldType={condition?.['fieldType']}
132
+ subFieldType={condition?.['subFieldType']}
133
+ format={condition?.['format']}
134
+ selectOptions={condition?.['selectOptions']}
135
+ tooltip={condition?.['tooltip']}
136
+ fileUpload={condition?.['fileUpload']}
137
+ placeholder={condition?.['placeholder']}
138
+ customTitle={condition?.['customTitle']}
139
+ displayType={false}
140
+ />
157
141
  </div>
158
142
 
159
143
  <div class="flex flex-col justify-center gap-2">
@@ -165,15 +149,7 @@ function addCondition() {
165
149
 
166
150
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
167
151
  <!-- svelte-ignore a11y-no-static-element-interactions -->
168
- <div
169
- tabindex={dragDisabled ? 0 : -1}
170
- class="w-4 h-4"
171
- on:mousedown={startDrag}
172
- on:touchstart={startDrag}
173
- on:keydown={handleKeyDown}
174
- aria-label="drag-handle"
175
- style={dragDisabled ? 'cursor: grab' : 'cursor: grabbing'}
176
- >
152
+ <div use:dragHandle class="w-4 h-4 handle" aria-label="drag-handle">
177
153
  <GripVertical size={16} />
178
154
  </div>
179
155
  </div>
@@ -3,7 +3,7 @@ import CloseButton from '../../../common/CloseButton.svelte';
3
3
  import { getContext, tick } from 'svelte';
4
4
  import { deleteGridItem } from '../appUtils';
5
5
  import PanelSection from './common/PanelSection.svelte';
6
- import { dndzone } from 'svelte-dnd-action';
6
+ import { dragHandle, dragHandleZone } from '@windmill-labs/svelte-dnd-action';
7
7
  import { generateRandomString } from '../../../../utils';
8
8
  import { GripVertical, Plus } from 'lucide-svelte';
9
9
  import GridTabDisabled from './GridTabDisabled.svelte';
@@ -103,17 +103,6 @@ function handleFinalize(e) {
103
103
  $componentControl[component.id]?.setTab?.(targetIndex);
104
104
  });
105
105
  }
106
- dragDisabled = true;
107
- }
108
- let dragDisabled = true;
109
- function startDrag(event) {
110
- event.preventDefault();
111
- dragDisabled = false;
112
- }
113
- function handleKeyDown(event) {
114
- if ((event.key === 'Enter' || event.key === ' ') && dragDisabled) {
115
- dragDisabled = false;
116
- }
117
106
  }
118
107
  </script>
119
108
 
@@ -123,10 +112,9 @@ function handleKeyDown(event) {
123
112
  {/if}
124
113
  <div class="w-full flex gap-2 flex-col mt-2">
125
114
  <section
126
- use:dndzone={{
115
+ use:dragHandleZone={{
127
116
  items,
128
117
  flipDurationMs: 200,
129
- dragDisabled,
130
118
  dropTargetStyle: {}
131
119
  }}
132
120
  on:consider={handleConsider}
@@ -149,15 +137,7 @@ function handleKeyDown(event) {
149
137
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
150
138
 
151
139
  <!-- svelte-ignore a11y-no-static-element-interactions -->
152
- <div
153
- tabindex={dragDisabled ? 0 : -1}
154
- class="w-4 h-4"
155
- on:mousedown={startDrag}
156
- on:touchstart={startDrag}
157
- on:keydown={handleKeyDown}
158
- aria-label="drag-handle"
159
- style={dragDisabled ? 'cursor: grab' : 'cursor: grabbing'}
160
- >
140
+ <div use:dragHandle class="handle w-4 h-4" aria-label="drag-handle">
161
141
  <GripVertical size={16} />
162
142
  </div>
163
143
  </div>
@@ -17,6 +17,10 @@ export let showOnDemandOnlyToggle = false;
17
17
  export let overridenByComponent = [];
18
18
  $: finalInputSpecsConfiguration = inputSpecsConfiguration ?? inputSpecs;
19
19
  const dispatch = createEventDispatcher();
20
+ const mapping = {
21
+ onSuccess: 'On success wizard',
22
+ onError: 'On error wizard'
23
+ };
20
24
  </script>
21
25
 
22
26
  {#if inputSpecs}
@@ -32,7 +36,7 @@ const dispatch = createEventDispatcher();
32
36
  {:else if finalInputSpecsConfiguration[k]?.type == 'oneOf'}
33
37
  <OneOfInputSpecsEditor
34
38
  {acceptSelf}
35
- key={k}
39
+ key={mapping[k] ?? k}
36
40
  bind:oneOf={inputSpecs[k]}
37
41
  {id}
38
42
  {shouldCapitalize}
@@ -3,7 +3,6 @@ export let value;
3
3
  export let componentInput;
4
4
  export let subFieldType;
5
5
  export let id;
6
- export let dragging = false;
7
6
  let fakeComponentInput = {
8
7
  ...componentInput,
9
8
  value
@@ -17,5 +16,4 @@ $: fakeComponentInput && (value = fakeComponentInput.value);
17
16
  fieldType={subFieldType}
18
17
  bind:componentInput={fakeComponentInput}
19
18
  on:remove
20
- {dragging}
21
19
  />
@@ -6,7 +6,6 @@ declare const __propDef: {
6
6
  componentInput: StaticInput<any>;
7
7
  subFieldType: InputType | undefined;
8
8
  id: string | undefined;
9
- dragging?: boolean | undefined;
10
9
  };
11
10
  events: {
12
11
  remove: CustomEvent<any>;
@@ -6,6 +6,7 @@ import { Maximize2, X } from 'lucide-svelte';
6
6
  import { Drawer } from '../../../../common';
7
7
  import { Pane, Splitpanes } from 'svelte-splitpanes';
8
8
  import Toggle from '../../../../Toggle.svelte';
9
+ import { zIndexes } from '../../../../../zIndexes';
9
10
  export let componentInput;
10
11
  export let id;
11
12
  export let field;
@@ -43,7 +44,12 @@ let focus = false;
43
44
 
44
45
  {#if componentInput?.type === 'evalv2'}
45
46
  {#if fullscreen}
46
- <Drawer placement="bottom" on:close={() => (fullscreen = false)} open>
47
+ <Drawer
48
+ placement="bottom"
49
+ on:close={() => (fullscreen = false)}
50
+ open
51
+ offset={zIndexes.monacoEditor}
52
+ >
47
53
  <Splitpanes horizontal class="h-full">
48
54
  <Pane size={50}>
49
55
  <SimpleEditor
@@ -6,7 +6,6 @@ import IconSelectInput from './IconSelectInput.svelte';
6
6
  import ColorInput from './ColorInput.svelte';
7
7
  import TabSelectInput from './TabSelectInput.svelte';
8
8
  import Toggle from '../../../../Toggle.svelte';
9
- import SchemaEditor from '../../../../SchemaEditor.svelte';
10
9
  import autosize from '../../../../../autosize';
11
10
  import Button from '../../../../common/button/Button.svelte';
12
11
  import { Settings } from 'lucide-svelte';
@@ -19,6 +18,7 @@ import DBExplorerWizard from '../../../../wizards/DBExplorerWizard.svelte';
19
18
  import Label from '../../../../Label.svelte';
20
19
  import DateTimeInput from '../../../../DateTimeInput.svelte';
21
20
  import DBTableSelect from './DBTableSelect.svelte';
21
+ import EditableSchemaDrawer from '../../../../schema/EditableSchemaDrawer.svelte';
22
22
  export let componentInput;
23
23
  export let fieldType = undefined;
24
24
  export let subFieldType = undefined;
@@ -26,7 +26,6 @@ export let selectOptions = undefined;
26
26
  export let placeholder = undefined;
27
27
  export let format = undefined;
28
28
  export let id;
29
- export let dragging = false;
30
29
  const { onchange } = getContext('AppViewerContext');
31
30
  $: componentInput && onchange?.();
32
31
  </script>
@@ -148,24 +147,18 @@ $: componentInput && onchange?.();
148
147
  />
149
148
  {:else}
150
149
  <div class="flex w-full flex-col">
151
- {#if dragging}
152
- <div class="text-xs text-secondary whitespace-pre border p-1"
153
- >{JSON.stringify(componentInput.value, null, 2)}</div
154
- >
155
- {:else}
156
- <JsonEditor
157
- small
158
- bind:value={componentInput.value}
159
- code={JSON.stringify(componentInput.value, null, 2)}
160
- />
161
- {/if}
150
+ <JsonEditor
151
+ small
152
+ bind:value={componentInput.value}
153
+ code={JSON.stringify(componentInput.value, null, 2)}
154
+ />
162
155
  </div>
163
156
  {/if}
164
157
  {:else if fieldType === 'array'}
165
158
  <ArrayStaticInputEditor {id} {subFieldType} bind:componentInput on:deleteArrayItem />
166
159
  {:else if fieldType === 'schema'}
167
160
  <div class="w-full">
168
- <SchemaEditor bind:schema={componentInput.value} lightMode />
161
+ <EditableSchemaDrawer bind:schema={componentInput.value} />
169
162
  </div>
170
163
  {:else if fieldType === 'ag-grid'}
171
164
  <div class="flex flex-row rounded-md bg-surface items-center h-full">
@@ -9,7 +9,6 @@ declare const __propDef: {
9
9
  placeholder?: string | undefined;
10
10
  format?: string | undefined;
11
11
  id: string | undefined;
12
- dragging?: boolean | undefined;
13
12
  };
14
13
  events: {
15
14
  keydown: KeyboardEvent;
@@ -25,6 +25,7 @@ const popperOptions = {
25
25
  <span use:popperRef>
26
26
  <MenuButton
27
27
  class={twMerge('h-full w-full flex flex-row gap-2 items-center', hasPadding ? 'px-2' : '')}
28
+
28
29
  >
29
30
  {#if $$slots.buttonReplacement}
30
31
  <slot name="buttonReplacement" />
@@ -8,7 +8,8 @@ export let id = (Math.random() + 1).toString(36).substring(10);
8
8
  if (open) {
9
9
  openedDrawers.push(id);
10
10
  }
11
- let offset = 0;
11
+ export let initialOffset = 0;
12
+ let offset = initialOffset;
12
13
  export function toggleDrawer() {
13
14
  if (!open) {
14
15
  openDrawer();
@@ -27,7 +28,7 @@ export function openDrawer() {
27
28
  }
28
29
  export function closeDrawer() {
29
30
  open = false;
30
- offset = 0;
31
+ offset = initialOffset;
31
32
  // remove the last opened drawer
32
33
  openedDrawers = openedDrawers.filter((drawer) => drawer !== id);
33
34
  }
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  open?: boolean | undefined;
6
6
  id?: string | undefined;
7
+ initialOffset?: number | undefined;
7
8
  toggleDrawer?: (() => void) | undefined;
8
9
  openDrawer?: (() => void) | undefined;
9
10
  closeDrawer?: (() => void) | undefined;
@@ -8,6 +8,7 @@ export let placement = 'right';
8
8
  export let size = '600px';
9
9
  export let alwaysOpen = false;
10
10
  export let shouldUsePortal = true;
11
+ export let offset = 0;
11
12
  let disposable = undefined;
12
13
  $: durationMs = duration * 1000;
13
14
  export function toggleDrawer() {
@@ -46,7 +47,15 @@ onMount(() => {
46
47
  </script>
47
48
 
48
49
  <ConditionalPortal condition={shouldUsePortal}>
49
- <Disposable let:handleClickAway let:zIndex bind:open bind:this={disposable} on:open on:close>
50
+ <Disposable
51
+ initialOffset={offset}
52
+ let:handleClickAway
53
+ let:zIndex
54
+ bind:open
55
+ bind:this={disposable}
56
+ on:open
57
+ on:close
58
+ >
50
59
  <aside
51
60
  class="drawer {$$props.class ?? ''} {$$props.positionClass ?? ''}"
52
61
  class:open
@@ -113,7 +122,8 @@ onMount(() => {
113
122
  --tw-bg-opacity: 1;
114
123
  background-color: rgb(var(--color-surface) / var(--tw-bg-opacity));
115
124
  z-index: 3;
116
- transition: transform var(--duration) ease;
125
+ transition: transform var(--duration) ease, max-width var(--duration) ease,
126
+ max-height var(--duration) ease;
117
127
  height: 100%;
118
128
  }
119
129
 
@@ -8,6 +8,7 @@ declare const __propDef: {
8
8
  size?: string | undefined;
9
9
  alwaysOpen?: boolean | undefined;
10
10
  shouldUsePortal?: boolean | undefined;
11
+ offset?: number | undefined;
11
12
  toggleDrawer?: (() => void) | undefined;
12
13
  openDrawer?: (() => void) | undefined;
13
14
  closeDrawer?: (() => void) | undefined;
@@ -8,9 +8,11 @@ export let s3object;
8
8
  border border-dashed border-gray-400 hover:border-blue-500
9
9
  focus-within:border-blue-500 hover:bg-blue-50 dark:hover:bg-frost-900 focus-within:bg-blue-50
10
10
  duration-200 rounded-lg p-1 gap-2"
11
- href={`/api/w/${$workspaceStore}/job_helpers/download_s3_file?file_key=${s3object?.s3}`}
11
+ href={`/api/w/${$workspaceStore}/job_helpers/download_s3_file?file_key=${s3object?.s3}${
12
+ s3object?.storage ? `&storage=${s3object.storage}` : ''
13
+ }`}
12
14
  download={s3object?.s3.split('/').pop() ?? 'unnamed_download.file'}
13
15
  >
14
16
  <Download />
15
- <span>s3://{s3object.s3}</span>
17
+ <span>s3://{s3object.s3} {s3object.storage ? ` (${s3object.storage})` : ''}</span>
16
18
  </a>
@@ -114,20 +114,21 @@ async function uploadFileToS3(fileToUpload, fileToUploadKey) {
114
114
  }
115
115
  });
116
116
  xhr?.addEventListener('loadend', () => {
117
+ activeUploads = activeUploads.filter((x) => x.fileName !== fileToUpload.name);
117
118
  let response = xhr?.responseText;
118
119
  if (xhr?.readyState === 4 && xhr?.status === 200 && response) {
119
120
  uploadData.progress = 100;
120
121
  resolve(JSON.parse(response));
121
122
  }
122
123
  else {
124
+ xhr?.abort();
123
125
  if (response) {
124
- reject('An error occurred while uploading the file, see server logs');
126
+ reject(response);
125
127
  }
126
128
  else {
127
- reject(response);
129
+ reject('An error occurred while uploading the file, see server logs');
128
130
  }
129
131
  }
130
- activeUploads = activeUploads.filter((x) => x.fileName !== fileToUpload.name);
131
132
  });
132
133
  xhr?.open('POST', `/api/w/${$workspaceStore}/job_helpers/upload_s3_file?${params.toString()}`, true);
133
134
  xhr?.setRequestHeader('Content-Type', 'application/octet-stream');
@@ -8,6 +8,7 @@ export let open = false;
8
8
  let c = '';
9
9
  export { c as class };
10
10
  export let style = '';
11
+ export let cancelText = undefined;
11
12
  const dispatch = createEventDispatcher();
12
13
  function onKeyDown(event) {
13
14
  if (open) {
@@ -83,7 +84,9 @@ function fadeFast(node) {
83
84
  color="light"
84
85
  size="sm"
85
86
  >
86
- <span class="inline-flex gap-2">Cancel <Badge color="dark-gray">Escape</Badge></span>
87
+ <span class="inline-flex gap-2"
88
+ >{cancelText ?? 'Cancel'}<Badge color="dark-gray">Escape</Badge></span
89
+ >
87
90
  </Button>
88
91
  </div>
89
92
  </div>
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  open?: boolean | undefined;
6
6
  class?: string | undefined;
7
7
  style?: string | undefined;
8
+ cancelText?: string | undefined;
8
9
  };
9
10
  events: {
10
11
  click: MouseEvent;
@@ -10,7 +10,7 @@ const [floatingRef, floatingContent] = createFloatingActions(floatingConfig);
10
10
  export let blockOpen = false;
11
11
  </script>
12
12
 
13
- <Popover on:close>
13
+ <Popover on:close class="leading-none">
14
14
  <PopoverButton>
15
15
  <div use:floatingRef>
16
16
  <slot name="button" />
@@ -8,6 +8,7 @@ import { twMerge } from 'tailwind-merge';
8
8
  export let selected;
9
9
  export let noWFull = false;
10
10
  export let disabled = false;
11
+ export let tabListClass = '';
11
12
  const dispatch = createEventDispatcher();
12
13
  const selectedContent = writable(selected);
13
14
  function setSelected(selected) {
@@ -32,7 +33,9 @@ setContext('ToggleButtonGroup', {
32
33
  $$props.class
33
34
  )}
34
35
  >
35
- <TabList class="flex bg-surface-secondary rounded-md p-0.5 gap-1 h-full ">
36
+ <TabList
37
+ class={twMerge('flex bg-surface-secondary rounded-md p-0.5 gap-1 h-full ', tabListClass)}
38
+ >
36
39
  <slot />
37
40
  </TabList>
38
41
  </TabGroup>
@@ -10,6 +10,7 @@ declare const __propDef: {
10
10
  selected: any;
11
11
  noWFull?: boolean | undefined;
12
12
  disabled?: boolean | undefined;
13
+ tabListClass?: string | undefined;
13
14
  };
14
15
  events: {
15
16
  selected: CustomEvent<any>;
@@ -0,0 +1,79 @@
1
+ <script>import Popover from '../../Popover.svelte';
2
+ import { msToSec } from '../../../utils';
3
+ import { AlertTriangle, Hourglass } from 'lucide-svelte';
4
+ import Badge from '../badge/Badge.svelte';
5
+ export let self_wait_time_ms = undefined;
6
+ export let aggregate_wait_time_ms = undefined;
7
+ export let variant = 'icon';
8
+ $: total_wait = (self_wait_time_ms ?? 0) + (aggregate_wait_time_ms ?? 0);
9
+ function classFromColorName(color) {
10
+ const colors = {
11
+ gray: 'text-gray-400 dark:text-gray-300',
12
+ red: 'text-red-400 dark:text-red-500',
13
+ yellow: 'text-yellow-500 dark:text-yellow-500',
14
+ orange: 'text-orange-500 dark:text-orange-500'
15
+ };
16
+ return colors[color];
17
+ }
18
+ function waitColorTresholds(waiting_time_ms) {
19
+ if (waiting_time_ms > 300_000) {
20
+ return 'red';
21
+ }
22
+ if (waiting_time_ms > 30_000) {
23
+ return 'orange';
24
+ }
25
+ if (waiting_time_ms > 5_000) {
26
+ return 'yellow';
27
+ }
28
+ return 'gray';
29
+ }
30
+ </script>
31
+
32
+ <Popover notClickable>
33
+ <svelte:fragment slot="text">
34
+ <div class="mb-5">
35
+ {#if self_wait_time_ms != undefined}
36
+ <div>
37
+ Time spent waiting for an executor: <span class="font-bold"
38
+ >{msToSec(self_wait_time_ms)}s</span
39
+ >
40
+ </div>
41
+ {/if}
42
+ {#if aggregate_wait_time_ms != undefined}
43
+ <div>
44
+ Child jobs' time spent waiting for an executor: <span class="font-bold"
45
+ >{msToSec(aggregate_wait_time_ms)}s</span
46
+ >
47
+ </div>
48
+ {/if}
49
+ </div>
50
+ {#if self_wait_time_ms != undefined && aggregate_wait_time_ms != undefined}
51
+ The top level job and its children (e.g. flow steps) had to wait a for an unexpected amount of
52
+ time before starting. The first value is the top level job's time spent waiting for a worker
53
+ and the second is the cumulative wait time for its children.
54
+ {:else if self_wait_time_ms}
55
+ <div> This job spent an unexpected amount of time waiting for a worker before starting. </div>
56
+ {:else if aggregate_wait_time_ms != undefined}
57
+ <div>
58
+ This job's children spent an unexpected amount of time waiting for a worker before starting.
59
+ The value is an aggregate of their individual waiting times.
60
+ </div>
61
+ {/if}
62
+ <div> In a healthy queue, jobs are expected to start in under 50ms. </div>
63
+ </svelte:fragment>
64
+ {#if variant === 'icon'}
65
+ <Hourglass class={classFromColorName(waitColorTresholds(total_wait))} size={14} />
66
+ {:else if variant === 'badge'}
67
+ <Badge large icon={{ icon: Hourglass, position: 'left' }} color={waitColorTresholds(total_wait)}
68
+ >{msToSec(total_wait)}s</Badge
69
+ >
70
+ {:else if variant === 'badge-self-wait'}
71
+ {#if self_wait_time_ms}
72
+ <Badge
73
+ color={waitColorTresholds(self_wait_time_ms)}>+{msToSec(self_wait_time_ms)}s</Badge
74
+ >
75
+ {/if}
76
+ {:else if variant === 'alert'}
77
+ <AlertTriangle class={classFromColorName(waitColorTresholds(total_wait))} size={14} />
78
+ {/if}
79
+ </Popover>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ self_wait_time_ms?: number | undefined;
5
+ aggregate_wait_time_ms?: number | undefined;
6
+ variant?: "alert" | "icon" | "badge" | "badge-self-wait" | undefined;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export type WaitTimeWarningProps = typeof __propDef.props;
14
+ export type WaitTimeWarningEvents = typeof __propDef.events;
15
+ export type WaitTimeWarningSlots = typeof __propDef.slots;
16
+ export default class WaitTimeWarning extends SvelteComponent<WaitTimeWarningProps, WaitTimeWarningEvents, WaitTimeWarningSlots> {
17
+ }
18
+ export {};
@@ -1,12 +1,13 @@
1
- <script>import { getContext } from 'svelte';
1
+ <script>import { getContext, onMount } from 'svelte';
2
2
  import FlowModuleWrapper from './FlowModuleWrapper.svelte';
3
3
  import FlowSettings from './FlowSettings.svelte';
4
4
  import FlowInput from './FlowInput.svelte';
5
5
  import FlowFailureModule from './FlowFailureModule.svelte';
6
6
  import FlowConstants from './FlowConstants.svelte';
7
+ import { initRequiredInputFilled } from '../utils';
7
8
  export let noEditor = false;
8
9
  export let enableAi = false;
9
- const { selectedId, flowStore } = getContext('FlowEditorContext');
10
+ const { selectedId, flowStore, flowStateStore, flowInputsStore } = getContext('FlowEditorContext');
10
11
  function checkDup(modules) {
11
12
  let seenModules = [];
12
13
  for (const m of modules) {
@@ -17,6 +18,19 @@ function checkDup(modules) {
17
18
  seenModules.push(m.id);
18
19
  }
19
20
  }
21
+ onMount(() => {
22
+ $flowStore?.value?.modules?.forEach((module) => {
23
+ if (!module) {
24
+ return;
25
+ }
26
+ if (!$flowStateStore) {
27
+ $flowInputsStore = {};
28
+ }
29
+ $flowInputsStore[module?.id] = {
30
+ requiredInputsFilled: initRequiredInputFilled(module.value, $flowStateStore?.[module?.id]?.schema ?? {})
31
+ };
32
+ });
33
+ });
20
34
  </script>
21
35
 
22
36
  {#if $selectedId?.startsWith('settings')}