windmill-components 1.37.0 → 1.46.1

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 (401) hide show
  1. package/common.d.ts +1 -0
  2. package/components/AppConnect.svelte +45 -49
  3. package/components/ArgInfo.svelte +37 -15
  4. package/components/ArgInput.svelte +33 -34
  5. package/components/ArgInput.svelte.d.ts +3 -1
  6. package/components/ButtonAndDropdown.svelte +1 -1
  7. package/components/CenteredPage.svelte +2 -2
  8. package/components/CronInput.svelte +24 -20
  9. package/components/CronInput.svelte.d.ts +1 -0
  10. package/components/DisplayResult.svelte +2 -2
  11. package/components/Dropdown.svelte +10 -13
  12. package/components/Dropdown.svelte.d.ts +4 -1
  13. package/components/Editor.svelte +27 -3
  14. package/components/Editor.svelte.d.ts +3 -1
  15. package/components/EditorBar.svelte +77 -30
  16. package/components/EditorBar.svelte.d.ts +3 -1
  17. package/components/FieldHeader.svelte +6 -5
  18. package/components/FlowBuilder.svelte +52 -55
  19. package/components/FlowBuilder.svelte.d.ts +2 -0
  20. package/components/FlowJobResult.svelte +11 -18
  21. package/components/FlowJobResult.svelte.d.ts +2 -2
  22. package/components/FlowMetadata.svelte +65 -0
  23. package/components/FlowMetadata.svelte.d.ts +17 -0
  24. package/components/FlowModulesViewer.svelte +18 -4
  25. package/components/FlowPreviewContent.svelte +88 -50
  26. package/components/FlowPreviewContent.svelte.d.ts +1 -0
  27. package/components/FlowStatusViewer.svelte +123 -61
  28. package/components/FlowStatusViewer.svelte.d.ts +8 -3
  29. package/components/FlowViewer.svelte +84 -9
  30. package/components/FlowViewer.svelte.d.ts +1 -0
  31. package/components/GroupModal.svelte +43 -44
  32. package/components/GroupModal.svelte.d.ts +2 -2
  33. package/components/HighlightCode.svelte +4 -1
  34. package/components/HighlightCode.svelte.d.ts +1 -1
  35. package/components/IconedResourceType.svelte +6 -4
  36. package/components/IconedResourceType.svelte.d.ts +1 -0
  37. package/components/InputTransformForm.svelte +38 -27
  38. package/components/InputTransformsViewer.svelte +2 -1
  39. package/components/InviteGlobalUser.svelte +6 -10
  40. package/components/InviteGlobalUser.svelte.d.ts +1 -4
  41. package/components/InviteUser.svelte +4 -8
  42. package/components/InviteUser.svelte.d.ts +1 -4
  43. package/components/ItemPicker.svelte +50 -43
  44. package/components/ItemPicker.svelte.d.ts +2 -2
  45. package/components/JobArgs.svelte +33 -0
  46. package/components/JobArgs.svelte.d.ts +16 -0
  47. package/components/JobStatus.svelte +21 -17
  48. package/components/LogViewer.svelte +11 -6
  49. package/components/Modal.svelte +5 -5
  50. package/components/Modal.svelte.d.ts +4 -4
  51. package/components/ModulePreview.svelte +47 -63
  52. package/components/ModulePreview.svelte.d.ts +0 -1
  53. package/components/PageHeader.svelte +6 -6
  54. package/components/Password.svelte +1 -1
  55. package/components/Path.svelte +28 -7
  56. package/components/Path.svelte.d.ts +3 -3
  57. package/components/Popover.svelte +61 -0
  58. package/components/Popover.svelte.d.ts +17 -0
  59. package/components/Required.svelte +4 -4
  60. package/components/Required.svelte.d.ts +1 -0
  61. package/components/ResourceEditor.svelte +105 -116
  62. package/components/ResourceEditor.svelte.d.ts +0 -1
  63. package/components/ResourcePicker.svelte +9 -6
  64. package/components/ResourceTypePicker.svelte +3 -1
  65. package/components/RunChart.svelte +102 -0
  66. package/components/RunChart.svelte.d.ts +20 -0
  67. package/components/RunForm.svelte +58 -40
  68. package/components/RunForm.svelte.d.ts +13 -0
  69. package/components/SchemaEditor.svelte +5 -5
  70. package/components/SchemaEditorProperty.svelte +1 -1
  71. package/components/SchemaForm.svelte +3 -1
  72. package/components/SchemaForm.svelte.d.ts +1 -0
  73. package/components/SchemaModal.svelte +113 -105
  74. package/components/SchemaModal.svelte.d.ts +4 -4
  75. package/components/SchemaViewer.svelte +7 -4
  76. package/components/ScriptBuilder.svelte +143 -163
  77. package/components/ScriptBuilder.svelte.d.ts +1 -0
  78. package/components/ScriptEditor.svelte +117 -114
  79. package/components/ScriptEditor.svelte.d.ts +1 -0
  80. package/components/ScriptPicker.svelte +16 -24
  81. package/components/ScriptSchema.svelte +33 -32
  82. package/components/ShareModal.svelte +74 -68
  83. package/components/ShareModal.svelte.d.ts +2 -2
  84. package/components/SimpleEditor.svelte +4 -2
  85. package/components/SuperadminSettings.svelte +134 -0
  86. package/components/SuperadminSettings.svelte.d.ts +19 -0
  87. package/components/TableCustom.svelte +1 -1
  88. package/components/TableSimple.svelte +1 -1
  89. package/components/TestJobLoader.svelte +14 -6
  90. package/components/TestJobLoader.svelte.d.ts +4 -2
  91. package/components/Toggle.svelte +5 -3
  92. package/components/Toggle.svelte.d.ts +2 -0
  93. package/components/Tooltip.svelte +9 -64
  94. package/components/UserSettings.svelte +241 -0
  95. package/components/UserSettings.svelte.d.ts +19 -0
  96. package/components/VariableEditor.svelte +80 -74
  97. package/components/common/actionRow/ActionRow.svelte +5 -4
  98. package/components/common/alert/Alert.svelte +1 -1
  99. package/components/common/alert/Alert.svelte.d.ts +1 -0
  100. package/components/common/badge/Badge.svelte +2 -2
  101. package/components/common/breadcrumb/Breadcrumb.svelte +24 -0
  102. package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +22 -0
  103. package/components/common/button/Button.svelte +20 -8
  104. package/components/common/button/Button.svelte.d.ts +1 -0
  105. package/components/common/button/model.d.ts +1 -1
  106. package/components/common/confirmationModal/ConfirmationModal.svelte +1 -0
  107. package/components/common/drawer/Drawer.svelte +38 -7
  108. package/components/common/drawer/Drawer.svelte.d.ts +6 -0
  109. package/components/common/drawer/DrawerContent.svelte +21 -7
  110. package/components/common/drawer/DrawerContent.svelte.d.ts +4 -0
  111. package/components/common/index.d.ts +1 -0
  112. package/components/common/index.js +1 -0
  113. package/components/common/kbd/Kbd.svelte +1 -1
  114. package/components/common/languageIcons/Bash.svelte +18 -0
  115. package/components/common/languageIcons/Bash.svelte.d.ts +27 -0
  116. package/components/common/languageIcons/Go.svelte +34 -0
  117. package/components/common/languageIcons/Go.svelte.d.ts +27 -0
  118. package/components/common/languageIcons/LanguageIcon.svelte +19 -0
  119. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +21 -0
  120. package/components/common/languageIcons/Python.svelte +51 -0
  121. package/components/common/languageIcons/Python.svelte.d.ts +27 -0
  122. package/components/common/languageIcons/TypeScript.svelte +31 -0
  123. package/components/common/languageIcons/TypeScript.svelte.d.ts +27 -0
  124. package/components/common/languageIcons/index.d.ts +5 -0
  125. package/components/common/languageIcons/index.js +5 -0
  126. package/components/common/menu/Menu.svelte +15 -19
  127. package/components/common/skeleton/Skeleton.svelte +1 -2
  128. package/components/common/skeleton/Skeleton.svelte.d.ts +0 -1
  129. package/components/common/skeleton/SkeletonElement.svelte +1 -1
  130. package/components/common/tabs/TabContent.svelte +2 -1
  131. package/components/common/tabs/TabContent.svelte.d.ts +1 -0
  132. package/components/common/tabs/Tabs.svelte +8 -6
  133. package/components/common/tabs/Tabs.svelte.d.ts +1 -0
  134. package/components/flows/FlowEditor.svelte +11 -20
  135. package/components/flows/FlowProgressBar.svelte +55 -0
  136. package/components/flows/FlowProgressBar.svelte.d.ts +21 -0
  137. package/components/flows/common/FlowCardHeader.svelte +5 -6
  138. package/components/flows/content/CapturePayload.svelte +112 -0
  139. package/components/flows/content/CapturePayload.svelte.d.ts +17 -0
  140. package/components/flows/content/DynamicInputHelpBox.svelte +6 -10
  141. package/components/flows/content/FlowBranchAllWrapper.svelte +21 -0
  142. package/components/flows/content/FlowBranchAllWrapper.svelte.d.ts +21 -0
  143. package/components/flows/content/FlowBranchOneWrapper.svelte +49 -0
  144. package/components/flows/content/FlowBranchOneWrapper.svelte.d.ts +23 -0
  145. package/components/flows/content/FlowBranchesWrapper.svelte +140 -0
  146. package/components/flows/content/FlowBranchesWrapper.svelte.d.ts +19 -0
  147. package/components/flows/content/FlowEditorPanel.svelte +8 -6
  148. package/components/flows/content/FlowFailureModule.svelte +4 -6
  149. package/components/flows/content/FlowInput.svelte +31 -5
  150. package/components/flows/content/FlowInputs.svelte +119 -50
  151. package/components/flows/content/FlowInputs.svelte.d.ts +5 -4
  152. package/components/flows/content/FlowLoop.svelte +85 -142
  153. package/components/flows/content/FlowLoop.svelte.d.ts +2 -1
  154. package/components/flows/content/FlowModuleComponent.svelte +231 -0
  155. package/components/flows/content/FlowModuleComponent.svelte.d.ts +20 -0
  156. package/components/flows/content/FlowModuleEarlyStop.svelte +45 -48
  157. package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +1 -0
  158. package/components/flows/content/FlowModuleHeader.svelte +11 -40
  159. package/components/flows/content/FlowModuleHeader.svelte.d.ts +0 -1
  160. package/components/flows/content/FlowModuleScript.svelte +7 -12
  161. package/components/flows/content/FlowModuleScript.svelte.d.ts +1 -2
  162. package/components/flows/content/FlowModuleSuspend.svelte +31 -15
  163. package/components/flows/content/FlowModuleSuspend.svelte.d.ts +1 -0
  164. package/components/flows/content/FlowModuleWrapper.svelte +138 -38
  165. package/components/flows/content/FlowModuleWrapper.svelte.d.ts +6 -1
  166. package/components/flows/content/FlowRetries.svelte +13 -2
  167. package/components/flows/content/FlowRetries.svelte.d.ts +1 -0
  168. package/components/flows/content/FlowSchedules.svelte +0 -2
  169. package/components/flows/content/FlowSettings.svelte +103 -72
  170. package/components/flows/flowState.d.ts +8 -8
  171. package/components/flows/flowState.js +32 -17
  172. package/components/flows/flowStateUtils.d.ts +21 -38
  173. package/components/flows/flowStateUtils.js +86 -158
  174. package/components/flows/flowStore.d.ts +3 -2
  175. package/components/flows/flowStore.js +60 -7
  176. package/components/flows/header/FlowImportExportMenu.svelte +12 -22
  177. package/components/flows/header/FlowPreviewButtons.svelte +11 -11
  178. package/components/flows/map/FlowBranchAllMap.svelte +90 -0
  179. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +17 -0
  180. package/components/flows/map/FlowBranchOneMap.svelte +116 -0
  181. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +17 -0
  182. package/components/flows/map/FlowErrorHandlerItem.svelte +14 -11
  183. package/components/flows/map/FlowInputsItem.svelte +19 -0
  184. package/components/flows/map/FlowInputsItem.svelte.d.ts +14 -0
  185. package/components/flows/map/FlowModuleSchemaItem.svelte +53 -36
  186. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +5 -5
  187. package/components/flows/map/FlowModuleSchemaMap.svelte +73 -144
  188. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +2 -3
  189. package/components/flows/map/FlowSettingsItem.svelte +29 -0
  190. package/components/flows/map/FlowSettingsItem.svelte.d.ts +14 -0
  191. package/components/flows/map/InsertModuleButton.svelte +11 -0
  192. package/components/flows/map/InsertModuleButton.svelte.d.ts +16 -0
  193. package/components/flows/map/MapItem.svelte +105 -0
  194. package/components/flows/map/MapItem.svelte.d.ts +22 -0
  195. package/components/flows/pickers/FlowScriptPicker.svelte +14 -4
  196. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  197. package/components/flows/pickers/PickHubScript.svelte +5 -4
  198. package/components/flows/pickers/PickHubScript.svelte.d.ts +1 -0
  199. package/components/flows/pickers/PickScript.svelte +6 -5
  200. package/components/flows/pickers/PickScript.svelte.d.ts +1 -0
  201. package/components/flows/previousResults.d.ts +14 -0
  202. package/components/flows/previousResults.js +118 -0
  203. package/components/flows/propPicker/PropPickerWrapper.svelte +22 -15
  204. package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +6 -2
  205. package/components/flows/utils.d.ts +8 -5
  206. package/components/flows/utils.js +86 -56
  207. package/components/graph/FlowGraph.svelte +259 -0
  208. package/components/graph/FlowGraph.svelte.d.ts +20 -0
  209. package/components/graph/index.d.ts +3 -0
  210. package/components/graph/index.js +3 -0
  211. package/components/graph/model.d.ts +20 -0
  212. package/components/graph/model.js +9 -0
  213. package/components/graph/util.d.ts +9 -0
  214. package/components/graph/util.js +14 -0
  215. package/components/icons/WindmillIcon.svelte +85 -52
  216. package/components/icons/WindmillIcon.svelte.d.ts +2 -0
  217. package/components/jobs/JobDetail.svelte +40 -30
  218. package/components/landing/FlowGettingStarted.svelte +4 -3
  219. package/components/landing/FlowLandingBox.svelte +23 -53
  220. package/components/landing/RessourceGettingStarted.svelte +1 -1
  221. package/components/landing/ScriptBox.svelte +25 -27
  222. package/components/landing/ScriptGettingStarted.svelte +4 -3
  223. package/components/preview/FlowPreviewStatus.svelte +1 -1
  224. package/components/progressBar/ProgressBar.svelte +89 -0
  225. package/components/{ProgressBar.svelte.d.ts → progressBar/ProgressBar.svelte.d.ts} +5 -2
  226. package/components/progressBar/ProgressBarGeneralPart.svelte +22 -0
  227. package/components/progressBar/ProgressBarGeneralPart.svelte.d.ts +19 -0
  228. package/components/progressBar/ProgressBarLoopAccessor.svelte +14 -0
  229. package/components/progressBar/ProgressBarLoopAccessor.svelte.d.ts +19 -0
  230. package/components/progressBar/ProgressBarLoopPart.svelte +34 -0
  231. package/components/progressBar/ProgressBarLoopPart.svelte.d.ts +19 -0
  232. package/components/progressBar/index.d.ts +2 -0
  233. package/components/progressBar/index.js +2 -0
  234. package/components/progressBar/model.d.ts +32 -0
  235. package/components/progressBar/model.js +14 -0
  236. package/components/propertyPicker/ObjectViewer.svelte +18 -13
  237. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  238. package/components/propertyPicker/PropPicker.svelte +90 -44
  239. package/components/propertyPicker/PropPicker.svelte.d.ts +4 -1
  240. package/components/propertyPicker/PropPickerResult.svelte +12 -0
  241. package/components/propertyPicker/PropPickerResult.svelte.d.ts +18 -0
  242. package/components/propertyPicker/utils.d.ts +1 -1
  243. package/components/propertyPicker/utils.js +4 -1
  244. package/components/{script_editor → scriptEditor}/LogPanel.svelte +30 -20
  245. package/components/{script_editor → scriptEditor}/LogPanel.svelte.d.ts +0 -0
  246. package/components/scripts/CreateActions.svelte +2 -2
  247. package/components/sidebar/SidebarContent.svelte +1 -1
  248. package/components/sidebar/UserMenu.svelte +17 -1
  249. package/components/sidebar/UserMenu.svelte.d.ts +3 -0
  250. package/components/sidebar/WorkspaceMenu.svelte +16 -14
  251. package/components/splitPanes/SplitPanesWrapper.svelte +34 -0
  252. package/components/splitPanes/SplitPanesWrapper.svelte.d.ts +20 -0
  253. package/editorUtils.js +2 -0
  254. package/gen/core/OpenAPI.js +1 -1
  255. package/gen/index.d.ts +8 -1
  256. package/gen/index.js +5 -0
  257. package/gen/models/AppWithLastVersion.d.ts +21 -0
  258. package/gen/models/AppWithLastVersion.js +12 -0
  259. package/gen/models/BranchAll.d.ts +10 -0
  260. package/gen/models/{Branches.js → BranchAll.js} +0 -0
  261. package/gen/models/{Branches.d.ts → BranchOne.d.ts} +3 -5
  262. package/gen/models/BranchOne.js +4 -0
  263. package/gen/models/CompletedJob.d.ts +4 -2
  264. package/gen/models/CompletedJob.js +2 -0
  265. package/gen/models/FlowModule.d.ts +2 -1
  266. package/gen/models/FlowModuleValue.d.ts +4 -2
  267. package/gen/models/FlowStatusModule.d.ts +11 -2
  268. package/gen/models/ForloopFlow.d.ts +1 -0
  269. package/gen/models/Identity.d.ts +3 -0
  270. package/gen/models/Identity.js +4 -0
  271. package/gen/models/ListableApp.d.ts +16 -0
  272. package/gen/models/ListableApp.js +12 -0
  273. package/gen/models/ListableVariable.d.ts +1 -1
  274. package/gen/models/PathScript.d.ts +2 -0
  275. package/gen/models/Policy.d.ts +12 -0
  276. package/gen/models/Policy.js +12 -0
  277. package/gen/models/Preview.d.ts +2 -1
  278. package/gen/models/Preview.js +1 -0
  279. package/gen/models/QueuedJob.d.ts +4 -2
  280. package/gen/models/QueuedJob.js +2 -0
  281. package/gen/models/RawScript.d.ts +4 -1
  282. package/gen/models/RawScript.js +1 -0
  283. package/gen/models/Script.d.ts +4 -2
  284. package/gen/models/Script.js +2 -0
  285. package/gen/services/AppService.d.ts +31 -0
  286. package/gen/services/AppService.js +49 -0
  287. package/gen/services/CaptureService.d.ts +30 -0
  288. package/gen/services/CaptureService.js +52 -0
  289. package/gen/services/FlowService.d.ts +90 -0
  290. package/gen/services/FlowService.js +72 -0
  291. package/gen/services/JobService.d.ts +57 -8
  292. package/gen/services/JobService.js +78 -10
  293. package/gen/services/OauthService.d.ts +6 -15
  294. package/gen/services/OauthService.js +6 -19
  295. package/gen/services/ResourceService.d.ts +10 -1
  296. package/gen/services/ResourceService.js +16 -1
  297. package/gen/services/ScriptService.d.ts +28 -3
  298. package/gen/services/ScriptService.js +27 -0
  299. package/gen/services/UserService.d.ts +14 -6
  300. package/gen/services/UserService.js +25 -11
  301. package/infer.d.ts +1 -1
  302. package/infer.js +35 -18
  303. package/logout.d.ts +1 -1
  304. package/logout.js +7 -9
  305. package/package.json +74 -68
  306. package/script_helpers.d.ts +5 -3
  307. package/script_helpers.js +42 -12
  308. package/scripts.js +9 -4
  309. package/utils.d.ts +8 -9
  310. package/utils.js +42 -81
  311. package/components/AutosizedTextarea.svelte +0 -34
  312. package/components/AutosizedTextarea.svelte.d.ts +0 -19
  313. package/components/ProgressBar.svelte +0 -31
  314. package/components/ProgressBarPart.svelte +0 -20
  315. package/components/ProgressBarPart.svelte.d.ts +0 -20
  316. package/components/Switch.svelte +0 -61
  317. package/components/Switch.svelte.d.ts +0 -31
  318. package/components/flows/content/CopyFirstStepSchema.svelte +0 -13
  319. package/components/flows/content/CopyFirstStepSchema.svelte.d.ts +0 -14
  320. package/components/flows/content/FlowLoopWrapper.svelte +0 -9
  321. package/components/flows/content/FlowLoopWrapper.svelte.d.ts +0 -14
  322. package/components/flows/content/FlowModule.svelte +0 -217
  323. package/components/flows/content/FlowModule.svelte.d.ts +0 -29
  324. package/gen/schemas/$AuditLog.d.ts +0 -32
  325. package/gen/schemas/$AuditLog.js +0 -35
  326. package/gen/schemas/$CompletedJob.d.ts +0 -98
  327. package/gen/schemas/$CompletedJob.js +0 -103
  328. package/gen/schemas/$ContextualVariable.d.ts +0 -16
  329. package/gen/schemas/$ContextualVariable.js +0 -19
  330. package/gen/schemas/$CreateResource.d.ts +0 -22
  331. package/gen/schemas/$CreateResource.js +0 -25
  332. package/gen/schemas/$CreateVariable.d.ts +0 -26
  333. package/gen/schemas/$CreateVariable.js +0 -29
  334. package/gen/schemas/$CreateWorkspace.d.ts +0 -20
  335. package/gen/schemas/$CreateWorkspace.js +0 -23
  336. package/gen/schemas/$EditResource.d.ts +0 -13
  337. package/gen/schemas/$EditResource.js +0 -16
  338. package/gen/schemas/$EditResourceType.d.ts +0 -10
  339. package/gen/schemas/$EditResourceType.js +0 -13
  340. package/gen/schemas/$EditSchedule.d.ts +0 -20
  341. package/gen/schemas/$EditSchedule.js +0 -23
  342. package/gen/schemas/$EditVariable.d.ts +0 -16
  343. package/gen/schemas/$EditVariable.js +0 -19
  344. package/gen/schemas/$EditWorkspaceUser.d.ts +0 -7
  345. package/gen/schemas/$EditWorkspaceUser.js +0 -10
  346. package/gen/schemas/$Flow.d.ts +0 -23
  347. package/gen/schemas/$Flow.js +0 -26
  348. package/gen/schemas/$FlowMetadata.d.ts +0 -31
  349. package/gen/schemas/$FlowMetadata.js +0 -34
  350. package/gen/schemas/$FlowPreview.d.ts +0 -80
  351. package/gen/schemas/$FlowPreview.js +0 -83
  352. package/gen/schemas/$GlobalUserInfo.d.ts +0 -26
  353. package/gen/schemas/$GlobalUserInfo.js +0 -29
  354. package/gen/schemas/$Group.d.ts +0 -23
  355. package/gen/schemas/$Group.js +0 -26
  356. package/gen/schemas/$Job.d.ts +0 -17
  357. package/gen/schemas/$Job.js +0 -20
  358. package/gen/schemas/$ListableVariable.d.ts +0 -35
  359. package/gen/schemas/$ListableVariable.js +0 -38
  360. package/gen/schemas/$Login.d.ts +0 -12
  361. package/gen/schemas/$Login.js +0 -15
  362. package/gen/schemas/$MainArgSignature.d.ts +0 -50
  363. package/gen/schemas/$MainArgSignature.js +0 -53
  364. package/gen/schemas/$NewSchedule.d.ts +0 -30
  365. package/gen/schemas/$NewSchedule.js +0 -33
  366. package/gen/schemas/$NewToken.d.ts +0 -11
  367. package/gen/schemas/$NewToken.js +0 -14
  368. package/gen/schemas/$NewUser.d.ts +0 -16
  369. package/gen/schemas/$NewUser.js +0 -19
  370. package/gen/schemas/$Preview.d.ts +0 -19
  371. package/gen/schemas/$Preview.js +0 -22
  372. package/gen/schemas/$QueuedJob.d.ts +0 -139
  373. package/gen/schemas/$QueuedJob.js +0 -144
  374. package/gen/schemas/$Resource.d.ts +0 -31
  375. package/gen/schemas/$Resource.js +0 -34
  376. package/gen/schemas/$ResourceType.d.ts +0 -17
  377. package/gen/schemas/$ResourceType.js +0 -20
  378. package/gen/schemas/$Schedule.d.ts +0 -47
  379. package/gen/schemas/$Schedule.js +0 -50
  380. package/gen/schemas/$Script.d.ts +0 -77
  381. package/gen/schemas/$Script.js +0 -80
  382. package/gen/schemas/$ScriptArgs.d.ts +0 -6
  383. package/gen/schemas/$ScriptArgs.js +0 -9
  384. package/gen/schemas/$SlackToken.d.ts +0 -24
  385. package/gen/schemas/$SlackToken.js +0 -27
  386. package/gen/schemas/$TokenResponse.d.ts +0 -23
  387. package/gen/schemas/$TokenResponse.js +0 -26
  388. package/gen/schemas/$TruncatedToken.d.ts +0 -25
  389. package/gen/schemas/$TruncatedToken.js +0 -28
  390. package/gen/schemas/$Usage.d.ts +0 -13
  391. package/gen/schemas/$Usage.js +0 -16
  392. package/gen/schemas/$User.d.ts +0 -42
  393. package/gen/schemas/$User.js +0 -45
  394. package/gen/schemas/$UserWorkspaceList.d.ts +0 -28
  395. package/gen/schemas/$UserWorkspaceList.js +0 -31
  396. package/gen/schemas/$WorkerPing.d.ts +0 -31
  397. package/gen/schemas/$WorkerPing.js +0 -34
  398. package/gen/schemas/$Workspace.d.ts +0 -19
  399. package/gen/schemas/$Workspace.js +0 -22
  400. package/gen/schemas/$WorkspaceInvite.d.ts +0 -16
  401. package/gen/schemas/$WorkspaceInvite.js +0 -19
@@ -5,22 +5,27 @@ import { inferArgs } from '../infer';
5
5
  import { initialCode, isInitialCode } from '../script_helpers';
6
6
  import { workspaceStore } from '../stores';
7
7
  import { encodeState, sendUserToast, setQueryWithoutLoad } from '../utils';
8
- import { Breadcrumb, BreadcrumbItem } from 'flowbite-svelte';
9
- import SvelteMarkdown from 'svelte-markdown';
10
8
  import Path from './Path.svelte';
11
9
  import RadioButton from './RadioButton.svelte';
12
10
  import Required from './Required.svelte';
13
11
  import ScriptEditor from './ScriptEditor.svelte';
14
12
  import ScriptSchema from './ScriptSchema.svelte';
15
13
  import CenteredPage from './CenteredPage.svelte';
16
- import Tooltip from './Tooltip.svelte';
17
14
  import UnsavedConfirmationModal from './common/confirmationModal/UnsavedConfirmationModal.svelte';
18
15
  import { dirtyStore } from './common/confirmationModal/dirtyStore';
19
16
  import { Button } from './common';
17
+ import { faChevronDown, faChevronUp, faPen } from '@fortawesome/free-solid-svg-icons';
18
+ import Breadcrumb from './common/breadcrumb/Breadcrumb.svelte';
19
+ import Toggle from './Toggle.svelte';
20
20
  export let script;
21
21
  export let initialPath = '';
22
22
  export let template = 'script';
23
+ export let initialArgs = {};
24
+ let viewScriptKind = script.kind !== Script.kind.SCRIPT;
25
+ let viewTemplate = script.kind !== Script.kind.SCRIPT && script.language == Script.language.DENO;
23
26
  let pathError = '';
27
+ let summaryC = undefined;
28
+ let pathC = undefined;
24
29
  $: setQueryWithoutLoad($page.url, 'state', encodeState(script));
25
30
  $: step = Number($page.url.searchParams.get('step')) || 1;
26
31
  if (script.content == '') {
@@ -68,38 +73,69 @@ async function changeStep(step) {
68
73
  <div class="flex flex-col h-screen">
69
74
  <!-- Nav between steps-->
70
75
  <div class="flex flex-col w-full px-4 py-2 border-b shadow-sm">
71
- <div class="justify-between flex flex-row drop-shadow-sm w-full">
72
- <div class="flex flex-row w-full">
73
- <Breadcrumb>
74
- <BreadcrumbItem>
75
- <button on:click={() => changeStep(1)} class={step === 1 ? 'font-bold' : null}>
76
- Metadata
77
- </button>
78
- </BreadcrumbItem>
79
- <BreadcrumbItem>
80
- <button
81
- on:click={() => changeStep(2)}
82
- class={step === 2 ? 'font-bold' : null}
83
- disabled={pathError != ''}
84
- >
85
- Code
86
- </button>
87
- </BreadcrumbItem>
88
- <BreadcrumbItem>
89
- <button
90
- on:click={() => changeStep(3)}
91
- class={step === 3 ? 'font-bold' : null}
92
- disabled={pathError != ''}
93
- >
94
- UI customisation
95
- </button>
96
- </BreadcrumbItem>
76
+ <div class="justify-between flex flex-row w-full items-center overflow-x-auto scrollbar-hidden">
77
+ <div class="flex flex-row">
78
+ <Breadcrumb
79
+ items={['Metadata', 'Code', 'UI Customisation']}
80
+ selectedIndex={step}
81
+ on:select={(e) => changeStep(e.detail.index + 1)}
82
+ disabled={pathError != ''}
83
+ >
84
+ <svelte:fragment slot="separator">/</svelte:fragment>
97
85
  </Breadcrumb>
98
86
  </div>
99
- <div class="flex flex-row-reverse ml-2">
100
- {#if step != 3}
87
+
88
+ <div class="gap-1 flex-row hidden md:flex shrink overflow-hidden">
89
+ <Button
90
+ btnClasses="hidden lg:inline-flex"
91
+ startIcon={{ icon: faPen }}
92
+ variant="contained"
93
+ color="light"
94
+ size="xs"
95
+ on:click={async () => {
96
+ await changeStep(1)
97
+ setTimeout(() => pathC?.focus(), 100)
98
+ }}
99
+ >
100
+ {script.path}
101
+ </Button>
102
+
103
+ <Button
104
+ startIcon={{ icon: faPen }}
105
+ variant="contained"
106
+ color="light"
107
+ size="xs"
108
+ on:click={async () => {
109
+ await changeStep(1)
110
+ setTimeout(() => summaryC?.focus(), 100)
111
+ }}
112
+ >
113
+ <div class="max-w-[10em] !truncate">
114
+ {script.summary == '' || !script.summary ? 'No summary' : script.summary}
115
+ </div>
116
+ </Button>
117
+ </div>
118
+
119
+ <div class="flex flex-row gap-x-2">
120
+ <Button
121
+ size="sm"
122
+ variant={step == 1 ? 'border' : 'contained'}
123
+ disabled={step === 1 && pathError !== ''}
124
+ btnClasses={step == 1 && initialPath == '' ? 'invisible' : ''}
125
+ on:click={editScript}>Save (commit)</Button
126
+ >
127
+ <Button
128
+ variant="border"
129
+ size="sm"
130
+ btnClasses={step == 1 ? 'invisible' : ''}
131
+ on:click={() => changeStep(step - 1)}
132
+ >
133
+ Back
134
+ </Button>
135
+ {#if step < 3}
101
136
  <Button
102
137
  size="sm"
138
+ btnClasses={step == 3 ? 'invisible' : ''}
103
139
  disabled={step === 1 && pathError !== ''}
104
140
  on:click={() => changeStep(step + 1)}
105
141
  >
@@ -108,28 +144,6 @@ async function changeStep(step) {
108
144
  {:else}
109
145
  <Button size="sm" on:click={editScript}>Save</Button>
110
146
  {/if}
111
- {#if step > 1}
112
- <Button
113
- variant="border"
114
- size="sm"
115
- btnClasses="mr-2"
116
- on:click={() => changeStep(step - 1)}
117
- >
118
- Back
119
- </Button>
120
- {/if}
121
- {#if step == 2}
122
- <Button
123
- variant="border"
124
- size="sm"
125
- btnClasses="mr-2"
126
- on:click={async () => {
127
- editScript()
128
- }}
129
- >
130
- Save (commit)
131
- </Button>
132
- {/if}
133
147
  </div>
134
148
  </div>
135
149
  </div>
@@ -138,54 +152,79 @@ async function changeStep(step) {
138
152
  {#if step === 1}
139
153
  <CenteredPage>
140
154
  <div class="space-y-6">
155
+ <h2 class="border-b pb-1 mt-4">Path & Summary</h2>
141
156
  <Path
157
+ bind:this={pathC}
142
158
  bind:error={pathError}
143
159
  bind:path={script.path}
144
160
  {initialPath}
145
161
  on:enter={() => changeStep(2)}
146
162
  namePlaceholder="my_script"
147
163
  kind="script"
148
- >
149
- <div slot="ownerToolkit">
150
- Script permissions depend on their path. Select the group
151
- <span class="font-mono"> all </span>
152
- to share your script, and <span class="font-mono">user</span> to keep it private.
153
- <a href="https://docs.windmill.dev/docs/reference/namespaces">docs</a>
154
- </div>
155
- </Path>
156
- <h3 class="text-gray-700 border-b">Language</h3>
164
+ />
165
+ <label class="block ">
166
+ <span class="text-gray-700 text-sm">Summary <Required required={false} /></span>
167
+ <input
168
+ type="text"
169
+ bind:this={summaryC}
170
+ bind:value={script.summary}
171
+ placeholder="A very short summary of the script displayed when the script is listed"
172
+ rows="1"
173
+ />
174
+ </label>
175
+ <h2 class="border-b pb-1 mt-4">Language</h2>
157
176
  <div class="max-w-md">
158
177
  <RadioButton
159
178
  label="Language"
160
179
  options={[
161
180
  ['Typescript (Deno)', 'deno'],
162
181
  ['Python 3.10', 'python3'],
163
- ['Go', 'go']
182
+ ['Go', 'go'],
183
+ ['Bash', 'bash']
164
184
  ]}
165
185
  on:change={(e) => initContent(e.detail, script.kind, template)}
166
186
  bind:value={script.language}
167
187
  />
168
188
  </div>
169
- <h4 class="text-gray-700 border-b">
170
- Script Kind <Tooltip
171
- >In most cases, you will want the General Script. <br />
172
- Trigger are meant to be used as the first module of flows to trigger them based on watching
173
- new events externally. <br />
174
- Failure scripts are used to handle unrecoverable errors of flows and for handling errors
175
- at the workspace level. <br />
176
- Command scripts are used when the workspace is associated with a slack workspace to be triggered
177
- on command.</Tooltip
189
+ <h2 class="border-b pb-1 mt-4"> Metadata </h2>
190
+ <div>
191
+ <Button
192
+ color="light"
193
+ size="sm"
194
+ endIcon={{ icon: viewScriptKind ? faChevronUp : faChevronDown }}
195
+ on:click={() => (viewScriptKind = !viewScriptKind)}
178
196
  >
179
- </h4>
180
-
181
- {#if script.language == 'deno'}
197
+ Specialize the script as a specific module kind for flows
198
+ </Button>
199
+ </div>
200
+ {#if viewScriptKind}
182
201
  <div class="max-w-lg">
183
202
  <RadioButton
184
203
  label="Script Type"
185
204
  options={[
186
- ['General Script', Script.kind.SCRIPT],
187
- ['Trigger Script', Script.kind.TRIGGER]
188
- // ['Failure Handler', Script.kind.FAILURE],
205
+ ['Common Script', Script.kind.SCRIPT],
206
+ [
207
+ {
208
+ title: 'Trigger Script',
209
+ desc: `First module of flows to trigger them based on watching changes external periodically using an internal state`
210
+ },
211
+ Script.kind.TRIGGER
212
+ ],
213
+ [
214
+ {
215
+ title: 'Error Handler',
216
+ desc: `Handle errors for flows after all retries attempts have been exhausted`
217
+ },
218
+ Script.kind.FAILURE
219
+ ],
220
+ [
221
+ {
222
+ title: 'Approval Script',
223
+ desc: `Send notification externally to ask for approval to continue a flow`
224
+ },
225
+ Script.kind.APPROVAL
226
+ ]
227
+
189
228
  // ['Command Handler', Script.kind.COMMAND]
190
229
  ]}
191
230
  on:change={(e) => {
@@ -197,97 +236,37 @@ async function changeStep(step) {
197
236
  bind:value={script.kind}
198
237
  />
199
238
  </div>
200
- {:else}
201
- <div class="max-w-lg">
202
- <RadioButton
203
- label="Script Type"
204
- options={[['General Script', Script.kind.SCRIPT]]}
205
- on:change={(e) => {
206
- if (isInitialCode(script.content)) {
207
- template = 'script'
208
- initContent(script.language, e.detail, template)
209
- }
210
- }}
211
- bind:value={script.kind}
212
- />
213
- </div>
214
239
  {/if}
215
-
216
240
  {#if script.language == 'deno' && script.kind == Script.kind.SCRIPT}
217
- <h4 class="text-gray-700 border-b">
218
- Script Template <Tooltip
219
- >A template is a pre-filled script corresponding to a more specialized use-case</Tooltip
241
+ <div
242
+ ><Button
243
+ color="light"
244
+ size="sm"
245
+ endIcon={{ icon: viewTemplate ? faChevronUp : faChevronDown }}
246
+ on:click={() => (viewTemplate = !viewTemplate)}
220
247
  >
221
- </h4>
222
-
223
- <div class="max-w-md">
224
- <RadioButton
225
- label="Template"
226
- options={[
227
- ['Standard', 'script'],
228
- ['PostgreSQL Prepared Statement', 'pgsql']
229
- ]}
230
- on:change={(e) => initContent(script.language, script.kind, e.detail)}
231
- bind:value={template}
232
- />
248
+ Use a predefined template specific to this language and script kind
249
+ </Button>
233
250
  </div>
251
+ {#if viewTemplate}
252
+ <div class="max-w-lg">
253
+ <RadioButton
254
+ label="Template"
255
+ options={[
256
+ ['Standard', 'script'],
257
+ ['PostgreSQL Prepared Statement', 'pgsql']
258
+ ]}
259
+ on:change={(e) => initContent(script.language, script.kind, e.detail)}
260
+ bind:value={template}
261
+ />
262
+ </div>
263
+ {/if}
234
264
  {/if}
235
-
236
- <label class="block ">
237
- <span class="text-gray-700">Summary <Required required={false} /></span>
238
- <textarea
239
- bind:value={script.summary}
240
- class="
241
- mt-1
242
- block
243
- w-full
244
- rounded-md
245
- border-gray-300
246
- shadow-sm
247
- focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50
248
- "
249
- placeholder="A very short summary of the script displayed when the script is listed"
250
- rows="1"
265
+ <div class="ml-3">
266
+ <Toggle
267
+ bind:checked={script.is_template}
268
+ options={{ right: 'Save as a workspace template' }}
251
269
  />
252
- </label>
253
- <label class="block" for="inp">
254
- <span class="text-gray-700"
255
- >Description<Required required={false} detail="accept markdown formatting" />
256
- <textarea
257
- id="inp"
258
- bind:value={script.description}
259
- class="
260
- mt-1
261
- block
262
- w-full
263
- rounded-md
264
- border-gray-300
265
- shadow-sm
266
- focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50
267
- "
268
- placeholder="A description to help users understand what this script does and how to use it."
269
- rows="3"
270
- />
271
- </span>
272
- </label>
273
-
274
- <label class="block">
275
- <span class="text-gray-700 mr-2"
276
- >Save as workspace template <Tooltip
277
- >Enable your teammates to use this script as a template to write new scripts.</Tooltip
278
- >
279
- </span>
280
- <input type="checkbox" bind:checked={script.is_template} />
281
- </label>
282
-
283
- <div>
284
- <h3 class="text-gray-700 ">Description rendered</h3>
285
- <div
286
- class="prose mt-5 text-xs shadow-inner shadow-blue p-4 overflow-auto"
287
- style="max-height: 200px;"
288
- >
289
- <SvelteMarkdown source={script.description ?? ''} />
290
- </div>
291
270
  </div>
292
271
  </div>
293
272
  </CenteredPage>
@@ -297,6 +276,7 @@ async function changeStep(step) {
297
276
  path={script.path}
298
277
  bind:code={script.content}
299
278
  lang={script.language}
279
+ {initialArgs}
300
280
  />
301
281
  {:else if step === 3}
302
282
  <CenteredPage>
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  script: Script;
6
6
  initialPath?: string | undefined;
7
7
  template?: "script" | "pgsql" | undefined;
8
+ initialArgs?: Record<string, any> | undefined;
8
9
  };
9
10
  events: {
10
11
  [evt: string]: CustomEvent<any>;
@@ -4,31 +4,37 @@ import { emptySchema, scriptLangToEditorLang } from '../utils';
4
4
  import { faPlay, faRotateRight } from '@fortawesome/free-solid-svg-icons';
5
5
  import Editor from './Editor.svelte';
6
6
  import { inferArgs } from '../infer';
7
+ import { Pane, Splitpanes } from 'svelte-splitpanes';
7
8
  import SchemaForm from './SchemaForm.svelte';
8
- import LogPanel from './script_editor/LogPanel.svelte';
9
- import { HSplitPane, VSplitPane } from 'svelte-split-pane';
9
+ import LogPanel from './scriptEditor/LogPanel.svelte';
10
10
  import { faGithub } from '@fortawesome/free-brands-svg-icons';
11
- import EditorBar from './EditorBar.svelte';
12
- import Button from './common/button/Button.svelte';
11
+ import EditorBar, { EDITOR_BAR_WIDTH_THRESHOLD } from './EditorBar.svelte';
13
12
  import TestJobLoader from './TestJobLoader.svelte';
14
13
  import { onMount } from 'svelte';
14
+ import { Button, Kbd } from './common';
15
+ import SplitPanesWrapper from './splitPanes/SplitPanesWrapper.svelte';
16
+ import Tooltip from './Tooltip.svelte';
17
+ import WindmillIcon from './icons/WindmillIcon.svelte';
15
18
  // Exported
16
19
  export let schema = emptySchema();
17
20
  export let code;
18
21
  export let path;
19
22
  export let lang;
23
+ export let initialArgs = {};
20
24
  let websocketAlive = { pyright: false, black: false, deno: false, go: false };
25
+ let width = 1200;
21
26
  // Internal state
22
27
  let editor;
23
28
  let testJobLoader;
24
29
  // Test args input
25
- let args = {};
30
+ let args = initialArgs;
26
31
  let isValid = true;
27
32
  // Test
28
33
  let testIsLoading = false;
29
34
  let testJob;
30
35
  let pastPreviews = [];
31
36
  let lastSave;
37
+ let validCode = true;
32
38
  $: lastSave = localStorage.getItem(path ?? 'last_save');
33
39
  function onKeyDown(event) {
34
40
  if ((event.ctrlKey || event.metaKey) && event.key == 'Enter') {
@@ -54,7 +60,14 @@ async function inferSchema() {
54
60
  isDefault.push(k);
55
61
  }
56
62
  });
57
- await inferArgs(lang, code, schema);
63
+ try {
64
+ await inferArgs(lang, code, schema);
65
+ validCode = true;
66
+ }
67
+ catch (e) {
68
+ console.error("Couldn't infer args", e);
69
+ validCode = false;
70
+ }
58
71
  schema = schema;
59
72
  isDefault
60
73
  .filter((key) => schema.properties[key] != undefined)
@@ -79,117 +92,107 @@ onMount(() => {
79
92
 
80
93
  <svelte:window on:keydown={onKeyDown} />
81
94
 
82
- <div class="border-b shadow-sm p-1 pr-4">
83
- <div class="flex justify-between">
84
- <EditorBar {editor} {lang} {websocketAlive} />
95
+ <div class="border-b-2 shadow-sm p-1 pr-4" bind:clientWidth={width}>
96
+ <div class="flex justify-between space-x-2">
97
+ <EditorBar
98
+ {validCode}
99
+ iconOnly={width < EDITOR_BAR_WIDTH_THRESHOLD}
100
+ {editor}
101
+ {lang}
102
+ {websocketAlive}
103
+ />
85
104
 
86
- <div class="flex divide-x">
87
- <div>
88
- <Button
89
- target="_blank"
90
- href="https://github.com/windmill-labs/windmill-gh-action-deploy"
91
- color="light"
92
- size="xs"
93
- btnClasses="mr-1"
94
- startIcon={{
95
- icon: faGithub
96
- }}
97
- >
98
- Sync from Github
99
- </Button>
100
- </div>
101
- </div>
105
+ <Button
106
+ target="_blank"
107
+ href="https://github.com/windmill-labs/windmill-gh-action-deploy"
108
+ color="light"
109
+ size="sm"
110
+ btnClasses="mr-1 hidden md:block"
111
+ startIcon={{
112
+ icon: faGithub
113
+ }}
114
+ >
115
+ Sync from Github
116
+ </Button>
102
117
  </div>
103
118
  </div>
104
- <div class="flex-1 overflow-auto">
105
- <HSplitPane leftPaneSize="60%" rightPaneSize="40%" minLeftPaneSize="50px" minRightPaneSize="50px">
106
- <left slot="left">
107
- <div class="h-full">
108
- <div
109
- class="p-2 h-full"
110
- on:mouseleave={() => {
111
- inferSchema()
112
- }}
119
+ <SplitPanesWrapper>
120
+ <Pane size={60} minSize={10}>
121
+ <div
122
+ class="p-2 h-full"
123
+ on:mouseleave={() => {
124
+ inferSchema()
125
+ }}
126
+ >
127
+ <Editor
128
+ bind:code
129
+ bind:websocketAlive
130
+ bind:this={editor}
131
+ cmdEnterAction={async () => {
132
+ await inferSchema()
133
+ runTest()
134
+ }}
135
+ formatAction={async () => {
136
+ await inferSchema()
137
+ localStorage.setItem(path ?? 'last_save', code)
138
+ lastSave = code
139
+ }}
140
+ class="flex flex-1 h-full"
141
+ lang={scriptLangToEditorLang(lang)}
142
+ automaticLayout={true}
143
+ />
144
+ </div>
145
+ </Pane>
146
+ <Pane size={40} minSize={10}>
147
+ <Splitpanes horizontal>
148
+ <Pane size={33}>
149
+ <div class="w-full bg-gray-100 px-2 text-sm"
150
+ >Preview <Tooltip>
151
+ To recompute the input schema press <Kbd>Ctrl/Cmd</Kbd> + <Kbd>S</Kbd> or move the focus
152
+ outside of the text editor
153
+ </Tooltip></div
113
154
  >
114
- <Editor
115
- bind:code
116
- bind:websocketAlive
117
- bind:this={editor}
118
- cmdEnterAction={() => {
119
- runTest()
120
- }}
121
- formatAction={async () => {
122
- await inferSchema()
123
- localStorage.setItem(path ?? 'last_save', code)
124
- lastSave = code
125
- }}
126
- class="flex flex-1 h-full"
127
- lang={scriptLangToEditorLang(lang)}
128
- automaticLayout={true}
129
- />
155
+ <div class="px-2">
156
+ <div class="break-words relative font-sans">
157
+ <SchemaForm {schema} bind:args bind:isValid />
158
+ </div>
130
159
  </div>
131
- </div>
132
- </left>
133
- <right slot="right">
134
- <div class="h-full">
135
- <VSplitPane topPanelSize="30%" downPanelSize="70%">
136
- <top slot="top">
137
- <div class="h-full overflow-auto">
138
- <div class="p-4">
139
- <div class="break-all relative font-sans">
140
- <div class="items-baseline text-xs text-gray-700 italic hidden md:block">
141
- <p>
142
- Move the focus outside of the text editor to recompute the input schema from
143
- main signature or press Ctrl/Cmd+S
144
- </p>
145
- </div>
146
- <SchemaForm {schema} bind:args bind:isValid />
147
- </div>
148
- </div>
149
- </div>
150
- </top>
151
- <down slot="down">
152
- <div class="h-full overflow-hidden">
153
- <div class="px-2 py-1">
154
- {#if testIsLoading}
155
- <Button
156
- on:click={testJobLoader?.cancelJob}
157
- btnClasses="w-full"
158
- color="red"
159
- size="xs"
160
- startIcon={{
161
- icon: faRotateRight,
162
- classes: 'animate-spin'
163
- }}
164
- >
165
- 'Cancel'
166
- </Button>
167
- {:else}
168
- <Button
169
- on:click={runTest}
170
- btnClasses="w-full"
171
- size="xs"
172
- startIcon={{
173
- icon: faPlay,
174
- classes: 'animate-none'
175
- }}
176
- >
177
- {testIsLoading ? 'Running' : 'Test (Ctrl+Enter)'}
178
- </Button>
179
- {/if}
180
- </div>
181
- <LogPanel
182
- {path}
183
- {lang}
184
- previewJob={testJob}
185
- {pastPreviews}
186
- previewIsLoading={testIsLoading}
187
- bind:lastSave
160
+ </Pane>
161
+ <Pane size={67}>
162
+ <div class="px-2 py-1 w-full">
163
+ {#if testIsLoading}
164
+ <Button on:click={testJobLoader?.cancelJob} btnClasses="w-full" color="red" size="xs">
165
+ <WindmillIcon
166
+ white={true}
167
+ class="animate-[spin_5s_linear_infinite] mr-2 text-white"
168
+ height="20px"
169
+ width="20px"
188
170
  />
189
- </div>
190
- </down>
191
- </VSplitPane>
192
- </div>
193
- </right>
194
- </HSplitPane>
195
- </div>
171
+ Cancel
172
+ </Button>
173
+ {:else}
174
+ <Button
175
+ on:click={runTest}
176
+ btnClasses="w-full"
177
+ size="xs"
178
+ startIcon={{
179
+ icon: faPlay,
180
+ classes: 'animate-none'
181
+ }}
182
+ >
183
+ {testIsLoading ? 'Running' : 'Test (Ctrl+Enter)'}
184
+ </Button>
185
+ {/if}
186
+ </div>
187
+ <LogPanel
188
+ {path}
189
+ {lang}
190
+ previewJob={testJob}
191
+ {pastPreviews}
192
+ previewIsLoading={testIsLoading}
193
+ bind:lastSave
194
+ />
195
+ </Pane>
196
+ </Splitpanes>
197
+ </Pane>
198
+ </SplitPanesWrapper>
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  code: string;
8
8
  path: string | undefined;
9
9
  lang: Preview.language;
10
+ initialArgs?: Record<string, any> | undefined;
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;