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
@@ -0,0 +1,141 @@
1
+ <script>export let white = false;
2
+ export let size = '24px';
3
+ export let color = undefined;
4
+ export let spin = undefined;
5
+ function hslToHex(h, s, l) {
6
+ s /= 100;
7
+ l /= 100;
8
+ let c = (1 - Math.abs(2 * l - 1)) * s;
9
+ let x = c * (1 - Math.abs(((h / 60) % 2) - 1));
10
+ let m = l - c / 2;
11
+ let r = 0;
12
+ let g = 0;
13
+ let b = 0;
14
+ if (0 <= h && h < 60) {
15
+ r = c;
16
+ g = x;
17
+ b = 0;
18
+ }
19
+ else if (60 <= h && h < 120) {
20
+ r = x;
21
+ g = c;
22
+ b = 0;
23
+ }
24
+ else if (120 <= h && h < 180) {
25
+ r = 0;
26
+ g = c;
27
+ b = x;
28
+ }
29
+ else if (180 <= h && h < 240) {
30
+ r = 0;
31
+ g = x;
32
+ b = c;
33
+ }
34
+ else if (240 <= h && h < 300) {
35
+ r = x;
36
+ g = 0;
37
+ b = c;
38
+ }
39
+ else if (300 <= h && h < 360) {
40
+ r = c;
41
+ g = 0;
42
+ b = x;
43
+ }
44
+ let rs = Math.round((r + m) * 255)
45
+ .toString(16)
46
+ .padStart(2, '0');
47
+ let gs = Math.round((g + m) * 255)
48
+ .toString(16)
49
+ .padStart(2, '0');
50
+ let bs = Math.round((b + m) * 255)
51
+ .toString(16)
52
+ .padStart(2, '0');
53
+ return `#${rs}${gs}${bs}`;
54
+ }
55
+ function hexToHsl(hex) {
56
+ let r = parseInt(hex.slice(1, 3), 16) / 255;
57
+ let g = parseInt(hex.slice(3, 5), 16) / 255;
58
+ let b = parseInt(hex.slice(5, 7), 16) / 255;
59
+ const max = Math.max(r, g, b), min = Math.min(r, g, b);
60
+ let h, s, l = (max + min) / 2;
61
+ if (max === min) {
62
+ h = s = 0; // Achromatic
63
+ }
64
+ else {
65
+ const d = max - min;
66
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
67
+ switch (max) {
68
+ case r:
69
+ h = (g - b) / d + (g < b ? 6 : 0);
70
+ break;
71
+ case g:
72
+ h = (b - r) / d + 2;
73
+ break;
74
+ case b:
75
+ h = (r - g) / d + 4;
76
+ break;
77
+ }
78
+ h /= 6;
79
+ }
80
+ return [h * 360, s * 100, l * 100];
81
+ }
82
+ function reduceSaturation(hex, reductionPercent) {
83
+ // Convert HEX to HSL
84
+ // Convert the hex to HSL
85
+ let [h, s, l] = hexToHsl(hex);
86
+ // Reduce the saturation by the specified percentage
87
+ l = Math.max(0, l - reductionPercent);
88
+ // Convert back to hex
89
+ return hslToHex(h, s, l);
90
+ }
91
+ let lessSaturatedColor;
92
+ $: color ? (lessSaturatedColor = reduceSaturation(color, -16)) : (lessSaturatedColor = undefined);
93
+ </script>
94
+
95
+ <!-- SVG Icon with customizable color -->
96
+ <svg
97
+ class={$$props.class}
98
+ class:animate-[spin_2s_linear_infinite]={spin === 'veryfast'}
99
+ class:animate-[spin_5s_linear_infinite]={spin === 'fast'}
100
+ class:animate-[spin_15s_linear_infinite]={spin === 'medium'}
101
+ class:animate-[spin_50s_linear_infinite]={spin === 'slow'}
102
+ version="1.1"
103
+ id="Calque_1"
104
+ xmlns="http://www.w3.org/2000/svg"
105
+ xmlns:xlink="http://www.w3.org/1999/xlink"
106
+ x="0px"
107
+ y="0px"
108
+ width={size}
109
+ height={size}
110
+ viewBox="0 0 256 256"
111
+ style="enable-background:new 0 0 256 256;"
112
+ xml:space="preserve"
113
+ >
114
+ <g>
115
+ <!-- Use color or fallback to defaults (white or blue) -->
116
+ <polygon
117
+ fill={lessSaturatedColor || (white ? '#cccccc' : '#bcd4fc')}
118
+ points="134.78,14.22 114.31,48.21 101.33,69.75 158.22,69.75 177.97,36.95 191.67,14.22"
119
+ />
120
+ <polygon
121
+ fill={color || (white ? '#ffffff' : '#3b82f6')}
122
+ points="227.55,69.75 186.61,69.75 101.33,69.75 129.78,119.02 158.16,119.02 228.61,119.02 256,119.02"
123
+ />
124
+ <polygon
125
+ fill={color || (white ? '#ffffff' : '#3b82f6')}
126
+ points="136.93,132.47 116.46,167.93 73.82,241.78 130.71,241.78 144.9,217.2 180.13,156.18 193.82,132.46"
127
+ />
128
+ <polygon
129
+ fill={color || (white ? '#ffffff' : '#3b82f6')}
130
+ points="121.7,131.95 101.23,96.49 58.59,22.63 30.15,71.91 44.34,96.49 79.57,157.5 93.26,181.22"
131
+ />
132
+ <polygon
133
+ fill={lessSaturatedColor || (white ? '#cccccc' : '#bcd4fc')}
134
+ points="64.81,131.95 25.15,131.21 0,130.74 28.44,180.01 66.73,180.72 93.26,181.21"
135
+ />
136
+ <polygon
137
+ fill={lessSaturatedColor || (white ? '#cccccc' : '#bcd4fc')}
138
+ points="165.38,181.74 184.58,216.46 196.75,238.47 225.19,189.2 206.66,155.69 193.83,132.46"
139
+ />
140
+ </g>
141
+ </svg>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ white?: boolean | undefined;
6
+ size?: string | undefined;
7
+ color?: string | undefined;
8
+ spin?: 'slow' | 'medium' | 'fast' | 'veryfast' | undefined;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type WindmillIcon2Props = typeof __propDef.props;
16
+ export type WindmillIcon2Events = typeof __propDef.events;
17
+ export type WindmillIcon2Slots = typeof __propDef.slots;
18
+ export default class WindmillIcon2 extends SvelteComponent<WindmillIcon2Props, WindmillIcon2Events, WindmillIcon2Slots> {
19
+ }
20
+ export {};
@@ -18,6 +18,7 @@ import S3Icon from './S3Icon.svelte';
18
18
  import Slack from './Slack.svelte';
19
19
  import TogglIcon from './TogglIcon.svelte';
20
20
  import WindmillIcon from './WindmillIcon.svelte';
21
+ import WindmillIcon2 from './WindmillIcon2.svelte';
21
22
  import MailchimpIcon from './MailchimpIcon.svelte';
22
23
  import SendgridIcon from './SendgridIcon.svelte';
23
24
  import SendflakeIcon from './SendflakeIcon.svelte';
@@ -188,4 +189,4 @@ export declare const APP_TO_ICON_COMPONENT: {
188
189
  readonly keycloak: typeof KeycloakIcon;
189
190
  readonly zitadel: typeof ZitadelIcon;
190
191
  };
191
- export { AirtableIcon, DbIcon, DiscordIcon, GcalIcon, GCloudIcon, GdriveIcon, GithubIcon, GitlabIcon, GmailIcon, GSheetsIcon, HttpIcon, Mail, MastodonIcon, MatrixIcon, Mysql, PostgresIcon, S3Icon, Slack, TogglIcon, WindmillIcon, MailchimpIcon, SendgridIcon, LinkedinIcon, HubspotIcon, TelegramIcon, StripeIcon, DatadogIcon, FunkwhaleIcon, GdocsIcon, FaunadbIcon, ClickhouseIcon, OpenaiIcon, AwsIcon, BcryptIcon, GoogleIcon, HackernewsIcon, MongodbIcon, RedditIcon, SupabaseIcon, WebdavIcon, ZammadIcon, NextcloudIcon, SendflakeIcon, SurrealdbIcon, ActivitypubIcon, AwsEcrIcon, CalcomIcon, ClickupIcon, CloudflareIcon, FirebaseIcon, GoogleFormsIcon, JiraIcon, NotionIcon, PineconeIcon, RssIcon, ShopifyIcon, TypeformIcon, BigQueryIcon, GraphqlIcon, NocoDbIcon, AzureIcon, MicrosoftIcon, OktaIcon, AuthentikIcon, AutheliaIcon, KanidmIcon, AsanaIcon, BitbucketIcon, DynatraceIcon, EdgeDbIcon, GitIcon, ZendeskIcon, TwilioIcon, TrelloIcon, ResendIcon, PushoverIcon, QuickbooksIcon, MsTeamsIcon, MailgunIcon, IpinfoIcon, GoogleCloudIcon, CaCertificate, CurrencyApiIcon, VismaIcon, JumpCloudIcon, KeycloakIcon, ZitadelIcon };
192
+ export { AirtableIcon, DbIcon, DiscordIcon, GcalIcon, GCloudIcon, GdriveIcon, GithubIcon, GitlabIcon, GmailIcon, GSheetsIcon, HttpIcon, Mail, MastodonIcon, MatrixIcon, Mysql, PostgresIcon, S3Icon, Slack, TogglIcon, WindmillIcon, WindmillIcon2, MailchimpIcon, SendgridIcon, LinkedinIcon, HubspotIcon, TelegramIcon, StripeIcon, DatadogIcon, FunkwhaleIcon, GdocsIcon, FaunadbIcon, ClickhouseIcon, OpenaiIcon, AwsIcon, BcryptIcon, GoogleIcon, HackernewsIcon, MongodbIcon, RedditIcon, SupabaseIcon, WebdavIcon, ZammadIcon, NextcloudIcon, SendflakeIcon, SurrealdbIcon, ActivitypubIcon, AwsEcrIcon, CalcomIcon, ClickupIcon, CloudflareIcon, FirebaseIcon, GoogleFormsIcon, JiraIcon, NotionIcon, PineconeIcon, RssIcon, ShopifyIcon, TypeformIcon, BigQueryIcon, GraphqlIcon, NocoDbIcon, AzureIcon, MicrosoftIcon, OktaIcon, AuthentikIcon, AutheliaIcon, KanidmIcon, AsanaIcon, BitbucketIcon, DynatraceIcon, EdgeDbIcon, GitIcon, ZendeskIcon, TwilioIcon, TrelloIcon, ResendIcon, PushoverIcon, QuickbooksIcon, MsTeamsIcon, MailgunIcon, IpinfoIcon, GoogleCloudIcon, CaCertificate, CurrencyApiIcon, VismaIcon, JumpCloudIcon, KeycloakIcon, ZitadelIcon };
@@ -18,6 +18,7 @@ import S3Icon from './S3Icon.svelte';
18
18
  import Slack from './Slack.svelte';
19
19
  import TogglIcon from './TogglIcon.svelte';
20
20
  import WindmillIcon from './WindmillIcon.svelte';
21
+ import WindmillIcon2 from './WindmillIcon2.svelte';
21
22
  import MailchimpIcon from './MailchimpIcon.svelte';
22
23
  import SendgridIcon from './SendgridIcon.svelte';
23
24
  import SendflakeIcon from './SendflakeIcon.svelte';
@@ -188,4 +189,4 @@ export const APP_TO_ICON_COMPONENT = {
188
189
  keycloak: KeycloakIcon,
189
190
  zitadel: ZitadelIcon
190
191
  };
191
- export { AirtableIcon, DbIcon, DiscordIcon, GcalIcon, GCloudIcon, GdriveIcon, GithubIcon, GitlabIcon, GmailIcon, GSheetsIcon, HttpIcon, Mail, MastodonIcon, MatrixIcon, Mysql, PostgresIcon, S3Icon, Slack, TogglIcon, WindmillIcon, MailchimpIcon, SendgridIcon, LinkedinIcon, HubspotIcon, TelegramIcon, StripeIcon, DatadogIcon, FunkwhaleIcon, GdocsIcon, FaunadbIcon, ClickhouseIcon, OpenaiIcon, AwsIcon, BcryptIcon, GoogleIcon, HackernewsIcon, MongodbIcon, RedditIcon, SupabaseIcon, WebdavIcon, ZammadIcon, NextcloudIcon, SendflakeIcon, SurrealdbIcon, ActivitypubIcon, AwsEcrIcon, CalcomIcon, ClickupIcon, CloudflareIcon, FirebaseIcon, GoogleFormsIcon, JiraIcon, NotionIcon, PineconeIcon, RssIcon, ShopifyIcon, TypeformIcon, BigQueryIcon, GraphqlIcon, NocoDbIcon, AzureIcon, MicrosoftIcon, OktaIcon, AuthentikIcon, AutheliaIcon, KanidmIcon, AsanaIcon, BitbucketIcon, DynatraceIcon, EdgeDbIcon, GitIcon, ZendeskIcon, TwilioIcon, TrelloIcon, ResendIcon, PushoverIcon, QuickbooksIcon, MsTeamsIcon, MailgunIcon, IpinfoIcon, GoogleCloudIcon, CaCertificate, CurrencyApiIcon, VismaIcon, JumpCloudIcon, KeycloakIcon, ZitadelIcon };
192
+ export { AirtableIcon, DbIcon, DiscordIcon, GcalIcon, GCloudIcon, GdriveIcon, GithubIcon, GitlabIcon, GmailIcon, GSheetsIcon, HttpIcon, Mail, MastodonIcon, MatrixIcon, Mysql, PostgresIcon, S3Icon, Slack, TogglIcon, WindmillIcon, WindmillIcon2, MailchimpIcon, SendgridIcon, LinkedinIcon, HubspotIcon, TelegramIcon, StripeIcon, DatadogIcon, FunkwhaleIcon, GdocsIcon, FaunadbIcon, ClickhouseIcon, OpenaiIcon, AwsIcon, BcryptIcon, GoogleIcon, HackernewsIcon, MongodbIcon, RedditIcon, SupabaseIcon, WebdavIcon, ZammadIcon, NextcloudIcon, SendflakeIcon, SurrealdbIcon, ActivitypubIcon, AwsEcrIcon, CalcomIcon, ClickupIcon, CloudflareIcon, FirebaseIcon, GoogleFormsIcon, JiraIcon, NotionIcon, PineconeIcon, RssIcon, ShopifyIcon, TypeformIcon, BigQueryIcon, GraphqlIcon, NocoDbIcon, AzureIcon, MicrosoftIcon, OktaIcon, AuthentikIcon, AutheliaIcon, KanidmIcon, AsanaIcon, BitbucketIcon, DynatraceIcon, EdgeDbIcon, GitIcon, ZendeskIcon, TwilioIcon, TrelloIcon, ResendIcon, PushoverIcon, QuickbooksIcon, MsTeamsIcon, MailgunIcon, IpinfoIcon, GoogleCloudIcon, CaCertificate, CurrencyApiIcon, VismaIcon, JumpCloudIcon, KeycloakIcon, ZitadelIcon };
@@ -0,0 +1,4 @@
1
+ export declare let customIcon: {
2
+ normal: string;
3
+ white: string;
4
+ } | undefined;
@@ -0,0 +1 @@
1
+ export let customIcon = undefined;
@@ -6,12 +6,12 @@ export interface Setting {
6
6
  ee_only?: string;
7
7
  tooltip?: string;
8
8
  key: string;
9
- fieldType: 'text' | 'number' | 'boolean' | 'password' | 'select' | 'textarea' | 'seconds' | 'email' | 'license_key' | 'object_store_config' | 'critical_error_channels' | 'slack_connect';
9
+ fieldType: 'text' | 'number' | 'boolean' | 'password' | 'select' | 'textarea' | 'seconds' | 'email' | 'license_key' | 'object_store_config' | 'critical_error_channels' | 'slack_connect' | 'smtp_connect';
10
10
  storage: SettingStorage;
11
11
  isValid?: (value: any) => boolean;
12
12
  error?: string;
13
13
  defaultValue?: () => any;
14
14
  }
15
- export type SettingStorage = 'setting' | 'config';
15
+ export type SettingStorage = 'setting';
16
16
  export declare const settings: Record<string, Setting[]>;
17
17
  export declare const settingsKeys: string[];
@@ -2,7 +2,7 @@ export const settings = {
2
2
  Core: [
3
3
  {
4
4
  label: 'Base url',
5
- description: 'Public base url of the instance',
5
+ description: 'Public base url of the instance. <a href="https://www.windmill.dev/docs/advanced/instance_settings#global-users">Learn more</a>',
6
6
  key: 'base_url',
7
7
  fieldType: 'text',
8
8
  placeholder: 'https://windmill.com',
@@ -17,7 +17,7 @@ export const settings = {
17
17
  },
18
18
  {
19
19
  label: 'Email domain',
20
- description: 'Domain to display in webhooks for email triggers (should match the MX record)',
20
+ description: 'Domain to display in webhooks for <a href="https://www.windmill.dev/docs/advanced/email_triggers">email triggers</a> (should match the MX record)',
21
21
  key: 'email_domain',
22
22
  fieldType: 'text',
23
23
  storage: 'setting',
@@ -35,22 +35,23 @@ export const settings = {
35
35
  {
36
36
  label: 'Default timeout',
37
37
  key: 'job_default_timeout',
38
- description: 'Default timeout for individual jobs',
38
+ description: 'Default timeout for individual jobs. <a href="https://www.windmill.dev/docs/core_concepts/jobs#retention-policy">Learn more</a>',
39
39
  fieldType: 'seconds',
40
40
  storage: 'setting',
41
41
  cloudonly: false
42
42
  },
43
43
  {
44
44
  label: 'Max timeout for sync endpoints',
45
+ description: 'Maximum amount of time (measured in seconds) that a <a href="https://www.windmill.dev/docs/core_concepts/webhooks">sync endpoint</a> is allowed to run before it is forcibly stopped or timed out.',
45
46
  key: 'timeout_wait_result',
46
47
  cloudonly: true,
47
48
  fieldType: 'seconds',
48
49
  placeholder: '60',
49
- storage: 'config'
50
+ storage: 'setting'
50
51
  },
51
52
  {
52
53
  label: 'License key',
53
- description: 'License key required to use the EE (switch image for windmill-ee)',
54
+ description: 'License key required to use the EE (switch image for windmill-ee). <a href="https://www.windmill.dev/docs/advanced/instance_settings#license-key">Learn more</a>',
54
55
  key: 'license_key',
55
56
  fieldType: 'license_key',
56
57
  placeholder: 'only needed to prepare upgrade to EE',
@@ -58,16 +59,15 @@ export const settings = {
58
59
  },
59
60
  {
60
61
  label: 'Non-prod instance',
61
- description: 'Whether we should consider the reported usage of this instance as non-prod',
62
+ description: 'Whether we should consider the reported usage of this instance as non-prod. <a href="https://www.windmill.dev/docs/advanced/instance_settings#non-prod-instance">Learn more</a>',
62
63
  key: 'dev_instance',
63
64
  fieldType: 'boolean',
64
- storage: 'setting',
65
- ee_only: 'This is only relevant for EE'
65
+ storage: 'setting'
66
66
  },
67
67
  {
68
68
  label: 'Retention period in secs',
69
69
  key: 'retention_period_secs',
70
- description: 'How long to keep the jobs data in the database (max 30 days on CE)',
70
+ description: 'How long to keep the jobs data in the database (max 30 days on CE). <a href="https://www.windmill.dev/docs/advanced/instance_settings#retention-period-in-secs">Learn more</a>',
71
71
  fieldType: 'seconds',
72
72
  placeholder: '30',
73
73
  storage: 'setting',
@@ -76,15 +76,15 @@ export const settings = {
76
76
  },
77
77
  {
78
78
  label: 'Expose metrics',
79
- description: 'Expose Prometheus metrics for workers and servers on port 8001 at /metrics',
79
+ description: 'Expose Prometheus metrics for workers and servers on port 8001 at /metrics. <a href="https://www.windmill.dev/docs/advanced/instance_settings#expose-metrics">Learn more</a>',
80
80
  key: 'expose_metrics',
81
81
  fieldType: 'boolean',
82
82
  storage: 'setting',
83
83
  ee_only: ''
84
84
  },
85
85
  {
86
- label: 'S3/Azure for Python/Go cache & large logs',
87
- description: 'Bucket to store large logs and global cache for Python and Go.',
86
+ label: 'Instance object storage',
87
+ description: ' S3/Azure bucket to store large logs and global cache for Python and Go. <a href="https://www.windmill.dev/docs/core_concepts/object_storage_in_windmill#instance-object-storage">Learn more</a>',
88
88
  key: 'object_store_cache_config',
89
89
  fieldType: 'object_store_config',
90
90
  storage: 'setting',
@@ -92,7 +92,7 @@ export const settings = {
92
92
  },
93
93
  {
94
94
  label: 'Critical alert channels',
95
- description: 'Channels to send critical alerts to. SMTP must be configured for the email channel. A Slack workspace must be connected to the instance for the Slack channel.',
95
+ description: 'Channels to send critical alerts to. SMTP must be configured for the email channel. A Slack workspace must be connected to the instance for the Slack channel. <a href="https://www.windmill.dev/docs/core_concepts/critical_alert_channels">Learn more</a>',
96
96
  key: 'critical_error_channels',
97
97
  fieldType: 'critical_error_channels',
98
98
  storage: 'setting',
@@ -100,7 +100,7 @@ export const settings = {
100
100
  },
101
101
  {
102
102
  label: 'Azure OpenAI base path',
103
- description: 'All Windmill AI features will run on the specified deployed model. Format: https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}',
103
+ description: 'All Windmill AI features will run on the specified deployed model. Format: https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}. <a href="https://www.windmill.dev/docs/core_concepts/ai_generation#azure-openai-advanced-models">Learn more</a>',
104
104
  key: 'openai_azure_base_path',
105
105
  fieldType: 'text',
106
106
  storage: 'setting',
@@ -108,7 +108,7 @@ export const settings = {
108
108
  },
109
109
  {
110
110
  label: 'Private Hub base url',
111
- description: 'Base url of your private Hub instance, without trailing slash',
111
+ description: 'Base url of your private Hub instance, without trailing slash. <a href="https://www.windmill.dev/docs/core_concepts/private_hub">Learn more</a>',
112
112
  placeholder: 'https://hub.company.com',
113
113
  key: 'hub_base_url',
114
114
  fieldType: 'text',
@@ -120,7 +120,7 @@ export const settings = {
120
120
  Registries: [
121
121
  {
122
122
  label: 'Pip Index Url',
123
- description: 'Add private PIP registry',
123
+ description: 'Add private Pip registry',
124
124
  key: 'pip_index_url',
125
125
  fieldType: 'text',
126
126
  placeholder: 'https://username:password@pypi.company.com/simple',
@@ -129,7 +129,7 @@ export const settings = {
129
129
  },
130
130
  {
131
131
  label: 'Pip Extra Index Url',
132
- description: 'Add private extra PIP registry',
132
+ description: 'Add private extra Pip registry',
133
133
  key: 'pip_extra_index_url',
134
134
  fieldType: 'text',
135
135
  placeholder: 'https://username:password@pypi.company.com/simple',
@@ -138,7 +138,7 @@ export const settings = {
138
138
  },
139
139
  {
140
140
  label: 'Npm Config Registry',
141
- description: 'Add private NPM registry',
141
+ description: 'Add private npm registry',
142
142
  key: 'npm_config_registry',
143
143
  fieldType: 'text',
144
144
  placeholder: 'https://registry.npmjs.org/:_authToken=npm_FOOBAR',
@@ -157,44 +157,11 @@ export const settings = {
157
157
  ],
158
158
  SMTP: [
159
159
  {
160
- label: 'Host',
161
- key: 'smtp_host',
162
- fieldType: 'text',
163
- placeholder: 'smtp.gmail.com',
164
- storage: 'config'
165
- },
166
- {
167
- label: 'Port',
168
- key: 'smtp_port',
169
- fieldType: 'number',
170
- placeholder: '587',
171
- storage: 'config'
172
- },
173
- {
174
- label: 'Username',
175
- key: 'smtp_username',
176
- fieldType: 'text',
177
- placeholder: 'ruben@windmill.dev',
178
- storage: 'config'
179
- },
180
- {
181
- label: 'Password',
182
- key: 'smtp_password',
183
- fieldType: 'password',
184
- storage: 'config'
185
- },
186
- {
187
- label: 'From Address',
188
- key: 'smtp_from',
189
- placeholder: 'noreply@windmill.dev',
190
- fieldType: 'email',
191
- storage: 'config'
192
- },
193
- {
194
- label: 'Implicit TLS',
195
- key: 'smtp_tls_implicit',
196
- fieldType: 'boolean',
197
- storage: 'config'
160
+ label: 'SMTP',
161
+ key: 'smtp_settings',
162
+ fieldType: 'smtp_connect',
163
+ storage: 'setting',
164
+ ee_only: '',
198
165
  }
199
166
  ],
200
167
  Slack: [
@@ -231,14 +198,14 @@ export const settings = {
231
198
  label: 'Keep job directories',
232
199
  key: 'keep_job_dir',
233
200
  fieldType: 'boolean',
234
- tooltip: 'Keep Job directories after execution at /tmp/windmill/<worker>/<job_id>',
201
+ description: 'Keep Job directories after execution at /tmp/windmill/<worker>/<job_id>',
235
202
  storage: 'setting'
236
203
  },
237
204
  {
238
205
  label: 'Expose debug metrics',
239
206
  key: 'expose_debug_metrics',
240
207
  fieldType: 'boolean',
241
- tooltip: 'Expose additional metrics (require metrics to be enabled)',
208
+ description: 'Expose additional metrics (require metrics to be enabled)',
242
209
  storage: 'setting'
243
210
  }
244
211
  ],
@@ -0,0 +1,52 @@
1
+ <script>import {} from '../../gen';
2
+ import ProgressBar from '../progressBar/ProgressBar.svelte';
3
+ export let job = undefined;
4
+ export let compact = false;
5
+ /// Progress of currently running job
6
+ export let scriptProgress = undefined;
7
+ // Removes `Step 1` and replaces it with `Running`
8
+ export let hideStepTitle = false;
9
+ let error = undefined;
10
+ let index = 0;
11
+ let subIndex = 0;
12
+ let subLength = 100;
13
+ let length = 1;
14
+ let nextInProgress = false;
15
+ $: if (job)
16
+ updateJobProgress(job);
17
+ $: subIndex = scriptProgress ?? 0;
18
+ function updateJobProgress(job) {
19
+ if (!job['running'] && !job['success']) {
20
+ error = 0;
21
+ }
22
+ else {
23
+ error = undefined;
24
+ }
25
+ // Anything that is success automatically gets 100% progress
26
+ if (job['success'] && scriptProgress)
27
+ index = 1, subLength = 0, subIndex = 0, scriptProgress = 100;
28
+ }
29
+ let resetP;
30
+ export function reset() {
31
+ resetP?.();
32
+ error = undefined;
33
+ subIndex = 0;
34
+ subLength = 100;
35
+ length = 1;
36
+ index = 0;
37
+ scriptProgress = undefined;
38
+ }
39
+ </script>
40
+
41
+ <ProgressBar
42
+ bind:resetP
43
+ {length}
44
+ {index}
45
+ {nextInProgress}
46
+ {subLength}
47
+ {subIndex}
48
+ {error}
49
+ class={$$props.class}
50
+ bind:compact
51
+ bind:hideStepTitle
52
+ />
@@ -0,0 +1,23 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type Job } from '../../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ job?: Job | undefined;
7
+ compact?: boolean | undefined;
8
+ scriptProgress?: number | undefined;
9
+ hideStepTitle?: boolean | undefined;
10
+ reset?: (() => void) | undefined;
11
+ };
12
+ events: {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {};
16
+ };
17
+ export type JobProgressBarProps = typeof __propDef.props;
18
+ export type JobProgressBarEvents = typeof __propDef.events;
19
+ export type JobProgressBarSlots = typeof __propDef.slots;
20
+ export default class JobProgressBar extends SvelteComponent<JobProgressBarProps, JobProgressBarEvents, JobProgressBarSlots> {
21
+ get reset(): () => void;
22
+ }
23
+ export {};
@@ -71,7 +71,7 @@ let open = false;
71
71
  </div>
72
72
  </MultiSelect>
73
73
  </div>
74
- <Portal>
74
+ <Portal name="multi-select">
75
75
  <div use:floatingContent class="z5000" hidden={!open}>
76
76
  <!-- svelte-ignore a11y-click-events-have-key-events -->
77
77
  <!-- svelte-ignore a11y-no-static-element-interactions -->
@@ -1,5 +1,6 @@
1
1
  <script>import { tweened } from 'svelte/motion';
2
2
  import { linear } from 'svelte/easing';
3
+ import { twMerge } from 'tailwind-merge';
3
4
  function getTween(initialValue = 0, duration = 200) {
4
5
  return tweened(initialValue, {
5
6
  duration,
@@ -11,6 +12,13 @@ export let index;
11
12
  export let subIndex;
12
13
  export let subLength;
13
14
  export let nextInProgress = false;
15
+ // Used for displaying progress of subjob of flow
16
+ export let subIndexIsPercent = false;
17
+ // Remove padding/margin, border radius and titles
18
+ // Used in individual job test runs
19
+ export let compact = false;
20
+ // Removes `Step 1` and replaces it with `Running`
21
+ export let hideStepTitle = false;
14
22
  export let length;
15
23
  let duration = 200;
16
24
  let percent = getTween(0, duration);
@@ -31,6 +39,7 @@ $: finished = index == length;
31
39
  </script>
32
40
 
33
41
  <div class={$$props.class}>
42
+ {#if !compact}
34
43
  <div
35
44
  class="flex justify-between items-end font-medium mb-1 {error != undefined
36
45
  ? 'text-red-700 dark:text-red-200'
@@ -41,12 +50,17 @@ $: finished = index == length;
41
50
  ? 'Error occured'
42
51
  : finished
43
52
  ? 'Done'
53
+ : hideStepTitle
54
+ ? `Running`
55
+ : subIndexIsPercent
56
+ ? `Step ${index + 1} (${subIndex !== undefined ? `${subIndex}%)` : ''}`
44
57
  : `Step ${index + 1}${subIndex !== undefined ? `.${subIndex + 1}` : ''}`}
45
58
  </span>
46
59
  <span class="text-sm">
47
60
  {$percent.toFixed(0)}%
48
61
  </span>
49
62
  </div>
63
+ {/if}
50
64
  <!-- {#each state as step, index}
51
65
  {index} {JSON.stringify(step)}
52
66
  {/each} -->
@@ -56,7 +70,10 @@ $: finished = index == length;
56
70
  {getPercent(index)}
57
71
  |
58
72
  {/each} -->
59
- <div class="flex w-full bg-gray-200 rounded-full h-4 overflow-hidden">
73
+ <div class={twMerge(
74
+ "flex w-full bg-gray-200 overflow-hidden",
75
+ (compact) ? "rounded-none h-3" : "rounded-full h-4",
76
+ )}>
60
77
  {#each new Array(length) as _, partIndex (partIndex)}
61
78
  <div class="h-full relative border-white {partIndex === 0 ? '' : 'border-l'} w-full">
62
79
  {#if partIndex == index && nextInProgress}
@@ -7,6 +7,9 @@ declare const __propDef: {
7
7
  subIndex: number | undefined;
8
8
  subLength: number | undefined;
9
9
  nextInProgress?: boolean | undefined;
10
+ subIndexIsPercent?: boolean | undefined;
11
+ compact?: boolean | undefined;
12
+ hideStepTitle?: boolean | undefined;
10
13
  length: number;
11
14
  resetP?: (() => void) | undefined;
12
15
  };
@@ -51,7 +51,7 @@ $: keyLimit = isArray ? 1 : 100;
51
51
  $: fullyCollapsed = keys.length > 1 && collapsed;
52
52
  </script>
53
53
 
54
- <Portal>
54
+ <Portal name="object-viewer">
55
55
  <S3FilePicker bind:this={s3FileViewer} readOnlyMode={true} />
56
56
  </Portal>
57
57
 
@@ -55,6 +55,7 @@ const dispatch = createEventDispatcher();
55
55
  bind:watchJob
56
56
  on:done={onDone}
57
57
  />
58
+
58
59
  <div class="p-4 flex flex-col gap-2 items-start h-full">
59
60
  {#if job}
60
61
  <div class="flex gap-2 flex-wrap">