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
@@ -3,7 +3,7 @@ import { displayDate, msToSec, truncateHash, truncateRev } from '../../utils';
3
3
  import { Badge, Button } from '../common';
4
4
  import ScheduleEditor from '../ScheduleEditor.svelte';
5
5
  import BarsStaggered from '../icons/BarsStaggered.svelte';
6
- import { Bot, Calendar, Check, FastForward, Folder, Hourglass, ListFilter, Play, X } from 'lucide-svelte';
6
+ import { Calendar, Check, FastForward, Folder, Hourglass, ListFilter, Play, ShieldQuestion, X } from 'lucide-svelte';
7
7
  import { createEventDispatcher } from 'svelte';
8
8
  import TimeAgo from '../TimeAgo.svelte';
9
9
  import { forLater } from '../../forLater';
@@ -13,19 +13,22 @@ const dispatch = createEventDispatcher();
13
13
  export let job;
14
14
  export let selectedId = undefined;
15
15
  export let containerWidth = 0;
16
+ export let containsLabel = false;
17
+ export let activeLabel;
16
18
  let scheduleEditor;
19
+ $: isExternal = job && job.id === '-';
20
+ let triggeredByWidth = 0;
17
21
  </script>
18
22
 
19
23
  <Portal>
20
24
  <ScheduleEditor on:update={() => goto('/schedules')} bind:this={scheduleEditor} />
21
25
  </Portal>
22
-
23
26
  <!-- svelte-ignore a11y-click-events-have-key-events -->
24
27
  <!-- svelte-ignore a11y-no-static-element-interactions -->
25
28
  <div
26
29
  class={twMerge(
27
30
  'hover:bg-surface-hover cursor-pointer',
28
- selectedId === job.id ? 'bg-blue-50 dark:bg-blue-900/50' : '',
31
+ selectedId === job.id && !isExternal ? 'bg-blue-50 dark:bg-blue-900/50' : '',
29
32
  'flex flex-row items-center h-full'
30
33
  )}
31
34
  style="width: {containerWidth}px"
@@ -34,7 +37,11 @@ let scheduleEditor;
34
37
  }}
35
38
  >
36
39
  <div class="w-1/12 flex justify-center">
37
- {#if 'success' in job && job.success}
40
+ {#if isExternal}
41
+ <Badge color="gray" baseClass="!px-1.5">
42
+ <ShieldQuestion size={14} />
43
+ </Badge>
44
+ {:else if 'success' in job && job.success}
38
45
  {#if job.is_skipped}
39
46
  <Badge color="green" rounded>
40
47
  <FastForward size={14} />
@@ -91,18 +98,25 @@ let scheduleEditor;
91
98
  <div class="whitespace-nowrap text-xs font-semibold truncate">
92
99
  {#if job.script_path}
93
100
  <div class="flex flex-row gap-1 items-center">
94
- <a href="/run/{job.id}?workspace={job.workspace_id}" class="truncate w-30">
95
- {job.script_path}
96
- </a>
97
- <Button
98
- size="xs2"
99
- color="light"
100
- on:click={() => {
101
- dispatch('filterByPath', job.script_path)
102
- }}
103
- >
104
- <ListFilter size={10} />
105
- </Button>
101
+ {#if isExternal}
102
+ <span class="w-30 justify-center">-</span>
103
+ {:else}
104
+ <a
105
+ href="/run/{job.id}?workspace={job.workspace_id}"
106
+ class="truncate w-30 dark:text-blue-400"
107
+ >
108
+ {job.script_path}
109
+ </a>
110
+ <Button
111
+ size="xs2"
112
+ color="light"
113
+ on:click={() => {
114
+ dispatch('filterByPath', job.script_path)
115
+ }}
116
+ >
117
+ <ListFilter size={10} />
118
+ </Button>
119
+ {/if}
106
120
  {#if job.script_path?.startsWith('f/')}
107
121
  <Button
108
122
  size="xs2"
@@ -144,17 +158,43 @@ let scheduleEditor;
144
158
  </div>
145
159
  {:else}
146
160
  <div class="flex flex-row gap-1 items-center">
147
- <Bot size={12} class="text-secondary" />
148
- <span class="mx-1 text-xs">
149
- Parent <a href={`/run/${job.parent_job}?workspace=${job.workspace_id}`}>
150
- {job.parent_job}
161
+ <span class="text-2xs text-tertiary truncate">
162
+ parent <a href={`/run/${job.parent_job}?workspace=${job.workspace_id}`}>
163
+ {truncateRev(job.parent_job, 10)}
151
164
  </a>
152
165
  </span>
153
166
  </div>
154
167
  {/if}
155
168
  {/if}
156
169
  </div>
157
- <div class="w-3/12 flex justify-start">
170
+ {#if containsLabel}
171
+ <div class="w-3/12 flex justify-start">
172
+ {#if job && job?.['labels']}
173
+ <div class="flex flex-row items-center gap-1 overflow-x-auto">
174
+ {#if Array.isArray(job?.['labels'])}
175
+ {#each job?.['labels'] as label}
176
+ <Button
177
+ variant="border"
178
+ size="xs2"
179
+ btnClasses={twMerge(
180
+ activeLabel == label ? 'bg-blue-50 dark:bg-blue-900/50' : '',
181
+ '!text-2xs !font-normal truncate max-w-28'
182
+ )}
183
+ color="light"
184
+ on:click={() => {
185
+ dispatch('filterByLabel', label)
186
+ }}
187
+ >
188
+ {label}
189
+ <ListFilter size={10} />
190
+ </Button>
191
+ {/each}
192
+ {/if}
193
+ </div>
194
+ {/if}
195
+ </div>
196
+ {/if}
197
+ <div class="w-3/12 flex justify-start" bind:clientWidth={triggeredByWidth}>
158
198
  {#if job && job.schedule_path}
159
199
  <div class="flex flex-row items-center gap-1">
160
200
  <Calendar size={14} />
@@ -164,7 +204,12 @@ let scheduleEditor;
164
204
  btnClasses="font-normal"
165
205
  on:click={() => scheduleEditor?.openEdit(job.schedule_path ?? '', job.job_kind == 'flow')}
166
206
  >
167
- {job.schedule_path}
207
+ <div
208
+ class="truncate text-ellipsis text-left"
209
+ style="max-width: {triggeredByWidth - 48}px"
210
+ >
211
+ {job.schedule_path}
212
+ </div>
168
213
  </Button>
169
214
  </div>
170
215
  {:else}
@@ -172,15 +217,17 @@ let scheduleEditor;
172
217
  <div class="text-xs">
173
218
  {job.created_by}
174
219
  </div>
175
- <Button
176
- size="xs2"
177
- color="light"
178
- on:click={() => {
179
- dispatch('filterByUser', job.created_by)
180
- }}
181
- >
182
- <ListFilter size={10} />
183
- </Button>
220
+ {#if !isExternal}
221
+ <Button
222
+ size="xs2"
223
+ color="light"
224
+ on:click={() => {
225
+ dispatch('filterByUser', job.created_by)
226
+ }}
227
+ >
228
+ <ListFilter size={10} />
229
+ </Button>
230
+ {/if}
184
231
  </div>
185
232
  {/if}
186
233
  </div>
@@ -5,11 +5,14 @@ declare const __propDef: {
5
5
  job: Job;
6
6
  selectedId?: string | undefined;
7
7
  containerWidth?: number | undefined;
8
+ containsLabel?: boolean | undefined;
9
+ activeLabel: string | null;
8
10
  };
9
11
  events: {
10
12
  select: CustomEvent<any>;
11
13
  filterByPath: CustomEvent<any>;
12
14
  filterByFolder: CustomEvent<any>;
15
+ filterByLabel: CustomEvent<any>;
13
16
  filterByUser: CustomEvent<any>;
14
17
  } & {
15
18
  [evt: string]: CustomEvent<any>;
@@ -9,9 +9,13 @@ import Toggle from '../Toggle.svelte';
9
9
  import Label from '../Label.svelte';
10
10
  import Section from '../Section.svelte';
11
11
  import CloseButton from '../common/CloseButton.svelte';
12
- import { workspaceStore } from '../../stores';
12
+ import { enterpriseLicense, workspaceStore } from '../../stores';
13
+ import { createEventDispatcher } from 'svelte';
14
+ import ToggleButtonMore from '../common/toggleButton-v2/ToggleButtonMore.svelte';
13
15
  // Filters
14
16
  export let path = null;
17
+ export let label = null;
18
+ export let concurrencyKey = null;
15
19
  export let success = undefined;
16
20
  export let isSkipped = undefined;
17
21
  export let argFilter;
@@ -21,16 +25,18 @@ export let resultError;
21
25
  export let jobKindsCat;
22
26
  export let user = null;
23
27
  export let folder = null;
24
- export let hideSchedules = undefined;
25
28
  export let mobile = false;
26
29
  // Autocomplete data
27
30
  export let paths = [];
28
31
  export let usernames = [];
29
32
  export let folders = [];
30
33
  export let allWorkspaces = false;
34
+ $: displayedLabel = label;
35
+ $: displayedConcurrencyKey = concurrencyKey;
31
36
  let copyArgFilter = argFilter;
32
37
  let copyResultFilter = resultFilter;
33
38
  export let filterBy = 'path';
39
+ const dispatch = createEventDispatcher();
34
40
  let manuallySet = false;
35
41
  $: {
36
42
  if (path !== null && path !== '' && filterBy !== 'path') {
@@ -45,7 +51,17 @@ $: {
45
51
  manuallySet = true;
46
52
  filterBy = 'folder';
47
53
  }
54
+ else if (label !== null && label !== '' && filterBy !== 'label') {
55
+ manuallySet = true;
56
+ filterBy = 'label';
57
+ }
58
+ else if (concurrencyKey !== null && concurrencyKey !== '' && filterBy !== 'concurrencyKey') {
59
+ manuallySet = true;
60
+ filterBy = 'concurrencyKey';
61
+ }
48
62
  }
63
+ let labelTimeout = undefined;
64
+ let concurrencyKeyTimeout = undefined;
49
65
  </script>
50
66
 
51
67
  <div class="flex gap-4">
@@ -70,6 +86,8 @@ $: {
70
86
  path = null
71
87
  user = null
72
88
  folder = null
89
+ label = null
90
+ concurrencyKey = null
73
91
  } else {
74
92
  manuallySet = false
75
93
  }
@@ -78,6 +96,12 @@ $: {
78
96
  <ToggleButton value="path" label="Path" />
79
97
  <ToggleButton value="user" label="User" />
80
98
  <ToggleButton value="folder" label="Folder" />
99
+ <ToggleButtonMore
100
+ togglableItems={[
101
+ { label: 'Concurrency key', value: 'concurrencyKey' },
102
+ { label: 'Label', value: 'label' }
103
+ ]}
104
+ />
81
105
  </ToggleButtonGroup>
82
106
  </div>
83
107
 
@@ -89,6 +113,7 @@ $: {
89
113
  class="absolute top-2 right-2 z-50"
90
114
  on:click={() => {
91
115
  user = null
116
+ dispatch('reset')
92
117
  }}
93
118
  >
94
119
  <X size={14} />
@@ -99,6 +124,12 @@ $: {
99
124
 
100
125
  <span class="text-xs absolute -top-4">User</span>
101
126
  <AutoComplete
127
+ create
128
+ onCreate={(user) => {
129
+ usernames.push(user)
130
+ return user
131
+ }}
132
+ createText="Press enter to use this value"
102
133
  noInputStyles
103
134
  items={usernames}
104
135
  value={user}
@@ -118,6 +149,7 @@ $: {
118
149
  class="absolute top-2 right-2 z-50"
119
150
  on:click={() => {
120
151
  folder = null
152
+ dispatch('reset')
121
153
  }}
122
154
  >
123
155
  <X size={14} />
@@ -148,6 +180,7 @@ $: {
148
180
  class="absolute top-2 right-2 z-50"
149
181
  on:click={() => {
150
182
  path = null
183
+ dispatch('reset')
151
184
  }}
152
185
  >
153
186
  <X size={14} />
@@ -159,6 +192,12 @@ $: {
159
192
  <span class="text-xs absolute -top-4">Path</span>
160
193
 
161
194
  <AutoComplete
195
+ create
196
+ onCreate={(path) => {
197
+ paths.push(path)
198
+ return path
199
+ }}
200
+ createText="Press enter to use this value"
162
201
  noInputStyles
163
202
  items={paths}
164
203
  value={path}
@@ -170,6 +209,86 @@ $: {
170
209
  />
171
210
  </div>
172
211
  {/key}
212
+ {:else if filterBy === 'label'}
213
+ {#key label}
214
+ <div class="relative">
215
+ {#if label}
216
+ <button
217
+ class="absolute top-2 right-2 z-50"
218
+ on:click={() => {
219
+ label = null
220
+ dispatch('reset')
221
+ }}
222
+ >
223
+ <X size={14} />
224
+ </button>
225
+ {/if}
226
+
227
+ <span class="text-xs absolute -top-4"
228
+ >Label <Tooltip
229
+ >Labels are string values in the array at the result field 'wm_labels' to easily
230
+ filter them</Tooltip
231
+ ></span
232
+ >
233
+
234
+ <input
235
+ autofocus
236
+ type="text"
237
+ class="!h-[32px] py-1 !text-xs !w-64"
238
+ bind:value={displayedLabel}
239
+ on:keydown={(e) => {
240
+ if (labelTimeout) {
241
+ clearTimeout(labelTimeout)
242
+ }
243
+
244
+ labelTimeout = setTimeout(() => {
245
+ label = displayedLabel
246
+ }, 1000)
247
+ }}
248
+ />
249
+ </div>
250
+ {/key}
251
+ {:else if filterBy === 'concurrencyKey'}
252
+ {#key concurrencyKey}
253
+ <div class="relative">
254
+ {#if concurrencyKey}
255
+ <button
256
+ class="absolute top-2 right-2 z-50"
257
+ on:click={() => {
258
+ concurrencyKey = null
259
+ dispatch('reset')
260
+ }}
261
+ >
262
+ <X size={14} />
263
+ </button>
264
+ {/if}
265
+ <span class="text-xs absolute -top-4"
266
+ >Concurrency Key <Tooltip>
267
+ For concurrency limited jobs, the concurrency key defines a group of jobs that share
268
+ the same limits.
269
+ {#if !$enterpriseLicense}
270
+ Concurrency limits are an EE feature.
271
+ {/if}
272
+ </Tooltip></span
273
+ >
274
+
275
+ <input
276
+ autofocus
277
+ type="text"
278
+ class="!h-[32px] py-1 !text-xs !w-64"
279
+ bind:value={displayedConcurrencyKey}
280
+ on:keydown={(e) => {
281
+ if (concurrencyKeyTimeout) {
282
+ clearTimeout(concurrencyKeyTimeout)
283
+ }
284
+
285
+ concurrencyKeyTimeout = setTimeout(() => {
286
+ concurrencyKey = displayedConcurrencyKey
287
+ }, 1000)
288
+ }}
289
+ />
290
+ </div>
291
+ {/key}
173
292
  {/if}
174
293
  </div>
175
294
  <div class="relative">
@@ -208,21 +327,21 @@ $: {
208
327
  <ToggleButton value={undefined} label="All" />
209
328
  <ToggleButton
210
329
  value={'running'}
211
- label="Running"
330
+ tooltip="Running"
212
331
  class="whitespace-nowrap"
213
332
  icon={PlayCircle}
214
333
  iconProps={{ color: success === 'running' ? 'blue' : 'gray' }}
215
334
  />
216
335
  <ToggleButton
217
336
  value={'success'}
218
- label="Success"
337
+ tooltip="Success"
219
338
  class="whitespace-nowrap"
220
339
  icon={CheckCircle2}
221
340
  iconProps={{ color: success === 'success' ? 'green' : 'gray' }}
222
341
  />
223
342
  <ToggleButton
224
343
  value={'failure'}
225
- label="Failure"
344
+ tooltip="Failure"
226
345
  class="whitespace-nowrap"
227
346
  icon={AlertCircle}
228
347
  iconProps={{ color: success === 'failure' ? 'red' : 'gray' }}
@@ -257,6 +376,7 @@ $: {
257
376
  path = null
258
377
  user = null
259
378
  folder = null
379
+ label = null
260
380
  } else {
261
381
  manuallySet = false
262
382
  }
@@ -406,10 +526,6 @@ $: {
406
526
  </div>
407
527
  </Label>
408
528
 
409
- <Label label="Hide future scheduled jobs from schedules">
410
- <Toggle size="xs" bind:checked={hideSchedules} />
411
- </Label>
412
-
413
529
  <span class="text-xs leading-6">
414
530
  {`Filter by a json being a subset of the args/result. Try '\{"foo": "bar"\}'`}
415
531
  </span>
@@ -2,6 +2,8 @@ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  path?: string | null | undefined;
5
+ label?: string | null | undefined;
6
+ concurrencyKey?: string | null | undefined;
5
7
  success?: 'running' | 'success' | 'failure' | undefined;
6
8
  isSkipped?: boolean | undefined;
7
9
  argFilter: string;
@@ -11,16 +13,16 @@ declare const __propDef: {
11
13
  jobKindsCat: string;
12
14
  user?: string | null | undefined;
13
15
  folder?: string | null | undefined;
14
- hideSchedules?: boolean | undefined;
15
16
  mobile?: boolean | undefined;
16
17
  paths?: string[] | undefined;
17
18
  usernames?: string[] | undefined;
18
19
  folders?: string[] | undefined;
19
20
  allWorkspaces?: boolean | undefined;
20
- filterBy?: "path" | "folder" | "user" | undefined;
21
+ filterBy?: "path" | "folder" | "user" | "label" | "concurrencyKey" | undefined;
21
22
  };
22
23
  events: {
23
24
  change: CustomEvent<any>;
25
+ reset: CustomEvent<any>;
24
26
  } & {
25
27
  [evt: string]: CustomEvent<any>;
26
28
  };
@@ -1,19 +1,32 @@
1
1
  <script>import RunRow from './RunRow.svelte';
2
2
  import VirtualList from 'svelte-tiny-virtual-list';
3
3
  import { createEventDispatcher, onMount } from 'svelte';
4
+ import Tooltip from '../Tooltip.svelte';
5
+ import { AlertTriangle } from 'lucide-svelte';
6
+ import Popover from '../Popover.svelte';
7
+ import { workspaceStore } from '../../stores';
4
8
  //import InfiniteLoading from 'svelte-infinite-loading'
5
9
  export let jobs = undefined;
10
+ export let externalJobs = [];
11
+ export let omittedObscuredJobs;
12
+ export let showExternalJobs = false;
6
13
  export let selectedId = undefined;
7
14
  export let selectedWorkspace = undefined;
15
+ export let activeLabel = null;
8
16
  // const loadMoreQuantity: number = 100
9
17
  function getTime(job) {
10
18
  return job['started_at'] ?? job['scheduled_for'] ?? job['created_at'];
11
19
  }
20
+ let containsLabel = false;
12
21
  function groupJobsByDay(jobs) {
13
22
  const groupedLogs = {};
14
23
  if (!jobs)
15
24
  return groupedLogs;
25
+ let newContainsLabel = false;
16
26
  for (const job of jobs) {
27
+ if (job?.['labels'] != undefined) {
28
+ newContainsLabel = true;
29
+ }
17
30
  const field = getTime(job);
18
31
  if (field) {
19
32
  const date = new Date(field);
@@ -29,6 +42,7 @@ function groupJobsByDay(jobs) {
29
42
  groupedLogs[day].push(job);
30
43
  }
31
44
  }
45
+ containsLabel = newContainsLabel;
32
46
  for (const day in groupedLogs) {
33
47
  groupedLogs[day].sort((a, b) => {
34
48
  return new Date(getTime(b)).getTime() - new Date(getTime(a)).getTime();
@@ -44,7 +58,11 @@ function groupJobsByDay(jobs) {
44
58
  });
45
59
  return sortedLogs;
46
60
  }
47
- $: groupedJobs = jobs ? groupJobsByDay(jobs) : undefined;
61
+ $: groupedJobs = jobs
62
+ ? showExternalJobs
63
+ ? groupJobsByDay([...jobs, ...externalJobs])
64
+ : groupJobsByDay(jobs)
65
+ : undefined;
48
66
  function flattenJobs(groupedJobs) {
49
67
  const flatJobs = [];
50
68
  for (const [date, jobsByDay] of Object.entries(groupedJobs)) {
@@ -86,6 +104,11 @@ function infiniteHandler({ detail: { loaded, error, complete } }) {
86
104
  }
87
105
  }
88
106
  */
107
+ function jobCountString(jobCount) {
108
+ const jc = jobCount;
109
+ const isTruncated = jc == 1000;
110
+ return `${jc}${isTruncated ? '+' : ''} job${jc != 1 ? 's' : ''}`;
111
+ }
89
112
  function computeHeight() {
90
113
  tableHeight = document.querySelector('#runs-table-wrapper').parentElement?.clientHeight ?? 0;
91
114
  }
@@ -106,11 +129,32 @@ const dispatch = createEventDispatcher();
106
129
  class="flex flex-row bg-surface-secondary sticky top-0 w-full p-2 pr-4"
107
130
  bind:clientHeight={header}
108
131
  >
109
- <div class="w-1/12 text-2xs"
110
- >{jobs?.length == 1000 ? '1000+' : jobs ? jobs.length.toString() : '...'} jobs</div
111
- >
132
+ {#if showExternalJobs && externalJobs.length > 0}
133
+ <div class="w-1/12 text-2xs">
134
+ <div class="flex flex-row">
135
+ {jobs && jobCountString(jobs.length + externalJobs.length)}<Tooltip
136
+ >{externalJobs.length} jobs obscured</Tooltip
137
+ >
138
+ </div>
139
+ </div>
140
+ {:else if $workspaceStore !== 'admins' && omittedObscuredJobs}
141
+ <div class="w-1/12 text-2xs flex flex-row">
142
+ {jobs && jobCountString(jobs.length)}
143
+ <Popover>
144
+ <AlertTriangle size={16} class="ml-0.5 text-yellow-500"/>
145
+ <svelte:fragment slot="text">
146
+ Too specific filtering may have caused the omission of obscured jobs. This is done for security reasons. To see obscured jobs, try removing some filters.
147
+ </svelte:fragment>
148
+ </Popover>
149
+ </div>
150
+ {:else}
151
+ <div class="w-1/12 text-2xs">{jobs && jobCountString(jobs.length)}</div>
152
+ {/if}
112
153
  <div class="w-4/12 text-xs font-semibold">Timestamp</div>
113
154
  <div class="w-4/12 text-xs font-semibold">Path</div>
155
+ {#if containsLabel}
156
+ <div class="w-3/12 text-xs font-semibold">Label</div>
157
+ {/if}
114
158
  <div class="w-3/12 text-xs font-semibold">Triggered by</div>
115
159
  </div>
116
160
 
@@ -133,6 +177,7 @@ const dispatch = createEventDispatcher();
133
177
  {:else}
134
178
  <div class="flex flex-row items-center h-full w-full">
135
179
  <RunRow
180
+ {containsLabel}
136
181
  job={jobOrDate.job}
137
182
  {selectedId}
138
183
  on:select={() => {
@@ -140,9 +185,12 @@ const dispatch = createEventDispatcher();
140
185
  selectedId = jobOrDate.job.id
141
186
  dispatch('select')
142
187
  }}
188
+ {activeLabel}
189
+ on:filterByLabel
143
190
  on:filterByPath
144
191
  on:filterByUser
145
192
  on:filterByFolder
193
+ on:filterByConcurrencyKey
146
194
  {containerWidth}
147
195
  />
148
196
  </div>
@@ -161,7 +209,7 @@ const dispatch = createEventDispatcher();
161
209
  </div>
162
210
  </VirtualList>
163
211
  </div>
164
- {#if jobs?.length == 0}
212
+ {#if jobs?.length == 0 && (!showExternalJobs || externalJobs?.length == 0)}
165
213
  <tr>
166
214
  <td colspan="4" class="text-center py-8">
167
215
  <div class="text-xs text-secondary"> No jobs found for the selected filters. </div>
@@ -3,13 +3,19 @@ import type { Job } from '../../gen';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  jobs?: Job[] | undefined;
6
+ externalJobs?: Job[] | undefined;
7
+ omittedObscuredJobs: boolean;
8
+ showExternalJobs?: boolean | undefined;
6
9
  selectedId?: string | undefined;
7
10
  selectedWorkspace?: string | undefined;
11
+ activeLabel?: string | null | undefined;
8
12
  };
9
13
  events: {
14
+ filterByLabel: CustomEvent<any>;
10
15
  filterByPath: CustomEvent<any>;
11
16
  filterByUser: CustomEvent<any>;
12
17
  filterByFolder: CustomEvent<any>;
18
+ filterByConcurrencyKey: CustomEvent<any>;
13
19
  select: CustomEvent<any>;
14
20
  } & {
15
21
  [evt: string]: CustomEvent<any>;