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 { Alert, Button, Drawer } from './common';
3
3
  import Multiselect from 'svelte-multiselect';
4
4
  import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
5
5
  import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
6
- import { ConfigService } from '../gen';
6
+ import { ConfigService, WorkspaceService } from '../gen';
7
7
  import ConfirmationModal from './common/confirmationModal/ConfirmationModal.svelte';
8
8
  import { createEventDispatcher } from 'svelte';
9
9
  import { sendUserToast } from '../toast';
@@ -15,6 +15,7 @@ import DrawerContent from './common/drawer/DrawerContent.svelte';
15
15
  import Section from './Section.svelte';
16
16
  import Label from './Label.svelte';
17
17
  import AutoComplete from 'simple-svelte-autocomplete';
18
+ import YAML from 'yaml';
18
19
  export let name;
19
20
  export let config;
20
21
  export let activeWorkers;
@@ -62,9 +63,9 @@ const defaultTags = [
62
63
  'powershell',
63
64
  'dependency',
64
65
  'flow',
65
- 'hub',
66
66
  'other',
67
- 'bun'
67
+ 'bun',
68
+ 'php'
68
69
  ];
69
70
  const nativeTags = [
70
71
  'nativets',
@@ -99,6 +100,13 @@ $: {
99
100
  }
100
101
  }
101
102
  }
103
+ let workspaceTag = '';
104
+ export let defaultTagPerWorkspace = undefined;
105
+ let workspaces = [];
106
+ async function listWorkspaces() {
107
+ workspaces = await WorkspaceService.listWorkspacesAsSuperAdmin();
108
+ }
109
+ $: $superadmin && listWorkspaces();
102
110
  const dispatch = createEventDispatcher();
103
111
  async function deleteWorkerGroup() {
104
112
  await ConfigService.deleteConfig({ name: 'worker__' + name });
@@ -283,12 +291,21 @@ let createdTags = [];
283
291
  size="xs"
284
292
  on:click={() => {
285
293
  if (nconfig != undefined) {
286
- nconfig.worker_tags = defaultTags.concat(nativeTags)
294
+ nconfig.worker_tags = defaultTagPerWorkspace
295
+ ? defaultTags.concat(nativeTags).map((nt) => `${nt}-${workspaceTag}`)
296
+ : defaultTags.concat(nativeTags)
297
+
287
298
  dirty = true
288
299
  }
289
300
  }}
301
+ disabled={defaultTagPerWorkspace && !workspaceTag}
290
302
  >
291
- Reset to all tags <Tooltip>{defaultTags.concat(nativeTags).join(', ')}</Tooltip>
303
+ Reset to all tags <Tooltip
304
+ >{(defaultTagPerWorkspace
305
+ ? defaultTags.concat(nativeTags).map((nt) => `${nt}-${workspaceTag}`)
306
+ : defaultTags.concat(nativeTags)
307
+ ).join(', ')}</Tooltip
308
+ >
292
309
  </Button>
293
310
  <Button
294
311
  variant="contained"
@@ -296,12 +313,20 @@ let createdTags = [];
296
313
  size="xs"
297
314
  on:click={() => {
298
315
  if (nconfig != undefined) {
299
- nconfig.worker_tags = defaultTags
316
+ nconfig.worker_tags = defaultTagPerWorkspace
317
+ ? defaultTags.map((nt) => `${nt}-${workspaceTag}`)
318
+ : defaultTags
300
319
  dirty = true
301
320
  }
302
321
  }}
322
+ disabled={defaultTagPerWorkspace && !workspaceTag}
303
323
  >
304
- Reset to all tags minus native ones <Tooltip>{defaultTags.join(', ')}</Tooltip>
324
+ Reset to all tags minus native ones <Tooltip
325
+ >{(defaultTagPerWorkspace
326
+ ? defaultTags.map((nt) => `${nt}-${workspaceTag}`)
327
+ : defaultTags
328
+ ).join(', ')}</Tooltip
329
+ >
305
330
  </Button>
306
331
  <Button
307
332
  variant="contained"
@@ -309,13 +334,37 @@ let createdTags = [];
309
334
  size="xs"
310
335
  on:click={() => {
311
336
  if (nconfig != undefined) {
312
- nconfig.worker_tags = nativeTags
337
+ nconfig.worker_tags = defaultTagPerWorkspace
338
+ ? nativeTags.map((nt) => `${nt}-${workspaceTag}`)
339
+ : nativeTags
313
340
  dirty = true
314
341
  }
315
342
  }}
343
+ disabled={defaultTagPerWorkspace && !workspaceTag}
316
344
  >
317
- Reset to native tags <Tooltip>{nativeTags.join(', ')}</Tooltip>
345
+ Reset to native tags <Tooltip
346
+ >{(defaultTagPerWorkspace
347
+ ? nativeTags.map((nt) => `${nt}-${workspaceTag}`)
348
+ : nativeTags
349
+ ).join(', ')}</Tooltip
350
+ >
318
351
  </Button>
352
+
353
+ {#if defaultTagPerWorkspace}
354
+ <AutoComplete
355
+ bind:selectedItem={workspaceTag}
356
+ noInputStyles
357
+ hideArrow={true}
358
+ items={workspaces.map((w) => w.id)}
359
+ inputClassName={'flex !font-gray-600 !font-primary !bg-surface-primary ' +
360
+ (!workspaceTag ? '!border-red-600/60 !dark:border-red-400/70' : '')}
361
+ dropdownClassName="!text-sm !py-2 !rounded-sm !border-gray-200 !border !shadow-md"
362
+ className="!font-gray-600 !font-primary !bg-surface-primary"
363
+ create
364
+ onCreate={(c) => c}
365
+ placeholder="Workspace ID"
366
+ />
367
+ {/if}
319
368
  </div>
320
369
  <div class="max-w mt-2 items-center gap-1 pt-2">
321
370
  {#if nconfig?.worker_tags !== undefined && nconfig?.worker_tags.length > 0}
@@ -733,6 +782,22 @@ let createdTags = [];
733
782
  </div>
734
783
  </Button>
735
784
 
785
+ <Button
786
+ color="light"
787
+ size="xs"
788
+ on:click={() => {
789
+ navigator.clipboard.writeText(
790
+ YAML.stringify({
791
+ name,
792
+ ...config
793
+ })
794
+ )
795
+ sendUserToast('Worker config copied to clipboard as YAML')
796
+ }}
797
+ >
798
+ copy config
799
+ </Button>
800
+
736
801
  {#if config}
737
802
  <Button
738
803
  color="light"
@@ -13,6 +13,7 @@ declare const __propDef: {
13
13
  };
14
14
  activeWorkers: number;
15
15
  customTags: string[] | undefined;
16
+ defaultTagPerWorkspace?: boolean | undefined;
16
17
  };
17
18
  events: {
18
19
  reload: CustomEvent<any>;
@@ -0,0 +1,7 @@
1
+ export declare const apiTokenApps: Record<string, {
2
+ img?: string;
3
+ instructions: string[];
4
+ linkedSecret?: string;
5
+ }>;
6
+ export declare function linkedSecretValue(x: string): number;
7
+ export declare function forceSecretValue(resourceType: string): string | undefined;
@@ -0,0 +1,78 @@
1
+ export const apiTokenApps = {
2
+ airtable: {
3
+ img: '/airtable_connect.png',
4
+ instructions: [
5
+ 'Go to <a href="https://airtable.com/create/tokens" target="_blank" rel=”noopener noreferrer”>https://airtable.com/create/tokens</a>',
6
+ 'Click on "Create new token"',
7
+ 'Set a name, specify the scopes or the access level and click on "Create token"',
8
+ 'Copy the token'
9
+ ]
10
+ },
11
+ discord_webhook: {
12
+ img: '/discord_webhook.png',
13
+ instructions: ['Click on Server Settings', 'Click on Integration', 'Find "Webhooks"'],
14
+ linkedSecret: 'webhook_url'
15
+ },
16
+ toggl: {
17
+ img: '/toggl_connect.png',
18
+ instructions: [
19
+ 'Go to <a href="https://track.toggl.com/profile" target="_blank" rel=”noopener noreferrer”>https://track.toggl.com/profile</a>',
20
+ 'Find "API Token"'
21
+ ]
22
+ },
23
+ mailchimp: {
24
+ img: '/mailchimp_connect.png',
25
+ instructions: [
26
+ 'Go to <a href="https://admin.mailchimp.com/account/api" target="_blank" rel=”noopener noreferrer”>https://admin.mailchimp.com/account/api</a>',
27
+ 'Find "Your API Keys"'
28
+ ]
29
+ },
30
+ sendgrid: {
31
+ img: '/sendgrid_connect.png',
32
+ instructions: [
33
+ 'Go to <a href="https://app.sendgrid.com/settings/api_keys" target="_blank" rel=”noopener noreferrer”>https://app.sendgrid.com/settings/api_keys</a>',
34
+ 'Create an API key',
35
+ 'Copy your key'
36
+ ]
37
+ },
38
+ supabase: {
39
+ img: '/supabase_connect.png',
40
+ instructions: ['Go to the API Settings of your app to find the project URL and key']
41
+ },
42
+ square: {
43
+ img: '/square_connect.gif',
44
+ instructions: [
45
+ 'Go to <a href="https://developer.squareup.com/apps" target="_blank" rel=”noopener noreferrer”>https://developer.squareup.com/apps</a>',
46
+ 'In the left pane, choose Credentials',
47
+ 'At the top of the page, choose Production mode for a production access token or Sandbox mode for a Sandbox access token.'
48
+ ]
49
+ }
50
+ };
51
+ export function linkedSecretValue(x) {
52
+ let r = 0;
53
+ let lowerCasedX = x.toLowerCase();
54
+ if (lowerCasedX.includes('secret')) {
55
+ r += 10;
56
+ }
57
+ if (lowerCasedX.includes('password')) {
58
+ r += 5;
59
+ }
60
+ if (lowerCasedX.includes('private')) {
61
+ r += 4;
62
+ }
63
+ if (lowerCasedX.includes('key')) {
64
+ r += 3;
65
+ }
66
+ if (lowerCasedX.includes('token')) {
67
+ r += 2;
68
+ }
69
+ if (lowerCasedX.includes('pass')) {
70
+ r += 1;
71
+ }
72
+ return r;
73
+ }
74
+ export function forceSecretValue(resourceType) {
75
+ if (resourceType == 'git_repository') {
76
+ return 'url';
77
+ }
78
+ }
@@ -147,7 +147,6 @@ let css = initCss($app.css?.buttoncomponent, customCss);
147
147
  if (iterContext && listInputs) {
148
148
  listInputs.set(id, inputOutput)
149
149
  }
150
- console.log('success', r)
151
150
  }}
152
151
  refreshOnStart={resolvedConfig.triggerOnAppLoad}
153
152
  >
@@ -7,7 +7,7 @@ import ResolveStyle from '../helpers/ResolveStyle.svelte';
7
7
  import { twMerge } from 'tailwind-merge';
8
8
  import InitializeComponent from '../helpers/InitializeComponent.svelte';
9
9
  import { Alert } from '../../../common';
10
- import { AlignWrapper } from '../helpers';
10
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
11
11
  export let id;
12
12
  export let configuration;
13
13
  export let customCss = undefined;
@@ -2,8 +2,8 @@
2
2
  import { initOutput } from '../../editor/appUtils';
3
3
  import InitializeComponent from '../helpers/InitializeComponent.svelte';
4
4
  import { sendUserToast } from '../../../../toast';
5
- import { RunnableWrapper } from '../helpers';
6
5
  import { Loader2 } from 'lucide-svelte';
6
+ import RunnableWrapper from '../helpers/RunnableWrapper.svelte';
7
7
  export let id;
8
8
  export let render;
9
9
  export let componentInput;
@@ -50,10 +50,10 @@ let css = initCss($app.css?.displaycomponent, customCss);
50
50
  {/each}
51
51
 
52
52
  <RunnableWrapper {outputs} {render} {componentInput} {id} bind:initializing bind:result>
53
- <div class="flex flex-col w-full h-full">
53
+ <div class="flex flex-col w-full h-full component-wrapper">
54
54
  <div
55
55
  class={twMerge(
56
- 'w-full border-b px-2 text-xs p-1 font-semibold bg-gray-500 text-white rounded-t-sm',
56
+ 'w-full border-b p-2 text-xs font-semibold text-primary bg-surface-secondary',
57
57
  css?.header?.class,
58
58
  'wm-rich-result-header'
59
59
  )}
@@ -5,11 +5,11 @@ import { components } from '../../editor/component';
5
5
  import { initCss, transformBareBase64IfNecessary } from '../../utils';
6
6
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
7
7
  import InitializeComponent from '../helpers/InitializeComponent.svelte';
8
- import { AlignWrapper } from '../helpers';
9
8
  import { Button } from '../../../common';
10
9
  import { loadIcon } from '../icon';
11
10
  import ComponentErrorHandler from '../helpers/ComponentErrorHandler.svelte';
12
11
  import ResolveStyle from '../helpers/ResolveStyle.svelte';
12
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
13
13
  export let id;
14
14
  export let configuration;
15
15
  export let customCss = undefined;
@@ -1,13 +1,13 @@
1
1
  <script>import { getContext } from 'svelte';
2
2
  import { initConfig, initOutput } from '../../editor/appUtils';
3
3
  import { initCss } from '../../utils';
4
- import { AlignWrapper } from '../helpers';
5
4
  import { loadIcon } from '../icon';
6
5
  import InitializeComponent from '../helpers/InitializeComponent.svelte';
7
6
  import { components } from '../../editor/component';
8
7
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
9
8
  import { twMerge } from 'tailwind-merge';
10
9
  import ResolveStyle from '../helpers/ResolveStyle.svelte';
10
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
11
11
  export let id;
12
12
  export let horizontalAlignment = 'left';
13
13
  export let verticalAlignment = undefined;
@@ -44,10 +44,10 @@ $: jobId = resolvedConfig.jobId;
44
44
  {/each}
45
45
 
46
46
  <RunnableWrapper {outputs} {render} {componentInput} {id}>
47
- <div class="flex flex-col w-full h-full">
47
+ <div class="flex flex-col w-full h-full component-wrapper">
48
48
  <div
49
49
  class={twMerge(
50
- 'w-full border-b px-2 text-xs p-1 font-semibold bg-gray-500 text-white rounded-t-sm',
50
+ 'w-full border-b p-2 text-xs font-semibold text-primary bg-surface-secondary',
51
51
  css?.header?.class
52
52
  )}
53
53
  style={css?.header?.style}
@@ -53,10 +53,10 @@ $: if (resolvedConfig.jobId) {
53
53
  <TestJobLoader bind:this={testJobLoader} bind:isLoading={testIsLoading} bind:job={testJob} />
54
54
 
55
55
  <RunnableWrapper {outputs} {render} {componentInput} {id}>
56
- <div class="flex flex-col w-full h-full">
56
+ <div class="flex flex-col w-full h-full component-wrapper">
57
57
  <div
58
58
  class={twMerge(
59
- 'w-full border-b px-2 text-xs p-1 font-semibold bg-gray-500 text-white rounded-t-sm',
59
+ 'w-full border-b p-2 text-xs font-semibold text-primary bg-surface-secondary',
60
60
  css?.header?.class
61
61
  )}
62
62
  style={css?.header?.style}
@@ -65,7 +65,7 @@ $: if (resolvedConfig.jobId) {
65
65
  </div>
66
66
  <div
67
67
  style={css?.container?.style}
68
- class={twMerge('p-2 grow overflow-auto', css?.container?.class, 'wm-log-container')}
68
+ class={twMerge('grow overflow-auto', css?.container?.class, 'wm-log-container')}
69
69
  >
70
70
  <LogViewer
71
71
  jobId={testJob?.id}
@@ -159,7 +159,7 @@ function updateRegionOutput() {
159
159
  }
160
160
  }
161
161
  }
162
- function handleSyncRegion() {
162
+ async function handleSyncRegion() {
163
163
  const gridItem = findGridItem($app, id);
164
164
  if (!map || !gridItem) {
165
165
  return;
@@ -179,6 +179,7 @@ function handleSyncRegion() {
179
179
  gridItem.data.configuration.longitude.value = center[0];
180
180
  //@ts-ignore
181
181
  gridItem.data.configuration.latitude.value = center[1];
182
+ $app = $app;
182
183
  }
183
184
  }
184
185
  </script>
@@ -207,7 +208,7 @@ function handleSyncRegion() {
207
208
  {/each}
208
209
 
209
210
  {#if render}
210
- <div class="relative h-full w-full">
211
+ <div class="relative h-full w-full component-wrapper">
211
212
  <div
212
213
  on:pointermove={updateRegionOutput}
213
214
  on:wheel={updateRegionOutput}
@@ -5,12 +5,12 @@ import { components } from '../../editor/component';
5
5
  import { initCss } from '../../utils';
6
6
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
7
7
  import InitializeComponent from '../helpers/InitializeComponent.svelte';
8
- import { AlignWrapper } from '../helpers';
9
8
  import { Button } from '../../../common';
10
9
  import { loadIcon } from '../icon';
11
10
  import ResolveStyle from '../helpers/ResolveStyle.svelte';
12
11
  import Menu from '../../../common/menu/MenuV2.svelte';
13
12
  import { AppButton } from '../buttons';
13
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
14
14
  export let id;
15
15
  export let configuration;
16
16
  export let customCss = undefined;
@@ -189,17 +189,13 @@ let css = initCss($app.css?.pdfcomponent, customCss);
189
189
  <InitializeComponent {id} />
190
190
 
191
191
  {#if render}
192
- <div class="relative flex flex-col w-full h-full bg-gray-100">
192
+ <div class="relative flex flex-col w-full h-full bg-gray-100 component-wrapper">
193
193
  {#if source && zoom}
194
194
  {#if pages?.length}
195
195
  <div
196
196
  bind:clientWidth={controlsWidth}
197
197
  bind:clientHeight={controlsHeight}
198
- class="flex {$mode !== 'preview'
199
- ? 'w-[calc(100%-2px)] top-[1px]'
200
- : 'w-full top-0'} {wideView
201
- ? 'justify-center gap-14'
202
- : '!justify-between'} overflow-x-auto bg-surface border mx-auto py-1"
198
+ class="flex flex-row w-full justify-between overflow-x-auto bg-surface border-b mx-auto py-1"
203
199
  >
204
200
  <div class="flex justify-start items-center px-2 text-secondary text-sm">
205
201
  <Button
@@ -275,15 +271,11 @@ let css = initCss($app.css?.pdfcomponent, customCss);
275
271
  disabled={!doc}
276
272
  size="xs"
277
273
  color="light"
278
- variant="border"
279
274
  title="Download PDF"
280
275
  aria-label="Download PDF"
281
276
  btnClasses="!font-medium !px-2"
282
277
  >
283
- {#if wideView}
284
- <span class="mr-1"> Download </span>
285
- {/if}
286
- <Download size={16} />
278
+ <Download size={14} />
287
279
  </Button>
288
280
  </div>
289
281
  </div>
@@ -146,12 +146,17 @@ function autosize() {
146
146
  <AlignWrapper {verticalAlignment}>
147
147
  <textarea
148
148
  class={twMerge(
149
- 'whitespace-pre-wrap !outline-none !border-0 !bg-transparent !resize-none !overflow-hidden !ring-0 !p-0 text-center',
149
+ 'whitespace-pre-wrap !outline-none !border-0 !bg-transparent !resize-none !overflow-hidden !ring-0 !p-0',
150
150
  css?.text?.class,
151
151
  'wm-text',
152
152
  classes,
153
153
  getClasses(),
154
- getClassesByType()
154
+ getClassesByType(),
155
+ horizontalAlignment === 'center'
156
+ ? 'text-center'
157
+ : horizontalAlignment === 'right'
158
+ ? 'text-right'
159
+ : 'text-left'
155
160
  )}
156
161
  on:pointerdown|stopPropagation
157
162
  style={css?.text?.style}
@@ -163,15 +163,17 @@ $: resolvedDatasetsValues = resolvedDatasets?.map((d) => {
163
163
  };
164
164
  });
165
165
  $: resolvedXData && resolvedDatasets && resolvedDatasetsValues && chartInstance && updateChart();
166
- $: result && updateChartByResult();
166
+ $: result && chartInstance && updateChartByResult();
167
167
  function updateChartByResult() {
168
168
  if (!result || !chartInstance) {
169
169
  return;
170
170
  }
171
+ if (typeof result !== 'object') {
172
+ return;
173
+ }
171
174
  const options = {
172
175
  container: document.getElementById(`agchart-${id}`),
173
- data: result?.['data'],
174
- series: result?.['series']
176
+ ...result
175
177
  };
176
178
  outputs.result.set({
177
179
  data: result?.['data'],
@@ -259,6 +261,7 @@ onMount(() => {
259
261
  class={twMerge('w-full h-full', css?.container?.class, 'wm-agchart')}
260
262
  style={css?.container?.style ?? ''}
261
263
  >
264
+ <!-- {JSON.stringify(result)} -->
262
265
  <div id={`agchart-${id}`} class="h-full w-full" />
263
266
  </div>
264
267
  </RunnableWrapper>
@@ -13,13 +13,14 @@ import Portal from 'svelte-portal';
13
13
  import { sendUserToast } from '../../../../../toast';
14
14
  import DbExplorerCount from './DbExplorerCount.svelte';
15
15
  import AppAggridExplorerTable from '../table/AppAggridExplorerTable.svelte';
16
- import { RunnableWrapper } from '../../helpers';
17
16
  import InsertRowRunnable from './InsertRowRunnable.svelte';
18
17
  import DeleteRow from './DeleteRow.svelte';
19
18
  import InitializeComponent from '../../helpers/InitializeComponent.svelte';
20
19
  import { getSelectInput } from './queries/select';
21
20
  import DebouncedInput from '../../helpers/DebouncedInput.svelte';
22
21
  import { CancelablePromise } from '../../../../../gen';
22
+ import RefreshButton from '../../helpers/RefreshButton.svelte';
23
+ import RunnableWrapper from '../../helpers/RunnableWrapper.svelte';
23
24
  export let id;
24
25
  export let configuration;
25
26
  export let customCss = undefined;
@@ -61,7 +62,7 @@ function computeInput(columnDefs, whereClause, resource) {
61
62
  input = getSelectInput(resource, resolvedConfig.type.configuration[resolvedConfig.type.selected].table, columnDefs, whereClause, resolvedConfig.type.selected);
62
63
  }, 1000);
63
64
  }
64
- const { app, worldStore, mode, selectedComponent, runnableComponents } = getContext('AppViewerContext');
65
+ const { app, worldStore, mode, selectedComponent } = getContext('AppViewerContext');
65
66
  const editorContext = getContext('AppEditorContext');
66
67
  let input = undefined;
67
68
  let quicksearch = '';
@@ -116,19 +117,6 @@ function updateOneOfConfiguration(oneOfConfiguration, resolvedConfig, patch) {
116
117
  };
117
118
  });
118
119
  }
119
- let isCallbackAdded = false;
120
- function addOnRecomputeCallback() {
121
- $runnableComponents[id].cb = [
122
- ...$runnableComponents[id].cb,
123
- () => new CancelablePromise(async (resolve) => {
124
- await dbExplorerCount?.computeCount(true);
125
- aggrid?.clearRows();
126
- resolve();
127
- })
128
- ];
129
- isCallbackAdded = true;
130
- }
131
- $: $runnableComponents[id]?.cb && !isCallbackAdded && addOnRecomputeCallback();
132
120
  async function listTables() {
133
121
  let resource = resolvedConfig.type.configuration?.[resolvedConfig.type.selected]?.resource;
134
122
  if (!resource)
@@ -386,6 +374,7 @@ function onDelete(e) {
386
374
  let refreshCount = 0;
387
375
  $: hideSearch = resolvedConfig.hideSearch;
388
376
  $: hideInsert = resolvedConfig.hideInsert;
377
+ let loading = false;
389
378
  </script>
390
379
 
391
380
  {#each Object.keys(components['dbexplorercomponent'].initialData.configuration) as key (key)}
@@ -440,34 +429,46 @@ $: hideInsert = resolvedConfig.hideInsert;
440
429
  bind:runnableComponent
441
430
  componentInput={input}
442
431
  autoRefresh={false}
432
+ bind:loading
443
433
  {render}
444
434
  {id}
445
435
  {outputs}
436
+ overrideCallback={() =>
437
+ new CancelablePromise(async (resolve) => {
438
+ await dbExplorerCount?.computeCount(true)
439
+
440
+ aggrid?.clearRows()
441
+ resolve()
442
+ })}
443
+ overrideAutoRefresh={true}
446
444
  >
447
445
  <div class="h-full" bind:clientHeight={componentContainerHeight}>
448
446
  {#if !(hideSearch === true && hideInsert === true)}
449
- <div class="flex p-2 justify-between gap-4" bind:clientHeight={buttonContainerHeight}>
447
+ <div class="flex py-2 h-12 justify-between gap-4" bind:clientHeight={buttonContainerHeight}>
450
448
  {#if hideSearch !== true}
451
449
  <DebouncedInput
452
450
  class="w-full max-w-[300px]"
453
451
  type="text"
454
452
  bind:value={quicksearch}
455
- placeholder="Quicksearch"
453
+ placeholder="Search..."
456
454
  />
457
455
  {/if}
458
- {#if hideInsert !== true}
459
- <Button
460
- startIcon={{ icon: Plus }}
461
- color="dark"
462
- size="xs"
463
- on:click={() => {
464
- args = {}
465
- insertDrawer?.openDrawer()
466
- }}
467
- >
468
- Insert
469
- </Button>
470
- {/if}
456
+ <div class="flex flex-row gap-2">
457
+ <RefreshButton {id} {loading} />
458
+ {#if hideInsert !== true}
459
+ <Button
460
+ startIcon={{ icon: Plus }}
461
+ color="dark"
462
+ size="xs2"
463
+ on:click={() => {
464
+ args = {}
465
+ insertDrawer?.openDrawer()
466
+ }}
467
+ >
468
+ Insert
469
+ </Button>
470
+ {/if}
471
+ </div>
471
472
  </div>
472
473
  {/if}
473
474
  {#if resolvedConfig.type.configuration?.[resolvedConfig?.type?.selected]?.resource && resolvedConfig.type.configuration?.[resolvedConfig?.type?.selected]?.table}
@@ -487,6 +488,7 @@ $: hideInsert = resolvedConfig.hideInsert;
487
488
  containerHeight={componentContainerHeight - (buttonContainerHeight ?? 0)}
488
489
  on:update={onUpdate}
489
490
  on:delete={onDelete}
491
+ allowColumnDefsActions={false}
490
492
  {actions}
491
493
  />
492
494
  {/key}
@@ -1,5 +1,5 @@
1
1
  <script>import LightweightSchemaForm from '../../../../LightweightSchemaForm.svelte';
2
- import { ColumnIdentity, getFieldType } from './utils';
2
+ import { ColumnIdentity } from './utils';
3
3
  import init, { parse_sql, parse_mysql, parse_bigquery, parse_snowflake, parse_mssql } from 'windmill-sql-datatype-parser-wasm';
4
4
  import wasmUrl from 'windmill-sql-datatype-parser-wasm/windmill_sql_datatype_parser_wasm_bg.wasm?url';
5
5
  init(wasmUrl);
@@ -18,13 +18,11 @@ $: fields = columnDefs
18
18
  const name = column.field;
19
19
  const isPrimaryKey = column.isprimarykey;
20
20
  const defaultValue = column.defaultValueNull ? null : column.defaultUserValue;
21
- const fieldType = getFieldType(type, dbType);
22
21
  return {
23
22
  type,
24
23
  name,
25
24
  isPrimaryKey,
26
25
  defaultValue,
27
- fieldType,
28
26
  identity: column.isidentity,
29
27
  nullable: column.isnullable
30
28
  };
@@ -77,9 +75,8 @@ async function builtSchema(fields, dbType) {
77
75
  };
78
76
  const parsedArg = columnDefs.find((arg) => arg.field === field.name);
79
77
  if (parsedArg) {
80
- let typ = rawTypeToSchemaType(parseSQLArgs(parsedArg.datatype, dbType));
78
+ let typ = rawTypeToSchemaType(parseSQLArgs(parsedArg.datatype.split('(')[0].trim(), dbType));
81
79
  argSigToJsonSchemaType(typ, schemaProperty);
82
- console.log('schemaProperty', schemaProperty, field.name, typ, parseSQLArgs(parsedArg.datatype, dbType));
83
80
  }
84
81
  if (field.defaultValue) {
85
82
  if (schemaProperty.type === 'number' || schemaProperty.type === 'integer') {
@@ -111,7 +108,7 @@ $: builtSchema(fields ?? [], dbType);
111
108
  export let isInsertable = false;
112
109
  $: if (schema) {
113
110
  const requiredFields = schema.required ?? [];
114
- const filledFields = Object.keys(args).filter((key) => args[key] !== undefined && args[key] !== null);
111
+ const filledFields = Object.keys(args).filter((key) => args[key] !== undefined && args[key] !== null && args[key] !== '');
115
112
  isInsertable = requiredFields.every((field) => filledFields.includes(field));
116
113
  }
117
114
  </script>
@@ -4,7 +4,7 @@ function deleteWithAllValues(table, columns, dbType) {
4
4
  switch (dbType) {
5
5
  case 'postgresql': {
6
6
  const conditions = columns
7
- .map((c, i) => `($${i + 1}::${c.datatype} IS NULL AND ${c.field} IS NULL OR ${c.field} = $${i + 1}::${c.datatype})`)
7
+ .map((c, i) => `($${i + 1}::text::${c.datatype} IS NULL AND ${c.field} IS NULL OR ${c.field} = $${i + 1}::text::${c.datatype})`)
8
8
  .join('\n AND ');
9
9
  query += `\nDELETE FROM ${table} \nWHERE ${conditions} RETURNING 1;`;
10
10
  return query;