windmill-components 1.309.7 → 1.339.2

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 (382) hide show
  1. package/package/assets/app.css +22 -1
  2. package/package/autosize.js +1 -1
  3. package/package/common.d.ts +8 -0
  4. package/package/common.js +5 -1
  5. package/package/components/AllFlowLogs.svelte +30 -0
  6. package/package/components/AllFlowLogs.svelte.d.ts +18 -0
  7. package/package/components/ApiConnectForm.svelte +10 -4
  8. package/package/components/AppConnectDrawer.svelte +74 -0
  9. package/package/components/AppConnectDrawer.svelte.d.ts +20 -0
  10. package/package/components/AppConnectInner.svelte +513 -0
  11. package/package/components/AppConnectInner.svelte.d.ts +28 -0
  12. package/package/components/ArgInfo.svelte +19 -3
  13. package/package/components/ArgInput.svelte +73 -16
  14. package/package/components/ArgInput.svelte.d.ts +4 -0
  15. package/package/components/ConcurrentJobsChart.svelte +212 -0
  16. package/package/components/ConcurrentJobsChart.svelte.d.ts +23 -0
  17. package/package/components/CustomOauth.svelte +2 -2
  18. package/package/components/DateInput.svelte +47 -0
  19. package/package/components/DateInput.svelte.d.ts +24 -0
  20. package/package/components/DateTimeInput.svelte +25 -3
  21. package/package/components/DefaultScripts.svelte +5 -8
  22. package/package/components/DefaultTags.svelte +3 -2
  23. package/package/components/DefaultTags.svelte.d.ts +3 -1
  24. package/package/components/DefaultTagsInner.svelte +1 -10
  25. package/package/components/DefaultTagsInner.svelte.d.ts +3 -1
  26. package/package/components/Dev.svelte +70 -9
  27. package/package/components/DiffEditor.svelte +3 -0
  28. package/package/components/DisplayResult.svelte +186 -123
  29. package/package/components/DisplayResult.svelte.d.ts +1 -0
  30. package/package/components/DropdownV2.svelte.d.ts +2 -2
  31. package/package/components/EditableSchemaForm.svelte +3 -0
  32. package/package/components/Editor.svelte +110 -93
  33. package/package/components/Editor.svelte.d.ts +4 -2
  34. package/package/components/EditorBar.svelte +99 -8
  35. package/package/components/EditorBar.svelte.d.ts +0 -1
  36. package/package/components/ErrorOrRecoveryHandler.svelte +0 -1
  37. package/package/components/FlowGraphViewer.svelte +1 -0
  38. package/package/components/FlowGraphViewerStep.svelte +19 -1
  39. package/package/components/FlowJobResult.svelte +13 -0
  40. package/package/components/FlowJobResult.svelte.d.ts +3 -0
  41. package/package/components/FlowMetadata.svelte +40 -35
  42. package/package/components/FlowMetadata.svelte.d.ts +3 -1
  43. package/package/components/FlowPreviewContent.svelte +13 -6
  44. package/package/components/FlowStatusViewerInner.svelte +46 -2
  45. package/package/components/HighlightCode.svelte +3 -0
  46. package/package/components/InputTransformForm.svelte +3 -0
  47. package/package/components/InstanceSettings.svelte +163 -16
  48. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  49. package/package/components/JobLogs.svelte +12 -0
  50. package/package/components/JobLogs.svelte.d.ts +16 -0
  51. package/package/components/JobStatus.svelte +1 -1
  52. package/package/components/Label.svelte +1 -1
  53. package/package/components/Label.svelte.d.ts +1 -0
  54. package/package/components/LightweightArgInput.svelte +294 -268
  55. package/package/components/LightweightArgInput.svelte.d.ts +3 -0
  56. package/package/components/LightweightResourcePicker.svelte +74 -26
  57. package/package/components/LightweightSchemaForm.svelte +25 -24
  58. package/package/components/LogViewer.svelte +52 -15
  59. package/package/components/LogViewer.svelte.d.ts +1 -0
  60. package/package/components/Login.svelte +288 -0
  61. package/package/components/Login.svelte.d.ts +19 -0
  62. package/package/components/ModulePreviewForm.svelte +3 -0
  63. package/package/components/NoMainFuncBadge.svelte +8 -0
  64. package/package/components/NoMainFuncBadge.svelte.d.ts +14 -0
  65. package/package/components/OauthExtraParams.svelte +1 -1
  66. package/package/components/OauthScopes.svelte +1 -1
  67. package/package/components/ObjectStoreConfigSettings.svelte +12 -1
  68. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +1 -0
  69. package/package/components/ParqetTableRenderer.svelte +12 -16
  70. package/package/components/Password.svelte +1 -0
  71. package/package/components/Password.svelte.d.ts +2 -0
  72. package/package/components/PasswordArgInput.svelte +49 -0
  73. package/package/components/PasswordArgInput.svelte.d.ts +17 -0
  74. package/package/components/PropertyRow.svelte +10 -2
  75. package/package/components/QueueMetricsDrawer.svelte +225 -0
  76. package/package/components/QueueMetricsDrawer.svelte.d.ts +18 -0
  77. package/package/components/ResourceEditor.svelte +1 -0
  78. package/package/components/ResourcePicker.svelte +3 -7
  79. package/package/components/ResultJobLoader.svelte +2 -2
  80. package/package/components/ResultJobLoader.svelte.d.ts +9 -9
  81. package/package/components/S3FilePicker.svelte +1 -1
  82. package/package/components/SavedInputs.svelte +49 -13
  83. package/package/components/ScheduleEditorInner.svelte +255 -228
  84. package/package/components/SchemaEditor.svelte +5 -3
  85. package/package/components/SchemaEditor.svelte.d.ts +2 -0
  86. package/package/components/SchemaForm.svelte +5 -0
  87. package/package/components/SchemaForm.svelte.d.ts +1 -0
  88. package/package/components/SchemaModal.svelte +101 -8
  89. package/package/components/SchemaModal.svelte.d.ts +2 -0
  90. package/package/components/ScriptBuilder.svelte +10 -6
  91. package/package/components/ScriptEditor.svelte +1 -2
  92. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  93. package/package/components/SimpleEditor.svelte +4 -1
  94. package/package/components/StringTypeNarrowing.svelte +43 -24
  95. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -0
  96. package/package/components/TemplateEditor.svelte +1 -0
  97. package/package/components/TestJobLoader.svelte +14 -5
  98. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  99. package/package/components/Toggle.svelte +1 -1
  100. package/package/components/Tooltip.svelte +8 -2
  101. package/package/components/Tooltip.svelte.d.ts +1 -0
  102. package/package/components/WorkspaceGroup.svelte +74 -9
  103. package/package/components/WorkspaceGroup.svelte.d.ts +1 -0
  104. package/package/components/app_connect.d.ts +7 -0
  105. package/package/components/app_connect.js +78 -0
  106. package/package/components/apps/components/buttons/AppButton.svelte +0 -1
  107. package/package/components/apps/components/display/AppAlert.svelte +1 -1
  108. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  109. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
  110. package/package/components/apps/components/display/AppDownload.svelte +1 -1
  111. package/package/components/apps/components/display/AppIcon.svelte +1 -1
  112. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +2 -2
  113. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +3 -3
  114. package/package/components/apps/components/display/AppMap.svelte +3 -2
  115. package/package/components/apps/components/display/AppMenu.svelte +1 -1
  116. package/package/components/apps/components/display/AppPdf.svelte +3 -11
  117. package/package/components/apps/components/display/AppText.svelte +7 -2
  118. package/package/components/apps/components/display/charts/AppAgCharts.svelte +6 -3
  119. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +32 -30
  120. package/package/components/apps/components/display/dbtable/InsertRow.svelte +3 -6
  121. package/package/components/apps/components/display/dbtable/queries/delete.js +1 -1
  122. package/package/components/apps/components/display/dbtable/queries/insert.js +1 -12
  123. package/package/components/apps/components/display/dbtable/queries/select.js +1 -1
  124. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  125. package/package/components/apps/components/display/dbtable/utils.d.ts +0 -1
  126. package/package/components/apps/components/display/dbtable/utils.js +0 -83
  127. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +75 -44
  128. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +5 -1
  129. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +172 -0
  130. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +27 -0
  131. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +38 -0
  132. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +28 -0
  133. package/package/components/apps/components/display/table/AppAggridTable.svelte +189 -56
  134. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
  135. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +11 -2
  136. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  137. package/package/components/apps/components/display/table/AppCell.svelte +1 -3
  138. package/package/components/apps/components/display/table/AppTable.svelte +320 -281
  139. package/package/components/apps/components/display/table/AppTableFooter.svelte +42 -23
  140. package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -2
  141. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +119 -0
  142. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +21 -0
  143. package/package/components/apps/components/display/table/theme/windmill-theme.css +656 -0
  144. package/package/components/apps/components/display/table/utils.js +22 -0
  145. package/package/components/apps/components/helpers/DebouncedInput.svelte +3 -2
  146. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +35 -0
  147. package/package/components/apps/components/helpers/RefreshButton.svelte +30 -12
  148. package/package/components/apps/components/helpers/RefreshButton.svelte.d.ts +1 -3
  149. package/package/components/apps/components/helpers/RefreshIndicator.svelte +19 -0
  150. package/package/components/apps/components/helpers/RefreshIndicator.svelte.d.ts +16 -0
  151. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  152. package/package/components/apps/components/helpers/RunnableComponent.svelte +86 -35
  153. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +8 -5
  154. package/package/components/apps/components/helpers/RunnableWrapper.svelte +7 -1
  155. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -0
  156. package/package/components/apps/components/inputs/AppDateInput.svelte +5 -1
  157. package/package/components/apps/components/inputs/AppFileInput.svelte +11 -2
  158. package/package/components/apps/components/inputs/AppMultiSelect.svelte +56 -50
  159. package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -0
  160. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +178 -0
  161. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte.d.ts +24 -0
  162. package/package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
  163. package/package/components/apps/components/inputs/AppQuillEditor.svelte +26 -0
  164. package/package/components/apps/components/inputs/AppRangeInput.svelte +38 -37
  165. package/package/components/apps/components/inputs/AppSelect.svelte +21 -10
  166. package/package/components/apps/components/inputs/AppSliderInputs.svelte +26 -31
  167. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  168. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
  169. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +7 -2
  170. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  171. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  172. package/package/components/apps/components/layout/AppDrawer.svelte +16 -3
  173. package/package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -0
  174. package/package/components/apps/components/layout/AppModal.svelte +85 -79
  175. package/package/components/apps/components/layout/AppModal.svelte.d.ts +2 -0
  176. package/package/components/apps/components/layout/AppStepper.svelte +2 -1
  177. package/package/components/apps/components/layout/AppTabs.svelte +1 -1
  178. package/package/components/apps/editor/AppEditor.svelte +3 -2
  179. package/package/components/apps/editor/AppEditorHeader.svelte +62 -31
  180. package/package/components/apps/editor/AppInputs.svelte +1 -1
  181. package/package/components/apps/editor/AppPreview.svelte +18 -7
  182. package/package/components/apps/editor/ComponentHeader.svelte +37 -1
  183. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  184. package/package/components/apps/editor/GridEditor.svelte +15 -6
  185. package/package/components/apps/editor/GridEditorMenu.svelte +120 -49
  186. package/package/components/apps/editor/GridViewer.svelte +14 -5
  187. package/package/components/apps/editor/GridViewer.svelte.d.ts +5 -1
  188. package/package/components/apps/editor/RecomputeAllComponents.svelte +17 -3
  189. package/package/components/apps/editor/RunnableJobPanel.svelte +9 -5
  190. package/package/components/apps/editor/SettingsPanel.svelte +6 -2
  191. package/package/components/apps/editor/SubGridEditor.svelte +44 -27
  192. package/package/components/apps/editor/appUtils.d.ts +6 -1
  193. package/package/components/apps/editor/appUtils.js +85 -7
  194. package/package/components/apps/editor/component/Component.svelte +78 -2
  195. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -0
  196. package/package/components/apps/editor/component/components.d.ts +274 -21
  197. package/package/components/apps/editor/component/components.js +176 -12
  198. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  199. package/package/components/apps/editor/component/default-codes.js +241 -9
  200. package/package/components/apps/editor/component/sets.d.ts +3 -0
  201. package/package/components/apps/editor/component/sets.js +12 -2
  202. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +15 -2
  203. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +4 -2
  204. package/package/components/apps/editor/componentsPanel/cssUtils.js +1 -1
  205. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +5 -0
  206. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -5
  207. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -1
  208. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +46 -6
  209. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +1 -1
  210. package/package/components/apps/editor/inlineScriptsPanel/utils.js +3 -1
  211. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  212. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +1 -1
  213. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +8 -5
  214. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +54 -4
  215. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +61 -0
  216. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +16 -0
  217. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +12 -10
  218. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte +29 -32
  219. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte.d.ts +0 -5
  220. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +27 -25
  221. package/package/components/apps/editor/settingsPanel/GridTab.svelte +1 -1
  222. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +2 -1
  223. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte.d.ts +1 -0
  224. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +24 -3
  225. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +27 -1
  226. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  227. package/package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
  228. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +4 -3
  229. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +3 -2
  230. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +1 -0
  231. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -4
  232. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +6 -3
  233. package/package/components/apps/inputType.d.ts +4 -0
  234. package/package/components/apps/rx.d.ts +1 -1
  235. package/package/components/apps/rx.js +7 -0
  236. package/package/components/apps/svelte-grid/Grid.svelte +13 -4
  237. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +2 -1
  238. package/package/components/apps/svelte-grid/types.d.ts +1 -0
  239. package/package/components/apps/svelte-grid/utils/helper.js +1 -0
  240. package/package/components/apps/svelte-grid/utils/overlap.d.ts +3 -0
  241. package/package/components/apps/svelte-grid/utils/overlap.js +21 -0
  242. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +2 -2
  243. package/package/components/apps/svelte-select/lib/tailwind.css +1 -1
  244. package/package/components/apps/types.d.ts +1 -0
  245. package/package/components/apps/utils.js +13 -3
  246. package/package/components/auditLogs/AuditLogsTable.svelte +5 -2
  247. package/package/components/build_workers.js +1 -0
  248. package/package/components/common/alert/Alert.svelte +17 -17
  249. package/package/components/common/badge/Badge.svelte +6 -3
  250. package/package/components/common/badge/model.d.ts +1 -1
  251. package/package/components/common/button/Button.svelte +22 -14
  252. package/package/components/common/calendarPicker/CalendarPicker.svelte +2 -0
  253. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -0
  254. package/package/components/common/drawer/ConditionalPortal.svelte +9 -0
  255. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +18 -0
  256. package/package/components/common/drawer/Disposable.svelte +66 -0
  257. package/package/components/common/drawer/Disposable.svelte.d.ts +36 -0
  258. package/package/components/common/drawer/Drawer.svelte +29 -55
  259. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -1
  260. package/package/components/common/fileInput/FileInput.svelte +3 -3
  261. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  262. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  263. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  264. package/package/components/common/table/RowIcon.svelte +4 -4
  265. package/package/components/common/table/ScriptRow.svelte +12 -1
  266. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  267. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +45 -0
  268. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +24 -0
  269. package/package/components/copilot/CronGen.svelte +2 -2
  270. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  271. package/package/components/copilot/RegexGen.svelte +17 -39
  272. package/package/components/copilot/ScriptGen.svelte +14 -5
  273. package/package/components/copilot/StepInputGen.svelte +2 -1
  274. package/package/components/copilot/StepInputsGen.svelte +2 -1
  275. package/package/components/copilot/completion.js +60 -9
  276. package/package/components/copilot/lib.js +5 -3
  277. package/package/components/copilot/prompts/edit.yaml +24 -0
  278. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  279. package/package/components/copilot/prompts/editPrompt.js +3 -0
  280. package/package/components/copilot/prompts/fix.yaml +25 -0
  281. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  282. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  283. package/package/components/copilot/prompts/gen.yaml +20 -0
  284. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  285. package/package/components/copilot/prompts/genPrompt.js +3 -0
  286. package/package/components/copilot/utils.d.ts +2 -1
  287. package/package/components/copilot/utils.js +38 -0
  288. package/package/components/details/createAppFromScript.d.ts +26 -0
  289. package/package/components/details/createAppFromScript.js +50 -24
  290. package/package/components/flows/CreateActionsApp.svelte +1 -0
  291. package/package/components/flows/CreateActionsFlow.svelte +1 -0
  292. package/package/components/flows/content/FlowInputs.svelte +2 -2
  293. package/package/components/flows/content/FlowModuleComponent.svelte +15 -6
  294. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  295. package/package/components/flows/flowExplorer.js +4 -1
  296. package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
  297. package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
  298. package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -0
  299. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  300. package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
  301. package/package/components/flows/map/MapItem.svelte +2 -0
  302. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  303. package/package/components/graph/FlowGraph.svelte +1 -0
  304. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +41 -16
  305. package/package/components/home/ItemsList.svelte +44 -9
  306. package/package/components/home/TreeView.svelte +2 -0
  307. package/package/components/icons/AzureIcon.svelte +25 -1
  308. package/package/components/icons/PHPIcon.svelte +117 -0
  309. package/package/components/icons/PHPIcon.svelte.d.ts +17 -0
  310. package/package/components/instanceSettings.d.ts +1 -1
  311. package/package/components/instanceSettings.js +18 -2
  312. package/package/components/jobs/JobPreview.svelte +5 -0
  313. package/package/components/multiselect/MultiSelect.svelte +782 -0
  314. package/package/components/multiselect/MultiSelect.svelte.d.ts +97 -0
  315. package/package/components/multiselect/types.d.ts +56 -0
  316. package/package/components/multiselect/types.js +1 -0
  317. package/package/components/multiselect/utils.d.ts +7 -0
  318. package/package/components/multiselect/utils.js +54 -0
  319. package/package/components/propertyPicker/ObjectViewer.svelte +14 -1
  320. package/package/components/runs/JobLoader.svelte +135 -17
  321. package/package/components/runs/JobLoader.svelte.d.ts +7 -2
  322. package/package/components/runs/JobPreview.svelte +39 -3
  323. package/package/components/runs/JobPreview.svelte.d.ts +2 -0
  324. package/package/components/runs/RunRow.svelte +78 -31
  325. package/package/components/runs/RunRow.svelte.d.ts +3 -0
  326. package/package/components/runs/RunsFilter.svelte +125 -9
  327. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  328. package/package/components/runs/RunsTable.svelte +53 -5
  329. package/package/components/runs/RunsTable.svelte.d.ts +6 -0
  330. package/package/components/scriptEditor/LogPanel.svelte +46 -33
  331. package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -0
  332. package/package/components/scripts/CreateActionsScript.svelte +1 -1
  333. package/package/components/settings/WorkspaceUserSettings.svelte +246 -226
  334. package/package/components/sidebar/MenuButton.svelte +1 -1
  335. package/package/components/sidebar/MenuLink.svelte +1 -1
  336. package/package/components/sidebar/changelogs.js +40 -0
  337. package/package/components/table/AutoDataTable.svelte +77 -102
  338. package/package/components/table/DataTable.svelte +13 -5
  339. package/package/components/table/DataTable.svelte.d.ts +1 -0
  340. package/package/components/vscode.js +1 -1
  341. package/package/components/wizards/AgGridWizard.svelte +27 -2
  342. package/package/components/wizards/AgGridWizard.svelte.d.ts +1 -0
  343. package/package/consts.js +5 -1
  344. package/package/defaults.d.ts +2 -2
  345. package/package/defaults.js +2 -2
  346. package/package/deno_fetch.d.ts.txt +30 -0
  347. package/package/editorUtils.js +2 -0
  348. package/package/gen/core/OpenAPI.js +5 -6
  349. package/package/gen/core/request.js +4 -1
  350. package/package/gen/index.d.ts +0 -1
  351. package/package/gen/index.js +0 -1
  352. package/package/gen/schemas.gen.d.ts +97 -428
  353. package/package/gen/schemas.gen.js +97 -433
  354. package/package/gen/services.gen.d.ts +3087 -1840
  355. package/package/gen/services.gen.js +3442 -2358
  356. package/package/gen/types.gen.d.ts +5048 -1505
  357. package/package/infer.d.ts +1 -1
  358. package/package/infer.js +6 -2
  359. package/package/inferArgSig.js +5 -2
  360. package/package/init_scripts/python_init_code.d.ts +1 -1
  361. package/package/init_scripts/python_init_code.js +1 -1
  362. package/package/process.d.ts.txt +1770 -0
  363. package/package/script_helpers.d.ts +3 -2
  364. package/package/script_helpers.js +28 -3
  365. package/package/scripts.d.ts +1 -1
  366. package/package/scripts.js +4 -0
  367. package/package/utils.d.ts +3 -0
  368. package/package/utils.js +46 -3
  369. package/package/windmill_fetch.d.ts.txt +16966 -0
  370. package/package/zIndexes.d.ts +12 -0
  371. package/package/zIndexes.js +12 -0
  372. package/package.json +5 -5
  373. package/package/components/AppConnect.svelte +0 -566
  374. package/package/components/AppConnect.svelte.d.ts +0 -23
  375. package/package/components/ContextMenu.svelte +0 -89
  376. package/package/components/ContextMenu.svelte.d.ts +0 -28
  377. package/package/components/apps/components/display/index.d.ts +0 -17
  378. package/package/components/apps/components/display/index.js +0 -17
  379. package/package/components/apps/components/helpers/index.d.ts +0 -10
  380. package/package/components/apps/components/helpers/index.js +0 -10
  381. package/package/components/apps/components/index.d.ts +0 -5
  382. package/package/components/apps/components/index.js +0 -5
@@ -1,5 +1,6 @@
1
- <script>import JobStatus from './JobStatus.svelte';
2
- import { displayDate } from '../utils';
1
+ <script>import {} from '../gen';
2
+ import JobStatus from './JobStatus.svelte';
3
+ import { displayDate, truncateRev } from '../utils';
3
4
  import ScheduleEditor from './ScheduleEditor.svelte';
4
5
  import TimeAgo from './TimeAgo.svelte';
5
6
  import { workspaceStore } from '../stores';
@@ -8,48 +9,46 @@ import { Clock, MemoryStick, Calendar, Bot, User, Code2 } from 'lucide-svelte';
8
9
  import BarsStaggered from './icons/BarsStaggered.svelte';
9
10
  export let job;
10
11
  const SMALL_ICON_SIZE = 14;
11
- let scheduleEditor;
12
+ export let scheduleEditor;
12
13
  </script>
13
14
 
14
- <ScheduleEditor bind:this={scheduleEditor} />
15
-
16
15
  <div
17
- class="rounded-md p-3 bg-surface-secondary shadow-sm sm:text-sm md:text-base"
16
+ class="rounded-md p-3 bg-surface-secondary shadow-sm sm:text-sm md:text-base overflow-x-auto"
18
17
  style="min-height: 150px;"
19
18
  >
20
19
  <JobStatus {job} />
21
20
  <div class="flex flex-row gap-2 items-center">
22
- <Clock size={SMALL_ICON_SIZE} class="text-secondary" />
23
- <span class="text-2xs text-secondary">
21
+ <Clock size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
22
+ <span class="text-2xs text-secondary whitespace-nowrap">
24
23
  {#if job['success'] != undefined}
25
24
  Received job: {displayDate(job.created_at ?? '')}
26
25
  {:else}
27
26
  Received job <TimeAgo date={job.created_at ?? ''} />
28
27
  {/if}
29
- <Tooltip>{job?.created_at}</Tooltip>
28
+ <Tooltip small>{job?.created_at}</Tooltip>
30
29
  </span>
31
30
  </div>
32
31
  {#if job && 'started_at' in job && job.started_at}
33
- <div class="flex flex-row gap-2 items-center">
34
- <Clock size={SMALL_ICON_SIZE} class="text-secondary" />
35
- <span>
32
+ <div class="flex flex-row gap-2 items-center text-sm">
33
+ <Clock size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
34
+ <span class="whitespace-nowrap">
36
35
  Started <TimeAgo withDate agoOnlyIfRecent date={job.started_at ?? ''} />
37
- <Tooltip>{job?.started_at}</Tooltip>
36
+ <Tooltip small>{job?.started_at}</Tooltip>
38
37
  </span>
39
38
  </div>
40
39
  {/if}
41
40
  {#if job && job['mem_peak']}
42
- <div class="flex flex-row gap-2 items-center">
43
- <MemoryStick size={SMALL_ICON_SIZE} class="text-secondary" />
41
+ <div class="flex flex-row gap-2 items-center text-sm">
42
+ <MemoryStick size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
44
43
  <span> Mem peak: {(job['mem_peak'] / 1024).toPrecision(5)}MB</span>
45
44
  </div>
46
45
  {/if}
47
46
  <div>
48
47
  {#if job && job.parent_job}
49
48
  {#if job.is_flow_step}
50
- <div class="flex flex-row gap-2 items-center">
51
- <BarsStaggered size={SMALL_ICON_SIZE} class="text-secondary" />
52
- <span>
49
+ <div class="flex flex-row gap-2 items-center text-sm">
50
+ <BarsStaggered size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
51
+ <span class="whitespace-nowrap">
53
52
  Step of flow
54
53
  <a href={`/run/${job.parent_job}?workspace=${$workspaceStore}`}>
55
54
  {job.parent_job}
@@ -57,26 +56,27 @@ let scheduleEditor;
57
56
  </span>
58
57
  </div>
59
58
  {:else}
60
- <div class="flex flex-row gap-2 items-center">
61
- <Bot size={SMALL_ICON_SIZE} class="text-secondary" />
62
- <span>
59
+ <div class="flex flex-row gap-2 items-center text-sm">
60
+ <Bot size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
61
+ <span class="whitespace-nowrap">
63
62
  Triggered by parent
64
63
  <a href={`/run/${job.parent_job}?workspace=${$workspaceStore}`}> {job.parent_job}</a>
65
64
  </span>
66
65
  </div>
67
66
  {/if}
68
67
  {:else if job && job.schedule_path}
69
- <div class="flex flex-row gap-2 items-center">
70
- <Calendar size={SMALL_ICON_SIZE} class="text-secondary" />
71
- <span>
72
- Triggered by the schedule:
73
- <button
74
- class="break-words text-sm text-blue-600 font-normal"
68
+ <div class="flex flex-row gap-2 w-full items-center text-sm">
69
+ <Calendar size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
70
+ <span class="whitespace-nowrap">
71
+ Schedule:
72
+ <a
73
+ href="#"
74
+ class="break-words text-blue-600 font-normal"
75
75
  on:click={() =>
76
76
  scheduleEditor?.openEdit(job.schedule_path ?? '', job.job_kind == 'flow')}
77
77
  >
78
- {job.schedule_path}
79
- </button>
78
+ {truncateRev(job.schedule_path, 40)}
79
+ </a>
80
80
  </span>
81
81
  </div>
82
82
  {/if}
@@ -87,28 +87,33 @@ let scheduleEditor;
87
87
  {@const viewHref = `${stem}/get/${isScript ? job?.script_hash : job?.script_path}`}
88
88
  <div class="flex flex-row gap-2 items-center">
89
89
  {#if isScript}
90
- <Code2 size={SMALL_ICON_SIZE} class="text-secondary" />
90
+ <Code2 size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
91
91
  {:else}
92
92
  <BarsStaggered size={SMALL_ICON_SIZE} class="text-secondary" />
93
93
  {/if}
94
- <span>
94
+ <span class="truncate text-sm">
95
95
  <a href={viewHref}>{isScript ? job?.script_hash : job?.script_path}</a>
96
96
  </span>
97
97
  </div>
98
98
  {/if}
99
99
 
100
- <div class="flex flex-row gap-2 items-center">
101
- <User size={SMALL_ICON_SIZE} class="text-secondary" />
100
+ <div class="flex items-center gap-2 text-sm">
101
+ <User size={SMALL_ICON_SIZE} class="text-secondary min-w-3.5" />
102
102
 
103
103
  <span>
104
- By {job.created_by}
104
+ By {truncateRev(
105
+ job.created_by ?? 'unknown',
106
+ 40
107
+ )}{#if (job?.created_by?.length ?? 0) > 40}<Tooltip small
108
+ ><div class="break-all">{job.created_by}</div></Tooltip
109
+ >{/if}
105
110
  {#if job.permissioned_as !== `u/${job.created_by}` && job.permissioned_as != job.created_by}
106
111
  but permissioned as {job.permissioned_as}
107
112
  {/if}
108
113
  </span>
109
114
  </div>
110
115
  </div>
111
- <div class="text-secondary text-2xs pt-2">
116
+ <div class="text-secondary text-2xs pt-2 whitespace-nowrap">
112
117
  run id:
113
118
  <a href={`/run/${job.id}?workspace=${job.workspace_id}`}> {job.id} </a>
114
119
  </div>
@@ -1,8 +1,10 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { Job } from '../gen';
2
+ import { type Job } from '../gen';
3
+ import ScheduleEditor from './ScheduleEditor.svelte';
3
4
  declare const __propDef: {
4
5
  props: {
5
6
  job: Job;
7
+ scheduleEditor: ScheduleEditor;
6
8
  };
7
9
  events: {
8
10
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@ import FlowStatusViewer from '../components/FlowStatusViewer.svelte';
8
8
  import FlowProgressBar from './flows/FlowProgressBar.svelte';
9
9
  import CapturePayload from './flows/content/CapturePayload.svelte';
10
10
  import { AlertTriangle, ArrowRight, CornerDownLeft, Play, RefreshCw, X } from 'lucide-svelte';
11
- import { emptyString } from '../utils';
11
+ import { emptyString, sendUserToast } from '../utils';
12
12
  import DrawerContent from './common/drawer/DrawerContent.svelte';
13
13
  import SavedInputs from './SavedInputs.svelte';
14
14
  import { dfs } from './flows/dfs';
@@ -46,11 +46,18 @@ function extractFlow(previewMode) {
46
46
  }
47
47
  let lastPreviewFlow = undefined;
48
48
  export async function runPreview(args, restartedFrom) {
49
- lastPreviewFlow = JSON.stringify($flowStore);
50
- jobProgressReset();
51
- const newFlow = extractFlow(previewMode);
52
- jobId = await runFlowPreview(args, newFlow, $pathStore, restartedFrom);
53
- isRunning = true;
49
+ try {
50
+ lastPreviewFlow = JSON.stringify($flowStore);
51
+ jobProgressReset();
52
+ const newFlow = extractFlow(previewMode);
53
+ jobId = await runFlowPreview(args, newFlow, $pathStore, restartedFrom);
54
+ isRunning = true;
55
+ }
56
+ catch (e) {
57
+ sendUserToast('Could not run preview', true, undefined, e.toString());
58
+ isRunning = false;
59
+ jobId = undefined;
60
+ }
54
61
  }
55
62
  function onKeyDown(event) {
56
63
  if (open) {
@@ -35,6 +35,7 @@ export let reducedPolling = false;
35
35
  let jobResults = [];
36
36
  let jobFailures = [];
37
37
  let forloop_selected = '';
38
+ let retry_selected = '';
38
39
  let timeout;
39
40
  let localModuleStates = writable({});
40
41
  let localDurationStatuses = writable({});
@@ -157,10 +158,11 @@ async function loadJobInProgress() {
157
158
  console.error(e);
158
159
  }
159
160
  }
160
- if (job?.type !== 'CompletedJob' && errorCount < 4) {
161
+ if (job?.type !== 'CompletedJob' && errorCount < 4 && !destroyed) {
161
162
  timeout = setTimeout(() => loadJobInProgress(), reducedPolling ? 5000 : 1000);
162
163
  }
163
164
  }
165
+ let destroyed = false;
164
166
  async function updateJobId() {
165
167
  if (jobId !== job?.id) {
166
168
  $localModuleStates = {};
@@ -192,6 +194,7 @@ async function updateJobId() {
192
194
  $: jobId && updateJobId();
193
195
  $: isListJob = flowJobIds != undefined && Array.isArray(flowJobIds?.flowJobs);
194
196
  onDestroy(() => {
197
+ destroyed = true;
195
198
  timeout && clearTimeout(timeout);
196
199
  });
197
200
  $: selected = isListJob ? 'sequence' : 'graph';
@@ -241,7 +244,8 @@ function onJobsLoaded(mod, job) {
241
244
  duration_ms: job['duration_ms'],
242
245
  started_at: started_at,
243
246
  iteration: mod.iterator?.itered?.length,
244
- iteration_total: mod.iterator?.itered?.length
247
+ iteration_total: mod.iterator?.itered?.length,
248
+ retries: mod?.failed_retries?.length
245
249
  // retries: $flowStateStore?.raw_flow
246
250
  });
247
251
  setDurationStatusByJob(mod.id, job.id, {
@@ -413,6 +417,7 @@ function loadPreviousIters(lenToAdd) {
413
417
  loading={job['running'] == true}
414
418
  result={job.result}
415
419
  logs={job.logs}
420
+ durationStates={localDurationStatuses}
416
421
  />
417
422
  </div>
418
423
  {:else if job.flow_status?.modules?.[job?.flow_status?.step]?.type === 'WaitingForEvents'}
@@ -574,6 +579,43 @@ function loadPreviousIters(lenToAdd) {
574
579
  <div class="line w-8 h-10" />
575
580
  {/if}
576
581
  <li class="w-full border p-6 space-y-2 bg-blue-50/50 dark:bg-frost-900/50">
582
+ {#if render && Array.isArray(mod.failed_retries)}
583
+ {#each mod.failed_retries as failedRetry, j}
584
+ <Button
585
+ variant={retry_selected === failedRetry ? 'contained' : 'border'}
586
+ color="red"
587
+ btnClasses="w-full flex justify-start"
588
+ on:click={() => {
589
+ if (retry_selected == failedRetry) {
590
+ retry_selected = ''
591
+ } else {
592
+ retry_selected = failedRetry
593
+ }
594
+ }}
595
+ endIcon={{
596
+ icon: ChevronDown,
597
+ classes: retry_selected == failedRetry ? '!rotate-180' : ''
598
+ }}
599
+ >
600
+ <span class="truncate font-mono">
601
+ # Attempt {j + 1}: {failedRetry}
602
+ </span>
603
+ </Button>
604
+
605
+ <!-- <LogId id={loopJobId} /> -->
606
+ <div class="border p-6" class:hidden={retry_selected != failedRetry}>
607
+ <svelte:self
608
+ {childFlow}
609
+ globalModuleStates={[localModuleStates, ...globalModuleStates]}
610
+ globalDurationStatuses={[localDurationStatuses, ...globalDurationStatuses]}
611
+ render={failedRetry == retry_selected}
612
+ reducedPolling={false}
613
+ {workspaceId}
614
+ jobId={failedRetry}
615
+ />
616
+ </div>
617
+ {/each}
618
+ {/if}
577
619
  {#if ['InProgress', 'Success', 'Failure'].includes(mod.type)}
578
620
  {#if job.raw_flow?.modules[i]?.value.type == 'flow'}
579
621
  <svelte:self
@@ -694,6 +736,7 @@ function loadPreviousIters(lenToAdd) {
694
736
  col
695
737
  result={job['result']}
696
738
  logs={job.logs ?? ''}
739
+ durationStates={localDurationStatuses}
697
740
  />
698
741
  {:else if selectedNode == 'start'}
699
742
  {#if job.args}
@@ -739,6 +782,7 @@ function loadPreviousIters(lenToAdd) {
739
782
  col
740
783
  result={node.result}
741
784
  logs={node.logs}
785
+ durationStates={localDurationStatuses}
742
786
  />
743
787
  {:else}
744
788
  <p class="p-2 text-tertiary italic"
@@ -7,6 +7,7 @@ import graphql from 'svelte-highlight/languages/graphql';
7
7
  import javascript from 'svelte-highlight/languages/javascript';
8
8
  import sql from 'svelte-highlight/languages/sql';
9
9
  import powershell from 'svelte-highlight/languages/powershell';
10
+ import php from 'svelte-highlight/languages/php';
10
11
  import { Button } from './common';
11
12
  import { copyToClipboard } from '../utils';
12
13
  import { ClipboardCopy } from 'lucide-svelte';
@@ -41,6 +42,8 @@ function getLang(lang) {
41
42
  return sql;
42
43
  case 'powershell':
43
44
  return powershell;
45
+ case 'php':
46
+ return php;
44
47
  default:
45
48
  return typescript;
46
49
  }
@@ -359,6 +359,9 @@ loadResourceTypes();
359
359
  {itemPicker}
360
360
  bind:pickForField
361
361
  showSchemaExplorer
362
+ nullable={schema.properties[argName].nullable}
363
+ bind:title={schema.properties[argName].title}
364
+ bind:placeholder={schema.properties[argName].placeholder}
362
365
  />
363
366
  {:else if arg.expr != undefined}
364
367
  <div class="border mt-2">
@@ -12,10 +12,10 @@ import CloseButton from './common/CloseButton.svelte';
12
12
  import KeycloakSetting from './KeycloakSetting.svelte';
13
13
  import Alert from './common/alert/Alert.svelte';
14
14
  import { isCloudHosted } from '../cloud';
15
- import { capitalize } from '../utils';
15
+ import { capitalize, classNames } from '../utils';
16
16
  import { enterpriseLicense } from '../stores';
17
17
  import CustomOauth from './CustomOauth.svelte';
18
- import { AlertTriangle, Plus } from 'lucide-svelte';
18
+ import { AlertCircle, AlertTriangle, BadgeCheck, Info, Plus, X, BadgeX } from 'lucide-svelte';
19
19
  import CustomSso from './CustomSso.svelte';
20
20
  import AuthentikSetting from './AuthentikSetting.svelte';
21
21
  import AutheliaSetting from './AutheliaSetting.svelte';
@@ -23,6 +23,8 @@ import KanidmSetting from './KanidmSetting.svelte';
23
23
  import ZitadelSetting from './ZitadelSetting.svelte';
24
24
  import Password from './Password.svelte';
25
25
  import ObjectStoreConfigSettings from './ObjectStoreConfigSettings.svelte';
26
+ import { fade } from 'svelte/transition';
27
+ import Popover from './Popover.svelte';
26
28
  export let tab = 'Core';
27
29
  export let hideTabs = false;
28
30
  export let hideSave = false;
@@ -31,6 +33,7 @@ let initialOauths = {};
31
33
  let initialRequirePreexistingUserForOauth = false;
32
34
  let requirePreexistingUserForOauth = false;
33
35
  let ssoOrOauth = 'sso';
36
+ let latestKeyRenewalAttempt = null;
34
37
  let serverConfig = {};
35
38
  let initialValues = {};
36
39
  loadSettings();
@@ -66,6 +69,7 @@ async function loadSettings() {
66
69
  if (values['base_url'] == undefined) {
67
70
  values['base_url'] = 'http://localhost';
68
71
  }
72
+ latestKeyRenewalAttempt = await SettingService.getLatestKeyRenewalAttempt();
69
73
  }
70
74
  export async function saveSettings() {
71
75
  if (values) {
@@ -121,7 +125,7 @@ function parseDate(license_key) {
121
125
  try {
122
126
  let i = parseInt(splitted[1]);
123
127
  let date = new Date(i * 1000);
124
- return date.toDateString();
128
+ return date.toLocaleDateString();
125
129
  }
126
130
  catch { }
127
131
  }
@@ -152,6 +156,17 @@ async function sendStats() {
152
156
  }
153
157
  let clientName = '';
154
158
  let licenseKeyChanged = false;
159
+ export async function renewLicenseKey() {
160
+ try {
161
+ await SettingService.renewLicenseKey();
162
+ sendUserToast('Key renewal successful');
163
+ loadSettings();
164
+ }
165
+ catch (err) {
166
+ latestKeyRenewalAttempt = await SettingService.getLatestKeyRenewalAttempt();
167
+ throw err;
168
+ }
169
+ }
155
170
  </script>
156
171
 
157
172
  <div class="pb-8">
@@ -449,30 +464,162 @@ let licenseKeyChanged = false;
449
464
  requestBody: { license_key: values[setting.key] }
450
465
  })
451
466
  sendUserToast('Valid key')
452
- }}>Test Key</Button
467
+ }}
453
468
  >
469
+ Test Key
470
+ </Button>
471
+ {#if $enterpriseLicense}
472
+ <Button on:click={renewLicenseKey} size="xs">Renew key</Button>
473
+ {/if}
454
474
  </div>
455
- {#if values[setting.key]?.length > 0}
456
- {#if parseDate(values[setting.key])}
457
- <span class="text-tertiary text-2xs"
458
- >License key expires on {parseDate(values[setting.key])}</span
459
- >
475
+ <div class="mt-1 flex flex-col gap-1 items-start">
476
+ {#if values[setting.key]?.length > 0}
477
+ {#if parseDate(values[setting.key])}
478
+ <div class="flex flex-row gap-1 items-center">
479
+ <Info size={12} class="text-tertiary" />
480
+ <span class="text-tertiary text-xs"
481
+ >License key expires on {parseDate(values[setting.key])}</span
482
+ >
483
+ </div>
484
+ {/if}
460
485
  {/if}
461
- {/if}
462
- {#if licenseKeyChanged}
463
- <div class="text-yellow-600"
464
- >Refresh page after setting license key and saving to unlock all
465
- features</div
466
- >
467
- {/if}
486
+ {#if latestKeyRenewalAttempt}
487
+ {@const attemptedAt = new Date(
488
+ latestKeyRenewalAttempt.attempted_at
489
+ ).toLocaleString()}
490
+ <div class="relative">
491
+ <Popover notClickable>
492
+ <div class="flex flex-row items-center gap-1">
493
+ {#if latestKeyRenewalAttempt.result === 'success'}
494
+ <BadgeCheck class="text-green-600" size={12} />
495
+ {:else}
496
+ <BadgeX class="text-red-600" size={12} />
497
+ {/if}
498
+ <span
499
+ class={classNames(
500
+ 'text-xs',
501
+ latestKeyRenewalAttempt.result === 'success'
502
+ ? 'text-green-600'
503
+ : 'text-red-600'
504
+ )}
505
+ >
506
+ {latestKeyRenewalAttempt.result === 'success'
507
+ ? 'Latest key renewal succeeded'
508
+ : 'Latest key renewal failed'}
509
+ on {attemptedAt}
510
+ </span>
511
+ </div>
512
+ <div slot="text">
513
+ {#if latestKeyRenewalAttempt.result === 'success'}
514
+ <span class="text-green-300">
515
+ Latest key renewal succeeded on {attemptedAt}
516
+ </span>
517
+ {:else}
518
+ <span class="text-red-300">
519
+ Latest key renewal failed on {attemptedAt}: {latestKeyRenewalAttempt.result.replace(
520
+ 'error: ',
521
+ ''
522
+ )}
523
+ </span>
524
+ {/if}
525
+ <br />
526
+ As long as invoices are paid and usage corresponds to the subscription,
527
+ the key is renewed daily with a validity of 35 days (grace period).
528
+ </div>
529
+ </Popover>
530
+ </div>
531
+ {/if}
532
+ {#if licenseKeyChanged && !$enterpriseLicense}
533
+ <div class="flex flex-row items-center gap-1">
534
+ <AlertCircle size={12} class="text-yellow-600" />
535
+ <span class="text-xs text-yellow-600">
536
+ Refresh page after setting and saving license key to unlock all
537
+ features
538
+ </span>
539
+ </div>
540
+ {/if}
541
+ </div>
468
542
  {:else if setting.fieldType == 'email'}
469
543
  <input
470
544
  type="email"
471
545
  placeholder={setting.placeholder}
472
546
  bind:value={values[setting.key]}
473
547
  />
548
+ {:else if setting.fieldType == 'critical_error_channels'}
549
+ <div class="w-full">
550
+ <div class="flex max-w-md mt-1 gap-2 w-full items-center">
551
+ <select disabled>
552
+ <option>Tracing</option>
553
+ </select>
554
+ <input disabled />
555
+ <button
556
+ transition:fade|local={{ duration: 100 }}
557
+ class="rounded-full p-1 bg-surface-secondary duration-200 hover:bg-surface-hover"
558
+ aria-label="Clear"
559
+ disabled
560
+ >
561
+ <X size={14} />
562
+ </button>
563
+ </div>
564
+ {#if $enterpriseLicense && Array.isArray(values[setting.key])}
565
+ {#each values[setting.key] ?? [] as v, i}
566
+ <div class="flex max-w-md mt-1 gap-2 w-full items-center">
567
+ <select>
568
+ <option value="email">Email</option>
569
+ </select>
570
+ <input
571
+ type="email"
572
+ placeholder="Email address"
573
+ on:input={(e) => {
574
+ if (e.target?.['value']) {
575
+ values[setting.key][i] = {
576
+ email: e.target['value']
577
+ }
578
+ }
579
+ }}
580
+ value={v?.email ?? ''}
581
+ />
582
+ <button
583
+ transition:fade|local={{ duration: 100 }}
584
+ class="rounded-full p-1 bg-surface-secondary duration-200 hover:bg-surface-hover"
585
+ aria-label="Clear"
586
+ on:click={() => {
587
+ values[setting.key] = values[setting.key].filter(
588
+ (_, index) => index !== i
589
+ )
590
+ }}
591
+ >
592
+ <X size={14} />
593
+ </button>
594
+ </div>
595
+ {/each}
596
+ {/if}
597
+ </div>
598
+ <div class="flex mt-2 gap-20 items-baseline">
599
+ <Button
600
+ variant="border"
601
+ color="light"
602
+ size="xs"
603
+ btnClasses="mt-1"
604
+ on:click={() => {
605
+ if (
606
+ values[setting.key] == undefined ||
607
+ !Array.isArray(values[setting.key])
608
+ ) {
609
+ values[setting.key] = []
610
+ }
611
+ values[setting.key] = values[setting.key].concat('')
612
+ }}
613
+ id="arg-input-add-item"
614
+ startIcon={{ icon: Plus }}
615
+ disabled={!$enterpriseLicense}
616
+ >
617
+ Add item
618
+ </Button>
619
+ </div>
474
620
  {:else if setting.fieldType == 'object_store_config'}
475
621
  <ObjectStoreConfigSettings bind:bucket_config={values[setting.key]} />
622
+ <div class="mb-6" />
476
623
  {:else if setting.fieldType == 'number'}
477
624
  <input
478
625
  type="number"
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  hideTabs?: boolean | undefined;
6
6
  hideSave?: boolean | undefined;
7
7
  saveSettings?: (() => Promise<void>) | undefined;
8
+ renewLicenseKey?: (() => Promise<void>) | undefined;
8
9
  };
9
10
  events: {
10
11
  [evt: string]: CustomEvent<any>;
@@ -16,5 +17,6 @@ export type InstanceSettingsEvents = typeof __propDef.events;
16
17
  export type InstanceSettingsSlots = typeof __propDef.slots;
17
18
  export default class InstanceSettings extends SvelteComponent<InstanceSettingsProps, InstanceSettingsEvents, InstanceSettingsSlots> {
18
19
  get saveSettings(): () => Promise<void>;
20
+ get renewLicenseKey(): () => Promise<void>;
19
21
  }
20
22
  export {};
@@ -0,0 +1,12 @@
1
+ <script>import { JobService } from '../gen';
2
+ import { workspaceStore } from '../stores';
3
+ import LogViewer from './LogViewer.svelte';
4
+ export let jobId;
5
+ let logs = undefined;
6
+ $: jobId && loadLogs();
7
+ async function loadLogs() {
8
+ logs = await JobService.getJobLogs({ workspace: $workspaceStore, id: jobId });
9
+ }
10
+ </script>
11
+
12
+ <LogViewer content={logs} isLoading={false} tag={undefined} {jobId} />
@@ -0,0 +1,16 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ jobId: string;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {};
10
+ };
11
+ export type JobLogsProps = typeof __propDef.props;
12
+ export type JobLogsEvents = typeof __propDef.events;
13
+ export type JobLogsSlots = typeof __propDef.slots;
14
+ export default class JobLogs extends SvelteComponent<JobLogsProps, JobLogsEvents, JobLogsSlots> {
15
+ }
16
+ export {};
@@ -37,7 +37,7 @@ export let job;
37
37
  </div>
38
38
  {:else if job && 'running' in job}
39
39
  <div class="flex flex-row gap-1 items-center">
40
- <Badge icon={{ icon: Clock, position: 'left' }}>Queued</Badge>
40
+ <Badge color="orange" icon={{ icon: Clock, position: 'left' }}>Queued</Badge>
41
41
  <NoWorkerWithTagWarning tag={job.tag} />
42
42
  </div>
43
43
  {:else}
@@ -1,7 +1,7 @@
1
1
  <script>export let label = undefined;
2
2
  </script>
3
3
 
4
- <div>
4
+ <div class={$$props.class}>
5
5
  <div class="flex flex-row justify-between items-center w-full">
6
6
  <div class="flex flex-row items-center gap-1">
7
7
  <span class="text-secondary text-sm leading-6">{label}</span>
@@ -1,6 +1,7 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
+ [x: string]: any;
4
5
  label?: string | undefined;
5
6
  };
6
7
  events: {