windmill-components 1.623.2 → 1.642.0

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 (599) hide show
  1. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
  2. package/dist/sharedUtils/base.d.ts +1 -0
  3. package/dist/sharedUtils/cloud.d.ts +1 -0
  4. package/dist/sharedUtils/common.d.ts +111 -0
  5. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
  6. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
  7. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  8. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +13 -0
  9. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
  10. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +95 -0
  11. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
  12. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
  13. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +33 -0
  14. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
  15. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5371 -0
  16. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
  17. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
  18. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
  19. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  20. package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
  21. package/dist/sharedUtils/components/apps/inputType.d.ts +178 -0
  22. package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
  23. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +21 -0
  24. package/dist/sharedUtils/components/apps/types.d.ts +274 -0
  25. package/dist/sharedUtils/components/assets/lib.d.ts +25 -0
  26. package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
  27. package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
  28. package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
  29. package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
  30. package/dist/sharedUtils/components/common/index.d.ts +24 -0
  31. package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
  32. package/dist/sharedUtils/components/dbTypes.d.ts +14 -0
  33. package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
  34. package/dist/sharedUtils/components/ducklake.d.ts +1 -0
  35. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
  36. package/dist/sharedUtils/components/icons/index.d.ts +101 -0
  37. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
  38. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
  39. package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
  40. package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
  41. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
  42. package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
  43. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
  44. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
  45. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
  46. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
  47. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
  48. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
  49. package/dist/sharedUtils/components/triggers/utils.d.ts +80 -0
  50. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
  51. package/dist/sharedUtils/components/triggers.d.ts +20 -0
  52. package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
  53. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
  54. package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
  55. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
  56. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
  57. package/dist/sharedUtils/gen/core/request.d.ts +29 -0
  58. package/dist/sharedUtils/gen/index.d.ts +6 -0
  59. package/dist/sharedUtils/gen/schemas.gen.d.ts +7036 -0
  60. package/dist/sharedUtils/gen/services.gen.d.ts +6047 -0
  61. package/dist/sharedUtils/gen/types.gen.d.ts +21881 -0
  62. package/dist/sharedUtils/history.svelte.d.ts +9 -0
  63. package/dist/sharedUtils/hub.d.ts +49 -0
  64. package/dist/sharedUtils/jsr.json +6 -0
  65. package/dist/sharedUtils/lib.d.ts +5 -0
  66. package/dist/sharedUtils/lib.es.js +1588 -0
  67. package/dist/sharedUtils/package.json +12 -0
  68. package/dist/sharedUtils/schema.d.ts +3 -0
  69. package/dist/sharedUtils/stores.d.ts +97 -0
  70. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +80 -0
  71. package/dist/sharedUtils/toast.d.ts +8 -0
  72. package/dist/sharedUtils/utils.d.ts +265 -0
  73. package/package/assets/app.css +32 -13
  74. package/package/components/AIAgentLogViewer.svelte +2 -2
  75. package/package/components/AIAgentLogViewer.svelte.d.ts +1 -0
  76. package/package/components/AIProviderPicker.svelte +20 -80
  77. package/package/components/AIProviderPicker.svelte.d.ts +2 -7
  78. package/package/components/AddUser.svelte +2 -2
  79. package/package/components/ApiConnectForm.svelte +7 -1
  80. package/package/components/AppConnectInner.svelte.d.ts +1 -1
  81. package/package/components/ArgInput.svelte +15 -5
  82. package/package/components/ArgInput.svelte.d.ts +3 -4
  83. package/package/components/Auth0Setting.svelte +6 -2
  84. package/package/components/AuthSettings.svelte +68 -39
  85. package/package/components/AuthSettings.svelte.d.ts +3 -1
  86. package/package/components/AutheliaSetting.svelte +3 -2
  87. package/package/components/AuthentikSetting.svelte +3 -2
  88. package/package/components/AutoscalingConfigEditor.svelte +2 -1
  89. package/package/components/AutoscalingConfigEditor.svelte.d.ts +1 -0
  90. package/package/components/CenteredModal.svelte +14 -4
  91. package/package/components/CenteredModal.svelte.d.ts +1 -0
  92. package/package/components/ChangeInstanceUsernameInner.svelte +1 -1
  93. package/package/components/CompareWorkspaces.svelte +29 -57
  94. package/package/components/ConcurrentJobsChart.svelte +1 -1
  95. package/package/components/ConnectionSection.svelte +69 -73
  96. package/package/components/CustomSso.svelte +7 -7
  97. package/package/components/DBManager.svelte +15 -4
  98. package/package/components/DBManager.svelte.d.ts +2 -0
  99. package/package/components/DBManagerContent.svelte +5 -0
  100. package/package/components/DBManagerContent.svelte.d.ts +1 -0
  101. package/package/components/DBManagerDrawer.svelte +2 -0
  102. package/package/components/DatatablePicker.svelte +29 -0
  103. package/package/components/DatatablePicker.svelte.d.ts +13 -0
  104. package/package/components/DateTimeInput.svelte +3 -3
  105. package/package/components/DedicatedWorkersSelector.svelte +39 -42
  106. package/package/components/DeployToSetting.svelte +183 -123
  107. package/package/components/DeployToSetting.svelte.d.ts +19 -28
  108. package/package/components/DeployWorkspace.svelte +6 -44
  109. package/package/components/DeployWorkspace.svelte.d.ts +2 -1
  110. package/package/components/DeployWorkspaceDrawer.svelte +18 -7
  111. package/package/components/DeployWorkspaceDrawer.svelte.d.ts +3 -20
  112. package/package/components/Description.svelte +3 -1
  113. package/package/components/Dev.svelte +1 -0
  114. package/package/components/DiffEditor.svelte +7 -6
  115. package/package/components/DiffEditor.svelte.d.ts +2 -6
  116. package/package/components/DisplayResult.svelte +2 -2
  117. package/package/components/DropdownMenu.svelte +39 -0
  118. package/package/components/DropdownMenu.svelte.d.ts +14 -0
  119. package/package/components/DropdownSubmenuItem.svelte +68 -0
  120. package/package/components/DropdownSubmenuItem.svelte.d.ts +10 -0
  121. package/package/components/DropdownV2.svelte +3 -3
  122. package/package/components/DropdownV2Inner.svelte +42 -34
  123. package/package/components/DropdownV2Inner.svelte.d.ts +2 -1
  124. package/package/components/DucklakePicker.svelte +2 -5
  125. package/package/components/EEOnly.svelte +4 -14
  126. package/package/components/EEOnly.svelte.d.ts +0 -1
  127. package/package/components/Editor.svelte +2 -2
  128. package/package/components/Editor.svelte.d.ts +1 -0
  129. package/package/components/EditorBar.svelte +2 -4
  130. package/package/components/ErrorOrRecoveryHandler.svelte +62 -53
  131. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -0
  132. package/package/components/ExploreAssetButton.svelte +1 -2
  133. package/package/components/FileExplorer.svelte +249 -0
  134. package/package/components/FileExplorer.svelte.d.ts +21 -0
  135. package/package/components/FilesetEditor.svelte +103 -0
  136. package/package/components/FilesetEditor.svelte.d.ts +6 -0
  137. package/package/components/FilterSearchbar.svelte +628 -0
  138. package/package/components/FilterSearchbar.svelte.d.ts +86 -0
  139. package/package/components/FlowBuilder.svelte +123 -79
  140. package/package/components/FlowGraphViewerStep.svelte +49 -33
  141. package/package/components/FlowHistoryJobPicker.svelte +2 -1
  142. package/package/components/FlowJobResult.svelte +31 -23
  143. package/package/components/FlowJobResult.svelte.d.ts +0 -1
  144. package/package/components/FlowLogRow.svelte +1 -1
  145. package/package/components/FlowLogViewer.svelte +8 -3
  146. package/package/components/FlowPreviewContent.svelte +65 -49
  147. package/package/components/FlowPreviewContent.svelte.d.ts +4 -0
  148. package/package/components/FlowRestartButton.svelte +47 -47
  149. package/package/components/FlowRestartButton.svelte.d.ts +2 -0
  150. package/package/components/FlowStatusViewer.svelte +2 -3
  151. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  152. package/package/components/FlowStatusViewerInner.svelte +380 -297
  153. package/package/components/FlowStatusViewerInner.svelte.d.ts +2 -2
  154. package/package/components/FlowStatusWaitingForEvents.svelte +11 -10
  155. package/package/components/FolderPicker.svelte +195 -65
  156. package/package/components/FolderPicker.svelte.d.ts +2 -0
  157. package/package/components/HistoricInputs.svelte +3 -4
  158. package/package/components/IconedResourceType.svelte +8 -2
  159. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  160. package/package/components/InputError.svelte +9 -0
  161. package/package/components/InputError.svelte.d.ts +6 -0
  162. package/package/components/InputTransformForm.svelte +46 -39
  163. package/package/components/InputTransformForm.svelte.d.ts +1 -0
  164. package/package/components/InputTransformSchemaForm.svelte +2 -1
  165. package/package/components/InputTransformSchemaForm.svelte.d.ts +1 -0
  166. package/package/components/InputTransformsViewer.svelte +37 -20
  167. package/package/components/InstanceNameEditor.svelte +3 -1
  168. package/package/components/InstanceSetting.svelte +150 -374
  169. package/package/components/InstanceSetting.svelte.d.ts +1 -0
  170. package/package/components/InstanceSettings.svelte +804 -193
  171. package/package/components/InstanceSettings.svelte.d.ts +17 -2
  172. package/package/components/IntegerInput.svelte +58 -0
  173. package/package/components/IntegerInput.svelte.d.ts +14 -0
  174. package/package/components/InviteGlobalUser.svelte +25 -25
  175. package/package/components/InviteGlobalUser.svelte.d.ts +4 -2
  176. package/package/components/JobArgs.svelte +14 -10
  177. package/package/components/JobLoader.svelte +6 -4
  178. package/package/components/JobLoader.svelte.d.ts +2 -2
  179. package/package/components/JobStatus.svelte +29 -26
  180. package/package/components/JobStatus.svelte.d.ts +1 -0
  181. package/package/components/KanidmSetting.svelte +3 -2
  182. package/package/components/KeycloakSetting.svelte +3 -2
  183. package/package/components/Login.svelte +9 -3
  184. package/package/components/ModuleStatus.svelte +5 -5
  185. package/package/components/ModuleTest.svelte +3 -3
  186. package/package/components/MoveDrawer.svelte +47 -76
  187. package/package/components/MoveDrawer.svelte.d.ts +4 -6
  188. package/package/components/NextcloudSetting.svelte +3 -2
  189. package/package/components/NoDirectDeployAlert.svelte +31 -0
  190. package/package/components/NoDirectDeployAlert.svelte.d.ts +6 -0
  191. package/package/components/NumberTypeNarrowing.svelte +65 -67
  192. package/package/components/NumberTypeNarrowing.svelte.d.ts +2 -1
  193. package/package/components/OAuthSetting.svelte +6 -14
  194. package/package/components/ObjectStoreConfigSettings.svelte +150 -55
  195. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +34 -44
  196. package/package/components/OktaSetting.svelte +3 -2
  197. package/package/components/PageHeader.svelte +1 -1
  198. package/package/components/ParentWorkspaceProtectionAlert.svelte +48 -0
  199. package/package/components/ParentWorkspaceProtectionAlert.svelte.d.ts +7 -0
  200. package/package/components/Path.svelte +40 -28
  201. package/package/components/Path.svelte.d.ts +3 -0
  202. package/package/components/PocketIdSetting.svelte +3 -2
  203. package/package/components/ResourceEditor.svelte +9 -3
  204. package/package/components/ResourcePicker.svelte +2 -5
  205. package/package/components/RightClickPopover.svelte +37 -0
  206. package/package/components/RightClickPopover.svelte.d.ts +11 -0
  207. package/package/components/RunChart.svelte +2 -21
  208. package/package/components/RunChart.svelte.d.ts +0 -3
  209. package/package/components/RunsPage.svelte +458 -560
  210. package/package/components/SaveButton.svelte +78 -0
  211. package/package/components/SaveButton.svelte.d.ts +12 -0
  212. package/package/components/SaveInputsButton.svelte +1 -1
  213. package/package/components/SavedInputsV2.svelte +1 -3
  214. package/package/components/SchemaFormWithArgPicker.svelte +34 -30
  215. package/package/components/SchemaFormWithArgPicker.svelte.d.ts +12 -21
  216. package/package/components/SchemaViewer.svelte +56 -53
  217. package/package/components/ScriptBuilder.svelte +12 -12
  218. package/package/components/ScriptEditor.svelte +30 -28
  219. package/package/components/Section.svelte +2 -2
  220. package/package/components/ServiceLogsInner.svelte +21 -82
  221. package/package/components/Star.svelte +8 -22
  222. package/package/components/Star.svelte.d.ts +4 -4
  223. package/package/components/StringTypeNarrowing.svelte +1 -0
  224. package/package/components/SummaryPathDisplay.svelte +177 -0
  225. package/package/components/SummaryPathDisplay.svelte.d.ts +10 -0
  226. package/package/components/SuperadminSettings.svelte +185 -4
  227. package/package/components/SuperadminSettings.svelte.d.ts +4 -1
  228. package/package/components/SuperadminSettingsInner.svelte +307 -192
  229. package/package/components/SuperadminSettingsInner.svelte.d.ts +12 -1
  230. package/package/components/TaggedTextInput.svelte +449 -0
  231. package/package/components/TaggedTextInput.svelte.d.ts +28 -0
  232. package/package/components/Toast.svelte +69 -51
  233. package/package/components/Toast.svelte.d.ts +2 -2
  234. package/package/components/Tooltip.svelte +2 -2
  235. package/package/components/Tooltip.svelte.d.ts +2 -0
  236. package/package/components/TooltipInner.svelte +6 -1
  237. package/package/components/TooltipInner.svelte.d.ts +1 -0
  238. package/package/components/Uptodate.svelte +3 -2
  239. package/package/components/UserSettings.svelte +2 -2
  240. package/package/components/UserSettings.svelte.d.ts +1 -0
  241. package/package/components/WorkerGroup.svelte +320 -192
  242. package/package/components/WorkerGroup.svelte.d.ts +2 -0
  243. package/package/components/WorkspaceDependenciesEditor.svelte +33 -17
  244. package/package/components/ZitadelSetting.svelte +3 -2
  245. package/package/components/aiProviderStorage.d.ts +5 -0
  246. package/package/components/aiProviderStorage.js +50 -0
  247. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +24 -13
  248. package/package/components/apps/components/display/dbtable/metadata.d.ts +1 -0
  249. package/package/components/apps/components/display/dbtable/metadata.js +1 -0
  250. package/package/components/apps/components/display/dbtable/queries/count.js +3 -1
  251. package/package/components/apps/components/display/dbtable/queries/delete.js +3 -1
  252. package/package/components/apps/components/display/dbtable/queries/insert.js +3 -1
  253. package/package/components/apps/components/display/dbtable/queries/select.js +15 -1
  254. package/package/components/apps/components/display/dbtable/queries/update.js +3 -1
  255. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +6 -0
  256. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  257. package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -0
  258. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -3
  259. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  260. package/package/components/apps/components/display/table/theme/windmill-theme.css +8 -7
  261. package/package/components/apps/components/helpers/eval.js +5 -2
  262. package/package/components/apps/components/layout/AppModal.svelte +2 -1
  263. package/package/components/apps/components/layout/AppModal.svelte.d.ts +1 -0
  264. package/package/components/apps/editor/appPolicy.js +5 -4
  265. package/package/components/apps/editor/appUtils.d.ts +1 -1
  266. package/package/components/apps/editor/component/components.d.ts +11 -0
  267. package/package/components/apps/editor/component/components.js +19 -2
  268. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +3 -1
  269. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  270. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +1 -1
  271. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +1 -1
  272. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +66 -29
  273. package/package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +2 -17
  274. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +10 -0
  275. package/package/components/apps/inputType.d.ts +2 -2
  276. package/package/components/assets/AssetButtons.svelte +3 -7
  277. package/package/components/assets/AssetButtons.svelte.d.ts +2 -4
  278. package/package/components/assets/AssetColumnBadges.svelte +35 -0
  279. package/package/components/assets/AssetColumnBadges.svelte.d.ts +10 -0
  280. package/package/components/assets/AssetsDropdownButton.svelte +8 -6
  281. package/package/components/assets/AssetsUsageDrawer.svelte +16 -14
  282. package/package/components/assets/JobAssetsViewer.svelte +4 -6
  283. package/package/components/assets/assetsFilter.d.ts +50 -0
  284. package/package/components/assets/assetsFilter.js +43 -0
  285. package/package/components/assets/lib.d.ts +3 -2
  286. package/package/components/assets/lib.js +8 -1
  287. package/package/components/auditLogs/AuditLogsFilters.svelte +30 -1
  288. package/package/components/common/InlineCalendarInput.svelte +580 -0
  289. package/package/components/common/InlineCalendarInput.svelte.d.ts +31 -0
  290. package/package/components/common/alert/Alert.svelte +2 -8
  291. package/package/components/common/alert/model.d.ts +1 -0
  292. package/package/components/common/alert/model.js +7 -0
  293. package/package/components/common/badge/Badge.svelte +7 -3
  294. package/package/components/common/badge/Badge.svelte.d.ts +1 -0
  295. package/package/components/common/breadcrumb/Breadcrumb.svelte +10 -14
  296. package/package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +8 -23
  297. package/package/components/common/drawer/DrawerContent.svelte +1 -1
  298. package/package/components/common/seconds/SecondsInput.svelte +158 -67
  299. package/package/components/common/seconds/SecondsInput.svelte.d.ts +9 -21
  300. package/package/components/common/sidebar/SidebarNavigation.svelte +50 -0
  301. package/package/components/common/sidebar/SidebarNavigation.svelte.d.ts +25 -0
  302. package/package/components/common/table/AppRow.svelte +7 -10
  303. package/package/components/common/table/AppRow.svelte.d.ts +2 -2
  304. package/package/components/common/table/FlowRow.svelte +12 -15
  305. package/package/components/common/table/FlowRow.svelte.d.ts +2 -2
  306. package/package/components/common/table/RawAppRow.svelte +5 -82
  307. package/package/components/common/table/RawAppRow.svelte.d.ts +2 -23
  308. package/package/components/common/table/Row.svelte +2 -2
  309. package/package/components/common/table/Row.svelte.d.ts +0 -2
  310. package/package/components/common/table/ScriptRow.svelte +8 -11
  311. package/package/components/common/table/ScriptRow.svelte.d.ts +2 -2
  312. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  313. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -1
  314. package/package/components/copilot/TestAIKey.svelte +1 -1
  315. package/package/components/copilot/chat/AIChatInput.svelte +22 -11
  316. package/package/components/copilot/chat/AIChatManager.svelte.js +15 -17
  317. package/package/components/copilot/chat/AvailableContextList.svelte +215 -12
  318. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +1 -0
  319. package/package/components/copilot/chat/ContextTextarea.svelte +15 -2
  320. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +1 -1
  321. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +4 -2
  322. package/package/components/copilot/chat/app/core.js +7 -86
  323. package/package/components/copilot/chat/context.js +4 -1
  324. package/package/components/copilot/chat/flow/core.js +193 -61
  325. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  326. package/package/components/copilot/chat/flow/openFlowZod.d.ts +2 -2
  327. package/package/components/copilot/chat/flow/openFlowZod.js +6 -8
  328. package/package/components/copilot/chat/navigator/core.d.ts +2 -2
  329. package/package/components/copilot/chat/navigator/core.js +11 -2
  330. package/package/components/copilot/chat/script/core.js +4 -1
  331. package/package/components/copilot/chat/shared.d.ts +53 -1
  332. package/package/components/copilot/chat/shared.js +227 -1
  333. package/package/components/copilot/lib.js +42 -0
  334. package/package/components/dedicated_worker.d.ts +7 -0
  335. package/package/components/dedicated_worker.js +36 -0
  336. package/package/components/details/DetailPageHeader.svelte +8 -23
  337. package/package/components/details/DetailPageHeader.svelte.d.ts +1 -0
  338. package/package/components/details/DetailPageLayout.svelte +1 -1
  339. package/package/components/details/createAppFromScript.d.ts +136 -16
  340. package/package/components/details/createAppFromScript.js +13 -12
  341. package/package/components/diffEditorTypes.d.ts +6 -0
  342. package/package/components/diffEditorTypes.js +1 -0
  343. package/package/components/flows/CreateActionsApp.svelte +32 -82
  344. package/package/components/flows/CreateActionsFlow.svelte +28 -28
  345. package/package/components/flows/FlowAssetsHandler.svelte +1 -4
  346. package/package/components/flows/FlowProgressBar.svelte +37 -1
  347. package/package/components/flows/FlowProgressBar.svelte.d.ts +3 -0
  348. package/package/components/flows/agentToolUtils.d.ts +18 -0
  349. package/package/components/flows/agentToolUtils.js +47 -0
  350. package/package/components/flows/common/FlowCardHeader.svelte +8 -9
  351. package/package/components/flows/content/FlowEnvironmentVariables.svelte +3 -2
  352. package/package/components/flows/content/FlowLoop.svelte +3 -4
  353. package/package/components/flows/content/FlowModuleCache.svelte +1 -3
  354. package/package/components/flows/content/FlowModuleComponent.svelte +22 -6
  355. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  356. package/package/components/flows/content/FlowResult.svelte +77 -25
  357. package/package/components/flows/content/FlowRetries.svelte +1 -1
  358. package/package/components/flows/content/FlowSettings.svelte +4 -7
  359. package/package/components/flows/flowState.js +6 -0
  360. package/package/components/flows/flowStateUtils.svelte.js +4 -1
  361. package/package/components/flows/flowStore.svelte.d.ts +1 -1
  362. package/package/components/flows/flowStore.svelte.js +4 -2
  363. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  364. package/package/components/flows/header/FlowYamlEditor.svelte +2 -2
  365. package/package/components/flows/map/FlowModuleSchemaMap.svelte +12 -6
  366. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +2 -2
  367. package/package/components/flows/map/InsertModuleInner.svelte +7 -0
  368. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  369. package/package/components/flows/missingInputWarnings.js +7 -0
  370. package/package/components/flows/pickers/PickHubScriptQuick.svelte +4 -4
  371. package/package/components/flows/propPicker/OutputPicker.svelte +1 -1
  372. package/package/components/flows/propPicker/PropPickerWrapper.svelte +6 -9
  373. package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +3 -3
  374. package/package/components/flows/scheduleUtils.js +2 -2
  375. package/package/components/flows/types.d.ts +1 -3
  376. package/package/components/flows/utils.svelte.js +5 -1
  377. package/package/components/git_sync/GitSyncRepositoryCard.svelte +23 -21
  378. package/package/components/git_sync/GitSyncSection.svelte +24 -27
  379. package/package/components/graph/FlowGraphV2.svelte +1 -1
  380. package/package/components/graph/graphBuilder.svelte.d.ts +3 -1
  381. package/package/components/graph/model.d.ts +1 -1
  382. package/package/components/graph/renderers/nodes/AIToolNode.svelte +3 -1
  383. package/package/components/graph/renderers/nodes/AssetNode.svelte +25 -13
  384. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
  385. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +8 -0
  386. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
  387. package/package/components/home/Item.svelte +9 -15
  388. package/package/components/home/Item.svelte.d.ts +8 -7
  389. package/package/components/home/ItemsList.svelte +4 -10
  390. package/package/components/home/ItemsList.svelte.d.ts +1 -0
  391. package/package/components/icons/GoogleCalendarIcon.svelte +41 -0
  392. package/package/components/icons/GoogleCalendarIcon.svelte.d.ts +7 -0
  393. package/package/components/icons/GoogleDriveIcon.svelte +30 -0
  394. package/package/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
  395. package/package/components/icons/GoogleIcon.svelte +15 -6
  396. package/package/components/icons/GoogleIcon.svelte.d.ts +5 -2
  397. package/package/components/icons/MSSqlServerIcon.svelte +111 -47
  398. package/package/components/instanceSettings/IndexerJobIndexSettings.svelte +94 -0
  399. package/package/components/instanceSettings/IndexerJobIndexSettings.svelte.d.ts +9 -0
  400. package/package/components/instanceSettings/IndexerLogIndexSettings.svelte +67 -0
  401. package/package/components/instanceSettings/IndexerLogIndexSettings.svelte.d.ts +9 -0
  402. package/package/components/instanceSettings/IndexerMemorySettings.svelte +109 -0
  403. package/package/components/instanceSettings/IndexerMemorySettings.svelte.d.ts +9 -0
  404. package/package/components/instanceSettings/SecretBackendConfig.svelte +15 -16
  405. package/package/components/instanceSettings/SettingCard.svelte +47 -0
  406. package/package/components/instanceSettings/SettingCard.svelte.d.ts +19 -0
  407. package/package/components/instanceSettings/SettingsSearchInput.svelte +66 -0
  408. package/package/components/instanceSettings/SettingsSearchInput.svelte.d.ts +9 -0
  409. package/package/components/instanceSettings.d.ts +52 -0
  410. package/package/components/instanceSettings.js +413 -69
  411. package/package/components/meltComponents/MenuItem.svelte +1 -0
  412. package/package/components/meltComponents/Popover.svelte +10 -1
  413. package/package/components/meltComponents/Popover.svelte.d.ts +2 -0
  414. package/package/components/meltComponents/Tooltip.svelte +2 -1
  415. package/package/components/meltComponents/Tooltip.svelte.d.ts +1 -0
  416. package/package/components/moveRenameManager.d.ts +21 -0
  417. package/package/components/moveRenameManager.js +61 -0
  418. package/package/components/progressBar/ProgressBar.svelte +69 -27
  419. package/package/components/progressBar/ProgressBar.svelte.d.ts +7 -0
  420. package/package/components/prop_picker.d.ts +0 -3
  421. package/package/components/propertyPicker/PropPicker.svelte +34 -49
  422. package/package/components/propertyPicker/PropPicker.svelte.d.ts +12 -11
  423. package/package/components/raw_apps/FileTreeNode.svelte +1 -0
  424. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +3 -2
  425. package/package/components/raw_apps/RawAppEditor.svelte +20 -16
  426. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +4 -4
  427. package/package/components/raw_apps/RawAppEditorHeader.svelte +73 -7
  428. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -1
  429. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +1 -2
  430. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +41 -1
  431. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +0 -1
  432. package/package/components/raw_apps/RawAppSidebar.svelte +32 -284
  433. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -1
  434. package/package/components/raw_apps/RunnableRow.svelte +88 -34
  435. package/package/components/raw_apps/RunnableRow.svelte.d.ts +4 -0
  436. package/package/components/resources/resourcesFilter.d.ts +70 -0
  437. package/package/components/resources/resourcesFilter.js +61 -0
  438. package/package/components/runs/BatchReRunOptionsPane.svelte +130 -121
  439. package/package/components/runs/BatchReRunOptionsPane.svelte.d.ts +3 -2
  440. package/package/components/runs/FlowExecutionStatus.svelte +30 -0
  441. package/package/components/runs/FlowExecutionStatus.svelte.d.ts +15 -0
  442. package/package/components/runs/JobDetailFieldConfig.d.ts +47 -0
  443. package/package/components/runs/JobDetailFieldConfig.js +433 -0
  444. package/package/components/runs/JobDetailHeader.svelte +551 -0
  445. package/package/components/runs/JobDetailHeader.svelte.d.ts +17 -0
  446. package/package/components/runs/JobRunsPreview.svelte +174 -218
  447. package/package/components/runs/JobRunsPreview.svelte.d.ts +0 -1
  448. package/package/components/runs/JobStatusIcon.svelte +47 -0
  449. package/package/components/runs/JobStatusIcon.svelte.d.ts +9 -0
  450. package/package/components/runs/RunBadges.svelte +39 -34
  451. package/package/components/runs/RunBadges.svelte.d.ts +2 -1
  452. package/package/components/runs/RunRow.svelte +24 -64
  453. package/package/components/runs/RunRow.svelte.d.ts +1 -2
  454. package/package/components/runs/RunsTable.svelte +312 -131
  455. package/package/components/runs/RunsTable.svelte.d.ts +4 -3
  456. package/package/components/runs/TimeframeSelect.svelte +189 -0
  457. package/package/components/runs/TimeframeSelect.svelte.d.ts +44 -0
  458. package/package/components/runs/runsFilter.d.ts +201 -0
  459. package/package/components/runs/runsFilter.js +182 -0
  460. package/package/components/runs/useJobsLoader.svelte.d.ts +5 -7
  461. package/package/components/runs/useJobsLoader.svelte.js +27 -30
  462. package/package/components/schedules/schedulesFilter.d.ts +65 -0
  463. package/package/components/schedules/schedulesFilter.js +60 -0
  464. package/package/components/schema/EditableSchemaWrapper.svelte +43 -22
  465. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -1
  466. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  467. package/package/components/schema/PropertyEditor.svelte +1 -0
  468. package/package/components/schema/RunningJobSchemaPicker.svelte +1 -1
  469. package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
  470. package/package/components/scripts/CreateActionsScript.svelte +0 -1
  471. package/package/components/search/GlobalSearchModal.svelte +1 -8
  472. package/package/components/select/GenericDropdown.svelte +113 -0
  473. package/package/components/select/GenericDropdown.svelte.d.ts +37 -0
  474. package/package/components/select/Select.svelte +17 -4
  475. package/package/components/select/Select.svelte.d.ts +2 -1
  476. package/package/components/select/SelectDropdown.svelte +76 -155
  477. package/package/components/select/SelectDropdown.svelte.d.ts +4 -1
  478. package/package/components/settings/ChangeWorkspaceColor.svelte +7 -8
  479. package/package/components/settings/ChangeWorkspaceId.svelte +4 -6
  480. package/package/components/settings/ChangeWorkspaceName.svelte +6 -8
  481. package/package/components/settings/PremiumInfo.svelte +268 -128
  482. package/package/components/settings/SettingsPageHeader.svelte +22 -0
  483. package/package/components/settings/SettingsPageHeader.svelte.d.ts +10 -0
  484. package/package/components/settings/WorkspaceUserSettings.svelte +13 -23
  485. package/package/components/sidebar/CriticalAlertModalInner.svelte +28 -22
  486. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +5 -20
  487. package/package/components/sidebar/DarkModeToggle.svelte +2 -2
  488. package/package/components/sidebar/FavoriteMenu.svelte +101 -20
  489. package/package/components/sidebar/FavoriteMenu.svelte.d.ts +29 -1
  490. package/package/components/sidebar/MenuButton.svelte +10 -7
  491. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  492. package/package/components/sidebar/MenuLink.svelte +4 -3
  493. package/package/components/sidebar/OperatorMenu.svelte +3 -1
  494. package/package/components/sidebar/OperatorMenu.svelte.d.ts +6 -1
  495. package/package/components/sidebar/SidebarContent.svelte +3 -3
  496. package/package/components/sidebar/WorkspaceMenu.svelte +3 -2
  497. package/package/components/table/AutoDataTable.svelte +2 -2
  498. package/package/components/toast.js +1 -2
  499. package/package/components/triggers/AddTriggersButton.svelte +11 -0
  500. package/package/components/triggers/TriggerFilters.svelte +71 -0
  501. package/package/components/triggers/TriggerFilters.svelte.d.ts +10 -0
  502. package/package/components/triggers/TriggersEditor.svelte +31 -11
  503. package/package/components/triggers/TriggersWrapper.svelte +10 -0
  504. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  505. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +7 -0
  506. package/package/components/triggers/kafka/utils.js +1 -0
  507. package/package/components/triggers/native/NativeTriggerEditor.svelte +22 -17
  508. package/package/components/triggers/native/NativeTriggerTable.svelte +16 -0
  509. package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte +112 -0
  510. package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte.d.ts +8 -0
  511. package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte +323 -0
  512. package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte.d.ts +8 -0
  513. package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte +116 -0
  514. package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte.d.ts +12 -0
  515. package/package/components/triggers/native/utils.d.ts +0 -1
  516. package/package/components/triggers/native/utils.js +15 -1
  517. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +3 -3
  518. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  519. package/package/components/triggers/triggers.svelte.js +11 -3
  520. package/package/components/triggers/utils.js +33 -6
  521. package/package/components/triggers/websocket/WebsocketEditorConfigSection.svelte +1 -1
  522. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +3 -81
  523. package/package/components/triggers.d.ts +1 -1
  524. package/package/components/variables/variablesFilter.d.ts +56 -0
  525. package/package/components/variables/variablesFilter.js +51 -0
  526. package/package/components/waitJob.d.ts +1 -1
  527. package/package/components/waitJob.js +3 -2
  528. package/package/components/worker_group.d.ts +2 -0
  529. package/package/components/worker_group.js +15 -0
  530. package/package/components/workspaceSettings/AISettings.svelte +36 -42
  531. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -0
  532. package/package/components/workspaceSettings/CreateWorkspace.svelte +4 -4
  533. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +1 -2
  534. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -16
  535. package/package/components/workspaceSettings/DataTableSettings.svelte.d.ts +1 -0
  536. package/package/components/workspaceSettings/DucklakeSettings.svelte +21 -15
  537. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -0
  538. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +24 -66
  539. package/package/components/workspaceSettings/ModelTokenLimits.svelte +6 -10
  540. package/package/components/workspaceSettings/OAuthClientConfig.svelte +46 -75
  541. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +8 -1
  542. package/package/components/workspaceSettings/RulesetEditor.svelte +280 -0
  543. package/package/components/workspaceSettings/RulesetEditor.svelte.d.ts +9 -0
  544. package/package/components/workspaceSettings/SettingsFooter.svelte +35 -0
  545. package/package/components/workspaceSettings/SettingsFooter.svelte.d.ts +12 -0
  546. package/package/components/workspaceSettings/StorageSettings.svelte +48 -34
  547. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  548. package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte +66 -27
  549. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +237 -73
  550. package/package/components/workspaceSettings/WorkspaceRulesets.svelte +183 -0
  551. package/package/components/workspaceSettings/WorkspaceRulesets.svelte.d.ts +3 -0
  552. package/package/editorLangUtils.d.ts +1 -1
  553. package/package/gen/core/OpenAPI.js +1 -1
  554. package/package/gen/schemas.gen.d.ts +996 -70
  555. package/package/gen/schemas.gen.js +1352 -378
  556. package/package/gen/services.gen.d.ts +156 -41
  557. package/package/gen/services.gen.js +319 -83
  558. package/package/gen/types.gen.d.ts +1896 -317
  559. package/package/hub.d.ts +1 -0
  560. package/package/hub.js +7 -0
  561. package/package/hubPaths.json +2 -1
  562. package/package/infer.d.ts +2 -0
  563. package/package/mcpEndpointTools.d.ts +3 -0
  564. package/package/mcpEndpointTools.js +574 -147
  565. package/package/rawAppWmillTs.js +12 -11
  566. package/package/scripts.d.ts +1 -1
  567. package/package/scripts.js +1 -1
  568. package/package/storeUtils.js +8 -0
  569. package/package/stores.d.ts +1 -1
  570. package/package/stores.js +4 -2
  571. package/package/svelte5Utils.svelte.d.ts +40 -0
  572. package/package/svelte5Utils.svelte.js +158 -0
  573. package/package/svelte5UtilsKit.svelte.d.ts +13 -3
  574. package/package/svelte5UtilsKit.svelte.js +96 -20
  575. package/package/system_prompts/prompts.d.ts +5 -5
  576. package/package/system_prompts/prompts.js +94 -21
  577. package/package/toast.d.ts +5 -1
  578. package/package/toast.js +14 -5
  579. package/package/utils.js +214 -7
  580. package/package/utils_deployable.d.ts +25 -25
  581. package/package/utils_deployable.js +2 -1
  582. package/package/validators/workspaceSettings.d.ts +12 -0
  583. package/package/validators/workspaceSettings.js +72 -0
  584. package/package/workspaceProtectionRules.svelte.d.ts +73 -0
  585. package/package/workspaceProtectionRules.svelte.js +176 -0
  586. package/package.json +8 -5
  587. package/package/components/DropdownSelect.svelte +0 -26
  588. package/package/components/DropdownSelect.svelte.d.ts +0 -11
  589. package/package/components/FlowPreviewResult.svelte +0 -84
  590. package/package/components/FlowPreviewResult.svelte.d.ts +0 -20
  591. package/package/components/copilot/chat/context.d.ts +0 -119
  592. package/package/components/flows/propPicker/FlowPropPicker.svelte +0 -72
  593. package/package/components/flows/propPicker/FlowPropPicker.svelte.d.ts +0 -23
  594. package/package/components/runs/ManuelDatePicker.svelte +0 -96
  595. package/package/components/runs/ManuelDatePicker.svelte.d.ts +0 -35
  596. package/package/components/runs/RunsBatchActionsDropdown.svelte +0 -82
  597. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +0 -15
  598. package/package/components/runs/RunsFilter.svelte +0 -966
  599. package/package/components/runs/RunsFilter.svelte.d.ts +0 -80
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">import { base } from '../../base';
2
2
  import { goto } from '../../navigation';
3
- import { displayDate, truncateHash, truncateRev, isScriptPreview, isJobSelectable, msToReadableTime, isFlowPreview, getJobKindIcon } from '../../utils';
4
- import { Badge, Button } from '../common';
3
+ import { displayDate, truncateHash, truncateRev, isScriptPreview, msToReadableTime, isFlowPreview, getJobKindIcon } from '../../utils';
4
+ import { Button } from '../common';
5
5
  import ScheduleEditor from '../triggers/schedules/ScheduleEditor.svelte';
6
- import { Calendar, Check, Clock, ExternalLink, FastForward, Hourglass, ListFilterPlus, Play, ShieldQuestion, X } from 'lucide-svelte';
6
+ import JobStatusIcon from './JobStatusIcon.svelte';
7
+ import { Calendar, Clock, ExternalLink, ListFilterPlus } from 'lucide-svelte';
7
8
  import { createEventDispatcher } from 'svelte';
8
9
  import TimeAgo from '../TimeAgo.svelte';
9
10
  import { forLater } from '../../forLater';
@@ -15,7 +16,7 @@ import { Tooltip } from '../meltComponents';
15
16
  import RunLabels from './RunLabels.svelte';
16
17
  import './runs-grid.css';
17
18
  const dispatch = createEventDispatcher();
18
- let { job, selected = false, containerWidth = 0, containsLabel = false, showTag = true, activeLabel, selectionMode = false } = $props();
19
+ let { job, selected = false, containerWidth = 0, containsLabel = false, showTag = true, activeLabel, manualSelectionMode } = $props();
19
20
  let scheduleEditor = $state(undefined);
20
21
  let isExternal = $derived(job && job.id === '-');
21
22
  let labelWidth = $state(0);
@@ -29,75 +30,34 @@ let isJobRecent = $state(true);
29
30
  <!-- svelte-ignore a11y_no_static_element_interactions -->
30
31
  <div
31
32
  class={twMerge(
32
- 'hover:bg-surface-hover cursor-pointer',
33
- selected ? 'bg-surface-accent-selected' : '',
33
+ 'cursor-pointer',
34
+ selected ? 'bg-surface-accent-selected' : 'hover:bg-surface-hover',
34
35
  'grid items-center h-full'
35
36
  )}
36
- class:grid-runs-table={!containsLabel && !selectionMode && showTag}
37
- class:grid-runs-table-with-labels={containsLabel && !selectionMode && showTag}
38
- class:grid-runs-table-selection={!containsLabel && selectionMode && showTag}
39
- class:grid-runs-table-with-labels-selection={containsLabel && selectionMode && showTag}
40
- class:grid-runs-table-no-tag={!containsLabel && !selectionMode && !showTag}
41
- class:grid-runs-table-with-labels-no-tag={containsLabel && !selectionMode && !showTag}
42
- class:grid-runs-table-selection-no-tag={!containsLabel && selectionMode && !showTag}
43
- class:grid-runs-table-with-labels-selection-no-tag={containsLabel && selectionMode && !showTag}
37
+ class:grid-runs-table={!containsLabel && !manualSelectionMode && showTag}
38
+ class:grid-runs-table-with-labels={containsLabel && !manualSelectionMode && showTag}
39
+ class:grid-runs-table-selection={!containsLabel && manualSelectionMode && showTag}
40
+ class:grid-runs-table-with-labels-selection={containsLabel && manualSelectionMode && showTag}
41
+ class:grid-runs-table-no-tag={!containsLabel && !manualSelectionMode && !showTag}
42
+ class:grid-runs-table-with-labels-no-tag={containsLabel && !manualSelectionMode && !showTag}
43
+ class:grid-runs-table-selection-no-tag={!containsLabel && manualSelectionMode && !showTag}
44
+ class:grid-runs-table-with-labels-selection-no-tag={containsLabel &&
45
+ manualSelectionMode &&
46
+ !showTag}
44
47
  style="width: {containerWidth}px"
45
- onclick={() => {
46
- if (!selectionMode || isJobSelectable(selectionMode)(job)) {
47
- dispatch('select')
48
- }
49
- }}
48
+ onclick={() => dispatch('select')}
49
+ oncontextmenu={(e) => !selected && dispatch('select')}
50
50
  >
51
51
  <!-- Selection column (only when in selection mode) -->
52
- {#if selectionMode}
53
- <div class="flex items-center justify-center">
54
- <div class="w-4 h-4">
55
- <input type="checkbox" checked={selected} disabled={!isJobSelectable(selectionMode)(job)} />
56
- </div>
52
+ {#if manualSelectionMode}
53
+ <div class="w-4 h-4 ml-4 pointer-events-none">
54
+ <input type="checkbox" checked={selected} />
57
55
  </div>
58
56
  {/if}
59
57
 
60
58
  <!-- Status -->
61
- <div class="flex items-center justify-start pl-2">
62
- {#if isExternal}
63
- <Badge color="gray" baseClass="!px-1.5">
64
- <ShieldQuestion size={14} />
65
- </Badge>
66
- {:else if 'success' in job && job.success}
67
- {#if job.is_skipped}
68
- <Badge color="green" rounded>
69
- <FastForward size={14} />
70
- </Badge>
71
- {:else}
72
- <Badge color="green" baseClass="!px-1.5">
73
- <Check size={14} />
74
- </Badge>
75
- {/if}
76
- {:else if 'success' in job}
77
- <Badge color="red" baseClass="!px-1.5">
78
- <X size={14} />
79
- </Badge>
80
- {:else if 'running' in job && job.running && job.suspend}
81
- <Badge color="violet" baseClass="!px-1.5" title="Suspended">
82
- <Hourglass size={14} />
83
- </Badge>
84
- {:else if 'running' in job && job.running}
85
- <Badge color="yellow" baseClass="!px-1.5">
86
- <Play size={14} />
87
- </Badge>
88
- {:else if job && 'running' in job && job.scheduled_for && forLater(job.scheduled_for)}
89
- <Badge color="blue" baseClass="!px-1.5">
90
- <Calendar size={14} />
91
- </Badge>
92
- {:else if job.canceled}
93
- <Badge color="red" baseClass="!px-1.5">
94
- <Hourglass size={14} />
95
- </Badge>
96
- {:else}
97
- <Badge baseClass="!px-1.5">
98
- <Hourglass size={14} />
99
- </Badge>
100
- {/if}
59
+ <div class="flex items-center justify-start pl-4">
60
+ <JobStatusIcon {job} {isExternal} />
101
61
  </div>
102
62
 
103
63
  <!-- Job time -->
@@ -1,5 +1,4 @@
1
1
  import type { Job } from '../../gen';
2
- import { type RunsSelectionMode } from '../../utils';
3
2
  import './runs-grid.css';
4
3
  interface Props {
5
4
  job: Job;
@@ -8,7 +7,7 @@ interface Props {
8
7
  containsLabel?: boolean;
9
8
  showTag?: boolean;
10
9
  activeLabel: string | null;
11
- selectionMode?: RunsSelectionMode | false;
10
+ manualSelectionMode?: undefined | 'cancel' | 'rerun';
12
11
  }
13
12
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
14
13
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -1,12 +1,50 @@
1
1
  <script lang="ts">import RunRow from './RunRow.svelte';
2
2
  import VirtualList from '@tutorlatin/svelte-tiny-virtual-list';
3
- import { createEventDispatcher, onMount } from 'svelte';
3
+ import { createEventDispatcher } from 'svelte';
4
4
  import Tooltip from '../Tooltip.svelte';
5
- import { AlertTriangle } from 'lucide-svelte';
5
+ import { AlertTriangle, CircleXIcon, Code2Icon, ExternalLinkIcon, RefreshCwIcon } from 'lucide-svelte';
6
6
  import Popover from '../Popover.svelte';
7
7
  import { workspaceStore } from '../../stores';
8
8
  import './runs-grid.css';
9
- let { jobs = undefined, externalJobs = [], omittedObscuredJobs, showExternalJobs = false, selectionMode = false, selectedIds = $bindable([]), selectedWorkspace = $bindable(undefined), activeLabel = null, lastFetchWentToEnd = false, perPage = 1000 } = $props();
9
+ import { useKeyPressed } from '../../svelte5Utils.svelte';
10
+ import { twMerge } from 'tailwind-merge';
11
+ import RightClickPopover from '../RightClickPopover.svelte';
12
+ import DropdownMenu, {} from '../DropdownMenu.svelte';
13
+ import { clickOutside, isJobCancelable, isJobReRunnable } from '../../utils';
14
+ import { goto } from '../../navigation';
15
+ import BarsStaggered from '../icons/BarsStaggered.svelte';
16
+ let { jobs = undefined, externalJobs = [], omittedObscuredJobs, showExternalJobs = false, selectedIds = $bindable([]), selectedWorkspace = $bindable(undefined), activeLabel = null, lastFetchWentToEnd = false, perPage = 1000, manualSelectionMode, onCancelJobs, batchRerunOptionsIsOpen = $bindable() } = $props();
17
+ let hasClickFocus = $state(false);
18
+ const keysPressed = useKeyPressed(['Shift', 'Control', 'Meta', 'A', 'ArrowDown', 'ArrowUp'], {
19
+ onKeyDown(key, e) {
20
+ if (!hasClickFocus)
21
+ return;
22
+ if (key === 'A' && (keysPressed.Control || keysPressed.Meta)) {
23
+ if (batchRerunOptionsIsOpen)
24
+ return;
25
+ e.preventDefault();
26
+ e.stopPropagation();
27
+ selectedIds = flatJobs
28
+ ? flatJobs
29
+ .filter((jobOrDate) => jobOrDate.type === 'job')
30
+ .map((jobOrDate) => jobOrDate.job.id)
31
+ : [];
32
+ }
33
+ else if ((key === 'ArrowDown' || key === 'ArrowUp') && selectedIds.length === 1) {
34
+ const idx = flatJobs?.findIndex((jobOrDate) => jobOrDate.type === 'job' && jobOrDate.job.id === selectedIds[0]);
35
+ if (idx == undefined)
36
+ return;
37
+ let nextJob = flatJobs?.[idx + (key === 'ArrowDown' ? 1 : -1)];
38
+ if (nextJob?.type === 'date')
39
+ nextJob = flatJobs?.[idx + (key === 'ArrowDown' ? 2 : -2)];
40
+ if (nextJob?.type !== 'job')
41
+ return;
42
+ selectedIds = [nextJob.job.id];
43
+ e.preventDefault();
44
+ }
45
+ }
46
+ });
47
+ let rightClickPopover = $state(undefined);
10
48
  function getTime(job) {
11
49
  return job['completed_at'] ?? job['started_at'] ?? job['scheduled_for'] ?? job['created_at'];
12
50
  }
@@ -60,7 +98,6 @@ function flattenJobs(groupedJobs) {
60
98
  return flatJobs;
61
99
  }
62
100
  let tableHeight = $state(0);
63
- let headerHeight = $state(0);
64
101
  let containerWidth = $state(0);
65
102
  // const MAX_ITEMS = perPage
66
103
  /*
@@ -78,20 +115,17 @@ function infiniteHandler({ detail: { loaded, error, complete } }) {
78
115
  }
79
116
  }
80
117
  */
81
- function jobCountString(jobCount, lastFetchWentToEnd) {
118
+ function jobCountString(jobCount, lastFetchWentToEnd, hideLabel) {
82
119
  if (jobCount === undefined) {
83
120
  return '';
84
121
  }
85
122
  const jc = jobCount;
86
123
  const isTruncated = jc >= perPage && !lastFetchWentToEnd;
87
- return `${jc}${isTruncated ? '+' : ''} job${jc != 1 ? 's' : ''}`;
124
+ if (hideLabel)
125
+ return `${jc}${isTruncated ? '+' : ''}`;
126
+ else
127
+ return `${jc}${isTruncated ? '+' : ''} job${jc != 1 ? 's' : ''}`;
88
128
  }
89
- function computeHeight() {
90
- tableHeight = document.querySelector('#runs-table-wrapper').parentElement?.clientHeight ?? 0;
91
- }
92
- onMount(() => {
93
- computeHeight();
94
- });
95
129
  const dispatch = createEventDispatcher();
96
130
  let scrollToIndex = $state(0);
97
131
  export function scrollToRun(ids) {
@@ -125,34 +159,120 @@ let stickyIndices = $derived.by(() => {
125
159
  }
126
160
  return nstickyIndices;
127
161
  });
128
- const showTag = $derived(containerWidth > 700);
162
+ let showTag = $derived(containerWidth > 700);
163
+ let selectedIdsPossibleActions = $derived.by(() => {
164
+ const cancellableJobIds = [];
165
+ const rerunnableJobIds = [];
166
+ for (const jobId of selectedIds) {
167
+ const job = flatJobs?.find((jobOrDate) => jobOrDate.type === 'job' && jobOrDate.job.id === jobId);
168
+ if (job?.type === 'job') {
169
+ if (isJobCancelable(job.job))
170
+ cancellableJobIds.push(job.job.id);
171
+ if (isJobReRunnable(job.job))
172
+ rerunnableJobIds.push(job.job.id);
173
+ }
174
+ }
175
+ return { cancellableJobIds, rerunnableJobIds };
176
+ });
177
+ let hoveredDropdownAction = $state(null);
178
+ let dropdownActions = $derived.by(() => {
179
+ let rerunnable = selectedIdsPossibleActions.rerunnableJobIds.length;
180
+ let cancellable = selectedIdsPossibleActions.cancellableJobIds.length;
181
+ const actions = [];
182
+ if (selectedIds.length === 1) {
183
+ actions.push({
184
+ label: 'Show run details',
185
+ icon: ExternalLinkIcon,
186
+ onClick: () => goto(`/run/${selectedIds[0]}`)
187
+ });
188
+ const job = flatJobs?.find((jobOrDate) => jobOrDate.type === 'job' && jobOrDate.job.id === selectedIds[0]);
189
+ if (job?.type === 'job') {
190
+ if (job.job.job_kind === 'script') {
191
+ actions.push({
192
+ label: 'Go to script page',
193
+ icon: Code2Icon,
194
+ onClick: () => goto(`/scripts/get/${job.job.script_hash}`)
195
+ });
196
+ }
197
+ if (job.job.job_kind === 'flow') {
198
+ actions.push({
199
+ label: 'Go to flow page',
200
+ icon: BarsStaggered,
201
+ onClick: () => goto(`/flows/get/${job.job.script_path}`)
202
+ });
203
+ }
204
+ }
205
+ }
206
+ if (rerunnable)
207
+ actions.push({
208
+ label: 'Run again',
209
+ icon: RefreshCwIcon,
210
+ right: selectedIds.length >= 2 ? `${rerunnable}` : undefined,
211
+ onClick: () => {
212
+ selectedIds = selectedIdsPossibleActions.rerunnableJobIds;
213
+ batchRerunOptionsIsOpen = true;
214
+ },
215
+ onHover: (hover) => (hoveredDropdownAction = hover ? 'rerun' : null)
216
+ });
217
+ if (cancellable)
218
+ actions.push({
219
+ label: 'Cancel',
220
+ icon: CircleXIcon,
221
+ right: selectedIds.length >= 2 ? `${cancellable}` : undefined,
222
+ onClick: () => onCancelJobs?.(selectedIdsPossibleActions.cancellableJobIds),
223
+ onHover: (hover) => (hoveredDropdownAction = hover ? 'cancel' : null)
224
+ });
225
+ return actions;
226
+ });
227
+ function jobIsSelectable(job) {
228
+ if ((rightClickPopover?.isOpen() && hoveredDropdownAction === 'cancel') ||
229
+ manualSelectionMode === 'cancel')
230
+ return isJobCancelable(job);
231
+ if ((rightClickPopover?.isOpen() && hoveredDropdownAction === 'rerun') ||
232
+ manualSelectionMode === 'rerun' ||
233
+ batchRerunOptionsIsOpen)
234
+ return isJobReRunnable(job);
235
+ return true;
236
+ }
237
+ let selectableJobs = $derived(jobs?.filter(jobIsSelectable) ?? []);
129
238
  </script>
130
239
 
131
- <svelte:window onresize={() => computeHeight()} />
132
-
240
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
241
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
133
242
  <div
134
- class="divide-y h-full border min-w-[650px]"
243
+ class="divide-y h-full flex flex-col min-w-[650px]"
135
244
  id="runs-table-wrapper"
245
+ onclick={() => (hasClickFocus = true)}
246
+ use:clickOutside={{ onClickOutside: () => (hasClickFocus = false) }}
136
247
  bind:clientWidth={containerWidth}
137
248
  >
138
- <div bind:clientHeight={headerHeight}>
249
+ <div>
139
250
  <div
140
- class="grid bg-surface-secondary sticky top-0 w-full py-2 pr-4"
141
- class:grid-runs-table={!containsLabel && !selectionMode && showTag}
142
- class:grid-runs-table-with-labels={containsLabel && !selectionMode && showTag}
143
- class:grid-runs-table-selection={!containsLabel && selectionMode && showTag}
144
- class:grid-runs-table-with-labels-selection={containsLabel && selectionMode && showTag}
145
- class:grid-runs-table-no-tag={!containsLabel && !selectionMode && !showTag}
146
- class:grid-runs-table-with-labels-no-tag={containsLabel && !selectionMode && !showTag}
147
- class:grid-runs-table-selection-no-tag={!containsLabel && selectionMode && !showTag}
251
+ class="grid sticky top-0 w-full min-h-6 my-2 pr-4 items-end"
252
+ class:grid-runs-table={!containsLabel && !manualSelectionMode && showTag}
253
+ class:grid-runs-table-with-labels={containsLabel && !manualSelectionMode && showTag}
254
+ class:grid-runs-table-selection={!containsLabel && manualSelectionMode && showTag}
255
+ class:grid-runs-table-with-labels-selection={containsLabel && manualSelectionMode && showTag}
256
+ class:grid-runs-table-no-tag={!containsLabel && !manualSelectionMode && !showTag}
257
+ class:grid-runs-table-with-labels-no-tag={containsLabel && !manualSelectionMode && !showTag}
258
+ class:grid-runs-table-selection-no-tag={!containsLabel && manualSelectionMode && !showTag}
148
259
  class:grid-runs-table-with-labels-selection-no-tag={containsLabel &&
149
- selectionMode &&
260
+ manualSelectionMode &&
150
261
  !showTag}
151
262
  >
152
- {#if selectionMode}
153
- <div class="text-xs font-semibold pl-4"></div>
263
+ {#if manualSelectionMode}
264
+ {@const allSelected = selectedIds.length === selectableJobs?.length}
265
+ <div class="w-4 h-4 ml-4">
266
+ <input
267
+ type="checkbox"
268
+ bind:checked={
269
+ () => allSelected,
270
+ () => (selectedIds = allSelected ? [] : (selectableJobs.map((j) => j.id) ?? []))
271
+ }
272
+ />
273
+ </div>
154
274
  {/if}
155
- <div class="text-2xs px-2 flex flex-row items-center gap-2">
275
+ <div class="text-2xs px-4 flex flex-row items-center gap-2 leading-3">
156
276
  {#if showExternalJobs && externalJobs.length > 0}
157
277
  <div class="flex flex-row">
158
278
  {jobs
@@ -171,125 +291,186 @@ const showTag = $derived(containerWidth > 700);
171
291
  </Popover>
172
292
  </div>
173
293
  {:else}
174
- {jobs ? jobCountString(jobs.length, lastFetchWentToEnd) : ''}
294
+ {@const jobCount = jobs
295
+ ? jobCountString(jobs.length, lastFetchWentToEnd, selectedIds.length >= 2)
296
+ : ''}
297
+ {selectedIds.length >= 2 ? `${selectedIds.length}/` : ''}<wbr />
298
+ {jobCount}
175
299
  {/if}
176
300
  </div>
177
- <div class="text-xs font-semibold">Started</div>
178
- <div class="text-xs font-semibold">Duration</div>
179
- <div class="text-xs font-semibold">Path</div>
301
+ <div class="text-xs font-semibold leading-3">Started</div>
302
+ <div class="text-xs font-semibold leading-3">Duration</div>
303
+ <div class="text-xs font-semibold leading-3">Path</div>
180
304
  {#if containsLabel}
181
- <div class="text-xs font-semibold">Label</div>
305
+ <div class="text-xs font-semibold leading-3">Label</div>
182
306
  {/if}
183
- <div class="text-xs font-semibold">Triggered by</div>
307
+ <div class="text-xs font-semibold leading-3">Triggered by</div>
184
308
  {#if showTag}
185
- <div class="text-xs font-semibold">Tag</div>
309
+ <div class="text-xs font-semibold leading-3">Tag</div>
186
310
  {/if}
187
- <div class=""></div>
311
+ <div> </div>
188
312
  </div>
189
313
  </div>
190
- {#if jobs?.length == 0 && (!showExternalJobs || externalJobs?.length == 0)}
191
- <div class="text-xs text-secondary p-8"> No jobs found for the selected filters. </div>
192
- {:else}
193
- <VirtualList
194
- width="100%"
195
- height={tableHeight - headerHeight}
196
- itemCount={flatJobs?.length ?? 3}
197
- itemSize={42}
198
- overscanCount={20}
199
- {stickyIndices}
200
- {scrollToIndex}
201
- scrollToAlignment="center"
202
- >
203
- {#snippet header()}{/snippet}
204
- {#snippet item({ index, style })}
205
- <div {style} class="w-full">
206
- {#if flatJobs}
207
- {@const jobOrDate = flatJobs[index]}
208
-
209
- {#if jobOrDate}
210
- {#if jobOrDate?.type === 'date'}
211
- <div
212
- class="bg-surface-secondary py-2 font-semibold text-xs pl-2 h-[42px] flex items-center"
213
- >
214
- {jobOrDate.date}
215
- </div>
314
+ <div
315
+ bind:clientHeight={tableHeight}
316
+ class="relative flex-1 border rounded-t-md overflow-clip bg-surface-tertiary [&>.virtual-list-wrapper::-webkit-scrollbar-track]:bg-surface-tertiary"
317
+ >
318
+ {#if jobs?.length == 0 && (!showExternalJobs || externalJobs?.length == 0)}
319
+ <div class="text-xs text-secondary p-8"> No jobs found for the selected filters. </div>
320
+ {:else}
321
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
322
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
323
+ <div
324
+ class="absolute inset-0 -mt-3"
325
+ oncontextmenu={(e) => {
326
+ e.preventDefault()
327
+ rightClickPopover?.open(e)
328
+ }}
329
+ >
330
+ <VirtualList
331
+ width="100%"
332
+ height={tableHeight}
333
+ itemCount={flatJobs?.length ?? 3}
334
+ itemSize={42}
335
+ overscanCount={20}
336
+ {stickyIndices}
337
+ {scrollToIndex}
338
+ scrollToAlignment="center"
339
+ >
340
+ {#snippet header()}{/snippet}
341
+ {#snippet item({ index, style })}
342
+ <div {style} class="w-full bg-surface-tertiary">
343
+ {#if flatJobs}
344
+ {@const jobOrDate = flatJobs[index]}
345
+ {#if jobOrDate}
346
+ {#if jobOrDate?.type === 'date'}
347
+ <div
348
+ class={twMerge(
349
+ 'border-b py-1.5 font-semibold text-xs pl-4 h-[42px] flex items-end bg-surface-tertiary'
350
+ )}
351
+ >
352
+ {jobOrDate.date}
353
+ </div>
354
+ {:else}
355
+ {@const selected =
356
+ jobOrDate.job.id !== '-' && selectedIds.includes(jobOrDate.job.id)}
357
+ {@const nonSelectable = !jobIsSelectable(jobOrDate.job)}
358
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
359
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
360
+ <div
361
+ class={twMerge(
362
+ 'flex flex-row items-center h-full w-full select-none transition-opacity',
363
+ nonSelectable || (rightClickPopover?.isOpen() && !selected)
364
+ ? 'opacity-20'
365
+ : ''
366
+ )}
367
+ >
368
+ <RunRow
369
+ {manualSelectionMode}
370
+ {containsLabel}
371
+ {showTag}
372
+ job={jobOrDate.job}
373
+ {selected}
374
+ on:select={() => {
375
+ const jobId = jobOrDate.job.id
376
+ if (keysPressed.Shift && selectedIds.length > 0) {
377
+ if (nonSelectable) return
378
+ const lastSelectedId = selectedIds[selectedIds.length - 1]
379
+ const lastSelectedIndex = flatJobs?.findIndex(
380
+ (jobOrDate) =>
381
+ jobOrDate.type === 'job' && jobOrDate.job.id === lastSelectedId
382
+ )
383
+ if (lastSelectedIndex != undefined && flatJobs) {
384
+ const [start, end] =
385
+ index < lastSelectedIndex
386
+ ? [index, lastSelectedIndex]
387
+ : [lastSelectedIndex, index]
388
+ const newSelectedIds = flatJobs
389
+ .slice(start, end + 1)
390
+ .filter((jobOrDate) => jobOrDate.type === 'job')
391
+ .map((jobOrDate) => jobOrDate.job.id)
392
+ selectedIds = Array.from(new Set([...selectedIds, ...newSelectedIds]))
393
+ }
394
+ } else if (
395
+ keysPressed.Control ||
396
+ keysPressed.Meta ||
397
+ manualSelectionMode
398
+ ) {
399
+ if (nonSelectable) return
400
+ if (selectedIds.includes(jobOrDate.job.id)) {
401
+ selectedIds = selectedIds.filter((id) => id != jobId)
402
+ } else {
403
+ selectedIds.push(jobId)
404
+ selectedIds = selectedIds
405
+ }
406
+ } else {
407
+ if (batchRerunOptionsIsOpen) batchRerunOptionsIsOpen = false
408
+ if (
409
+ selectedIds.length !== 1 ||
410
+ selectedIds[0] !== jobOrDate.job.id ||
411
+ selectedWorkspace !== jobOrDate.job.workspace_id
412
+ ) {
413
+ selectedWorkspace = jobOrDate.job.workspace_id
414
+ selectedIds = [jobOrDate.job.id]
415
+ dispatch('select')
416
+ } else {
417
+ selectedIds = []
418
+ selectedWorkspace = undefined
419
+ dispatch('select')
420
+ }
421
+ }
422
+ }}
423
+ {activeLabel}
424
+ on:filterByLabel
425
+ on:filterByPath
426
+ on:filterByUser
427
+ on:filterByFolder
428
+ on:filterByConcurrencyKey
429
+ on:filterBySchedule
430
+ on:filterByWorker
431
+ {containerWidth}
432
+ />
433
+ </div>
434
+ {/if}
435
+ {:else}
436
+ {JSON.stringify(jobOrDate)}
437
+ {/if}
216
438
  {:else}
217
439
  <div class="flex flex-row items-center h-full w-full">
218
- <RunRow
219
- {containsLabel}
220
- {showTag}
221
- job={jobOrDate.job}
222
- selected={jobOrDate.job.id !== '-' && selectedIds.includes(jobOrDate.job.id)}
223
- {selectionMode}
224
- on:select={() => {
225
- const jobId = jobOrDate.job.id
226
- if (selectionMode) {
227
- if (selectedIds.includes(jobOrDate.job.id)) {
228
- selectedIds = selectedIds.filter((id) => id != jobId)
229
- } else {
230
- selectedIds.push(jobId)
231
- selectedIds = selectedIds
232
- }
233
- } else {
234
- if (
235
- JSON.stringify(selectedIds) !== JSON.stringify([jobOrDate.job.id]) ||
236
- selectedWorkspace !== jobOrDate.job.workspace_id
237
- ) {
238
- selectedWorkspace = jobOrDate.job.workspace_id
239
- selectedIds = [jobOrDate.job.id]
240
- dispatch('select')
241
- } else {
242
- selectedIds = []
243
- selectedWorkspace = undefined
244
- dispatch('select')
245
- }
246
- }
247
- }}
248
- {activeLabel}
249
- on:filterByLabel
250
- on:filterByPath
251
- on:filterByUser
252
- on:filterByFolder
253
- on:filterByConcurrencyKey
254
- on:filterBySchedule
255
- on:filterByWorker
256
- {containerWidth}
257
- />
440
+ <div class="w-1/12 text-2xs">...</div>
441
+ <div class="w-4/12 text-xs">...</div>
442
+ <div class="w-4/12 text-xs">...</div>
443
+ <div class="w-3/12 text-xs">...</div>
258
444
  </div>
259
445
  {/if}
260
- {:else}
261
- {JSON.stringify(jobOrDate)}
262
- {/if}
263
- {:else}
264
- <div class="flex flex-row items-center h-full w-full">
265
- <div class="w-1/12 text-2xs">...</div>
266
- <div class="w-4/12 text-xs">...</div>
267
- <div class="w-4/12 text-xs">...</div>
268
- <div class="w-3/12 text-xs">...</div>
269
446
  </div>
270
- {/if}
271
- </div>
272
- {/snippet}
273
- {#snippet footer()}
274
- <div
275
- >{#if !lastFetchWentToEnd && jobs && jobs.length >= perPage}
276
- <button
277
- class="text-xs text-accent text-center w-full pb-2"
278
- onclick={() => {
279
- dispatch('loadExtra')
280
- }}
447
+ {/snippet}
448
+ {#snippet footer()}
449
+ <div
450
+ >{#if !lastFetchWentToEnd && jobs && jobs.length >= perPage}
451
+ <button
452
+ class="text-xs text-accent text-center w-full pb-2"
453
+ onclick={() => {
454
+ dispatch('loadExtra')
455
+ }}
456
+ >
457
+ Load next {perPage} jobs
458
+ </button>
459
+ {/if}</div
281
460
  >
282
- Load next {perPage} jobs
283
- </button>
284
- {/if}</div
285
- >
286
- {/snippet}
287
- </VirtualList>
288
- {/if}
461
+ {/snippet}
462
+ </VirtualList>
463
+ </div>
464
+ {/if}
465
+ </div>
289
466
  </div>
290
467
 
468
+ <RightClickPopover bind:this={rightClickPopover}>
469
+ <DropdownMenu closeCallback={() => rightClickPopover?.close()} items={dropdownActions} />
470
+ </RightClickPopover>
471
+
291
472
  <style>
292
- :global(.virtual-list-wrapper:hover::-webkit-scrollbar) {
473
+ :global(.virtual-list-wrapper::-webkit-scrollbar) {
293
474
  width: 8px !important;
294
475
  height: 8px !important;
295
476
  }</style>