windmill-components 1.309.6 → 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 (383) 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 +15 -8
  91. package/package/components/ScriptBuilder.svelte.d.ts +1 -0
  92. package/package/components/ScriptEditor.svelte +1 -2
  93. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  94. package/package/components/SimpleEditor.svelte +4 -1
  95. package/package/components/StringTypeNarrowing.svelte +43 -24
  96. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -0
  97. package/package/components/TemplateEditor.svelte +1 -0
  98. package/package/components/TestJobLoader.svelte +14 -5
  99. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  100. package/package/components/Toggle.svelte +1 -1
  101. package/package/components/Tooltip.svelte +8 -2
  102. package/package/components/Tooltip.svelte.d.ts +1 -0
  103. package/package/components/WorkspaceGroup.svelte +74 -9
  104. package/package/components/WorkspaceGroup.svelte.d.ts +1 -0
  105. package/package/components/app_connect.d.ts +7 -0
  106. package/package/components/app_connect.js +78 -0
  107. package/package/components/apps/components/buttons/AppButton.svelte +0 -1
  108. package/package/components/apps/components/display/AppAlert.svelte +1 -1
  109. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  110. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
  111. package/package/components/apps/components/display/AppDownload.svelte +1 -1
  112. package/package/components/apps/components/display/AppIcon.svelte +1 -1
  113. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +2 -2
  114. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +3 -3
  115. package/package/components/apps/components/display/AppMap.svelte +3 -2
  116. package/package/components/apps/components/display/AppMenu.svelte +1 -1
  117. package/package/components/apps/components/display/AppPdf.svelte +3 -11
  118. package/package/components/apps/components/display/AppText.svelte +7 -2
  119. package/package/components/apps/components/display/charts/AppAgCharts.svelte +6 -3
  120. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +32 -30
  121. package/package/components/apps/components/display/dbtable/InsertRow.svelte +3 -6
  122. package/package/components/apps/components/display/dbtable/queries/delete.js +1 -1
  123. package/package/components/apps/components/display/dbtable/queries/insert.js +1 -12
  124. package/package/components/apps/components/display/dbtable/queries/select.js +1 -1
  125. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  126. package/package/components/apps/components/display/dbtable/utils.d.ts +0 -1
  127. package/package/components/apps/components/display/dbtable/utils.js +0 -83
  128. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +75 -44
  129. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +5 -1
  130. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +172 -0
  131. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +27 -0
  132. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +38 -0
  133. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +28 -0
  134. package/package/components/apps/components/display/table/AppAggridTable.svelte +189 -56
  135. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
  136. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +11 -2
  137. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  138. package/package/components/apps/components/display/table/AppCell.svelte +1 -3
  139. package/package/components/apps/components/display/table/AppTable.svelte +320 -281
  140. package/package/components/apps/components/display/table/AppTableFooter.svelte +42 -23
  141. package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -2
  142. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +119 -0
  143. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +21 -0
  144. package/package/components/apps/components/display/table/theme/windmill-theme.css +656 -0
  145. package/package/components/apps/components/display/table/utils.js +22 -0
  146. package/package/components/apps/components/helpers/DebouncedInput.svelte +3 -2
  147. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +35 -0
  148. package/package/components/apps/components/helpers/RefreshButton.svelte +30 -12
  149. package/package/components/apps/components/helpers/RefreshButton.svelte.d.ts +1 -3
  150. package/package/components/apps/components/helpers/RefreshIndicator.svelte +19 -0
  151. package/package/components/apps/components/helpers/RefreshIndicator.svelte.d.ts +16 -0
  152. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  153. package/package/components/apps/components/helpers/RunnableComponent.svelte +86 -35
  154. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +8 -5
  155. package/package/components/apps/components/helpers/RunnableWrapper.svelte +7 -1
  156. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -0
  157. package/package/components/apps/components/inputs/AppDateInput.svelte +5 -1
  158. package/package/components/apps/components/inputs/AppFileInput.svelte +11 -2
  159. package/package/components/apps/components/inputs/AppMultiSelect.svelte +56 -50
  160. package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -0
  161. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +178 -0
  162. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte.d.ts +24 -0
  163. package/package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
  164. package/package/components/apps/components/inputs/AppQuillEditor.svelte +26 -0
  165. package/package/components/apps/components/inputs/AppRangeInput.svelte +38 -37
  166. package/package/components/apps/components/inputs/AppSelect.svelte +21 -10
  167. package/package/components/apps/components/inputs/AppSliderInputs.svelte +26 -31
  168. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  169. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
  170. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +7 -2
  171. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  172. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  173. package/package/components/apps/components/layout/AppDrawer.svelte +16 -3
  174. package/package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -0
  175. package/package/components/apps/components/layout/AppModal.svelte +85 -79
  176. package/package/components/apps/components/layout/AppModal.svelte.d.ts +2 -0
  177. package/package/components/apps/components/layout/AppStepper.svelte +2 -1
  178. package/package/components/apps/components/layout/AppTabs.svelte +1 -1
  179. package/package/components/apps/editor/AppEditor.svelte +3 -2
  180. package/package/components/apps/editor/AppEditorHeader.svelte +62 -31
  181. package/package/components/apps/editor/AppInputs.svelte +1 -1
  182. package/package/components/apps/editor/AppPreview.svelte +18 -7
  183. package/package/components/apps/editor/ComponentHeader.svelte +37 -1
  184. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  185. package/package/components/apps/editor/GridEditor.svelte +15 -6
  186. package/package/components/apps/editor/GridEditorMenu.svelte +120 -49
  187. package/package/components/apps/editor/GridViewer.svelte +14 -5
  188. package/package/components/apps/editor/GridViewer.svelte.d.ts +5 -1
  189. package/package/components/apps/editor/RecomputeAllComponents.svelte +17 -3
  190. package/package/components/apps/editor/RunnableJobPanel.svelte +9 -5
  191. package/package/components/apps/editor/SettingsPanel.svelte +6 -2
  192. package/package/components/apps/editor/SubGridEditor.svelte +44 -27
  193. package/package/components/apps/editor/appUtils.d.ts +6 -1
  194. package/package/components/apps/editor/appUtils.js +85 -7
  195. package/package/components/apps/editor/component/Component.svelte +78 -2
  196. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -0
  197. package/package/components/apps/editor/component/components.d.ts +274 -21
  198. package/package/components/apps/editor/component/components.js +176 -12
  199. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  200. package/package/components/apps/editor/component/default-codes.js +241 -9
  201. package/package/components/apps/editor/component/sets.d.ts +3 -0
  202. package/package/components/apps/editor/component/sets.js +12 -2
  203. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +15 -2
  204. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +4 -2
  205. package/package/components/apps/editor/componentsPanel/cssUtils.js +1 -1
  206. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +5 -0
  207. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -5
  208. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -1
  209. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +46 -6
  210. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +1 -1
  211. package/package/components/apps/editor/inlineScriptsPanel/utils.js +3 -1
  212. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  213. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +1 -1
  214. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +8 -5
  215. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +54 -4
  216. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +61 -0
  217. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +16 -0
  218. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +12 -10
  219. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte +29 -32
  220. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte.d.ts +0 -5
  221. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +27 -25
  222. package/package/components/apps/editor/settingsPanel/GridTab.svelte +1 -1
  223. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +2 -1
  224. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte.d.ts +1 -0
  225. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +24 -3
  226. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +27 -1
  227. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  228. package/package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
  229. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +4 -3
  230. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +3 -2
  231. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +1 -0
  232. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -4
  233. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +6 -3
  234. package/package/components/apps/inputType.d.ts +4 -0
  235. package/package/components/apps/rx.d.ts +1 -1
  236. package/package/components/apps/rx.js +7 -0
  237. package/package/components/apps/svelte-grid/Grid.svelte +13 -4
  238. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +2 -1
  239. package/package/components/apps/svelte-grid/types.d.ts +1 -0
  240. package/package/components/apps/svelte-grid/utils/helper.js +1 -0
  241. package/package/components/apps/svelte-grid/utils/overlap.d.ts +3 -0
  242. package/package/components/apps/svelte-grid/utils/overlap.js +21 -0
  243. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +2 -2
  244. package/package/components/apps/svelte-select/lib/tailwind.css +1 -1
  245. package/package/components/apps/types.d.ts +1 -0
  246. package/package/components/apps/utils.js +13 -3
  247. package/package/components/auditLogs/AuditLogsTable.svelte +5 -2
  248. package/package/components/build_workers.js +1 -0
  249. package/package/components/common/alert/Alert.svelte +17 -17
  250. package/package/components/common/badge/Badge.svelte +6 -3
  251. package/package/components/common/badge/model.d.ts +1 -1
  252. package/package/components/common/button/Button.svelte +22 -14
  253. package/package/components/common/calendarPicker/CalendarPicker.svelte +2 -0
  254. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -0
  255. package/package/components/common/drawer/ConditionalPortal.svelte +9 -0
  256. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +18 -0
  257. package/package/components/common/drawer/Disposable.svelte +66 -0
  258. package/package/components/common/drawer/Disposable.svelte.d.ts +36 -0
  259. package/package/components/common/drawer/Drawer.svelte +29 -55
  260. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -1
  261. package/package/components/common/fileInput/FileInput.svelte +3 -3
  262. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  263. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  264. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  265. package/package/components/common/table/RowIcon.svelte +4 -4
  266. package/package/components/common/table/ScriptRow.svelte +12 -1
  267. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  268. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +45 -0
  269. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +24 -0
  270. package/package/components/copilot/CronGen.svelte +2 -2
  271. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  272. package/package/components/copilot/RegexGen.svelte +17 -39
  273. package/package/components/copilot/ScriptGen.svelte +14 -5
  274. package/package/components/copilot/StepInputGen.svelte +2 -1
  275. package/package/components/copilot/StepInputsGen.svelte +2 -1
  276. package/package/components/copilot/completion.js +60 -9
  277. package/package/components/copilot/lib.js +5 -3
  278. package/package/components/copilot/prompts/edit.yaml +24 -0
  279. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  280. package/package/components/copilot/prompts/editPrompt.js +3 -0
  281. package/package/components/copilot/prompts/fix.yaml +25 -0
  282. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  283. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  284. package/package/components/copilot/prompts/gen.yaml +20 -0
  285. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  286. package/package/components/copilot/prompts/genPrompt.js +3 -0
  287. package/package/components/copilot/utils.d.ts +2 -1
  288. package/package/components/copilot/utils.js +38 -0
  289. package/package/components/details/createAppFromScript.d.ts +26 -0
  290. package/package/components/details/createAppFromScript.js +50 -24
  291. package/package/components/flows/CreateActionsApp.svelte +1 -0
  292. package/package/components/flows/CreateActionsFlow.svelte +1 -0
  293. package/package/components/flows/content/FlowInputs.svelte +2 -2
  294. package/package/components/flows/content/FlowModuleComponent.svelte +15 -6
  295. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  296. package/package/components/flows/flowExplorer.js +4 -1
  297. package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
  298. package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
  299. package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -0
  300. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  301. package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
  302. package/package/components/flows/map/MapItem.svelte +2 -0
  303. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  304. package/package/components/graph/FlowGraph.svelte +1 -0
  305. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +41 -16
  306. package/package/components/home/ItemsList.svelte +44 -9
  307. package/package/components/home/TreeView.svelte +2 -0
  308. package/package/components/icons/AzureIcon.svelte +25 -1
  309. package/package/components/icons/PHPIcon.svelte +117 -0
  310. package/package/components/icons/PHPIcon.svelte.d.ts +17 -0
  311. package/package/components/instanceSettings.d.ts +1 -1
  312. package/package/components/instanceSettings.js +18 -2
  313. package/package/components/jobs/JobPreview.svelte +5 -0
  314. package/package/components/multiselect/MultiSelect.svelte +782 -0
  315. package/package/components/multiselect/MultiSelect.svelte.d.ts +97 -0
  316. package/package/components/multiselect/types.d.ts +56 -0
  317. package/package/components/multiselect/types.js +1 -0
  318. package/package/components/multiselect/utils.d.ts +7 -0
  319. package/package/components/multiselect/utils.js +54 -0
  320. package/package/components/propertyPicker/ObjectViewer.svelte +14 -1
  321. package/package/components/runs/JobLoader.svelte +135 -17
  322. package/package/components/runs/JobLoader.svelte.d.ts +7 -2
  323. package/package/components/runs/JobPreview.svelte +39 -3
  324. package/package/components/runs/JobPreview.svelte.d.ts +2 -0
  325. package/package/components/runs/RunRow.svelte +78 -31
  326. package/package/components/runs/RunRow.svelte.d.ts +3 -0
  327. package/package/components/runs/RunsFilter.svelte +125 -9
  328. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  329. package/package/components/runs/RunsTable.svelte +53 -5
  330. package/package/components/runs/RunsTable.svelte.d.ts +6 -0
  331. package/package/components/scriptEditor/LogPanel.svelte +46 -33
  332. package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -0
  333. package/package/components/scripts/CreateActionsScript.svelte +1 -1
  334. package/package/components/settings/WorkspaceUserSettings.svelte +246 -226
  335. package/package/components/sidebar/MenuButton.svelte +1 -1
  336. package/package/components/sidebar/MenuLink.svelte +1 -1
  337. package/package/components/sidebar/changelogs.js +40 -0
  338. package/package/components/table/AutoDataTable.svelte +77 -102
  339. package/package/components/table/DataTable.svelte +13 -5
  340. package/package/components/table/DataTable.svelte.d.ts +1 -0
  341. package/package/components/vscode.js +1 -1
  342. package/package/components/wizards/AgGridWizard.svelte +27 -2
  343. package/package/components/wizards/AgGridWizard.svelte.d.ts +1 -0
  344. package/package/consts.js +5 -1
  345. package/package/defaults.d.ts +2 -2
  346. package/package/defaults.js +2 -2
  347. package/package/deno_fetch.d.ts.txt +30 -0
  348. package/package/editorUtils.js +2 -0
  349. package/package/gen/core/OpenAPI.js +5 -6
  350. package/package/gen/core/request.js +4 -1
  351. package/package/gen/index.d.ts +0 -1
  352. package/package/gen/index.js +0 -1
  353. package/package/gen/schemas.gen.d.ts +97 -428
  354. package/package/gen/schemas.gen.js +97 -433
  355. package/package/gen/services.gen.d.ts +3087 -1840
  356. package/package/gen/services.gen.js +3442 -2358
  357. package/package/gen/types.gen.d.ts +5048 -1505
  358. package/package/infer.d.ts +1 -1
  359. package/package/infer.js +6 -2
  360. package/package/inferArgSig.js +5 -2
  361. package/package/init_scripts/python_init_code.d.ts +1 -1
  362. package/package/init_scripts/python_init_code.js +1 -1
  363. package/package/process.d.ts.txt +1770 -0
  364. package/package/script_helpers.d.ts +3 -2
  365. package/package/script_helpers.js +28 -3
  366. package/package/scripts.d.ts +1 -1
  367. package/package/scripts.js +4 -0
  368. package/package/utils.d.ts +3 -0
  369. package/package/utils.js +46 -3
  370. package/package/windmill_fetch.d.ts.txt +16966 -0
  371. package/package/zIndexes.d.ts +12 -0
  372. package/package/zIndexes.js +12 -0
  373. package/package.json +5 -5
  374. package/package/components/AppConnect.svelte +0 -566
  375. package/package/components/AppConnect.svelte.d.ts +0 -23
  376. package/package/components/ContextMenu.svelte +0 -89
  377. package/package/components/ContextMenu.svelte.d.ts +0 -28
  378. package/package/components/apps/components/display/index.d.ts +0 -17
  379. package/package/components/apps/components/display/index.js +0 -17
  380. package/package/components/apps/components/helpers/index.d.ts +0 -10
  381. package/package/components/apps/components/helpers/index.js +0 -10
  382. package/package/components/apps/components/index.d.ts +0 -5
  383. package/package/components/apps/components/index.js +0 -5
@@ -0,0 +1,513 @@
1
+ <script>import { workspaceStore } from '../stores';
2
+ import IconedResourceType from './IconedResourceType.svelte';
3
+ import { OauthService, ResourceService, VariableService } from '../gen';
4
+ import { emptyString, truncateRev, urlize } from '../utils';
5
+ import { createEventDispatcher } from 'svelte';
6
+ import Path from './Path.svelte';
7
+ import { Button, Skeleton } from './common';
8
+ import ApiConnectForm from './ApiConnectForm.svelte';
9
+ import SearchItems from './SearchItems.svelte';
10
+ import WhitelistIp from './WhitelistIp.svelte';
11
+ import { sendUserToast } from '../toast';
12
+ import OauthScopes from './OauthScopes.svelte';
13
+ import Markdown from 'svelte-exmarkdown';
14
+ import autosize from '../autosize';
15
+ import Required from './Required.svelte';
16
+ import Toggle from './Toggle.svelte';
17
+ import { Pen } from 'lucide-svelte';
18
+ import GfmMarkdown from './GfmMarkdown.svelte';
19
+ import { apiTokenApps, forceSecretValue, linkedSecretValue } from './app_connect';
20
+ export let step = 1;
21
+ export let resourceType = '';
22
+ export let isGoogleSignin = false;
23
+ export let disabled = false;
24
+ export let manual = false;
25
+ let isValid = true;
26
+ const nativeLanguagesCategory = [
27
+ 'postgresql',
28
+ 'mysql',
29
+ 'bigquery',
30
+ 'snowflake',
31
+ 'mssql',
32
+ 'graphql'
33
+ ];
34
+ let filter = '';
35
+ let value = '';
36
+ let valueToken = undefined;
37
+ let connects = undefined;
38
+ let connectsManual = undefined;
39
+ let args = {};
40
+ let renderDescription = true;
41
+ $: linkedSecretCandidates = apiTokenApps[resourceType]?.linkedSecret
42
+ ? [apiTokenApps[resourceType]?.linkedSecret]
43
+ : args != undefined
44
+ ? Object.keys(args).filter((x) => ['token', 'secret', 'key', 'pass', 'private'].some((y) => x.toLowerCase().includes(y)))
45
+ : undefined;
46
+ $: linkedSecret =
47
+ forceSecretValue(resourceType) ??
48
+ linkedSecretCandidates?.sort((ua, ub) => linkedSecretValue(ub) - linkedSecretValue(ua))?.[0];
49
+ let scopes = [];
50
+ let extra_params = [];
51
+ let path;
52
+ let description = '';
53
+ let resourceTypeInfo = undefined;
54
+ let pathError = '';
55
+ export async function open(rt) {
56
+ step = 1;
57
+ value = '';
58
+ description = '';
59
+ resourceType = rt ?? '';
60
+ valueToken = undefined;
61
+ await loadConnects();
62
+ const isConnect = connects?.includes(resourceType);
63
+ if (isConnect) {
64
+ manual = false;
65
+ next();
66
+ }
67
+ else {
68
+ manual = true;
69
+ if (rt) {
70
+ next();
71
+ }
72
+ else {
73
+ loadResourceTypes();
74
+ }
75
+ }
76
+ }
77
+ async function loadConnects() {
78
+ if (!connects) {
79
+ connects = (await OauthService.listOauthConnects()).filter((x) => x != 'supabase_wizard');
80
+ }
81
+ }
82
+ const connectAndManual = ['gitlab'];
83
+ $: isGoogleSignin =
84
+ step == 1 &&
85
+ (resourceType == 'google' ||
86
+ resourceType == 'gmail' ||
87
+ resourceType == 'gcal' ||
88
+ resourceType == 'gdrive' ||
89
+ resourceType == 'gsheets');
90
+ $: disabled =
91
+ (step == 1 && resourceType == '') ||
92
+ (step == 2 &&
93
+ value == '' &&
94
+ args &&
95
+ args['token'] == '' &&
96
+ args['password'] == '' &&
97
+ args['api_key'] == '' &&
98
+ args['key'] == '' &&
99
+ linkedSecret != undefined) ||
100
+ step == 3 ||
101
+ (step == 4 && pathError != '') ||
102
+ !isValid;
103
+ export async function loadResourceTypes() {
104
+ if (connectsManual) {
105
+ return;
106
+ }
107
+ const availableRts = await ResourceService.listResourceTypeNames({
108
+ workspace: $workspaceStore
109
+ });
110
+ connectsManual = availableRts
111
+ .filter((x) => connectAndManual.includes(x) || !Object.keys(connects ?? {}).includes(x))
112
+ .map((x) => [
113
+ x,
114
+ apiTokenApps[x] ?? {
115
+ instructions: '',
116
+ img: undefined,
117
+ linkedSecret: undefined
118
+ }
119
+ ]);
120
+ const filteredNativeLanguages = filteredConnectsManual?.filter((o) => nativeLanguagesCategory?.includes(o[0]) ?? false);
121
+ try {
122
+ filteredConnectsManual = [
123
+ ...(filteredNativeLanguages ?? []),
124
+ ...(filteredConnectsManual ?? []).filter(([key, _]) => !nativeLanguagesCategory.includes(key))
125
+ ];
126
+ }
127
+ catch (e) { }
128
+ }
129
+ function popupListener(event) {
130
+ let data = event.data;
131
+ if (event.origin !== window.location.origin) {
132
+ return;
133
+ }
134
+ if (data.type === 'error') {
135
+ sendUserToast(event.data.error, true);
136
+ step = 2;
137
+ }
138
+ else if (data.type === 'success') {
139
+ resourceType = data.resource_type;
140
+ value = data.res.access_token;
141
+ valueToken = data.res;
142
+ step = 4;
143
+ }
144
+ }
145
+ async function getScopesAndParams() {
146
+ const connect = await OauthService.getOauthConnect({ client: resourceType });
147
+ scopes = connect.scopes ?? [];
148
+ extra_params = Object.entries(connect.extra_params ?? {});
149
+ }
150
+ async function getResourceTypeInfo() {
151
+ resourceTypeInfo = await ResourceService.getResourceType({
152
+ workspace: $workspaceStore,
153
+ path: resourceType
154
+ });
155
+ }
156
+ export async function next() {
157
+ if (step == 1) {
158
+ if (manual) {
159
+ await getResourceTypeInfo();
160
+ args = {};
161
+ }
162
+ else {
163
+ await Promise.all([getScopesAndParams(), getResourceTypeInfo()]);
164
+ }
165
+ step += 1;
166
+ }
167
+ else if (step == 2 && !manual) {
168
+ const url = new URL(`/api/oauth/connect/${resourceType}`, window.location.origin);
169
+ url.searchParams.append('scopes', scopes.join('+'));
170
+ if (extra_params.length > 0) {
171
+ extra_params.forEach(([key, value]) => url.searchParams.append(key, value));
172
+ }
173
+ // if (!newPageOAuth) {
174
+ // window.location.href = url.toString()
175
+ // } else {
176
+ window.addEventListener('message', popupListener, { once: true });
177
+ window.open(url.toString(), '_blank', 'popup=true');
178
+ step += 1;
179
+ // dispatch('close')
180
+ // }
181
+ }
182
+ else {
183
+ let exists = await VariableService.existsVariable({
184
+ workspace: $workspaceStore,
185
+ path
186
+ });
187
+ if (exists) {
188
+ throw Error(`Variable at path ${path} already exists. Delete it or pick another path`);
189
+ }
190
+ exists = await ResourceService.existsResource({
191
+ workspace: $workspaceStore,
192
+ path
193
+ });
194
+ if (exists) {
195
+ throw Error(`Resource at path ${path} already exists. Delete it or pick another path`);
196
+ }
197
+ let account = undefined;
198
+ if (valueToken?.expires_in != undefined) {
199
+ account = Number(await OauthService.createAccount({
200
+ workspace: $workspaceStore,
201
+ requestBody: {
202
+ refresh_token: valueToken.refresh_token ?? '',
203
+ expires_in: valueToken.expires_in,
204
+ client: resourceType
205
+ }
206
+ }));
207
+ }
208
+ const resourceValue = args;
209
+ let saveVariable = false;
210
+ if (!manual || linkedSecret != undefined) {
211
+ let v = manual ? args[linkedSecret ?? ''] : value;
212
+ if (typeof v == 'string' && v != '' && !v.startsWith('$var:')) {
213
+ saveVariable = true;
214
+ await VariableService.createVariable({
215
+ workspace: $workspaceStore,
216
+ requestBody: {
217
+ path,
218
+ value: v,
219
+ is_secret: true,
220
+ description: emptyString(description)
221
+ ? `${manual ? 'Token' : 'OAuth token'} for ${resourceType}`
222
+ : description,
223
+ is_oauth: !manual,
224
+ account: account
225
+ }
226
+ });
227
+ resourceValue[linkedSecret ?? 'token'] = `$var:${path}`;
228
+ }
229
+ }
230
+ await ResourceService.createResource({
231
+ workspace: $workspaceStore,
232
+ requestBody: {
233
+ resource_type: resourceType,
234
+ path,
235
+ value: resourceValue,
236
+ description
237
+ }
238
+ });
239
+ dispatch('refresh', path);
240
+ dispatch('close');
241
+ sendUserToast(`Saved resource${saveVariable ? ' and variable' : ''} path: ${path}`);
242
+ step = 1;
243
+ resourceType = '';
244
+ }
245
+ }
246
+ export async function back() {
247
+ if (step == 4) {
248
+ step -= 2;
249
+ }
250
+ else if (step > 1) {
251
+ step -= 1;
252
+ }
253
+ if (step == 1) {
254
+ loadConnects();
255
+ loadResourceTypes();
256
+ }
257
+ }
258
+ const dispatch = createEventDispatcher();
259
+ let filteredConnects = [];
260
+ let filteredConnectsManual = [];
261
+ let editScopes = false;
262
+ </script>
263
+
264
+ <SearchItems
265
+ {filter}
266
+ items={connects
267
+ ? connects
268
+ .sort((a, b) => a.localeCompare(b))
269
+ .map((key) => ({
270
+ key
271
+ }))
272
+ : undefined}
273
+ bind:filteredItems={filteredConnects}
274
+ f={(x) => x.key}
275
+ />
276
+ <SearchItems
277
+ {filter}
278
+ items={connectsManual?.sort((a, b) => a[0].localeCompare(b[0]))}
279
+ bind:filteredItems={filteredConnectsManual}
280
+ f={(x) => x[0]}
281
+ />
282
+
283
+ {#if step == 1}
284
+ <div class="w-12/12 pb-2 flex flex-row my-1 gap-1">
285
+ <input
286
+ type="text"
287
+ placeholder="Search resource type"
288
+ bind:value={filter}
289
+ class="text-2xl grow"
290
+ />
291
+ </div>
292
+
293
+ <h2 class="mb-4">OAuth APIs</h2>
294
+ <div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
295
+ {#if filteredConnects}
296
+ {#each filteredConnects as { key }}
297
+ <Button
298
+ size="sm"
299
+ variant="border"
300
+ color={key === resourceType ? 'blue' : 'light'}
301
+ btnClasses={key === resourceType ? '!border-2' : 'm-[1px]'}
302
+ on:click={() => {
303
+ manual = false
304
+ resourceType = key
305
+ next()
306
+ }}
307
+ >
308
+ <IconedResourceType name={key} after={true} width="20px" height="20px" />
309
+ </Button>
310
+ {/each}
311
+ {:else}
312
+ {#each new Array(3) as _}
313
+ <Skeleton layout={[[2]]} />
314
+ {/each}
315
+ {/if}
316
+ </div>
317
+ {#if connects && connects.length == 0}
318
+ <div class="text-secondary text-sm w-full"
319
+ >No OAuth APIs has been setup on the instance. To add oauth APIs, first sync the resource
320
+ types with the hub, then add oauth configuration. See <a
321
+ href="https://www.windmill.dev/docs/misc/setup_oauth">documentation</a
322
+ >
323
+ </div>
324
+ {/if}
325
+
326
+ <h2 class="mt-8 mb-4">Others</h2>
327
+
328
+ {#if connectsManual && connectsManual?.length < 10}
329
+ <div class="text-secondary p-2">
330
+ Resource Types have not been synced with the hub. Go to the admins workspace to sync them (and
331
+ add a schedule to do daily):
332
+ <p class="mt-4"
333
+ >1. Go to the "admins" workspaces:
334
+ <img src="/sync_resource_types.png" alt="sync resource types" class="mt-2" />
335
+ </p>
336
+ <p class="mt-4">
337
+ 2: Run the synchronization script:
338
+ <img src="/sync_resource_types2.png" alt="sync resource types" class="mt-2" />
339
+ </p>
340
+ </div>
341
+ {/if}
342
+
343
+ <div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
344
+ {#if filteredConnectsManual}
345
+ {#each filteredConnectsManual as [key, _]}
346
+ {#if nativeLanguagesCategory.includes(key)}
347
+ <Button
348
+ size="sm"
349
+ variant="border"
350
+ color={key === resourceType ? 'blue' : 'light'}
351
+ btnClasses={key === resourceType ? '!border-2' : 'm-[1px]'}
352
+ on:click={() => {
353
+ manual = true
354
+ resourceType = key
355
+ next()
356
+ }}
357
+ >
358
+ <IconedResourceType name={key} after={true} width="20px" height="20px" />
359
+ </Button>
360
+ {/if}
361
+ {/each}
362
+ {/if}
363
+ </div>
364
+
365
+ <div class="mt-8 mb-4" />
366
+ <div class="grid sm:grid-cols-2 md:grid-cols-3 gap-x-2 gap-y-1 items-center mb-2">
367
+ {#if filteredConnectsManual}
368
+ {#each filteredConnectsManual as [key, _]}
369
+ {#if !nativeLanguagesCategory.includes(key)}
370
+ <!-- Exclude specific items -->
371
+ <Button
372
+ size="sm"
373
+ variant="border"
374
+ color={key === resourceType ? 'blue' : 'light'}
375
+ btnClasses={key === resourceType ? '!border-2' : 'm-[1px]'}
376
+ on:click={() => {
377
+ manual = true
378
+ resourceType = key
379
+ next()
380
+ }}
381
+ >
382
+ <IconedResourceType name={key} after={true} width="20px" height="20px" />
383
+ </Button>
384
+ {/if}
385
+ {/each}
386
+ {:else}
387
+ {#each new Array(9) as _}
388
+ <Skeleton layout={[[2]]} />
389
+ {/each}
390
+ {/if}
391
+ </div>
392
+ {:else if step == 2 && manual}
393
+ <Path
394
+ bind:error={pathError}
395
+ bind:path
396
+ initialPath=""
397
+ namePlaceholder={resourceType}
398
+ kind="resource"
399
+ />
400
+
401
+ {#if apiTokenApps[resourceType]}
402
+ <h2 class="mt-4 mb-2">Instructions</h2>
403
+ <div class="pl-10">
404
+ <ol class="list-decimal">
405
+ {#each apiTokenApps[resourceType].instructions as step}
406
+ <li>
407
+ {@html step}
408
+ </li>
409
+ {/each}
410
+ </ol>
411
+ </div>
412
+ {#if apiTokenApps[resourceType].img}
413
+ <div class="mt-4 w-full overflow-hidden">
414
+ <img class="m-auto max-h-60" alt="connect" src={apiTokenApps[resourceType].img} />
415
+ </div>
416
+ {/if}
417
+ {:else if !emptyString(resourceTypeInfo?.description)}
418
+ <h4 class="mt-8 mb-2">{resourceTypeInfo?.name} description</h4>
419
+ <div class="text-sm">
420
+ <Markdown md={urlize(resourceTypeInfo?.description ?? '', 'md')} />
421
+ </div>
422
+ {/if}
423
+ {#if resourceType == 'postgresql' || resourceType == 'mysql' || resourceType == 'mongodb'}
424
+ <WhitelistIp />
425
+ {/if}
426
+
427
+ <h4 class="mt-8 inline-flex items-center gap-4"
428
+ >Resource description <Required required={false} />
429
+ <div class="flex gap-1 items-center">
430
+ <Toggle size="xs" bind:checked={renderDescription} />
431
+ <Pen size={14} />
432
+ </div>
433
+ </h4>
434
+ {#if renderDescription}
435
+ <div>
436
+ <div class="flex flex-row-reverse text-2xs text-tertiary -mt-1">GH Markdown</div>
437
+ <textarea use:autosize bind:value={description} placeholder={'Resource description'} />
438
+ </div>
439
+ {:else if description == undefined || description == ''}
440
+ <div class="text-sm text-tertiary">No description provided</div>
441
+ {:else}
442
+ <div class="mt-2" />
443
+ <GfmMarkdown md={description} />
444
+ {/if}
445
+ <div class="mt-12">
446
+ {#key resourceTypeInfo}
447
+ <ApiConnectForm
448
+ {linkedSecret}
449
+ {linkedSecretCandidates}
450
+ {resourceType}
451
+ {resourceTypeInfo}
452
+ bind:args
453
+ bind:isValid
454
+ />
455
+ {/key}
456
+ </div>
457
+ {:else if step == 2 && !manual}
458
+ {#if manual == false && resourceType != ''}
459
+ <h1 class="mb-4">{resourceType}</h1>
460
+ <div class="my-4 text-secondary"
461
+ >Click connect to create a resource backed by an oauth connection, whose token is fetched from
462
+ the external services and refreshed automatically if needed before expiration (using its
463
+ refresh token)</div
464
+ >
465
+ <h4 class="mb-2">Description</h4>
466
+ <div class="text-sm mb-8">
467
+ <Markdown md={urlize(resourceTypeInfo?.description ?? '', 'md')} />
468
+ </div>
469
+ <h3 class="mb-4 flex gap-4"
470
+ >Scopes <button
471
+ on:click={() => {
472
+ editScopes = !editScopes
473
+ }}><Pen size={14} /></button
474
+ ></h3
475
+ >
476
+
477
+ {#if editScopes}
478
+ <OauthScopes bind:scopes />
479
+ {:else}
480
+ <div class="flex flex-col gap-1">
481
+ {#each scopes as scope}
482
+ <div class="py-0.5 pl-2 text-xs">- {scope}</div>
483
+ {/each}
484
+ </div>
485
+ {/if}
486
+ {/if}
487
+ {:else if step == 3 && !manual}
488
+ Finish connection in popup window
489
+ {:else}
490
+ <Path
491
+ initialPath=""
492
+ namePlaceholder={resourceType}
493
+ bind:error={pathError}
494
+ bind:path
495
+ kind="resource"
496
+ />
497
+ {#if apiTokenApps[resourceType] || !manual}
498
+ <ul class="mt-10">
499
+ <li>
500
+ 1. A secret variable containing the {apiTokenApps[resourceType]?.linkedSecret ?? 'token'}
501
+ <span class="font-bold">{truncateRev(value, 5, '*****')}</span>
502
+ will be stored a
503
+ <span class="font-mono whitespace-nowrap">{path}</span>.
504
+ </li>
505
+ <li class="mt-4">
506
+ 2. The resource containing that token will be stored at the same path <span
507
+ class="font-mono whitespace-nowrap">{path}</span
508
+ >. The Variable and Resource will be "linked together", they will be deleted and renamed
509
+ together.
510
+ </li></ul
511
+ >
512
+ {/if}
513
+ {/if}
@@ -0,0 +1,28 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ step?: number | undefined;
5
+ resourceType?: string | undefined;
6
+ isGoogleSignin?: boolean | undefined;
7
+ disabled?: boolean | undefined;
8
+ manual?: boolean | undefined;
9
+ open?: ((rt?: string) => Promise<void>) | undefined;
10
+ loadResourceTypes?: (() => Promise<void>) | undefined;
11
+ next?: (() => Promise<void>) | undefined;
12
+ back?: (() => Promise<void>) | undefined;
13
+ };
14
+ events: {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {};
18
+ };
19
+ export type AppConnectInnerProps = typeof __propDef.props;
20
+ export type AppConnectInnerEvents = typeof __propDef.events;
21
+ export type AppConnectInnerSlots = typeof __propDef.slots;
22
+ export default class AppConnectInner extends SvelteComponent<AppConnectInnerProps, AppConnectInnerEvents, AppConnectInnerSlots> {
23
+ get open(): (rt?: string | undefined) => Promise<void>;
24
+ get loadResourceTypes(): () => Promise<void>;
25
+ get next(): () => Promise<void>;
26
+ get back(): () => Promise<void>;
27
+ }
28
+ export {};
@@ -1,4 +1,4 @@
1
- <script>import { ResourceService } from '../gen';
1
+ <script>import { ResourceService, VariableService } from '../gen';
2
2
  import { workspaceStore } from '../stores';
3
3
  import { copyToClipboard, truncate } from '../utils';
4
4
  import { ClipboardCopy, Expand } from 'lucide-svelte';
@@ -13,8 +13,16 @@ function isString(value) {
13
13
  return typeof value === 'string' || value instanceof String;
14
14
  }
15
15
  async function getResource(path) {
16
- jsonViewerContent = (await ResourceService.getResource({ workspace: $workspaceStore, path }))
17
- .value;
16
+ jsonViewerContent = await ResourceService.getResourceValue({
17
+ workspace: $workspaceStore,
18
+ path
19
+ });
20
+ }
21
+ async function getVariable(path) {
22
+ jsonViewerContent = await VariableService.getVariableValue({
23
+ workspace: $workspaceStore,
24
+ path
25
+ });
18
26
  }
19
27
  </script>
20
28
 
@@ -53,6 +61,14 @@ async function getResource(path) {
53
61
  jsonViewer.toggleDrawer()
54
62
  }}>{value}</button
55
63
  >
64
+ {:else if isString(value) && value.startsWith('$var:')}
65
+ <button
66
+ class="text-xs text-blue-500"
67
+ on:click={async () => {
68
+ await getVariable(value.substring('$res:'.length))
69
+ jsonViewer.toggleDrawer()
70
+ }}>{value}</button
71
+ >
56
72
  {:else if typeof value !== 'object'}
57
73
  {truncate(JSON.stringify(value), 100)}
58
74
  {#if JSON.stringify(value).length > 100}