windmill-components 1.394.8 → 1.405.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/package/assets/app.css +20 -0
  2. package/package/ata/edgeCases.d.ts +0 -1
  3. package/package/ata/edgeCases.js +2 -8
  4. package/package/ata/index.js +4 -3
  5. package/package/common.d.ts +1 -1
  6. package/package/common.js +2 -2
  7. package/package/components/ApiConnectForm.svelte +33 -7
  8. package/package/components/AppConnectLightweightResourcePicker.svelte +66 -0
  9. package/package/components/AppConnectLightweightResourcePicker.svelte.d.ts +21 -0
  10. package/package/components/ArgInput.svelte +10 -4
  11. package/package/components/ArgInput.svelte.d.ts +1 -0
  12. package/package/components/CenteredModal.svelte +4 -1
  13. package/package/components/CenteredModal.svelte.d.ts +1 -0
  14. package/package/components/CustomPopover.svelte +1 -1
  15. package/package/components/DateInput.svelte +2 -0
  16. package/package/components/DateInput.svelte.d.ts +1 -0
  17. package/package/components/DefaultScripts.svelte +8 -3
  18. package/package/components/DefaultScripts.svelte.d.ts +5 -1
  19. package/package/components/DefaultScriptsInner.svelte +16 -7
  20. package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
  21. package/package/components/Dev.svelte +68 -11
  22. package/package/components/DisplayResult.svelte +1 -1
  23. package/package/components/DropdownV2.svelte.d.ts +3 -3
  24. package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
  25. package/package/components/EditableSchemaForm.svelte +1 -0
  26. package/package/components/Editor.svelte +3 -2
  27. package/package/components/Editor.svelte.d.ts +1 -1
  28. package/package/components/ExecutionDuration.svelte +44 -0
  29. package/package/components/ExecutionDuration.svelte.d.ts +24 -0
  30. package/package/components/FlowBuilder.svelte +22 -12
  31. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  32. package/package/components/FlowGraphViewer.svelte +9 -2
  33. package/package/components/FlowGraphViewerStep.svelte +23 -10
  34. package/package/components/FlowInputViewer.svelte +25 -0
  35. package/package/components/FlowInputViewer.svelte.d.ts +19 -0
  36. package/package/components/FlowJobResult.svelte +8 -2
  37. package/package/components/FlowJobResult.svelte.d.ts +1 -0
  38. package/package/components/FlowMetadata.svelte +2 -2
  39. package/package/components/FlowStatusViewer.svelte +3 -1
  40. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  41. package/package/components/FlowStatusViewerInner.svelte +21 -5
  42. package/package/components/FlowTimeline.svelte +3 -3
  43. package/package/components/FlowViewer.svelte +2 -21
  44. package/package/components/HighlightCode.svelte +3 -0
  45. package/package/components/IconedResourceType.svelte +17 -10
  46. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  47. package/package/components/IdEditorInput.svelte +0 -1
  48. package/package/components/InstanceSettings.svelte +247 -129
  49. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  50. package/package/components/JobArgs.svelte +3 -1
  51. package/package/components/LightweightArgInput.svelte +35 -10
  52. package/package/components/LightweightArgInput.svelte.d.ts +1 -0
  53. package/package/components/LightweightObjectResourceInput.svelte +2 -0
  54. package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
  55. package/package/components/LightweightResourcePicker.svelte +34 -30
  56. package/package/components/LightweightSchemaForm.svelte +2 -0
  57. package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
  58. package/package/components/LogViewer.svelte +4 -3
  59. package/package/components/LogViewer.svelte.d.ts +1 -0
  60. package/package/components/Login.svelte +10 -5
  61. package/package/components/Login.svelte.d.ts +1 -0
  62. package/package/components/ManualPopover.svelte +1 -1
  63. package/package/components/ModulePreview.svelte +21 -2
  64. package/package/components/ModuleStatus.svelte +3 -0
  65. package/package/components/ModuleStatus.svelte.d.ts +1 -0
  66. package/package/components/OAuthSetting.svelte +40 -15
  67. package/package/components/ObjectResourceInput.svelte +5 -2
  68. package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
  69. package/package/components/ObjectStoreConfigSettings.svelte +78 -76
  70. package/package/components/ParqetCsvTableRenderer.svelte +25 -3
  71. package/package/components/Password.svelte.d.ts +1 -1
  72. package/package/components/Path.svelte +74 -54
  73. package/package/components/Path.svelte.d.ts +2 -1
  74. package/package/components/Popover.svelte +1 -1
  75. package/package/components/Portal.svelte +7 -8
  76. package/package/components/Portal.svelte.d.ts +3 -7
  77. package/package/components/QueueMetricsDrawer.svelte +368 -3
  78. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -0
  79. package/package/components/ResourceEditor.svelte +38 -10
  80. package/package/components/ResourcePicker.svelte +14 -9
  81. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  82. package/package/components/ResultJobLoader.svelte +6 -3
  83. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  84. package/package/components/RunForm.svelte +1 -1
  85. package/package/components/SavedInputs.svelte +2 -2
  86. package/package/components/ScheduleEditorInner.svelte +2 -2
  87. package/package/components/SchemaForm.svelte +6 -1
  88. package/package/components/ScriptBuilder.svelte +12 -5
  89. package/package/components/ScriptEditor.svelte +33 -3
  90. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  91. package/package/components/ScriptVersionHistory.svelte +54 -59
  92. package/package/components/Scrollable.svelte +47 -0
  93. package/package/components/Scrollable.svelte.d.ts +21 -0
  94. package/package/components/ShareModal.svelte.d.ts +2 -2
  95. package/package/components/SuperadminSettings.svelte +5 -7
  96. package/package/components/TestConnection.svelte +1 -0
  97. package/package/components/TestJobLoader.svelte +46 -5
  98. package/package/components/TestJobLoader.svelte.d.ts +2 -1
  99. package/package/components/TimeAgo.svelte +5 -6
  100. package/package/components/TimeAgo.svelte.d.ts +1 -1
  101. package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
  102. package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
  103. package/package/components/WorkspaceGroup.svelte +3 -2
  104. package/package/components/apps/components/buttons/AppButton.svelte +1 -1
  105. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
  106. package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  107. package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
  108. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +1 -1
  109. package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
  110. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  111. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  112. package/package/components/apps/editor/AppEditor.svelte +11 -3
  113. package/package/components/apps/editor/GridEditor.svelte +57 -4
  114. package/package/components/apps/editor/GridEditor.svelte.d.ts +8 -0
  115. package/package/components/apps/editor/GridEditorMenu.svelte +1 -1
  116. package/package/components/apps/editor/SubGridEditor.svelte +82 -3
  117. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +16 -0
  118. package/package/components/apps/editor/appUtils.d.ts +19 -2
  119. package/package/components/apps/editor/appUtils.js +103 -7
  120. package/package/components/apps/editor/component/Component.svelte +36 -8
  121. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  122. package/package/components/apps/editor/component/components.d.ts +79 -79
  123. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +1 -1
  124. package/package/components/apps/svelte-grid/Grid.svelte +235 -12
  125. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +7 -7
  126. package/package/components/apps/svelte-grid/MoveResize.svelte +104 -11
  127. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +7 -0
  128. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  129. package/package/components/apps/svelte-grid/utils/item.js +2 -3
  130. package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +1 -1
  131. package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +1 -1
  132. package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
  133. package/package/components/common/button/ButtonDropdown.svelte +1 -1
  134. package/package/components/common/drawer/ConditionalPortal.svelte +1 -1
  135. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  136. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  137. package/package/components/common/menu/Menu.svelte +2 -1
  138. package/package/components/common/menu/MenuV2.svelte +4 -2
  139. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  140. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
  141. package/package/components/common/popup/Popup.svelte +22 -12
  142. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  143. package/package/components/common/popup/PopupV2.svelte +58 -0
  144. package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
  145. package/package/components/copilot/CronGen.svelte +1 -1
  146. package/package/components/copilot/RegexGen.svelte +4 -4
  147. package/package/components/copilot/StepGen.svelte +6 -6
  148. package/package/components/copilot/StepGenQuick.svelte +58 -0
  149. package/package/components/copilot/StepGenQuick.svelte.d.ts +24 -0
  150. package/package/components/copilot/flow.d.ts +2 -0
  151. package/package/components/copilot/flow.js +55 -0
  152. package/package/components/details/DetailPageDetailPanel.svelte +9 -1
  153. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
  154. package/package/components/details/DetailPageLayout.svelte +2 -0
  155. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  156. package/package/components/details/Menu.svelte +1 -1
  157. package/package/components/details/utils.d.ts +0 -1
  158. package/package/components/details/utils.js +1 -12
  159. package/package/components/flows/CreateActionsApp.svelte +1 -1
  160. package/package/components/flows/FlowEditor.svelte +4 -2
  161. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  162. package/package/components/flows/FlowHistory.svelte +10 -195
  163. package/package/components/flows/FlowHistory.svelte.d.ts +0 -1
  164. package/package/components/flows/FlowHistoryInner.svelte +200 -0
  165. package/package/components/flows/FlowHistoryInner.svelte.d.ts +19 -0
  166. package/package/components/flows/FlowProgressBar.svelte +16 -1
  167. package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
  168. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
  169. package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
  170. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
  171. package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
  172. package/package/components/flows/content/FlowConstants.svelte +1 -1
  173. package/package/components/flows/content/FlowEditorPanel.svelte +5 -1
  174. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  175. package/package/components/flows/content/FlowInput.svelte +66 -58
  176. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  177. package/package/components/flows/content/FlowInputs.svelte +7 -6
  178. package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
  179. package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
  180. package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
  181. package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
  182. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -1
  184. package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
  185. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
  188. package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
  189. package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
  190. package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
  191. package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
  192. package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
  193. package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
  194. package/package/components/flows/content/GenAiQuick.svelte +30 -0
  195. package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
  196. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  197. package/package/components/flows/flowInfers.js +1 -1
  198. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
  199. package/package/components/flows/idUtils.js +3 -1
  200. package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
  201. package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
  202. package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
  203. package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
  205. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  206. package/package/components/flows/map/FlowModuleSchemaMap.svelte +64 -20
  207. package/package/components/flows/map/InsertModuleButton.svelte +161 -138
  208. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
  209. package/package/components/flows/map/MapItem.svelte +11 -0
  210. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  211. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
  212. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
  213. package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
  214. package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
  215. package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
  216. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
  217. package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
  218. package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
  219. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
  220. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
  221. package/package/components/flows/types.d.ts +1 -0
  222. package/package/components/graph/FlowGraphV2.svelte +93 -58
  223. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
  224. package/package/components/graph/graphBuilder.d.ts +2 -1
  225. package/package/components/graph/graphBuilder.js +345 -280
  226. package/package/components/graph/model.d.ts +2 -0
  227. package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
  228. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  229. package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
  230. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
  231. package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
  232. package/package/components/graph/util.d.ts +1 -1
  233. package/package/components/graph/util.js +7 -2
  234. package/package/components/home/ListFiltersQuick.svelte +51 -0
  235. package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
  236. package/package/components/icons/AnsibleIcon.svelte +42 -0
  237. package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
  238. package/package/components/icons/WindmillIcon.svelte +119 -105
  239. package/package/components/icons/WindmillIcon2.svelte +141 -0
  240. package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
  241. package/package/components/icons/index.d.ts +2 -1
  242. package/package/components/icons/index.js +2 -1
  243. package/package/components/icons/store.d.ts +4 -0
  244. package/package/components/icons/store.js +1 -0
  245. package/package/components/instanceSettings.d.ts +2 -2
  246. package/package/components/instanceSettings.js +25 -58
  247. package/package/components/jobs/JobProgressBar.svelte +52 -0
  248. package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
  249. package/package/components/multiselect/MultiSelectWrapper.svelte +1 -1
  250. package/package/components/progressBar/ProgressBar.svelte +18 -1
  251. package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
  252. package/package/components/propertyPicker/ObjectViewer.svelte +1 -1
  253. package/package/components/runs/JobPreview.svelte +1 -0
  254. package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
  255. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
  256. package/package/components/runs/RunRow.svelte +3 -7
  257. package/package/components/schema/AddProperty.svelte +1 -0
  258. package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
  259. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
  260. package/package/components/schema/FlowPropertyEditor.svelte +13 -0
  261. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
  262. package/package/components/scriptEditor/LogPanel.svelte +1 -0
  263. package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
  264. package/package/components/search/GlobalSearchModal.svelte +3 -2
  265. package/package/components/sidebar/SidebarContent.svelte +69 -8
  266. package/package/components/sidebar/changelogs.js +10 -0
  267. package/package/components/triggers/RouteEditor.svelte +19 -0
  268. package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
  269. package/package/components/triggers/RouteEditorInner.svelte +327 -0
  270. package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
  271. package/package/components/triggers/RoutesPanel.svelte +74 -0
  272. package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
  273. package/package/editorUtils.js +2 -0
  274. package/package/gen/core/OpenAPI.js +1 -1
  275. package/package/gen/schemas.gen.d.ts +159 -8
  276. package/package/gen/schemas.gen.js +161 -8
  277. package/package/gen/services.gen.d.ts +139 -1
  278. package/package/gen/services.gen.js +282 -1
  279. package/package/gen/types.gen.d.ts +455 -12
  280. package/package/hubPaths.json +6 -8
  281. package/package/infer.d.ts +4 -2
  282. package/package/infer.js +25 -23
  283. package/package/inferArgSig.js +8 -2
  284. package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
  285. package/package/relative_imports.d.ts +3 -0
  286. package/package/relative_imports.js +25 -0
  287. package/package/script_helpers.d.ts +38 -34
  288. package/package/script_helpers.js +245 -35
  289. package/package/scripts.d.ts +1 -1
  290. package/package/scripts.js +5 -1
  291. package/package/stores.d.ts +1 -0
  292. package/package/stores.js +1 -0
  293. package/package/utils.d.ts +1 -0
  294. package/package/utils.js +4 -0
  295. package/package.json +38 -7
  296. package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
  297. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
  298. package/package/init_scripts/python_failure_module.d.ts +0 -2
  299. package/package/init_scripts/python_failure_module.js +0 -8
  300. package/package/init_scripts/python_init_code.d.ts +0 -2
  301. package/package/init_scripts/python_init_code.js +0 -40
  302. package/package/init_scripts/python_init_code_clear.d.ts +0 -2
  303. package/package/init_scripts/python_init_code_clear.js +0 -5
  304. package/package/init_scripts/python_init_code_trigger.d.ts +0 -2
  305. package/package/init_scripts/python_init_code_trigger.js +0 -14
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  icon?: any;
8
8
  href?: string | undefined;
9
9
  disabled?: boolean | undefined;
10
- type?: "action" | "delete" | undefined;
10
+ type?: "delete" | "action" | undefined;
11
11
  hide?: boolean | undefined;
12
12
  }[] | (() => {
13
13
  displayName: string;
@@ -15,7 +15,7 @@ declare const __propDef: {
15
15
  icon?: any;
16
16
  href?: string | undefined;
17
17
  disabled?: boolean | undefined;
18
- type?: "action" | "delete" | undefined;
18
+ type?: "delete" | "action" | undefined;
19
19
  hide?: boolean | undefined;
20
20
  }[]) | (() => Promise<{
21
21
  displayName: string;
@@ -23,7 +23,7 @@ declare const __propDef: {
23
23
  icon?: any;
24
24
  href?: string | undefined;
25
25
  disabled?: boolean | undefined;
26
- type?: "action" | "delete" | undefined;
26
+ type?: "delete" | "action" | undefined;
27
27
  hide?: boolean | undefined;
28
28
  }[]>) | undefined;
29
29
  justifyEnd?: boolean | undefined;
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  icon?: any;
8
8
  href?: string | undefined;
9
9
  disabled?: boolean | undefined;
10
- type?: "action" | "delete" | undefined;
10
+ type?: "delete" | "action" | undefined;
11
11
  hide?: boolean | undefined;
12
12
  }[] | (() => {
13
13
  displayName: string;
@@ -15,7 +15,7 @@ declare const __propDef: {
15
15
  icon?: any;
16
16
  href?: string | undefined;
17
17
  disabled?: boolean | undefined;
18
- type?: "action" | "delete" | undefined;
18
+ type?: "delete" | "action" | undefined;
19
19
  hide?: boolean | undefined;
20
20
  }[]) | (() => Promise<{
21
21
  displayName: string;
@@ -23,7 +23,7 @@ declare const __propDef: {
23
23
  icon?: any;
24
24
  href?: string | undefined;
25
25
  disabled?: boolean | undefined;
26
- type?: "action" | "delete" | undefined;
26
+ type?: "delete" | "action" | undefined;
27
27
  hide?: boolean | undefined;
28
28
  }[]>) | undefined;
29
29
  };
@@ -419,6 +419,7 @@ let editor = undefined;
419
419
  {itemPicker}
420
420
  {lightweightMode}
421
421
  bind:nullable={schema.properties[argName].nullable}
422
+ bind:disabled={schema.properties[argName].disabled}
422
423
  type={schema.properties[argName].type}
423
424
  bind:oneOf={schema.properties[argName].oneOf}
424
425
  bind:format={schema.properties[argName].format}
@@ -125,9 +125,10 @@ import { editor as meditor, languages, KeyCode, KeyMod, Uri as mUri } from 'mona
125
125
  import EditorTheme from './EditorTheme.svelte';
126
126
  import { BIGQUERY_TYPES, MSSQL_TYPES, MYSQL_TYPES, POSTGRES_TYPES, SNOWFLAKE_TYPES } from '../consts';
127
127
  import { setupTypeAcquisition } from '../ata/index';
128
- import { initWasmTs, parseDeps } from '../infer';
128
+ import { initWasmTs } from '../infer';
129
129
  import { initVim } from './monaco_keybindings';
130
130
  import { buildWorkerDefinition } from '../monaco_workers/build_workers';
131
+ import { parseTypescriptDeps } from '../relative_imports';
131
132
  // import EditorTheme from './EditorTheme.svelte'
132
133
  let divEl = null;
133
134
  let editor = null;
@@ -1011,7 +1012,7 @@ async function setTypescriptExtraLibs() {
1011
1012
  ata = setupTypeAcquisition({
1012
1013
  projectName: 'Windmill',
1013
1014
  depsParser: (c) => {
1014
- return parseDeps(c);
1015
+ return parseTypescriptDeps(c);
1015
1016
  },
1016
1017
  root,
1017
1018
  scriptPath: path,
@@ -7,7 +7,7 @@ import { editor as meditor, type IDisposable } from 'monaco-editor';
7
7
  declare const __propDef: {
8
8
  props: {
9
9
  [x: string]: any;
10
- lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript' | 'rust';
10
+ lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript' | 'rust' | 'yaml';
11
11
  code?: string | undefined;
12
12
  cmdEnterAction?: (() => void) | undefined;
13
13
  formatAction?: (() => void) | undefined;
@@ -0,0 +1,44 @@
1
+ <script>import {} from '../gen';
2
+ import { onDestroy } from 'svelte';
3
+ export let job = undefined;
4
+ /** Execution duration of current active job (in ms) */
5
+ export let executionDuration = 0;
6
+ /** Is current job running more than specified value in `longDefinition` seconds */
7
+ export let longRunning = false;
8
+ /** What do we count as "long" (in ms)*/
9
+ export let longDefinition = 30_000;
10
+ /** How often component updates execution duration (in ms)
11
+ * Higher value -> more efficient component is, less accuracy it has
12
+ * Lower value -> less efficient component is, more accuracy it has
13
+ */
14
+ export let updateResolution = 5_000;
15
+ let startedAt = undefined;
16
+ let busy = false;
17
+ let interval;
18
+ // Detect when execution of job started
19
+ $: if (!busy &&
20
+ job &&
21
+ 'running' in job &&
22
+ (job.job_kind == 'script' || job?.job_kind == 'preview'))
23
+ start(job);
24
+ function start(job) {
25
+ busy = true;
26
+ startedAt = new Date(job?.started_at ?? '').getTime();
27
+ interval = setInterval(updateDuration, updateResolution);
28
+ }
29
+ function updateDuration() {
30
+ if (job?.type == 'CompletedJob') {
31
+ clearInterval(interval);
32
+ return;
33
+ }
34
+ if (startedAt)
35
+ executionDuration = Date.now() - startedAt;
36
+ // Detect long running
37
+ if (executionDuration >= longDefinition)
38
+ longRunning = true;
39
+ }
40
+ onDestroy(() => {
41
+ // Clear the interval when the component is destroyed
42
+ clearInterval(interval);
43
+ });
44
+ </script>
@@ -0,0 +1,24 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type Job } from '../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ job?: Job | undefined;
6
+ /** Execution duration of current active job (in ms) */ executionDuration?: number | undefined;
7
+ /** Is current job running more than specified value in `longDefinition` seconds */ longRunning?: boolean | undefined;
8
+ /** What do we count as "long" (in ms)*/ longDefinition?: number | undefined;
9
+ /** How often component updates execution duration (in ms)
10
+ * Higher value -> more efficient component is, less accuracy it has
11
+ * Lower value -> less efficient component is, more accuracy it has
12
+ */ updateResolution?: number | undefined;
13
+ };
14
+ events: {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {};
18
+ };
19
+ export type ExecutionDurationProps = typeof __propDef.props;
20
+ export type ExecutionDurationEvents = typeof __propDef.events;
21
+ export type ExecutionDurationSlots = typeof __propDef.slots;
22
+ export default class ExecutionDuration extends SvelteComponent<ExecutionDurationProps, ExecutionDurationEvents, ExecutionDurationSlots> {
23
+ }
24
+ export {};
@@ -48,6 +48,7 @@ export let savedFlow = undefined;
48
48
  export let diffDrawer = undefined;
49
49
  export let customUi = {};
50
50
  export let disableAi = false;
51
+ export let disabledFlowInputs = false;
51
52
  $: setContext('customUi', customUi);
52
53
  const dispatch = createEventDispatcher();
53
54
  async function createSchedule(path) {
@@ -321,6 +322,7 @@ const testStepStore = writable({});
321
322
  function select(selectedId) {
322
323
  selectedIdStore.set(selectedId);
323
324
  }
325
+ let insertButtonOpen = writable(false);
324
326
  setContext('FlowEditorContext', {
325
327
  selectedId: selectedIdStore,
326
328
  schedule: scheduleStore,
@@ -335,7 +337,8 @@ setContext('FlowEditorContext', {
335
337
  saveDraft,
336
338
  initialPath,
337
339
  flowInputsStore: writable({}),
338
- customUi
340
+ customUi,
341
+ insertButtonOpen
339
342
  });
340
343
  async function loadSchedule() {
341
344
  loadFlowSchedule(initialPath, $workspaceStore)
@@ -381,20 +384,24 @@ function onKeyDown(event) {
381
384
  }
382
385
  break;
383
386
  case 'ArrowDown': {
384
- let ids = generateIds();
385
- let idx = ids.indexOf($selectedIdStore);
386
- if (idx > -1 && idx < ids.length - 1) {
387
- $selectedIdStore = ids[idx + 1];
388
- event.preventDefault();
387
+ if (!$insertButtonOpen) {
388
+ let ids = generateIds();
389
+ let idx = ids.indexOf($selectedIdStore);
390
+ if (idx > -1 && idx < ids.length - 1) {
391
+ $selectedIdStore = ids[idx + 1];
392
+ event.preventDefault();
393
+ }
389
394
  }
390
395
  break;
391
396
  }
392
397
  case 'ArrowUp': {
393
- let ids = generateIds();
394
- let idx = ids.indexOf($selectedIdStore);
395
- if (idx > 0 && idx < ids.length) {
396
- $selectedIdStore = ids[idx - 1];
397
- event.preventDefault();
398
+ if (!$insertButtonOpen) {
399
+ let ids = generateIds();
400
+ let idx = ids.indexOf($selectedIdStore);
401
+ if (idx > 0 && idx < ids.length) {
402
+ $selectedIdStore = ids[idx - 1];
403
+ event.preventDefault();
404
+ }
398
405
  }
399
406
  break;
400
407
  }
@@ -404,6 +411,7 @@ function generateIds() {
404
411
  return [
405
412
  'settings-metadata',
406
413
  'constants',
414
+ 'preprocessor',
407
415
  ...dfsApply($flowStore.value.modules, (module) => module.id)
408
416
  ];
409
417
  }
@@ -718,7 +726,8 @@ async function genFlow(idx, flowModules, stepOnly = false) {
718
726
  const schemaProperty = Object.entries(schema?.properties ?? {}).find((x) => x[0] === key)?.[1];
719
727
  const snakeKey = snakeCase(key);
720
728
  if (schemaProperty &&
721
- (!$flowStore.schema || !(snakeKey in $flowStore.schema.properties ?? {})) // prevent overriding flow inputs
729
+ (!$flowStore.schema ||
730
+ !(snakeKey in ($flowStore?.schema?.properties ?? {}))) // prevent overriding flow inputs
722
731
  ) {
723
732
  copilotFlowInputs[snakeKey] = schemaProperty;
724
733
  if (schema?.required.includes(snakeKey)) {
@@ -1126,6 +1135,7 @@ let msgInput = undefined;
1126
1135
  <!-- metadata -->
1127
1136
  {#if $flowStateStore}
1128
1137
  <FlowEditor
1138
+ {disabledFlowInputs}
1129
1139
  disableAi={disableAi || customUi?.stepInputs?.ai == false}
1130
1140
  disableSettings={customUi?.settingsPanel === false}
1131
1141
  {loading}
@@ -20,6 +20,7 @@ declare const __propDef: {
20
20
  diffDrawer?: DiffDrawer | undefined;
21
21
  customUi?: FlowBuilderWhitelabelCustomUi | undefined;
22
22
  disableAi?: boolean | undefined;
23
+ disabledFlowInputs?: boolean | undefined;
23
24
  computeUnlockedSteps?: ((flow: Flow) => {
24
25
  [k: string]: string;
25
26
  }) | undefined;
@@ -23,9 +23,16 @@ const dispatch = createEventDispatcher();
23
23
  minHeight={400}
24
24
  modules={flow?.value?.modules}
25
25
  failureModule={flow?.value?.failure_module}
26
+ preprocessorModule={flow?.value?.preprocessor_module}
26
27
  on:select={(e) => {
27
- const mod = dfs(flow?.value?.modules ?? [], (m) => m).find((m) => m?.id === e?.detail)
28
- stepDetail = mod ?? e.detail
28
+ if (e?.detail === 'failure') {
29
+ stepDetail = flow?.value?.failure_module
30
+ } else if (e?.detail === 'preprocessor') {
31
+ stepDetail = flow?.value?.preprocessor_module
32
+ } else {
33
+ stepDetail = dfs(flow?.value?.modules ?? [], (m) => m).find((m) => m?.id === e?.detail)
34
+ }
35
+ stepDetail = stepDetail ?? e?.detail
29
36
  dispatch('select', stepDetail)
30
37
  }}
31
38
  />
@@ -98,12 +98,17 @@ let codeViewer;
98
98
  {:else if typeof stepDetail != 'string' && stepDetail.value}
99
99
  <div class="">
100
100
  <div class="sticky top-0 bg-surface w-full flex items-center py-2">
101
- {#if stepDetail.id}
101
+ {#if stepDetail.id && stepDetail.id != 'failure' && stepDetail.id != 'preprocessor'}
102
102
  <Badge color="indigo">
103
103
  {stepDetail.id}
104
104
  </Badge>
105
105
  {/if}
106
- <span class="ml-2 font-medium text-lg">
106
+ <span
107
+ class={twMerge(
108
+ 'font-medium text-lg',
109
+ stepDetail.id !== 'failure' && stepDetail.id !== 'preprocessor' ? 'ml-2' : ''
110
+ )}
111
+ >
107
112
  {#if stepDetail.summary}
108
113
  {stepDetail.summary}
109
114
  {:else if stepDetail.value.type == 'identity'}
@@ -119,6 +124,10 @@ let codeViewer;
119
124
  Inner flow
120
125
  {:else if stepDetail.value.type == 'whileloopflow'}
121
126
  While loop
127
+ {:else if stepDetail.id === 'failure'}
128
+ Error handler
129
+ {:else if stepDetail.id === 'preprocessor'}
130
+ Preprocessor
122
131
  {:else}
123
132
  Anonymous step
124
133
  {/if}
@@ -142,10 +151,12 @@ let codeViewer;
142
151
  An identity step returns its inputs as outputs
143
152
  </p>
144
153
  {:else if stepDetail.value.type == 'rawscript'}
145
- <div class="text-xs">
146
- <h3 class="mb-2 font-semibold mt-2">Step Inputs</h3>
147
- <InputTransformsViewer inputTransforms={stepDetail?.value?.input_transforms ?? {}} />
148
- </div>
154
+ {#if stepDetail.id !== 'preprocessor'}
155
+ <div class="text-xs">
156
+ <h3 class="mb-2 font-semibold mt-2">Step Inputs</h3>
157
+ <InputTransformsViewer inputTransforms={stepDetail?.value?.input_transforms ?? {}} />
158
+ </div>
159
+ {/if}
149
160
 
150
161
  <div>
151
162
  <div class="mb-2 mt-4 flex justify-between items-center">
@@ -175,10 +186,12 @@ let codeViewer;
175
186
  </div>
176
187
  </div>
177
188
  {:else if stepDetail.value.type == 'script'}
178
- <div class="text-2xs">
179
- <h3 class="mb-2 font-semibold mt-2">Step Inputs</h3>
180
- <InputTransformsViewer inputTransforms={stepDetail?.value?.input_transforms ?? {}} />
181
- </div>
189
+ {#if stepDetail.id !== 'preprocessor'}
190
+ <div class="text-2xs">
191
+ <h3 class="mb-2 font-semibold mt-2">Step Inputs</h3>
192
+ <InputTransformsViewer inputTransforms={stepDetail?.value?.input_transforms ?? {}} />
193
+ </div>
194
+ {/if}
182
195
  {#if stepDetail.value.path.startsWith('hub/')}
183
196
  <div class="flex flex-col grow">
184
197
  <div class="mb-2 flex justify-between items-center">
@@ -0,0 +1,25 @@
1
+ <script>import FieldHeader from './FieldHeader.svelte';
2
+ export let schema;
3
+ </script>
4
+
5
+ <ul class="my-2">
6
+ {#if schema == undefined}
7
+ <li class="text-secondary text-xs italic mb-4">No inputs</li>
8
+ {:else}
9
+ {#each Object.entries(schema.properties ?? {}) as [inp, v]}
10
+ <li class="list-disc flex flex-row items-center">
11
+ <FieldHeader
12
+ label={inp}
13
+ required={Array.isArray(schema.required) && schema.required?.includes(inp)}
14
+ type={v?.type}
15
+ contentEncoding={v?.contentEncoding}
16
+ format={v?.format}
17
+ /><span class="ml-4 mt-1 text-xs"
18
+ >{v?.default != undefined && v?.default != ''
19
+ ? 'default: ' + JSON.stringify(v?.default)
20
+ : ''}</span
21
+ >
22
+ </li>
23
+ {/each}
24
+ {/if}
25
+ </ul>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Schema } from '../common';
3
+ declare const __propDef: {
4
+ props: {
5
+ schema: Schema | {
6
+ [key: string]: unknown;
7
+ } | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type FlowInputViewerProps = typeof __propDef.props;
15
+ export type FlowInputViewerEvents = typeof __propDef.events;
16
+ export type FlowInputViewerSlots = typeof __propDef.slots;
17
+ export default class FlowInputViewer extends SvelteComponent<FlowInputViewerProps, FlowInputViewerEvents, FlowInputViewerSlots> {
18
+ }
19
+ export {};
@@ -18,6 +18,7 @@ export let tag = undefined;
18
18
  export let workspaceId = undefined;
19
19
  export let refreshLog = false;
20
20
  export let durationStates;
21
+ export let downloadLogs = true;
21
22
  let lastJobId = undefined;
22
23
  let drawer = undefined;
23
24
  $: jobId != lastJobId && diffJobId();
@@ -32,7 +33,6 @@ async function diffJobId() {
32
33
  let logOffset = 0;
33
34
  async function getLogs() {
34
35
  if (jobId) {
35
- console.log('getLogs');
36
36
  const getUpdate = await JobService.getJobUpdates({
37
37
  workspace: workspaceId ?? $workspaceStore,
38
38
  id: jobId,
@@ -77,6 +77,12 @@ async function getLogs() {
77
77
  <div class="absolute z-40 text-xs top-0 left-1"
78
78
  ><button class="" on:click={drawer.openDrawer}>explore all steps' logs</button></div
79
79
  >
80
- <LogViewer content={logs ?? ''} {jobId} isLoading={waitingForExecutor} {tag} />
80
+ <LogViewer
81
+ download={downloadLogs}
82
+ content={logs ?? ''}
83
+ {jobId}
84
+ isLoading={waitingForExecutor}
85
+ {tag}
86
+ />
81
87
  </div>
82
88
  </div>
@@ -15,6 +15,7 @@ declare const __propDef: {
15
15
  workspaceId?: string | undefined;
16
16
  refreshLog?: boolean | undefined;
17
17
  durationStates: Writable<Record<string, DurationStatus>> | undefined;
18
+ downloadLogs?: boolean | undefined;
18
19
  };
19
20
  events: {
20
21
  [evt: string]: CustomEvent<any>;
@@ -24,7 +24,7 @@ export let scheduleEditor;
24
24
  {#if job['success'] != undefined}
25
25
  Received job: {displayDate(job.created_at ?? '')}
26
26
  {:else}
27
- Received job <TimeAgo withDate date={job.created_at ?? ''} />
27
+ Received job <TimeAgo date={job.created_at ?? ''} />
28
28
  {/if}
29
29
  <Tooltip small>{job?.created_at}</Tooltip>
30
30
  </span>
@@ -33,7 +33,7 @@ export let scheduleEditor;
33
33
  <div class="flex flex-row gap-2 items-center text-sm">
34
34
  <Clock size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
35
35
  <span class="whitespace-nowrap">
36
- Started <TimeAgo withDate agoOnlyIfRecent date={job.started_at ?? ''} />
36
+ Started <TimeAgo agoOnlyIfRecent date={job.started_at ?? ''} />
37
37
  <Tooltip small>{job?.started_at}</Tooltip>
38
38
  </span>
39
39
  </div>
@@ -13,6 +13,7 @@ export let hideTimeline = false;
13
13
  export let hideDownloadInGraph = false;
14
14
  export let hideNodeDefinition = false;
15
15
  export let hideJobId = false;
16
+ export let hideDownloadLogs = false;
16
17
  export let isOwner = false;
17
18
  export let wideResults = false;
18
19
  let lastJobId = jobId;
@@ -25,7 +26,8 @@ setContext('FlowStatusViewer', {
25
26
  hideDownloadInGraph,
26
27
  hideNodeDefinition,
27
28
  hideTimeline,
28
- hideJobId
29
+ hideJobId,
30
+ hideDownloadLogs
29
31
  });
30
32
  function loadOwner(path) {
31
33
  isOwner = loadIsOwner(path, $userStore, workspaceId ?? $workspaceStore);
@@ -14,6 +14,7 @@ declare const __propDef: {
14
14
  hideDownloadInGraph?: boolean | undefined;
15
15
  hideNodeDefinition?: boolean | undefined;
16
16
  hideJobId?: boolean | undefined;
17
+ hideDownloadLogs?: boolean | undefined;
17
18
  isOwner?: boolean | undefined;
18
19
  wideResults?: boolean | undefined;
19
20
  };
@@ -22,7 +22,7 @@ import Alert from './common/alert/Alert.svelte';
22
22
  import FlowGraphViewerStep from './FlowGraphViewerStep.svelte';
23
23
  import FlowGraphV2 from './graph/FlowGraphV2.svelte';
24
24
  const dispatch = createEventDispatcher();
25
- let { flowStateStore, retryStatus, suspendStatus, hideDownloadInGraph, hideTimeline, hideNodeDefinition } = getContext('FlowStatusViewer');
25
+ let { flowStateStore, retryStatus, suspendStatus, hideDownloadInGraph, hideTimeline, hideNodeDefinition, hideDownloadLogs } = getContext('FlowStatusViewer');
26
26
  export let jobId;
27
27
  export let initialJob = undefined;
28
28
  export let workspaceId = undefined;
@@ -94,6 +94,9 @@ let innerModules = [];
94
94
  function updateStatus(status) {
95
95
  innerModules =
96
96
  status?.modules?.concat(status.failure_module.type != 'WaitingForPriorSteps' ? status.failure_module : []) ?? [];
97
+ if (status.preprocessor_module) {
98
+ innerModules.unshift(status.preprocessor_module);
99
+ }
97
100
  updateInnerModules();
98
101
  let count = status.retry?.fail_count;
99
102
  if (count) {
@@ -339,7 +342,8 @@ function onJobsLoaded(mod, job, force) {
339
342
  flow_jobs: mod.flow_jobs,
340
343
  flow_jobs_success: mod.flow_jobs_success,
341
344
  iteration_total: mod.iterator?.itered?.length,
342
- retries: mod?.failed_retries?.length
345
+ retries: mod?.failed_retries?.length,
346
+ skipped: mod.skipped
343
347
  // retries: $flowStateStore?.raw_flow
344
348
  }, force);
345
349
  setDurationStatusByJob(mod.id, job.id, {
@@ -536,6 +540,7 @@ let wrapperHeight = 0;
536
540
  result={job.result}
537
541
  logs={job.logs}
538
542
  durationStates={localDurationStatuses}
543
+ downloadLogs={!hideDownloadLogs}
539
544
  />
540
545
  </div>
541
546
  {/if}
@@ -660,6 +665,7 @@ let wrapperHeight = 0;
660
665
  {/each}
661
666
  </div>
662
667
  {:else if innerModules.length > 0 && (job.raw_flow?.modules.length ?? 0) > 0}
668
+ {@const hasPreprocessor = innerModules[0]?.id == 'preprocessor' ? 1 : 0}
663
669
  <ul class="w-full">
664
670
  <h3 class="text-md leading-6 font-bold text-primary border-b mb-4 py-2">
665
671
  Step-by-step
@@ -669,10 +675,12 @@ let wrapperHeight = 0;
669
675
  {#if render}
670
676
  <div class="line w-8 h-10" />
671
677
  <h3 class="text-tertiary mb-2 w-full">
672
- {#if job?.raw_flow?.modules && i < job?.raw_flow?.modules.length}
678
+ {#if mod.id === 'preprocessor'}
679
+ <h3>Preprocessor module</h3>
680
+ {:else if job?.raw_flow?.modules && i < job?.raw_flow?.modules.length + hasPreprocessor}
673
681
  Step
674
682
  <span class="font-medium text-primary">
675
- {i + 1}
683
+ {i + 1 - hasPreprocessor}
676
684
  </span>
677
685
  out of
678
686
  <span class="font-medium text-primary">{job?.raw_flow?.modules.length}</span>
@@ -844,6 +852,8 @@ let wrapperHeight = 0;
844
852
  globalRefreshes[detail.moduleId]?.({ job: detail.id, index: detail.index })
845
853
  }}
846
854
  modules={job.raw_flow?.modules ?? []}
855
+ failureModule={job.raw_flow?.failure_module}
856
+ preprocessorModule={job.raw_flow?.preprocessor_module}
847
857
  />
848
858
  </div>
849
859
  <div
@@ -888,6 +898,7 @@ let wrapperHeight = 0;
888
898
  result={job['result']}
889
899
  logs={job.logs ?? ''}
890
900
  durationStates={localDurationStatuses}
901
+ downloadLogs={!hideDownloadLogs}
891
902
  />
892
903
  {:else if selectedNode == 'start'}
893
904
  {#if job.args}
@@ -917,7 +928,11 @@ let wrapperHeight = 0;
917
928
  <span class="pl-1 text-tertiary text-lg pt-4">Selected subflow</span>
918
929
  {/if}
919
930
  <div class="px-2 flex gap-2 min-w-0 w-full">
920
- <ModuleStatus type={node.type} scheduled_for={node.scheduled_for} />
931
+ <ModuleStatus
932
+ type={node.type}
933
+ scheduled_for={node.scheduled_for}
934
+ skipped={node.skipped}
935
+ />
921
936
  {#if node.duration_ms}
922
937
  <Badge>
923
938
  <Hourglass class="mr-2" size={10} />
@@ -959,6 +974,7 @@ let wrapperHeight = 0;
959
974
  tag={node.tag}
960
975
  logs={node.logs}
961
976
  durationStates={localDurationStatuses}
977
+ downloadLogs={!hideDownloadLogs}
962
978
  />
963
979
  {:else}
964
980
  <p class="p-2 text-tertiary italic"
@@ -146,10 +146,10 @@ onDestroy(() => {
146
146
  {/if}
147
147
 
148
148
  <div class="px-2 py-2 grid grid-cols-6 w-full">
149
- <div>{k}</div>
150
- <div class="col-span-5 flex min-h-6 w-full">
149
+ <div class="truncate">{k}</div>
150
+ <div class="col-span-5 flex min-h-6">
151
151
  {#if min && total}
152
- <div class="flex flex-col gap-2 w-full p-2">
152
+ <div class="flex flex-col gap-2 w-full p-2 ml-4">
153
153
  {#each items?.[k] ?? [] as b}
154
154
  {@const waitingLen = b?.created_at
155
155
  ? b.started_at
@@ -1,9 +1,9 @@
1
1
  <script>import { Tab, Tabs, TabContent } from './common';
2
2
  import SchemaViewer from './SchemaViewer.svelte';
3
- import FieldHeader from './FieldHeader.svelte';
4
3
  import FlowGraphViewer from './FlowGraphViewer.svelte';
5
4
  import HighlightTheme from './HighlightTheme.svelte';
6
5
  import FlowViewerInner from './FlowViewerInner.svelte';
6
+ import FlowInputViewer from './FlowInputViewer.svelte';
7
7
  export let flow;
8
8
  export let initialOpen = undefined;
9
9
  export let noSide = false;
@@ -15,9 +15,6 @@ let open = {};
15
15
  if (initialOpen) {
16
16
  open[initialOpen] = true;
17
17
  }
18
- function toAny(x) {
19
- return x;
20
- }
21
18
  </script>
22
19
 
23
20
  <HighlightTheme />
@@ -41,23 +38,7 @@ function toAny(x) {
41
38
  <span>Flow Input</span>
42
39
  </p>
43
40
  {#if flow.schema && flow.schema.properties && Object.keys(flow.schema.properties).length > 0 && flow.schema}
44
- <ul class="my-2">
45
- {#each Object.entries(flow.schema.properties) as [inp, v]}
46
- <li class="list-disc flex flex-row">
47
- <FieldHeader
48
- label={inp}
49
- required={flow.schema.required?.includes(inp)}
50
- type={toAny(v)?.type}
51
- contentEncoding={toAny(v)?.contentEncoding}
52
- format={toAny(v)?.format}
53
- /><span class="ml-4 mt-2 text-xs"
54
- >{toAny(v)?.default != undefined
55
- ? 'default: ' + JSON.stringify(toAny(v)?.default)
56
- : ''}</span
57
- >
58
- </li>
59
- {/each}
60
- </ul>
41
+ <FlowInputViewer schema={flow.schema} />
61
42
  {:else}
62
43
  <div class="text-secondary text-xs italic mb-4">No inputs</div>
63
44
  {/if}
@@ -9,6 +9,7 @@ import sql from 'svelte-highlight/languages/sql';
9
9
  import powershell from 'svelte-highlight/languages/powershell';
10
10
  import php from 'svelte-highlight/languages/php';
11
11
  import rust from 'svelte-highlight/languages/rust';
12
+ import yaml from 'svelte-highlight/languages/yaml';
12
13
  import { Button } from './common';
13
14
  import { copyToClipboard } from '../utils';
14
15
  import { ClipboardCopy } from 'lucide-svelte';
@@ -50,6 +51,8 @@ function getLang(lang) {
50
51
  return php;
51
52
  case 'rust':
52
53
  return rust;
54
+ case 'ansible':
55
+ return yaml;
53
56
  default:
54
57
  return typescript;
55
58
  }