windmill-components 1.309.7 → 1.352.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 (509) hide show
  1. package/package/assets/app.css +22 -13
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +2 -2
  4. package/package/common.d.ts +14 -2
  5. package/package/common.js +6 -1
  6. package/package/components/AllFlowLogs.svelte +30 -0
  7. package/package/components/AllFlowLogs.svelte.d.ts +18 -0
  8. package/package/components/ApiConnectForm.svelte +10 -4
  9. package/package/components/AppConnectDrawer.svelte +74 -0
  10. package/package/components/AppConnectDrawer.svelte.d.ts +20 -0
  11. package/package/components/AppConnectInner.svelte +507 -0
  12. package/package/components/AppConnectInner.svelte.d.ts +28 -0
  13. package/package/components/ArgEnum.svelte +4 -1
  14. package/package/components/ArgEnum.svelte.d.ts +3 -1
  15. package/package/components/ArgInfo.svelte +19 -3
  16. package/package/components/ArgInput.svelte +222 -122
  17. package/package/components/ArgInput.svelte.d.ts +11 -7
  18. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  19. package/package/components/CenteredPage.svelte +2 -2
  20. package/package/components/ConcurrentJobsChart.svelte +212 -0
  21. package/package/components/ConcurrentJobsChart.svelte.d.ts +23 -0
  22. package/package/components/CustomOauth.svelte +2 -2
  23. package/package/components/DateInput.svelte +47 -0
  24. package/package/components/DateInput.svelte.d.ts +24 -0
  25. package/package/components/DateTimeInput.svelte +25 -3
  26. package/package/components/DefaultScripts.svelte +5 -8
  27. package/package/components/DefaultTags.svelte +3 -2
  28. package/package/components/DefaultTags.svelte.d.ts +3 -1
  29. package/package/components/DefaultTagsInner.svelte +2 -11
  30. package/package/components/DefaultTagsInner.svelte.d.ts +3 -1
  31. package/package/components/Dev.svelte +72 -10
  32. package/package/components/DiffDrawer.svelte +1 -2
  33. package/package/components/DiffEditor.svelte +3 -0
  34. package/package/components/DisplayResult.svelte +467 -344
  35. package/package/components/DisplayResult.svelte.d.ts +1 -0
  36. package/package/components/DropdownV2.svelte.d.ts +2 -2
  37. package/package/components/DurationMs.svelte +11 -3
  38. package/package/components/DurationMs.svelte.d.ts +2 -0
  39. package/package/components/EditableSchemaForm.svelte +447 -100
  40. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  41. package/package/components/Editor.svelte +112 -93
  42. package/package/components/Editor.svelte.d.ts +4 -2
  43. package/package/components/EditorBar.svelte +101 -10
  44. package/package/components/EditorBar.svelte.d.ts +0 -1
  45. package/package/components/ErrorOrRecoveryHandler.svelte +0 -1
  46. package/package/components/FlowBuilder.svelte +14 -6
  47. package/package/components/FlowGraphViewer.svelte +2 -1
  48. package/package/components/FlowGraphViewerStep.svelte +56 -10
  49. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  50. package/package/components/FlowJobResult.svelte +14 -3
  51. package/package/components/FlowJobResult.svelte.d.ts +3 -0
  52. package/package/components/FlowMetadata.svelte +41 -36
  53. package/package/components/FlowMetadata.svelte.d.ts +3 -1
  54. package/package/components/FlowPreviewContent.svelte +18 -9
  55. package/package/components/FlowStatusViewer.svelte +4 -0
  56. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  57. package/package/components/FlowStatusViewerInner.svelte +96 -19
  58. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  59. package/package/components/FlowTimeline.svelte +13 -0
  60. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  61. package/package/components/FlowViewer.svelte +0 -5
  62. package/package/components/FolderEditor.svelte +25 -0
  63. package/package/components/FolderEditor.svelte.d.ts +2 -0
  64. package/package/components/GroupEditor.svelte +36 -91
  65. package/package/components/GroupInfo.svelte +1 -1
  66. package/package/components/HighlightCode.svelte +3 -0
  67. package/package/components/InputTransformForm.svelte +19 -1
  68. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  69. package/package/components/InputTransformSchemaForm.svelte +6 -0
  70. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  71. package/package/components/InstanceSettings.svelte +196 -16
  72. package/package/components/InstanceSettings.svelte.d.ts +4 -0
  73. package/package/components/JobLogs.svelte +12 -0
  74. package/package/components/JobLogs.svelte.d.ts +16 -0
  75. package/package/components/JobStatus.svelte +3 -3
  76. package/package/components/Label.svelte +1 -1
  77. package/package/components/Label.svelte.d.ts +1 -0
  78. package/package/components/LightweightArgInput.svelte +342 -264
  79. package/package/components/LightweightArgInput.svelte.d.ts +6 -2
  80. package/package/components/LightweightResourcePicker.svelte +74 -26
  81. package/package/components/LightweightSchemaForm.svelte +49 -39
  82. package/package/components/LogViewer.svelte +52 -15
  83. package/package/components/LogViewer.svelte.d.ts +1 -0
  84. package/package/components/Login.svelte +288 -0
  85. package/package/components/Login.svelte.d.ts +19 -0
  86. package/package/components/ModulePreviewForm.svelte +4 -0
  87. package/package/components/NoMainFuncBadge.svelte +8 -0
  88. package/package/components/NoMainFuncBadge.svelte.d.ts +14 -0
  89. package/package/components/NumberTypeNarrowing.svelte +71 -44
  90. package/package/components/OauthExtraParams.svelte +1 -1
  91. package/package/components/OauthScopes.svelte +1 -1
  92. package/package/components/ObjectResourceInput.svelte +2 -0
  93. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  94. package/package/components/ObjectStoreConfigSettings.svelte +12 -1
  95. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +1 -0
  96. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  97. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  98. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  99. package/package/components/Password.svelte +1 -0
  100. package/package/components/Password.svelte.d.ts +2 -0
  101. package/package/components/PasswordArgInput.svelte +49 -0
  102. package/package/components/PasswordArgInput.svelte.d.ts +17 -0
  103. package/package/components/Path.svelte +2 -2
  104. package/package/components/PersistentScriptDrawer.svelte +6 -3
  105. package/package/components/QueueMetricsDrawer.svelte +225 -0
  106. package/package/components/QueueMetricsDrawer.svelte.d.ts +18 -0
  107. package/package/components/Range.svelte +88 -286
  108. package/package/components/Range.svelte.d.ts +9 -23
  109. package/package/components/ResourceEditor.svelte +138 -140
  110. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  111. package/package/components/ResourceEditorDrawer.svelte +45 -0
  112. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  113. package/package/components/ResourcePicker.svelte +8 -9
  114. package/package/components/ResourceTypePicker.svelte +88 -36
  115. package/package/components/ResultJobLoader.svelte +2 -2
  116. package/package/components/ResultJobLoader.svelte.d.ts +9 -9
  117. package/package/components/RunChart.svelte +55 -5
  118. package/package/components/RunChart.svelte.d.ts +1 -0
  119. package/package/components/RunForm.svelte +1 -1
  120. package/package/components/S3FilePicker.svelte +21 -9
  121. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  122. package/package/components/SavedInputs.svelte +49 -13
  123. package/package/components/ScheduleEditorInner.svelte +294 -264
  124. package/package/components/SchemaForm.svelte +193 -99
  125. package/package/components/SchemaForm.svelte.d.ts +17 -2
  126. package/package/components/ScriptBuilder.svelte +23 -14
  127. package/package/components/ScriptEditor.svelte +1 -2
  128. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  129. package/package/components/ScriptSchedules.svelte +11 -8
  130. package/package/components/ScriptSchema.svelte +3 -21
  131. package/package/components/ScriptVersionHistory.svelte +1 -1
  132. package/package/components/SimpleEditor.svelte +4 -1
  133. package/package/components/StringTypeNarrowing.svelte +229 -167
  134. package/package/components/StringTypeNarrowing.svelte.d.ts +6 -1
  135. package/package/components/TemplateEditor.svelte +1 -0
  136. package/package/components/TestJobLoader.svelte +14 -5
  137. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  138. package/package/components/Toggle.svelte +6 -3
  139. package/package/components/Toggle.svelte.d.ts +1 -0
  140. package/package/components/Tooltip.svelte +8 -2
  141. package/package/components/Tooltip.svelte.d.ts +1 -0
  142. package/package/components/UserSettings.svelte +24 -1
  143. package/package/components/WorkspaceGroup.svelte +84 -21
  144. package/package/components/WorkspaceGroup.svelte.d.ts +1 -0
  145. package/package/components/app_connect.d.ts +7 -0
  146. package/package/components/app_connect.js +78 -0
  147. package/package/components/apps/components/buttons/AppButton.svelte +2 -1
  148. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  149. package/package/components/apps/components/display/AppAlert.svelte +1 -1
  150. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  151. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
  152. package/package/components/apps/components/display/AppDownload.svelte +1 -1
  153. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  154. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  155. package/package/components/apps/components/display/AppIcon.svelte +1 -1
  156. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +23 -10
  157. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  158. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +22 -10
  159. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  160. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  161. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  162. package/package/components/apps/components/display/AppMap.svelte +3 -2
  163. package/package/components/apps/components/display/AppMenu.svelte +1 -1
  164. package/package/components/apps/components/display/AppPdf.svelte +3 -11
  165. package/package/components/apps/components/display/AppText.svelte +7 -2
  166. package/package/components/apps/components/display/charts/AppAgCharts.svelte +31 -18
  167. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +32 -30
  168. package/package/components/apps/components/display/dbtable/InsertRow.svelte +3 -6
  169. package/package/components/apps/components/display/dbtable/queries/delete.js +1 -1
  170. package/package/components/apps/components/display/dbtable/queries/insert.js +1 -12
  171. package/package/components/apps/components/display/dbtable/queries/select.js +1 -1
  172. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  173. package/package/components/apps/components/display/dbtable/utils.d.ts +0 -1
  174. package/package/components/apps/components/display/dbtable/utils.js +0 -83
  175. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +75 -44
  176. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +5 -1
  177. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +172 -0
  178. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +27 -0
  179. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +38 -0
  180. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +28 -0
  181. package/package/components/apps/components/display/table/AppAggridTable.svelte +189 -56
  182. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
  183. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +13 -2
  184. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  185. package/package/components/apps/components/display/table/AppCell.svelte +1 -3
  186. package/package/components/apps/components/display/table/AppTable.svelte +320 -281
  187. package/package/components/apps/components/display/table/AppTableFooter.svelte +42 -23
  188. package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -2
  189. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +119 -0
  190. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +21 -0
  191. package/package/components/apps/components/display/table/theme/windmill-theme.css +656 -0
  192. package/package/components/apps/components/display/table/utils.js +22 -0
  193. package/package/components/apps/components/helpers/DebouncedInput.svelte +3 -2
  194. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  195. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +35 -0
  196. package/package/components/apps/components/helpers/RefreshButton.svelte +30 -12
  197. package/package/components/apps/components/helpers/RefreshButton.svelte.d.ts +1 -3
  198. package/package/components/apps/components/helpers/RefreshIndicator.svelte +19 -0
  199. package/package/components/apps/components/helpers/RefreshIndicator.svelte.d.ts +16 -0
  200. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  201. package/package/components/apps/components/helpers/RunnableComponent.svelte +102 -41
  202. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +9 -5
  203. package/package/components/apps/components/helpers/RunnableWrapper.svelte +9 -1
  204. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +6 -0
  205. package/package/components/apps/components/helpers/eval.js +1 -36
  206. package/package/components/apps/components/inputs/AppDateInput.svelte +5 -1
  207. package/package/components/apps/components/inputs/AppFileInput.svelte +13 -2
  208. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  209. package/package/components/apps/components/inputs/AppMultiSelect.svelte +56 -50
  210. package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -0
  211. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +178 -0
  212. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte.d.ts +24 -0
  213. package/package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
  214. package/package/components/apps/components/inputs/AppQuillEditor.svelte +26 -0
  215. package/package/components/apps/components/inputs/AppRangeInput.svelte +38 -37
  216. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  217. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  218. package/package/components/apps/components/inputs/AppSelect.svelte +21 -10
  219. package/package/components/apps/components/inputs/AppSliderInputs.svelte +26 -31
  220. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  221. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
  222. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +10 -3
  223. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  224. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  225. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  226. package/package/components/apps/components/layout/AppDrawer.svelte +16 -3
  227. package/package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -0
  228. package/package/components/apps/components/layout/AppModal.svelte +85 -79
  229. package/package/components/apps/components/layout/AppModal.svelte.d.ts +2 -0
  230. package/package/components/apps/components/layout/AppStepper.svelte +7 -2
  231. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  232. package/package/components/apps/components/layout/AppTabs.svelte +4 -2
  233. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  234. package/package/components/apps/editor/AppEditor.svelte +3 -2
  235. package/package/components/apps/editor/AppEditorHeader.svelte +68 -38
  236. package/package/components/apps/editor/AppInputs.svelte +1 -1
  237. package/package/components/apps/editor/AppPreview.svelte +18 -7
  238. package/package/components/apps/editor/ComponentHeader.svelte +37 -1
  239. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  240. package/package/components/apps/editor/GridEditor.svelte +15 -6
  241. package/package/components/apps/editor/GridEditorMenu.svelte +120 -49
  242. package/package/components/apps/editor/GridViewer.svelte +14 -5
  243. package/package/components/apps/editor/GridViewer.svelte.d.ts +5 -1
  244. package/package/components/apps/editor/RecomputeAllComponents.svelte +17 -3
  245. package/package/components/apps/editor/RunnableJobPanel.svelte +9 -5
  246. package/package/components/apps/editor/SettingsPanel.svelte +19 -5
  247. package/package/components/apps/editor/SubGridEditor.svelte +44 -27
  248. package/package/components/apps/editor/appUtils.d.ts +6 -1
  249. package/package/components/apps/editor/appUtils.js +85 -7
  250. package/package/components/apps/editor/component/Component.svelte +86 -18
  251. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -0
  252. package/package/components/apps/editor/component/components.d.ts +285 -23
  253. package/package/components/apps/editor/component/components.js +178 -13
  254. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  255. package/package/components/apps/editor/component/default-codes.js +241 -9
  256. package/package/components/apps/editor/component/sets.d.ts +3 -0
  257. package/package/components/apps/editor/component/sets.js +12 -2
  258. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +15 -2
  259. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +4 -2
  260. package/package/components/apps/editor/componentsPanel/cssUtils.js +1 -1
  261. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +5 -0
  262. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -5
  263. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -1
  264. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +46 -6
  265. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  266. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +1 -1
  267. package/package/components/apps/editor/inlineScriptsPanel/utils.js +3 -1
  268. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  269. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  270. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +1 -1
  271. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +8 -5
  272. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +41 -29
  273. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +61 -0
  274. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +16 -0
  275. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +12 -10
  276. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte +29 -32
  277. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte.d.ts +0 -5
  278. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  279. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  280. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  281. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  282. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +14 -36
  283. package/package/components/apps/editor/settingsPanel/GridTab.svelte +4 -24
  284. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +2 -1
  285. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte.d.ts +1 -0
  286. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +24 -3
  287. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +32 -2
  288. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  289. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +4 -3
  290. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  291. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  292. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +3 -2
  293. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +8 -1
  294. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  295. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  296. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -4
  297. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +6 -3
  298. package/package/components/apps/inputType.d.ts +4 -0
  299. package/package/components/apps/rx.d.ts +1 -1
  300. package/package/components/apps/rx.js +7 -0
  301. package/package/components/apps/svelte-grid/Grid.svelte +13 -4
  302. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +2 -1
  303. package/package/components/apps/svelte-grid/types.d.ts +1 -0
  304. package/package/components/apps/svelte-grid/utils/helper.js +1 -0
  305. package/package/components/apps/svelte-grid/utils/overlap.d.ts +3 -0
  306. package/package/components/apps/svelte-grid/utils/overlap.js +21 -0
  307. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +2 -2
  308. package/package/components/apps/svelte-select/lib/tailwind.css +1 -1
  309. package/package/components/apps/types.d.ts +1 -0
  310. package/package/components/apps/utils.js +13 -3
  311. package/package/components/auditLogs/AuditLogsTable.svelte +5 -2
  312. package/package/components/build_workers.js +1 -0
  313. package/package/components/common/alert/Alert.svelte +17 -17
  314. package/package/components/common/badge/Badge.svelte +6 -3
  315. package/package/components/common/badge/model.d.ts +1 -1
  316. package/package/components/common/button/Button.svelte +22 -14
  317. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  318. package/package/components/common/calendarPicker/CalendarPicker.svelte +2 -0
  319. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -0
  320. package/package/components/common/drawer/ConditionalPortal.svelte +9 -0
  321. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +18 -0
  322. package/package/components/common/drawer/Disposable.svelte +67 -0
  323. package/package/components/common/drawer/Disposable.svelte.d.ts +37 -0
  324. package/package/components/common/drawer/Drawer.svelte +40 -56
  325. package/package/components/common/drawer/Drawer.svelte.d.ts +2 -1
  326. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  327. package/package/components/common/fileInput/FileInput.svelte +3 -3
  328. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  329. package/package/components/common/fileUpload/FileUpload.svelte +5 -4
  330. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  331. package/package/components/common/modal/Modal.svelte +4 -1
  332. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  333. package/package/components/common/popup/Popup.svelte +1 -1
  334. package/package/components/common/table/RowIcon.svelte +4 -4
  335. package/package/components/common/table/ScriptRow.svelte +12 -1
  336. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  337. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  338. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  339. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +45 -0
  340. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +24 -0
  341. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  342. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  343. package/package/components/copilot/CronGen.svelte +2 -2
  344. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  345. package/package/components/copilot/RegexGen.svelte +17 -39
  346. package/package/components/copilot/ScriptGen.svelte +14 -5
  347. package/package/components/copilot/StepInputGen.svelte +2 -1
  348. package/package/components/copilot/StepInputsGen.svelte +2 -1
  349. package/package/components/copilot/completion.js +60 -9
  350. package/package/components/copilot/lib.js +5 -3
  351. package/package/components/copilot/prompts/edit.yaml +24 -0
  352. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  353. package/package/components/copilot/prompts/editPrompt.js +3 -0
  354. package/package/components/copilot/prompts/fix.yaml +25 -0
  355. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  356. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  357. package/package/components/copilot/prompts/gen.yaml +20 -0
  358. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  359. package/package/components/copilot/prompts/genPrompt.js +3 -0
  360. package/package/components/copilot/utils.d.ts +2 -1
  361. package/package/components/copilot/utils.js +38 -0
  362. package/package/components/details/createAppFromScript.d.ts +26 -0
  363. package/package/components/details/createAppFromScript.js +50 -24
  364. package/package/components/flows/CreateActionsApp.svelte +1 -0
  365. package/package/components/flows/CreateActionsFlow.svelte +1 -0
  366. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  367. package/package/components/flows/content/FlowInput.svelte +63 -53
  368. package/package/components/flows/content/FlowInputs.svelte +2 -2
  369. package/package/components/flows/content/FlowModuleComponent.svelte +41 -9
  370. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  371. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  372. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  373. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  374. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  375. package/package/components/flows/content/ScriptEditorDrawer.svelte +6 -6
  376. package/package/components/flows/flowExplorer.js +4 -1
  377. package/package/components/flows/flowStateUtils.js +4 -1
  378. package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
  379. package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
  380. package/package/components/flows/map/FlowModuleSchemaItem.svelte +19 -1
  381. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  382. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  383. package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
  384. package/package/components/flows/map/MapItem.svelte +2 -0
  385. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  386. package/package/components/flows/types.d.ts +4 -0
  387. package/package/components/flows/utils.d.ts +5 -1
  388. package/package/components/flows/utils.js +36 -0
  389. package/package/components/graph/FlowGraph.svelte +6 -2
  390. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  391. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  392. package/package/components/graph/svelvet/container/models/index.js +1 -1
  393. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  394. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +41 -16
  395. package/package/components/graph/util.d.ts +1 -37
  396. package/package/components/graph/util.js +0 -34
  397. package/package/components/home/ItemsList.svelte +44 -9
  398. package/package/components/home/TreeView.svelte +2 -0
  399. package/package/components/icons/AzureIcon.svelte +25 -1
  400. package/package/components/icons/PHPIcon.svelte +117 -0
  401. package/package/components/icons/PHPIcon.svelte.d.ts +17 -0
  402. package/package/components/instanceSettings.d.ts +1 -1
  403. package/package/components/instanceSettings.js +20 -3
  404. package/package/components/jobs/JobPreview.svelte +6 -1
  405. package/package/components/multiselect/MultiSelect.svelte +783 -0
  406. package/package/components/multiselect/MultiSelect.svelte.d.ts +98 -0
  407. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  408. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  409. package/package/components/multiselect/types.d.ts +56 -0
  410. package/package/components/multiselect/types.js +1 -0
  411. package/package/components/multiselect/utils.d.ts +7 -0
  412. package/package/components/multiselect/utils.js +54 -0
  413. package/package/components/propertyPicker/ObjectViewer.svelte +19 -2
  414. package/package/components/runs/JobLoader.svelte +135 -17
  415. package/package/components/runs/JobLoader.svelte.d.ts +7 -2
  416. package/package/components/runs/JobPreview.svelte +44 -4
  417. package/package/components/runs/JobPreview.svelte.d.ts +2 -0
  418. package/package/components/runs/RunRow.svelte +99 -33
  419. package/package/components/runs/RunRow.svelte.d.ts +5 -1
  420. package/package/components/runs/RunsFilter.svelte +125 -9
  421. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  422. package/package/components/runs/RunsTable.svelte +71 -10
  423. package/package/components/runs/RunsTable.svelte.d.ts +8 -1
  424. package/package/components/schema/AddProperty.svelte +149 -0
  425. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  426. package/package/components/schema/AddPropertyForm.svelte +33 -0
  427. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  428. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  429. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  430. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  431. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  432. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  433. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  434. package/package/components/schema/PropertyEditor.svelte +185 -0
  435. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  436. package/package/components/schema/SchemaFormDND.svelte +75 -0
  437. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  438. package/package/components/scriptEditor/LogPanel.svelte +46 -33
  439. package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -0
  440. package/package/components/scripts/CreateActionsScript.svelte +1 -1
  441. package/package/components/settings/WorkspaceUserSettings.svelte +246 -226
  442. package/package/components/sidebar/MenuButton.svelte +1 -1
  443. package/package/components/sidebar/MenuLink.svelte +1 -1
  444. package/package/components/sidebar/changelogs.js +40 -0
  445. package/package/components/table/AutoDataTable.svelte +124 -163
  446. package/package/components/table/Cell.svelte +4 -1
  447. package/package/components/table/Cell.svelte.d.ts +1 -0
  448. package/package/components/table/DataTable.svelte +13 -5
  449. package/package/components/table/DataTable.svelte.d.ts +1 -0
  450. package/package/components/table/DownloadCsv.svelte +30 -0
  451. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  452. package/package/components/table/tableUtils.d.ts +8 -0
  453. package/package/components/table/tableUtils.js +37 -0
  454. package/package/components/vscode.js +1 -1
  455. package/package/components/wizards/AgGridWizard.svelte +27 -2
  456. package/package/components/wizards/AgGridWizard.svelte.d.ts +1 -0
  457. package/package/consts.js +7 -1
  458. package/package/defaults.d.ts +2 -2
  459. package/package/defaults.js +2 -2
  460. package/package/deno_fetch.d.ts.txt +36 -0
  461. package/package/editorUtils.js +2 -0
  462. package/package/gen/core/OpenAPI.js +5 -6
  463. package/package/gen/core/request.js +4 -1
  464. package/package/gen/index.d.ts +0 -1
  465. package/package/gen/index.js +0 -1
  466. package/package/gen/schemas.gen.d.ts +173 -428
  467. package/package/gen/schemas.gen.js +173 -433
  468. package/package/gen/services.gen.d.ts +3182 -1840
  469. package/package/gen/services.gen.js +3652 -2368
  470. package/package/gen/types.gen.d.ts +5445 -1529
  471. package/package/infer.d.ts +1 -1
  472. package/package/infer.js +6 -2
  473. package/package/inferArgSig.d.ts +10 -0
  474. package/package/inferArgSig.js +64 -4
  475. package/package/init_scripts/python_init_code.d.ts +1 -1
  476. package/package/init_scripts/python_init_code.js +1 -1
  477. package/package/process.d.ts.txt +1770 -0
  478. package/package/script_helpers.d.ts +3 -2
  479. package/package/script_helpers.js +28 -3
  480. package/package/scripts.d.ts +3 -1
  481. package/package/scripts.js +10 -3
  482. package/package/utils.d.ts +5 -1
  483. package/package/utils.js +53 -5
  484. package/package/windmill_fetch.d.ts.txt +16966 -0
  485. package/package/workspace_settings.d.ts +15 -0
  486. package/package/workspace_settings.js +81 -0
  487. package/package/zIndexes.d.ts +12 -0
  488. package/package/zIndexes.js +12 -0
  489. package/package.json +19 -10
  490. package/package/components/AppConnect.svelte +0 -566
  491. package/package/components/AppConnect.svelte.d.ts +0 -23
  492. package/package/components/ContextMenu.svelte +0 -89
  493. package/package/components/ContextMenu.svelte.d.ts +0 -28
  494. package/package/components/ParqetTableRenderer.svelte +0 -121
  495. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  496. package/package/components/PropertyRow.svelte +0 -80
  497. package/package/components/PropertyRow.svelte.d.ts +0 -23
  498. package/package/components/SchemaEditor.svelte +0 -344
  499. package/package/components/SchemaEditor.svelte.d.ts +0 -23
  500. package/package/components/SchemaModal.svelte +0 -350
  501. package/package/components/SchemaModal.svelte.d.ts +0 -31
  502. package/package/components/apps/components/display/index.d.ts +0 -17
  503. package/package/components/apps/components/display/index.js +0 -17
  504. package/package/components/apps/components/helpers/index.d.ts +0 -10
  505. package/package/components/apps/components/helpers/index.js +0 -10
  506. package/package/components/apps/components/index.d.ts +0 -5
  507. package/package/components/apps/components/index.js +0 -5
  508. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  509. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -1,27 +1,26 @@
1
- <script>import { ArrowDown, ArrowUp, Download, EyeIcon, MoreVertical, MoveVertical, Columns, EyeOff } from 'lucide-svelte';
1
+ <script>import { ArrowDown, ArrowUp, Download, MoreVertical, MoveVertical, Columns } from 'lucide-svelte';
2
2
  import Dropdown from '../DropdownV2.svelte';
3
3
  import Cell from './Cell.svelte';
4
4
  import DataTable from './DataTable.svelte';
5
5
  import Head from './Head.svelte';
6
6
  import Row from './Row.svelte';
7
- import { pluralize, sendUserToast } from '../../utils';
7
+ import { pluralize } from '../../utils';
8
8
  import Badge from '../common/badge/Badge.svelte';
9
- import { isEmail, isLink } from './tableUtils';
9
+ import { computeStructuredObjectsAndHeaders, convertJsonToCsv, isEmail, isLink } from './tableUtils';
10
10
  import Popover from '../Popover.svelte';
11
11
  import DarkModeObserver from '../DarkModeObserver.svelte';
12
- import Button from '../common/button/Button.svelte';
13
- import { Parser } from '@json2csv/plainjs';
12
+ import DownloadCsv from './DownloadCsv.svelte';
14
13
  export let objects = [];
15
14
  let currentPage = 1;
16
- let perPage = 5;
15
+ let perPage = 25;
17
16
  let search = '';
18
- let nextId = 1;
19
- $: structuredObjects = objects.map((obj) => {
20
- return {
21
- _id: nextId++,
22
- rowData: { ...obj }
23
- };
24
- });
17
+ let structuredObjects = [];
18
+ let headers = [];
19
+ $: recomputeObjectsAndHeaders(objects);
20
+ function recomputeObjectsAndHeaders(objects) {
21
+ ;
22
+ [headers, structuredObjects] = computeStructuredObjectsAndHeaders(objects);
23
+ }
25
24
  function adjustCurrentPage() {
26
25
  const totalItems = objects.length;
27
26
  const totalPages = Math.ceil(totalItems / perPage);
@@ -30,24 +29,39 @@ function adjustCurrentPage() {
30
29
  }
31
30
  }
32
31
  $: perPage && adjustCurrentPage();
33
- $: data = structuredObjects
34
- .filter(({ rowData }) => Object.values(rowData).some((value) => JSON.stringify(value).toLowerCase().includes(search.toLowerCase())))
35
- .sort((a, b) => {
36
- if (!activeSorting)
37
- return 0;
38
- const valA = a.rowData[activeSorting.column];
39
- const valB = b.rowData[activeSorting.column];
40
- if (activeSorting.direction === 'asc') {
41
- return valA > valB ? 1 : -1;
32
+ $: data = computeData(structuredObjects, activeSorting, search);
33
+ let activeSorting = undefined;
34
+ function computeData(structuredObjects, activeSorting, search) {
35
+ let objects = structuredObjects;
36
+ if (search != undefined && search != '') {
37
+ objects = objects.filter((obj) => Object.values(obj.rowData).some((value) => JSON.stringify(value).toLowerCase().includes(search.toLowerCase())));
42
38
  }
43
- else {
44
- return valA < valB ? 1 : -1;
39
+ if (activeSorting) {
40
+ objects = objects.sort((a, b) => {
41
+ if (!activeSorting)
42
+ return 0;
43
+ const valA = a.rowData[activeSorting.column];
44
+ const valB = b.rowData[activeSorting.column];
45
+ const isAsc = activeSorting.direction === 'asc';
46
+ if (valA == undefined || valA == null) {
47
+ return isAsc ? -1 : 1;
48
+ }
49
+ if (valB == undefined || valB == null) {
50
+ return isAsc ? 1 : -1;
51
+ }
52
+ if (isAsc) {
53
+ return valA > valB ? 1 : -1;
54
+ }
55
+ else {
56
+ return valA > valB ? -1 : 1;
57
+ }
58
+ });
45
59
  }
46
- })
47
- .slice((currentPage - 1) * perPage, currentPage * perPage);
48
- let hiddenColumns = [];
49
- let activeSorting = undefined;
60
+ return objects;
61
+ }
62
+ $: slicedData = data.slice((currentPage - 1) * perPage, currentPage * perPage);
50
63
  let selection = [];
64
+ let colSelection = [];
51
65
  // Function to handle individual row checkbox change
52
66
  function handleCheckboxChange(rowId) {
53
67
  if (selection.includes(rowId)) {
@@ -61,41 +75,43 @@ function handleCheckboxChange(rowId) {
61
75
  }
62
76
  // Function to handle select all checkbox change
63
77
  function handleSelectAllChange() {
64
- if (selection.length === 0 || selection.length < data.length) {
78
+ if (selection.length === 0 ||
79
+ (selection.length < slicedData.length &&
80
+ (colSelection.length === 0 || colSelection.length < headers.length))) {
65
81
  // Select all rows
66
- selection = data.map((row) => row._id);
82
+ selection = slicedData.map((row) => row._id);
83
+ colSelection = [...headers];
67
84
  }
68
85
  else {
69
86
  // Deselect all rows
70
87
  selection = [];
88
+ colSelection = [];
71
89
  }
72
- selection = [...selection];
73
90
  }
74
91
  let renderCount = 0;
75
- const badgeColors = ['gray', 'blue', 'red', 'green', 'yellow', 'indigo'];
92
+ const badgeColors = ['gray', 'blue', 'green', 'yellow', 'indigo'];
76
93
  const darkBadgeColors = [
77
94
  'dark-gray',
78
95
  'dark-blue',
79
- 'dark-red',
80
96
  'dark-green',
81
97
  'dark-yellow',
82
98
  'dark-indigo'
83
99
  ];
84
100
  let darkMode = false;
85
101
  let wrapperWidth = 0;
86
- function isSortable(key) {
87
- return ((objects?.[0]?.[key] != undefined && typeof objects[0][key] === 'string') ||
88
- typeof objects[0][key] === 'number' ||
89
- typeof objects[0][key] === 'boolean');
90
- }
91
- function convertJsonToCsv(arr) {
92
- try {
93
- const parser = new Parser({});
94
- const csv = parser.parse(arr);
95
- return csv;
102
+ // function isSortable(key: string) {
103
+ // let value = objects?.[0]?.[key]
104
+ // let typof = typeof value
105
+ // return (value != undefined && typof === 'string') || typof === 'number' || typof === 'boolean'
106
+ // }
107
+ function handleColumnSelected(key) {
108
+ if (colSelection.includes(key)) {
109
+ // Remove the id from the colSelection array
110
+ colSelection = colSelection.filter((id) => id !== key);
96
111
  }
97
- catch (err) {
98
- throw new Error('An error occured when generating CSV:' + err);
112
+ else {
113
+ // Add the id to the colSelection array
114
+ colSelection = [...colSelection, key];
99
115
  }
100
116
  }
101
117
  </script>
@@ -112,65 +128,36 @@ function convertJsonToCsv(arr) {
112
128
  {pluralize(selection?.length ?? 1, 'item') + ' selected'}
113
129
  </span>
114
130
  {/if}
115
- {#if hiddenColumns.length > 0}
116
- <div class="flex flex-row gap-2 justify-center items-center mx-2">
117
- <span class="text-xs text-gray-500 dark:text-gray-200" />
118
- <Button
119
- size="xs2"
120
- color="light"
121
- variant="border"
122
- on:click={() => {
123
- hiddenColumns = []
124
- }}
125
- startIcon={{
126
- icon: Columns
127
- }}
128
- >
129
- Display hidden columns ({pluralize(hiddenColumns?.length ?? 1, 'column')})
130
- </Button>
131
- </div>
132
- {/if}
133
131
  </div>
134
132
  <div class="flex flex-row items-center gap-2">
135
- <Button
136
- size="xs"
137
- color="light"
138
- startIcon={{ icon: Download }}
139
- on:click={() => {
140
- try {
141
- const csvContent = convertJsonToCsv(
142
- structuredObjects
143
- .filter(({ _id }) => {
144
- if (selection.length > 0) {
145
- return selection.includes(_id)
146
- } else {
147
- return true
148
- }
149
- })
150
- .map((obj) => obj.rowData)
151
- )
152
-
153
- const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })
154
- const url = URL.createObjectURL(blob)
155
- const link = document.createElement('a')
156
- link.setAttribute('href', url)
157
- link.setAttribute('download', 'data.csv')
158
- link.style.visibility = 'hidden'
159
- document.body.appendChild(link)
160
- link.click()
161
-
162
- document.body.removeChild(link)
163
- } catch (err) {
164
- sendUserToast(err, true)
165
- }
133
+ <DownloadCsv
134
+ getContent={() => {
135
+ return convertJsonToCsv(
136
+ selection.length > 0
137
+ ? structuredObjects
138
+ .filter(({ _id }) => selection.includes(_id))
139
+ .map((obj) =>
140
+ colSelection.length == 0
141
+ ? obj.rowData
142
+ : Object.fromEntries(
143
+ Object.entries(obj.rowData).filter(([key, _]) =>
144
+ colSelection.includes(key)
145
+ )
146
+ )
147
+ )
148
+ : colSelection.length == 0
149
+ ? objects
150
+ : objects.map((obj) =>
151
+ Object.fromEntries(
152
+ Object.entries(obj).filter(([key, _]) => colSelection.includes(key))
153
+ )
154
+ )
155
+ )
166
156
  }}
167
- >
168
- {#if selection.length > 0}
169
- Download selected as CSV
170
- {:else}
171
- Download as CSV
172
- {/if}
173
- </Button>
157
+ customText={selection.length > 0 || colSelection.length > 0
158
+ ? 'Download selected as CSV'
159
+ : undefined}
160
+ />
174
161
  <Dropdown
175
162
  items={() => {
176
163
  const actions = [
@@ -194,21 +181,12 @@ function convertJsonToCsv(arr) {
194
181
  }
195
182
  ]
196
183
 
197
- if (hiddenColumns.length > 0) {
198
- actions.push({
199
- displayName: 'Display hidden columns',
200
- icon: EyeIcon,
201
- action: () => {
202
- hiddenColumns = []
203
- }
204
- })
205
- }
206
-
207
184
  if (selection.length > 0) {
208
185
  actions.push({
209
186
  displayName: 'Clear selection',
210
187
  icon: Columns,
211
188
  action: () => {
189
+ colSelection = []
212
190
  selection = []
213
191
  renderCount++
214
192
  }
@@ -252,79 +230,60 @@ function convertJsonToCsv(arr) {
252
230
  currentPage = event.detail
253
231
  }}
254
232
  showNext={currentPage * perPage < objects.length}
233
+ rowCount={data.length}
255
234
  >
256
235
  <Head>
257
236
  <tr>
258
237
  <Cell head first={true} last={false}>
259
238
  <input type="checkbox" class="!w-4 !h-4" on:change={handleSelectAllChange} />
260
239
  </Cell>
261
- {#each Object.keys(data?.[0]?.rowData ?? {}) ?? [] as key, index}
262
- <Cell head last={index == Object.keys(objects?.[0] ?? {}).length - 1}>
240
+ {#each headers ?? [] as key, index}
241
+ <Cell head last={index == headers.length - 1}>
263
242
  <div class="flex flex-row gap-1 items-center">
264
243
  {key}
265
- {#if hiddenColumns.includes(key)}
244
+ {#if activeSorting?.column === key}
266
245
  <button
267
246
  class="p-1 w-6 h-6 flex justify-center items-center"
268
247
  on:click={() => {
269
- hiddenColumns = hiddenColumns.filter((col) => col !== key)
248
+ activeSorting = {
249
+ column: key,
250
+ direction: activeSorting?.direction == 'asc' ? 'desc' : 'asc'
251
+ }
270
252
  }}
271
253
  >
272
- <EyeOff size="16" class="hover:text-gray-600 text-gray-400 rounded-full " />
254
+ {#if activeSorting?.direction == 'asc'}
255
+ <ArrowDown size="16" />
256
+ {:else}
257
+ <ArrowUp size="16" />
258
+ {/if}
273
259
  </button>
274
260
  {:else}
275
261
  <button
276
262
  class="p-1 w-6 h-6 flex justify-center items-center"
277
263
  on:click={() => {
278
- hiddenColumns = [...hiddenColumns, key]
264
+ activeSorting = {
265
+ column: key,
266
+ direction: activeSorting?.direction == 'asc' ? 'desc' : 'asc'
267
+ }
279
268
  }}
280
269
  >
281
- <EyeIcon
282
- size="16"
283
- class="hover:text-gray-600 text-gray-400 rounded-full "
284
- />
270
+ <MoveVertical size="16" class=" hover:text-gray-600 text-gray-400" />
285
271
  </button>
286
272
  {/if}
287
- {#if isSortable(key)}
288
- {#if activeSorting?.column === key}
289
- <button
290
- class="p-1 w-6 h-6 flex justify-center items-center"
291
- on:click={() => {
292
- activeSorting = {
293
- column: key,
294
- direction: activeSorting?.direction == 'asc' ? 'desc' : 'asc'
295
- }
296
- }}
297
- disabled={hiddenColumns.includes(key)}
298
- >
299
- {#if activeSorting?.direction == 'asc'}
300
- <ArrowDown size="16" />
301
- {:else}
302
- <ArrowUp size="16" />
303
- {/if}
304
- </button>
305
- {:else}
306
- <button
307
- class="p-1 w-6 h-6 flex justify-center items-center"
308
- on:click={() => {
309
- activeSorting = {
310
- column: key,
311
- direction: activeSorting?.direction == 'asc' ? 'desc' : 'asc'
312
- }
313
- }}
314
- disabled={hiddenColumns.includes(key)}
315
- >
316
- <MoveVertical size="16" class=" hover:text-gray-600 text-gray-400" />
317
- </button>
318
- {/if}
319
- {/if}
273
+ <input
274
+ type="checkbox"
275
+ class="!w-4 !h-4"
276
+ checked={colSelection.includes(key)}
277
+ on:change={() => handleColumnSelected(key)}
278
+ />
320
279
  </div>
321
280
  </Cell>
322
281
  {/each}
323
282
  </tr>
324
283
  </Head>
325
284
  <tbody class="divide-y">
326
- {#each data as { _id, rowData }, index (index)}
327
- <Row dividable selected={selection.includes(_id)}>
285
+ {#each slicedData.filter((x) => x) as { _id, rowData }, index (index)}
286
+ <Row dividable selected={selection.includes(_id) && colSelection.length == 0}>
328
287
  <Cell first={true} last={false} class="w-6">
329
288
  <input
330
289
  type="checkbox"
@@ -333,12 +292,14 @@ function convertJsonToCsv(arr) {
333
292
  on:change={() => handleCheckboxChange(_id)}
334
293
  />
335
294
  </Cell>
336
- {#each Object.keys(data?.[0]?.rowData ?? {}) ?? [] as key, index}
295
+ {#each headers as key, index}
337
296
  {@const value = rowData[key]}
338
- <Cell last={index == Object.values(rowData ?? {}).length - 1}>
339
- {#if hiddenColumns.includes(key)}
340
- ...
341
- {:else if Array.isArray(value) && value.length === 0}
297
+ <Cell
298
+ selected={colSelection.includes(key) &&
299
+ (selection.length == 0 || selection.includes(_id))}
300
+ last={index == Object.values(rowData ?? {}).length - 1}
301
+ >
302
+ {#if Array.isArray(value) && value.length === 0}
342
303
  <div />
343
304
  {:else if Array.isArray(value) && typeof value?.[0] === 'string'}
344
305
  <div class="flex flex-row gap-1 w-full max-w-32 flex-wrap min-w-32">
@@ -382,7 +343,7 @@ function convertJsonToCsv(arr) {
382
343
  </a>
383
344
  {:else}
384
345
  {@const txt =
385
- value == undefined
346
+ value == undefined || value == null
386
347
  ? ''
387
348
  : typeof value != 'string'
388
349
  ? JSON.stringify(value)
@@ -395,7 +356,7 @@ function convertJsonToCsv(arr) {
395
356
  <div
396
357
  class="max-w-80 text-wrap whitespace-pre-wrap flex flex-grow w-max three-lines cursor-text"
397
358
  >
398
- {txt.length > 100 ? txt.slice(0, 100) + '...' : txt}
359
+ {txt?.length > 100 ? txt.slice(0, 100) + '...' : txt}
399
360
  </div>
400
361
  <svelte:fragment slot="text">{txt}</svelte:fragment>
401
362
  </Popover>
@@ -5,6 +5,7 @@ export let last = false;
5
5
  export let numeric = false;
6
6
  export let head = false;
7
7
  export let shouldStopPropagation = false;
8
+ export let selected = false;
8
9
  export let sticky = false;
9
10
  let Tag = head ? 'th' : 'td';
10
11
  const { size } = getContext('datatable');
@@ -31,7 +32,9 @@ const { size } = getContext('datatable');
31
32
  sticky ? `!p-0 sticky ${first ? 'left-0' : 'right-0'}` : 'px-2 py-3.5',
32
33
  size === 'sm' ? 'px-1.5 py-2.5' : '',
33
34
  size === 'lg' ? 'px-3 py-4' : '',
34
- size === 'xs' ? 'px-1 py-1.5' : ''
35
+ size === 'xs' ? 'px-1 py-1.5' : '',
36
+ selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
37
+ 'transition-all'
35
38
  )}
36
39
  >
37
40
  {#if sticky}
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  numeric?: boolean | undefined;
8
8
  head?: boolean | undefined;
9
9
  shouldStopPropagation?: boolean | undefined;
10
+ selected?: boolean | undefined;
10
11
  sticky?: boolean | undefined;
11
12
  };
12
13
  events: {
@@ -15,6 +15,7 @@ export let size = 'md';
15
15
  export let perPage = undefined;
16
16
  export let shouldHidePagination = false;
17
17
  export let noBorder = false;
18
+ export let rowCount = undefined;
18
19
  const dispatch = createEventDispatcher();
19
20
  setContext('datatable', {
20
21
  size
@@ -35,18 +36,25 @@ setContext('datatable', {
35
36
  </div>
36
37
  {#if paginated && !shouldHidePagination}
37
38
  <div
38
- class="bg-surface border-t flex flex-row justify-end p-1 items-center gap-2 sticky bottom-0"
39
+ class="bg-surface border-t flex flex-row justify-between p-1 items-center gap-2 sticky bottom-0"
39
40
  >
41
+ <div>
42
+ {#if rowCount}
43
+ <span class="text-xs mx-2"> {rowCount} items</span>
44
+ {/if}
45
+ </div>
46
+
40
47
  <div class="flex flex-row gap-2 items-center">
41
- <span class="text-xs">Page: {currentPage}</span>
48
+ <span class="text-xs">
49
+ Page: {currentPage}
50
+ {perPage && rowCount ? `/ ${Math.ceil(rowCount / perPage)}` : ''}
51
+ </span>
42
52
 
43
53
  {#if perPage !== undefined}
44
54
  <select class="!text-xs !w-16" bind:value={perPage}>
45
- <option value={5}>5</option>
46
- <option value={10}>10</option>
47
55
  <option value={25}>25</option>
48
- <option value={50}>50</option>
49
56
  <option value={100}>100</option>
57
+ <option value={1000}>1000</option>
50
58
  </select>
51
59
  {/if}
52
60
  <Button
@@ -14,6 +14,7 @@ declare const __propDef: {
14
14
  perPage?: number | undefined;
15
15
  shouldHidePagination?: boolean | undefined;
16
16
  noBorder?: boolean | undefined;
17
+ rowCount?: number | undefined;
17
18
  };
18
19
  events: {
19
20
  previous: CustomEvent<any>;
@@ -0,0 +1,30 @@
1
+ <script>import { Download } from 'lucide-svelte';
2
+ import { Button } from '../common';
3
+ import { sendUserToast } from '../../toast';
4
+ export let getContent;
5
+ export let customText = undefined;
6
+ </script>
7
+
8
+ <Button
9
+ size="xs"
10
+ color="light"
11
+ startIcon={{ icon: Download }}
12
+ on:click={() => {
13
+ try {
14
+ const blob = new Blob([getContent()], { type: 'text/csv;charset=utf-8;' })
15
+ const url = URL.createObjectURL(blob)
16
+ const link = document.createElement('a')
17
+ link.setAttribute('href', url)
18
+ link.setAttribute('download', 'data.csv')
19
+ link.style.visibility = 'hidden'
20
+ document.body.appendChild(link)
21
+ link.click()
22
+
23
+ document.body.removeChild(link)
24
+ } catch (err) {
25
+ sendUserToast(err, true)
26
+ }
27
+ }}
28
+ >
29
+ {customText || 'Download as CSV'}
30
+ </Button>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ getContent: () => string;
5
+ customText?: string | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type DownloadCsvProps = typeof __propDef.props;
13
+ export type DownloadCsvEvents = typeof __propDef.events;
14
+ export type DownloadCsvSlots = typeof __propDef.slots;
15
+ export default class DownloadCsv extends SvelteComponent<DownloadCsvProps, DownloadCsvEvents, DownloadCsvSlots> {
16
+ }
17
+ export {};
@@ -1,2 +1,10 @@
1
1
  export declare function isLink(value: string): boolean;
2
2
  export declare function isEmail(value: string): boolean;
3
+ export declare function computeStructuredObjectsAndHeaders(objects: Array<Record<string, any>>): [
4
+ string[],
5
+ {
6
+ _id: number;
7
+ rowData: Record<string, any>;
8
+ }[]
9
+ ];
10
+ export declare function convertJsonToCsv(arr: Array<Record<string, any>>): string;
@@ -1,6 +1,43 @@
1
+ import { Parser } from '@json2csv/plainjs';
1
2
  export function isLink(value) {
2
3
  return value?.startsWith('http://') || value?.startsWith('https://');
3
4
  }
4
5
  export function isEmail(value) {
5
6
  return value?.includes('@');
6
7
  }
8
+ export function computeStructuredObjectsAndHeaders(objects) {
9
+ if (Array.isArray(objects)) {
10
+ let nextId = 1;
11
+ let hds = [];
12
+ let objs = objects.map((obj) => {
13
+ let rowData = obj && typeof obj == 'object' ? obj : {};
14
+ if (Array.isArray(rowData)) {
15
+ rowData = Object.fromEntries(rowData.map((x, i) => ['col' + i, x]));
16
+ }
17
+ let ks = Object.keys(rowData);
18
+ ks.forEach((x) => {
19
+ if (!hds.includes(x)) {
20
+ hds.push(x);
21
+ }
22
+ });
23
+ return {
24
+ _id: nextId++,
25
+ rowData
26
+ };
27
+ });
28
+ return [hds, objs];
29
+ }
30
+ else {
31
+ return [[], []];
32
+ }
33
+ }
34
+ export function convertJsonToCsv(arr) {
35
+ try {
36
+ const parser = new Parser({});
37
+ const csv = parser.parse(arr);
38
+ return csv;
39
+ }
40
+ catch (err) {
41
+ throw new Error('An error occured when generating CSV:' + err);
42
+ }
43
+ }
@@ -99,7 +99,7 @@ export async function initializeVscode() {
99
99
  ],
100
100
  colors: {
101
101
  'editor.foreground': '#D8DEE9',
102
- 'editor.background': '#2E3440',
102
+ 'editor.background': '#272D38',
103
103
  'editor.selectionBackground': '#434C5ECC',
104
104
  'editor.lineHighlightBackground': '#3B4252',
105
105
  'editorCursor.foreground': '#D8DEE9',
@@ -1,4 +1,4 @@
1
- <script>import { Popup } from '../common';
1
+ <script>import { Alert, Popup } from '../common';
2
2
  import Toggle from '../Toggle.svelte';
3
3
  import SimpleEditor from '../SimpleEditor.svelte';
4
4
  import Label from '../Label.svelte';
@@ -57,6 +57,9 @@ const presets = [
57
57
  }
58
58
  ];
59
59
  let renderCount = 0;
60
+ $: if (value && value.cellRendererType === null) {
61
+ value.cellRendererType = 'text';
62
+ }
60
63
  </script>
61
64
 
62
65
  <Popup
@@ -73,7 +76,7 @@ let renderCount = 0;
73
76
  {#if value}
74
77
  <div class="flex flex-col w-96 p-2 gap-4">
75
78
  <span class="text-sm mb-2 leading-6 font-semibold">
76
- Column definition
79
+ Column definitions
77
80
  <Tooltip
78
81
  documentationLink="https://www.ag-grid.com/javascript-data-grid/column-definitions/"
79
82
  >
@@ -245,6 +248,28 @@ let renderCount = 0;
245
248
  <input type="number" placeholder="row group index" bind:value={value.rowGroupIndex} />
246
249
  </Label>
247
250
  -->
251
+
252
+ <Label label="Type">
253
+ <select bind:value={value.cellRendererType}>
254
+ <option value="text">Text</option>
255
+ <option value="link">Link</option>
256
+ </select>
257
+ </Label>
258
+
259
+ {#if value.cellRendererType === 'link'}
260
+ <Alert type="info" title="Label" size="xs">
261
+ They are two ways to define a link:
262
+ <ul class="list-disc list-inside">
263
+ <li>
264
+ <strong>String</strong>: The string will be used as the link and the label.
265
+ </li>
266
+ <li>
267
+ <strong>Object</strong>: The object must have a <code>href</code> and a
268
+ <code>label</code> property.
269
+ </li>
270
+ </ul>
271
+ </Alert>
272
+ {/if}
248
273
  </div>
249
274
  {/if}
250
275
  </Popup>
@@ -19,6 +19,7 @@ declare const __propDef: {
19
19
  headerName: string;
20
20
  editable: boolean;
21
21
  filter: boolean;
22
+ cellRendererType: 'text' | 'badge' | 'link';
22
23
  } | undefined;
23
24
  };
24
25
  events: {