windmill-components 1.309.7 → 1.339.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/package/assets/app.css +22 -1
  2. package/package/autosize.js +1 -1
  3. package/package/common.d.ts +8 -0
  4. package/package/common.js +5 -1
  5. package/package/components/AllFlowLogs.svelte +30 -0
  6. package/package/components/AllFlowLogs.svelte.d.ts +18 -0
  7. package/package/components/ApiConnectForm.svelte +10 -4
  8. package/package/components/AppConnectDrawer.svelte +74 -0
  9. package/package/components/AppConnectDrawer.svelte.d.ts +20 -0
  10. package/package/components/AppConnectInner.svelte +513 -0
  11. package/package/components/AppConnectInner.svelte.d.ts +28 -0
  12. package/package/components/ArgInfo.svelte +19 -3
  13. package/package/components/ArgInput.svelte +73 -16
  14. package/package/components/ArgInput.svelte.d.ts +4 -0
  15. package/package/components/ConcurrentJobsChart.svelte +212 -0
  16. package/package/components/ConcurrentJobsChart.svelte.d.ts +23 -0
  17. package/package/components/CustomOauth.svelte +2 -2
  18. package/package/components/DateInput.svelte +47 -0
  19. package/package/components/DateInput.svelte.d.ts +24 -0
  20. package/package/components/DateTimeInput.svelte +25 -3
  21. package/package/components/DefaultScripts.svelte +5 -8
  22. package/package/components/DefaultTags.svelte +3 -2
  23. package/package/components/DefaultTags.svelte.d.ts +3 -1
  24. package/package/components/DefaultTagsInner.svelte +1 -10
  25. package/package/components/DefaultTagsInner.svelte.d.ts +3 -1
  26. package/package/components/Dev.svelte +70 -9
  27. package/package/components/DiffEditor.svelte +3 -0
  28. package/package/components/DisplayResult.svelte +186 -123
  29. package/package/components/DisplayResult.svelte.d.ts +1 -0
  30. package/package/components/DropdownV2.svelte.d.ts +2 -2
  31. package/package/components/EditableSchemaForm.svelte +3 -0
  32. package/package/components/Editor.svelte +110 -93
  33. package/package/components/Editor.svelte.d.ts +4 -2
  34. package/package/components/EditorBar.svelte +99 -8
  35. package/package/components/EditorBar.svelte.d.ts +0 -1
  36. package/package/components/ErrorOrRecoveryHandler.svelte +0 -1
  37. package/package/components/FlowGraphViewer.svelte +1 -0
  38. package/package/components/FlowGraphViewerStep.svelte +19 -1
  39. package/package/components/FlowJobResult.svelte +13 -0
  40. package/package/components/FlowJobResult.svelte.d.ts +3 -0
  41. package/package/components/FlowMetadata.svelte +40 -35
  42. package/package/components/FlowMetadata.svelte.d.ts +3 -1
  43. package/package/components/FlowPreviewContent.svelte +13 -6
  44. package/package/components/FlowStatusViewerInner.svelte +46 -2
  45. package/package/components/HighlightCode.svelte +3 -0
  46. package/package/components/InputTransformForm.svelte +3 -0
  47. package/package/components/InstanceSettings.svelte +163 -16
  48. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  49. package/package/components/JobLogs.svelte +12 -0
  50. package/package/components/JobLogs.svelte.d.ts +16 -0
  51. package/package/components/JobStatus.svelte +1 -1
  52. package/package/components/Label.svelte +1 -1
  53. package/package/components/Label.svelte.d.ts +1 -0
  54. package/package/components/LightweightArgInput.svelte +294 -268
  55. package/package/components/LightweightArgInput.svelte.d.ts +3 -0
  56. package/package/components/LightweightResourcePicker.svelte +74 -26
  57. package/package/components/LightweightSchemaForm.svelte +25 -24
  58. package/package/components/LogViewer.svelte +52 -15
  59. package/package/components/LogViewer.svelte.d.ts +1 -0
  60. package/package/components/Login.svelte +288 -0
  61. package/package/components/Login.svelte.d.ts +19 -0
  62. package/package/components/ModulePreviewForm.svelte +3 -0
  63. package/package/components/NoMainFuncBadge.svelte +8 -0
  64. package/package/components/NoMainFuncBadge.svelte.d.ts +14 -0
  65. package/package/components/OauthExtraParams.svelte +1 -1
  66. package/package/components/OauthScopes.svelte +1 -1
  67. package/package/components/ObjectStoreConfigSettings.svelte +12 -1
  68. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +1 -0
  69. package/package/components/ParqetTableRenderer.svelte +12 -16
  70. package/package/components/Password.svelte +1 -0
  71. package/package/components/Password.svelte.d.ts +2 -0
  72. package/package/components/PasswordArgInput.svelte +49 -0
  73. package/package/components/PasswordArgInput.svelte.d.ts +17 -0
  74. package/package/components/PropertyRow.svelte +10 -2
  75. package/package/components/QueueMetricsDrawer.svelte +225 -0
  76. package/package/components/QueueMetricsDrawer.svelte.d.ts +18 -0
  77. package/package/components/ResourceEditor.svelte +1 -0
  78. package/package/components/ResourcePicker.svelte +3 -7
  79. package/package/components/ResultJobLoader.svelte +2 -2
  80. package/package/components/ResultJobLoader.svelte.d.ts +9 -9
  81. package/package/components/S3FilePicker.svelte +1 -1
  82. package/package/components/SavedInputs.svelte +49 -13
  83. package/package/components/ScheduleEditorInner.svelte +255 -228
  84. package/package/components/SchemaEditor.svelte +5 -3
  85. package/package/components/SchemaEditor.svelte.d.ts +2 -0
  86. package/package/components/SchemaForm.svelte +5 -0
  87. package/package/components/SchemaForm.svelte.d.ts +1 -0
  88. package/package/components/SchemaModal.svelte +101 -8
  89. package/package/components/SchemaModal.svelte.d.ts +2 -0
  90. package/package/components/ScriptBuilder.svelte +10 -6
  91. package/package/components/ScriptEditor.svelte +1 -2
  92. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  93. package/package/components/SimpleEditor.svelte +4 -1
  94. package/package/components/StringTypeNarrowing.svelte +43 -24
  95. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -0
  96. package/package/components/TemplateEditor.svelte +1 -0
  97. package/package/components/TestJobLoader.svelte +14 -5
  98. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  99. package/package/components/Toggle.svelte +1 -1
  100. package/package/components/Tooltip.svelte +8 -2
  101. package/package/components/Tooltip.svelte.d.ts +1 -0
  102. package/package/components/WorkspaceGroup.svelte +74 -9
  103. package/package/components/WorkspaceGroup.svelte.d.ts +1 -0
  104. package/package/components/app_connect.d.ts +7 -0
  105. package/package/components/app_connect.js +78 -0
  106. package/package/components/apps/components/buttons/AppButton.svelte +0 -1
  107. package/package/components/apps/components/display/AppAlert.svelte +1 -1
  108. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  109. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -2
  110. package/package/components/apps/components/display/AppDownload.svelte +1 -1
  111. package/package/components/apps/components/display/AppIcon.svelte +1 -1
  112. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +2 -2
  113. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +3 -3
  114. package/package/components/apps/components/display/AppMap.svelte +3 -2
  115. package/package/components/apps/components/display/AppMenu.svelte +1 -1
  116. package/package/components/apps/components/display/AppPdf.svelte +3 -11
  117. package/package/components/apps/components/display/AppText.svelte +7 -2
  118. package/package/components/apps/components/display/charts/AppAgCharts.svelte +6 -3
  119. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +32 -30
  120. package/package/components/apps/components/display/dbtable/InsertRow.svelte +3 -6
  121. package/package/components/apps/components/display/dbtable/queries/delete.js +1 -1
  122. package/package/components/apps/components/display/dbtable/queries/insert.js +1 -12
  123. package/package/components/apps/components/display/dbtable/queries/select.js +1 -1
  124. package/package/components/apps/components/display/dbtable/queries/update.js +2 -2
  125. package/package/components/apps/components/display/dbtable/utils.d.ts +0 -1
  126. package/package/components/apps/components/display/dbtable/utils.js +0 -83
  127. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +75 -44
  128. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +5 -1
  129. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +172 -0
  130. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +27 -0
  131. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +38 -0
  132. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +28 -0
  133. package/package/components/apps/components/display/table/AppAggridTable.svelte +189 -56
  134. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -1
  135. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +11 -2
  136. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  137. package/package/components/apps/components/display/table/AppCell.svelte +1 -3
  138. package/package/components/apps/components/display/table/AppTable.svelte +320 -281
  139. package/package/components/apps/components/display/table/AppTableFooter.svelte +42 -23
  140. package/package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -2
  141. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +119 -0
  142. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +21 -0
  143. package/package/components/apps/components/display/table/theme/windmill-theme.css +656 -0
  144. package/package/components/apps/components/display/table/utils.js +22 -0
  145. package/package/components/apps/components/helpers/DebouncedInput.svelte +3 -2
  146. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +35 -0
  147. package/package/components/apps/components/helpers/RefreshButton.svelte +30 -12
  148. package/package/components/apps/components/helpers/RefreshButton.svelte.d.ts +1 -3
  149. package/package/components/apps/components/helpers/RefreshIndicator.svelte +19 -0
  150. package/package/components/apps/components/helpers/RefreshIndicator.svelte.d.ts +16 -0
  151. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  152. package/package/components/apps/components/helpers/RunnableComponent.svelte +86 -35
  153. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +8 -5
  154. package/package/components/apps/components/helpers/RunnableWrapper.svelte +7 -1
  155. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -0
  156. package/package/components/apps/components/inputs/AppDateInput.svelte +5 -1
  157. package/package/components/apps/components/inputs/AppFileInput.svelte +11 -2
  158. package/package/components/apps/components/inputs/AppMultiSelect.svelte +56 -50
  159. package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +1 -0
  160. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +178 -0
  161. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte.d.ts +24 -0
  162. package/package/components/apps/components/inputs/AppNumberInput.svelte +1 -1
  163. package/package/components/apps/components/inputs/AppQuillEditor.svelte +26 -0
  164. package/package/components/apps/components/inputs/AppRangeInput.svelte +38 -37
  165. package/package/components/apps/components/inputs/AppSelect.svelte +21 -10
  166. package/package/components/apps/components/inputs/AppSliderInputs.svelte +26 -31
  167. package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
  168. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +1 -1
  169. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +7 -2
  170. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  171. package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
  172. package/package/components/apps/components/layout/AppDrawer.svelte +16 -3
  173. package/package/components/apps/components/layout/AppDrawer.svelte.d.ts +2 -0
  174. package/package/components/apps/components/layout/AppModal.svelte +85 -79
  175. package/package/components/apps/components/layout/AppModal.svelte.d.ts +2 -0
  176. package/package/components/apps/components/layout/AppStepper.svelte +2 -1
  177. package/package/components/apps/components/layout/AppTabs.svelte +1 -1
  178. package/package/components/apps/editor/AppEditor.svelte +3 -2
  179. package/package/components/apps/editor/AppEditorHeader.svelte +62 -31
  180. package/package/components/apps/editor/AppInputs.svelte +1 -1
  181. package/package/components/apps/editor/AppPreview.svelte +18 -7
  182. package/package/components/apps/editor/ComponentHeader.svelte +37 -1
  183. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  184. package/package/components/apps/editor/GridEditor.svelte +15 -6
  185. package/package/components/apps/editor/GridEditorMenu.svelte +120 -49
  186. package/package/components/apps/editor/GridViewer.svelte +14 -5
  187. package/package/components/apps/editor/GridViewer.svelte.d.ts +5 -1
  188. package/package/components/apps/editor/RecomputeAllComponents.svelte +17 -3
  189. package/package/components/apps/editor/RunnableJobPanel.svelte +9 -5
  190. package/package/components/apps/editor/SettingsPanel.svelte +6 -2
  191. package/package/components/apps/editor/SubGridEditor.svelte +44 -27
  192. package/package/components/apps/editor/appUtils.d.ts +6 -1
  193. package/package/components/apps/editor/appUtils.js +85 -7
  194. package/package/components/apps/editor/component/Component.svelte +78 -2
  195. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -0
  196. package/package/components/apps/editor/component/components.d.ts +274 -21
  197. package/package/components/apps/editor/component/components.js +176 -12
  198. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  199. package/package/components/apps/editor/component/default-codes.js +241 -9
  200. package/package/components/apps/editor/component/sets.d.ts +3 -0
  201. package/package/components/apps/editor/component/sets.js +12 -2
  202. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +15 -2
  203. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +4 -2
  204. package/package/components/apps/editor/componentsPanel/cssUtils.js +1 -1
  205. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +5 -0
  206. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -5
  207. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +1 -1
  208. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +46 -6
  209. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelWithTable.svelte +1 -1
  210. package/package/components/apps/editor/inlineScriptsPanel/utils.js +3 -1
  211. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  212. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +1 -1
  213. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +8 -5
  214. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +54 -4
  215. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +61 -0
  216. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +16 -0
  217. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +12 -10
  218. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte +29 -32
  219. package/package/components/apps/editor/settingsPanel/DeleteComponent.svelte.d.ts +0 -5
  220. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +27 -25
  221. package/package/components/apps/editor/settingsPanel/GridTab.svelte +1 -1
  222. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +2 -1
  223. package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte.d.ts +1 -0
  224. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +24 -3
  225. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +27 -1
  226. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  227. package/package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
  228. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +4 -3
  229. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +3 -2
  230. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +1 -0
  231. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -4
  232. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +6 -3
  233. package/package/components/apps/inputType.d.ts +4 -0
  234. package/package/components/apps/rx.d.ts +1 -1
  235. package/package/components/apps/rx.js +7 -0
  236. package/package/components/apps/svelte-grid/Grid.svelte +13 -4
  237. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +2 -1
  238. package/package/components/apps/svelte-grid/types.d.ts +1 -0
  239. package/package/components/apps/svelte-grid/utils/helper.js +1 -0
  240. package/package/components/apps/svelte-grid/utils/overlap.d.ts +3 -0
  241. package/package/components/apps/svelte-grid/utils/overlap.js +21 -0
  242. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +2 -2
  243. package/package/components/apps/svelte-select/lib/tailwind.css +1 -1
  244. package/package/components/apps/types.d.ts +1 -0
  245. package/package/components/apps/utils.js +13 -3
  246. package/package/components/auditLogs/AuditLogsTable.svelte +5 -2
  247. package/package/components/build_workers.js +1 -0
  248. package/package/components/common/alert/Alert.svelte +17 -17
  249. package/package/components/common/badge/Badge.svelte +6 -3
  250. package/package/components/common/badge/model.d.ts +1 -1
  251. package/package/components/common/button/Button.svelte +22 -14
  252. package/package/components/common/calendarPicker/CalendarPicker.svelte +2 -0
  253. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -0
  254. package/package/components/common/drawer/ConditionalPortal.svelte +9 -0
  255. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +18 -0
  256. package/package/components/common/drawer/Disposable.svelte +66 -0
  257. package/package/components/common/drawer/Disposable.svelte.d.ts +36 -0
  258. package/package/components/common/drawer/Drawer.svelte +29 -55
  259. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -1
  260. package/package/components/common/fileInput/FileInput.svelte +3 -3
  261. package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  262. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  263. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  264. package/package/components/common/table/RowIcon.svelte +4 -4
  265. package/package/components/common/table/ScriptRow.svelte +12 -1
  266. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  267. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +45 -0
  268. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +24 -0
  269. package/package/components/copilot/CronGen.svelte +2 -2
  270. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  271. package/package/components/copilot/RegexGen.svelte +17 -39
  272. package/package/components/copilot/ScriptGen.svelte +14 -5
  273. package/package/components/copilot/StepInputGen.svelte +2 -1
  274. package/package/components/copilot/StepInputsGen.svelte +2 -1
  275. package/package/components/copilot/completion.js +60 -9
  276. package/package/components/copilot/lib.js +5 -3
  277. package/package/components/copilot/prompts/edit.yaml +24 -0
  278. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  279. package/package/components/copilot/prompts/editPrompt.js +3 -0
  280. package/package/components/copilot/prompts/fix.yaml +25 -0
  281. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  282. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  283. package/package/components/copilot/prompts/gen.yaml +20 -0
  284. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  285. package/package/components/copilot/prompts/genPrompt.js +3 -0
  286. package/package/components/copilot/utils.d.ts +2 -1
  287. package/package/components/copilot/utils.js +38 -0
  288. package/package/components/details/createAppFromScript.d.ts +26 -0
  289. package/package/components/details/createAppFromScript.js +50 -24
  290. package/package/components/flows/CreateActionsApp.svelte +1 -0
  291. package/package/components/flows/CreateActionsFlow.svelte +1 -0
  292. package/package/components/flows/content/FlowInputs.svelte +2 -2
  293. package/package/components/flows/content/FlowModuleComponent.svelte +15 -6
  294. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  295. package/package/components/flows/flowExplorer.js +4 -1
  296. package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
  297. package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
  298. package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -0
  299. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  300. package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
  301. package/package/components/flows/map/MapItem.svelte +2 -0
  302. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  303. package/package/components/graph/FlowGraph.svelte +1 -0
  304. package/package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +41 -16
  305. package/package/components/home/ItemsList.svelte +44 -9
  306. package/package/components/home/TreeView.svelte +2 -0
  307. package/package/components/icons/AzureIcon.svelte +25 -1
  308. package/package/components/icons/PHPIcon.svelte +117 -0
  309. package/package/components/icons/PHPIcon.svelte.d.ts +17 -0
  310. package/package/components/instanceSettings.d.ts +1 -1
  311. package/package/components/instanceSettings.js +18 -2
  312. package/package/components/jobs/JobPreview.svelte +5 -0
  313. package/package/components/multiselect/MultiSelect.svelte +782 -0
  314. package/package/components/multiselect/MultiSelect.svelte.d.ts +97 -0
  315. package/package/components/multiselect/types.d.ts +56 -0
  316. package/package/components/multiselect/types.js +1 -0
  317. package/package/components/multiselect/utils.d.ts +7 -0
  318. package/package/components/multiselect/utils.js +54 -0
  319. package/package/components/propertyPicker/ObjectViewer.svelte +14 -1
  320. package/package/components/runs/JobLoader.svelte +135 -17
  321. package/package/components/runs/JobLoader.svelte.d.ts +7 -2
  322. package/package/components/runs/JobPreview.svelte +39 -3
  323. package/package/components/runs/JobPreview.svelte.d.ts +2 -0
  324. package/package/components/runs/RunRow.svelte +78 -31
  325. package/package/components/runs/RunRow.svelte.d.ts +3 -0
  326. package/package/components/runs/RunsFilter.svelte +125 -9
  327. package/package/components/runs/RunsFilter.svelte.d.ts +4 -2
  328. package/package/components/runs/RunsTable.svelte +53 -5
  329. package/package/components/runs/RunsTable.svelte.d.ts +6 -0
  330. package/package/components/scriptEditor/LogPanel.svelte +46 -33
  331. package/package/components/scriptEditor/LogPanel.svelte.d.ts +1 -0
  332. package/package/components/scripts/CreateActionsScript.svelte +1 -1
  333. package/package/components/settings/WorkspaceUserSettings.svelte +246 -226
  334. package/package/components/sidebar/MenuButton.svelte +1 -1
  335. package/package/components/sidebar/MenuLink.svelte +1 -1
  336. package/package/components/sidebar/changelogs.js +40 -0
  337. package/package/components/table/AutoDataTable.svelte +77 -102
  338. package/package/components/table/DataTable.svelte +13 -5
  339. package/package/components/table/DataTable.svelte.d.ts +1 -0
  340. package/package/components/vscode.js +1 -1
  341. package/package/components/wizards/AgGridWizard.svelte +27 -2
  342. package/package/components/wizards/AgGridWizard.svelte.d.ts +1 -0
  343. package/package/consts.js +5 -1
  344. package/package/defaults.d.ts +2 -2
  345. package/package/defaults.js +2 -2
  346. package/package/deno_fetch.d.ts.txt +30 -0
  347. package/package/editorUtils.js +2 -0
  348. package/package/gen/core/OpenAPI.js +5 -6
  349. package/package/gen/core/request.js +4 -1
  350. package/package/gen/index.d.ts +0 -1
  351. package/package/gen/index.js +0 -1
  352. package/package/gen/schemas.gen.d.ts +97 -428
  353. package/package/gen/schemas.gen.js +97 -433
  354. package/package/gen/services.gen.d.ts +3087 -1840
  355. package/package/gen/services.gen.js +3442 -2358
  356. package/package/gen/types.gen.d.ts +5048 -1505
  357. package/package/infer.d.ts +1 -1
  358. package/package/infer.js +6 -2
  359. package/package/inferArgSig.js +5 -2
  360. package/package/init_scripts/python_init_code.d.ts +1 -1
  361. package/package/init_scripts/python_init_code.js +1 -1
  362. package/package/process.d.ts.txt +1770 -0
  363. package/package/script_helpers.d.ts +3 -2
  364. package/package/script_helpers.js +28 -3
  365. package/package/scripts.d.ts +1 -1
  366. package/package/scripts.js +4 -0
  367. package/package/utils.d.ts +3 -0
  368. package/package/utils.js +46 -3
  369. package/package/windmill_fetch.d.ts.txt +16966 -0
  370. package/package/zIndexes.d.ts +12 -0
  371. package/package/zIndexes.js +12 -0
  372. package/package.json +5 -5
  373. package/package/components/AppConnect.svelte +0 -566
  374. package/package/components/AppConnect.svelte.d.ts +0 -23
  375. package/package/components/ContextMenu.svelte +0 -89
  376. package/package/components/ContextMenu.svelte.d.ts +0 -28
  377. package/package/components/apps/components/display/index.d.ts +0 -17
  378. package/package/components/apps/components/display/index.js +0 -17
  379. package/package/components/apps/components/helpers/index.d.ts +0 -10
  380. package/package/components/apps/components/helpers/index.js +0 -10
  381. package/package/components/apps/components/index.d.ts +0 -5
  382. package/package/components/apps/components/index.js +0 -5
@@ -1,20 +1,23 @@
1
1
  <script>import { ResourceService } from '../gen';
2
2
  import { workspaceStore } from '../stores';
3
- import { createEventDispatcher } from 'svelte';
3
+ import { createEventDispatcher, getContext } from 'svelte';
4
4
  import Select from './apps/svelte-select/lib/index';
5
5
  import { SELECT_INPUT_DEFAULT_STYLE } from '../defaults';
6
6
  import DarkModeObserver from './DarkModeObserver.svelte';
7
+ import { Button, Drawer, DrawerContent } from './common';
8
+ import { Plus } from 'lucide-svelte';
7
9
  const dispatch = createEventDispatcher();
8
10
  export let initialValue = undefined;
9
11
  export let value = initialValue;
10
12
  export let resourceType = undefined;
11
13
  export let disablePortal = false;
14
+ const appViewerContext = getContext('AppViewerContext');
12
15
  let valueSelect = initialValue || value
13
16
  ? {
14
17
  value: value ?? initialValue,
15
18
  label: value ?? initialValue
16
19
  }
17
- : undefined;
20
+ : '';
18
21
  let collection = [valueSelect];
19
22
  async function loadResources(resourceType) {
20
23
  const nc = (await ResourceService.listResource({
@@ -30,33 +33,78 @@ async function loadResources(resourceType) {
30
33
  }
31
34
  collection = nc;
32
35
  }
33
- $: {
34
- if ($workspaceStore) {
35
- loadResources(resourceType);
36
- }
37
- }
36
+ $: $workspaceStore && loadResources(resourceType);
38
37
  $: dispatch('change', value);
39
38
  let darkMode = false;
39
+ let drawer = undefined;
40
+ function processEvent(event) {
41
+ if (event.origin !== window.location.origin) {
42
+ return;
43
+ }
44
+ if (event.data.type === 'refresh') {
45
+ value = event.data.detail;
46
+ valueSelect = { value, label: value };
47
+ drawer?.closeDrawer?.();
48
+ }
49
+ }
40
50
  </script>
41
51
 
42
52
  <DarkModeObserver bind:darkMode />
43
53
 
44
- <Select
45
- portal={!disablePortal}
46
- value={valueSelect}
47
- on:change={(e) => {
48
- value = e.detail.value
49
- valueSelect = e.detail
50
- }}
51
- on:clear={() => {
52
- value = undefined
53
- valueSelect = undefined
54
- }}
55
- items={collection}
56
- class="text-clip grow min-w-0"
57
- placeholder="{resourceType ?? 'any'} resource"
58
- inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
59
- containerStyles={darkMode
60
- ? SELECT_INPUT_DEFAULT_STYLE.containerStylesDark
61
- : SELECT_INPUT_DEFAULT_STYLE.containerStyles}
62
- />
54
+ <Drawer bind:this={drawer} size="800px">
55
+ <DrawerContent
56
+ title="Add a Resource"
57
+ on:close={drawer.closeDrawer}
58
+ tooltip="Resources represent connections to third party systems. Learn more on how to integrate external APIs."
59
+ documentationLink="https://www.windmill.dev/docs/integrations/integrations_on_windmill"
60
+ >
61
+ <iframe
62
+ title="App connection"
63
+ class="w-full h-full"
64
+ src="/embed_connect?resource_type={resourceType}&workspace={appViewerContext?.workspace ??
65
+ $workspaceStore}"
66
+ />
67
+ </DrawerContent>
68
+ </Drawer>
69
+
70
+ <div class="flex flex-col w-full items-start">
71
+ <div class="flex flex-row gap-x-1 w-full">
72
+ <Select
73
+ portal={!disablePortal}
74
+ value={valueSelect}
75
+ on:change={(e) => {
76
+ value = e.detail.value
77
+ valueSelect = e.detail
78
+ }}
79
+ on:clear={() => {
80
+ value = undefined
81
+ valueSelect = ''
82
+ }}
83
+ items={collection}
84
+ class="text-clip grow min-w-0"
85
+ placeholder="{resourceType ?? 'any'} resource"
86
+ inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
87
+ containerStyles={darkMode
88
+ ? SELECT_INPUT_DEFAULT_STYLE.containerStylesDark
89
+ : SELECT_INPUT_DEFAULT_STYLE.containerStyles}
90
+ />
91
+
92
+ {#if resourceType}
93
+ <Button
94
+ color="light"
95
+ variant="border"
96
+ size="xs"
97
+ on:click={() => {
98
+ window.removeEventListener('message', processEvent)
99
+ window.addEventListener('message', processEvent, {
100
+ once: true
101
+ })
102
+
103
+ drawer?.openDrawer?.()
104
+ }}
105
+ startIcon={{ icon: Plus }}
106
+ iconOnly
107
+ />
108
+ {/if}
109
+ </div>
110
+ </div>
@@ -50,30 +50,31 @@ function reorder() {
50
50
  <div class={twMerge('w-full flex flex-col px-0.5 pb-2', largeGap ? 'gap-8' : 'gap-2')}>
51
51
  {#each Object.keys(schema.properties ?? {}) as argName (argName)}
52
52
  {#if typeof args == 'object' && schema?.properties[argName] && args}
53
- {#if computeShow(argName, schema?.properties[argName].showExpr, args)}
54
- <LightweightArgInput
55
- label={argName}
56
- description={schema.properties[argName].description}
57
- bind:value={args[argName]}
58
- bind:valid={inputCheck[argName]}
59
- bind:error={errors[argName]}
60
- type={schema.properties[argName].type}
61
- required={schema.required?.includes(argName) ?? false}
62
- pattern={schema.properties[argName].pattern}
63
- defaultValue={defaultValues?.[argName] ?? schema.properties[argName].default}
64
- enum_={dynamicEnums?.[argName] ?? schema.properties[argName].enum}
65
- format={schema.properties[argName].format}
66
- contentEncoding={schema.properties[argName].contentEncoding}
67
- customErrorMessage={schema.properties[argName].customErrorMessage}
68
- properties={schema.properties[argName].properties}
69
- nestedRequired={schema.properties[argName].required}
70
- itemsType={schema.properties[argName].items}
71
- extra={schema.properties[argName]}
72
- on:inputClicked
73
- {displayType}
74
- {css}
75
- />
76
- {/if}
53
+ <LightweightArgInput
54
+ render={computeShow(argName, schema?.properties[argName].showExpr, args)}
55
+ label={argName}
56
+ description={schema.properties[argName].description}
57
+ bind:value={args[argName]}
58
+ bind:valid={inputCheck[argName]}
59
+ bind:error={errors[argName]}
60
+ type={schema.properties[argName].type}
61
+ required={schema.required?.includes(argName) ?? false}
62
+ pattern={schema.properties[argName].pattern}
63
+ defaultValue={defaultValues?.[argName] ?? schema.properties[argName].default}
64
+ enum_={dynamicEnums?.[argName] ?? schema.properties[argName].enum}
65
+ format={schema.properties[argName].format}
66
+ contentEncoding={schema.properties[argName].contentEncoding}
67
+ customErrorMessage={schema.properties[argName].customErrorMessage}
68
+ properties={schema.properties[argName].properties}
69
+ nestedRequired={schema.properties[argName].required}
70
+ itemsType={schema.properties[argName].items}
71
+ extra={schema.properties[argName]}
72
+ title={schema.properties[argName].title}
73
+ placeholder={schema.properties[argName].placeholder}
74
+ on:inputClicked
75
+ {displayType}
76
+ {css}
77
+ />
77
78
  {/if}
78
79
  {/each}
79
80
  </div>
@@ -1,5 +1,9 @@
1
1
  <script context="module">"use strict";
2
- const s3LogPrefix = '[windmill] Previous logs have been saved to object storage at logs/';
2
+ const s3LogPrefixes = [
3
+ '\n[windmill] Previous logs have been saved to object storage at logs/',
4
+ '\n[windmill] Previous logs have been saved to disk at logs/',
5
+ '\n[windmill] No object storage set in instance settings. Previous logs have been saved to disk at '
6
+ ];
3
7
  </script>
4
8
 
5
9
  <script>import { ClipboardCopy, Download, Expand, Loader2 } from 'lucide-svelte';
@@ -9,6 +13,7 @@ import { workspaceStore } from '../stores';
9
13
  import AnsiUp from 'ansi_up';
10
14
  import NoWorkerWithTagWarning from './runs/NoWorkerWithTagWarning.svelte';
11
15
  import { JobService } from '../gen';
16
+ import Tooltip from './Tooltip.svelte';
12
17
  export let content;
13
18
  export let isLoading;
14
19
  export let duration = undefined;
@@ -17,6 +22,7 @@ export let wrapperClass = '';
17
22
  export let jobId = undefined;
18
23
  export let tag;
19
24
  export let small = false;
25
+ export let drawerOpen = false;
20
26
  // @ts-ignore
21
27
  const ansi_up = new AnsiUp();
22
28
  let scroll = true;
@@ -31,10 +37,39 @@ $: if (jobId !== lastJobId) {
31
37
  loadedFromObjectStore = '';
32
38
  LOG_LIMIT = LOG_INC;
33
39
  }
34
- $: downloadStartUrl = truncatedContent.startsWith(s3LogPrefix)
35
- ? truncatedContent.substring(s3LogPrefix.length, truncatedContent.indexOf('\n'))
36
- : undefined;
40
+ function findPrefixIndex(truncateContent) {
41
+ let index = s3LogPrefixes.findIndex((x) => truncateContent.startsWith(x));
42
+ if (index == -1) {
43
+ return undefined;
44
+ }
45
+ return index;
46
+ }
47
+ function findStartUrl(truncateContent, prefixIndex = undefined) {
48
+ if (prefixIndex == undefined) {
49
+ return undefined;
50
+ }
51
+ const end = truncateContent.substring(1).indexOf('\n');
52
+ return prefixIndex != undefined && truncateContent
53
+ ? truncateContent.substring(s3LogPrefixes[prefixIndex]?.length, end == -1 ? undefined : end + 1)
54
+ : undefined;
55
+ }
56
+ function tooltipText(prefixIndex) {
57
+ if (prefixIndex == undefined) {
58
+ return 'No path/file detected to download from';
59
+ }
60
+ else if (prefixIndex == 0) {
61
+ return 'Download the previous logs from the instance configured object store';
62
+ }
63
+ else if (prefixIndex == 1) {
64
+ return 'Attempt to download the logs from disk. Assume there is a shared disk between the workers and the server at /tmp/windmill/logs. Upgrade to EE to use an object store such as S3 instead of a shared volume.';
65
+ }
66
+ else if (prefixIndex == 2) {
67
+ return 'Attempt to download the logs from disk. Assume there is a shared disk between the workers and the server at /tmp/windmill/logs. Since you are on EE, you can alternatively use an object store such as S3 configured in the instance settings instead of a shared volume..';
68
+ }
69
+ }
37
70
  $: truncatedContent = truncateContent(content, loadedFromObjectStore, LOG_LIMIT);
71
+ $: prefixIndex = findPrefixIndex(truncatedContent);
72
+ $: downloadStartUrl = findStartUrl(truncatedContent, prefixIndex);
38
73
  function truncateContent(jobContent, loadedFromObjectStore, limit) {
39
74
  let content = loadedFromObjectStore + jobContent ?? '';
40
75
  if (content.length > limit) {
@@ -46,8 +81,8 @@ $: if (content != undefined && isLoading) {
46
81
  isLoading = false;
47
82
  }
48
83
  $: truncatedContent && scrollToBottom();
49
- $: html = ansi_up.ansi_to_html(downloadStartUrl
50
- ? truncatedContent.substring(truncatedContent.indexOf('\n') + 2, truncatedContent.length)
84
+ $: html = ansi_up.ansi_to_html(downloadStartUrl && prefixIndex != undefined
85
+ ? truncatedContent.substring(truncatedContent.substring(1).indexOf('\n') + 2, truncatedContent.length)
51
86
  : truncatedContent);
52
87
  export function scrollToBottom() {
53
88
  scroll && setTimeout(() => div?.scroll({ top: div?.scrollHeight, behavior: 'smooth' }), 100);
@@ -75,11 +110,14 @@ function showMoreTruncate(len) {
75
110
  LOG_LIMIT += LOG_INC;
76
111
  console.log(LOG_INC, len, LOG_LIMIT);
77
112
  let newC = truncateContent(content, loadedFromObjectStore, LOG_LIMIT);
78
- LOG_LIMIT -= newC.indexOf('\n') + 1;
113
+ let newlineIndex = newC.indexOf('\n') + 1;
114
+ if (newlineIndex < LOG_INC / 2) {
115
+ LOG_LIMIT -= newlineIndex;
116
+ }
79
117
  }
80
118
  </script>
81
119
 
82
- <Drawer bind:this={logViewer} size="900px">
120
+ <Drawer bind:this={logViewer} bind:open={drawerOpen} size="900px">
83
121
  <DrawerContent title="Expanded Logs" on:close={logViewer.closeDrawer}>
84
122
  <svelte:fragment slot="actions">
85
123
  <Button
@@ -111,12 +149,11 @@ function showMoreTruncate(len) {
111
149
  >{#if content}{@const len =
112
150
  (content?.length ?? 0) +
113
151
  (loadedFromObjectStore?.length ?? 0)}{#if downloadStartUrl}<button
114
- on:click={getStoreLogs}>Show more...</button
115
- ><br
116
- />{:else if len > LOG_LIMIT}(truncated to the last {LOG_LIMIT} characters)... <button
117
- on:click={() => showMoreTruncate(len)}>Show more</button
118
- >
119
- {/if}{@html html}{:else if isLoading}Waiting for job to start...{:else}No logs are available yet{/if}</pre
152
+ on:click={getStoreLogs}
153
+ >Show more... <Tooltip>{tooltipText(prefixIndex)}</Tooltip></button
154
+ ><br />{:else if len > LOG_LIMIT}(truncated to the last {LOG_LIMIT} characters)...<br
155
+ /><button on:click={() => showMoreTruncate(len)}>Show more..</button><br
156
+ />{/if}{@html html}{:else if isLoading}Waiting for job to start...{:else}No logs are available yet{/if}</pre
120
157
  >
121
158
  </div>
122
159
  </DrawerContent>
@@ -177,7 +214,7 @@ function showMoreTruncate(len) {
177
214
  >{#if content}{@const len =
178
215
  (content?.length ?? 0) +
179
216
  (loadedFromObjectStore?.length ?? 0)}{#if downloadStartUrl}<button on:click={getStoreLogs}
180
- >Show more...</button
217
+ >Show more... &nbsp;<Tooltip>{tooltipText(prefixIndex)}</Tooltip></button
181
218
  ><br />{:else if len > LOG_LIMIT}(truncated to the last {LOG_LIMIT} characters)<br
182
219
  /><button on:click={() => showMoreTruncate(len)}>Show more..</button><br />{/if}<span
183
220
  >{@html html}</span
@@ -9,6 +9,7 @@ declare const __propDef: {
9
9
  jobId?: string | undefined;
10
10
  tag: string | undefined;
11
11
  small?: boolean | undefined;
12
+ drawerOpen?: boolean | undefined;
12
13
  scrollToBottom?: (() => void) | undefined;
13
14
  };
14
15
  events: {
@@ -0,0 +1,288 @@
1
+ <script>import { goto } from '$app/navigation';
2
+ import Github from './icons/brands/Github.svelte';
3
+ import Gitlab from './icons/brands/Gitlab.svelte';
4
+ import Google from './icons/brands/Google.svelte';
5
+ import Microsoft from './icons/brands/Microsoft.svelte';
6
+ import Okta from './icons/brands/Okta.svelte';
7
+ import { OauthService, UserService, WorkspaceService } from '../gen';
8
+ import { usersWorkspaceStore, workspaceStore, userStore } from '../stores';
9
+ import { classNames, emptyString, parseQueryParams } from '../utils';
10
+ import { getUserExt } from '../user';
11
+ import { Button, Skeleton } from './common';
12
+ import { sendUserToast } from '../toast';
13
+ import { isCloudHosted } from '../cloud';
14
+ import { refreshSuperadmin } from '../refreshUser';
15
+ export let rd = undefined;
16
+ export let email = undefined;
17
+ export let password = undefined;
18
+ export let error = undefined;
19
+ const providers = [
20
+ {
21
+ type: 'github',
22
+ name: 'GitHub',
23
+ icon: Github
24
+ },
25
+ {
26
+ type: 'gitlab',
27
+ name: 'GitLab',
28
+ icon: Gitlab
29
+ },
30
+ {
31
+ type: 'google',
32
+ name: 'Google',
33
+ icon: Google
34
+ },
35
+ {
36
+ type: 'microsoft',
37
+ name: 'Microsoft',
38
+ icon: Microsoft
39
+ },
40
+ {
41
+ type: 'okta',
42
+ name: 'Okta',
43
+ icon: Okta
44
+ }
45
+ ];
46
+ const providersType = providers.map((p) => p.type);
47
+ let showPassword = false;
48
+ let logins = undefined;
49
+ let saml = undefined;
50
+ async function login() {
51
+ if (!email || !password) {
52
+ sendUserToast('Please fill in both email and password', true);
53
+ return;
54
+ }
55
+ const requestBody = {
56
+ email,
57
+ password
58
+ };
59
+ try {
60
+ await UserService.login({ requestBody });
61
+ }
62
+ catch (err) {
63
+ sendUserToast('Invalid credentials', true);
64
+ return;
65
+ }
66
+ // Once logged in, we can fetch the workspaces
67
+ $usersWorkspaceStore = await WorkspaceService.listUserWorkspaces();
68
+ // trigger a reload of the user
69
+ if ($workspaceStore) {
70
+ $userStore = await getUserExt($workspaceStore);
71
+ }
72
+ // Finally, we check whether the user is a superadmin
73
+ refreshSuperadmin();
74
+ redirectUser();
75
+ }
76
+ async function redirectUser() {
77
+ const firstTimeCookie = document.cookie.match('(^|;)\\s*first_time\\s*=\\s*([^;]+)')?.pop() || '0';
78
+ if (Number(firstTimeCookie) > 0 && email === 'admin@windmill.dev') {
79
+ goto('/user/first-time');
80
+ return;
81
+ }
82
+ if (rd?.startsWith('http')) {
83
+ window.location.href = rd;
84
+ return;
85
+ }
86
+ if ($workspaceStore) {
87
+ goto(rd ?? '/');
88
+ }
89
+ else {
90
+ let workspaceTarget = parseQueryParams(rd ?? undefined)['workspace'];
91
+ if (rd && workspaceTarget) {
92
+ $workspaceStore = workspaceTarget;
93
+ goto(rd);
94
+ return;
95
+ }
96
+ if (!$usersWorkspaceStore) {
97
+ try {
98
+ usersWorkspaceStore.set(await WorkspaceService.listUserWorkspaces());
99
+ }
100
+ catch { }
101
+ }
102
+ const allWorkspaces = $usersWorkspaceStore?.workspaces.filter((x) => x.id != 'admins');
103
+ if (allWorkspaces?.length == 1) {
104
+ workspaceStore.set(allWorkspaces[0].id);
105
+ $userStore = await getUserExt($workspaceStore);
106
+ if (!$userStore?.is_super_admin && $userStore?.operator) {
107
+ let defaultApp = await WorkspaceService.getWorkspaceDefaultApp({
108
+ workspace: $workspaceStore
109
+ });
110
+ if (!emptyString(defaultApp.default_app_path)) {
111
+ goto(`/apps/get/${defaultApp.default_app_path}`);
112
+ }
113
+ else {
114
+ goto(rd ?? '/');
115
+ }
116
+ }
117
+ else {
118
+ goto(rd ?? '/');
119
+ }
120
+ }
121
+ else if (rd?.startsWith('/user/workspaces')) {
122
+ goto(rd);
123
+ }
124
+ else if (rd == '/#user-settings') {
125
+ goto(`/user/workspaces#user-settings`);
126
+ }
127
+ else {
128
+ goto(`/user/workspaces${rd ? `?rd=${encodeURIComponent(rd)}` : ''}`);
129
+ }
130
+ }
131
+ }
132
+ async function loadLogins() {
133
+ const allLogins = await OauthService.listOauthLogins();
134
+ logins = allLogins.oauth;
135
+ saml = allLogins.saml;
136
+ showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0);
137
+ }
138
+ loadLogins();
139
+ function handleKeyUp(event) {
140
+ const key = event.key;
141
+ if (key === 'Enter') {
142
+ event.preventDefault();
143
+ login();
144
+ }
145
+ }
146
+ function storeRedirect(provider) {
147
+ if (rd) {
148
+ try {
149
+ localStorage.setItem('rd', rd);
150
+ }
151
+ catch (e) {
152
+ console.error('Could not persist redirection to local storage', e);
153
+ }
154
+ }
155
+ window.location.href = window.location.origin + '/api/oauth/login/' + provider;
156
+ }
157
+ $: error && sendUserToast(error, true);
158
+ </script>
159
+
160
+ <div class="bg-surface px-4 py-8 shadow md:border sm:rounded-lg sm:px-10">
161
+ <div class="grid {logins && logins.length > 2 ? 'grid-cols-2' : ''} gap-4">
162
+ {#if !logins}
163
+ {#each Array(4) as _}
164
+ <Skeleton layout={[0.5, [2.375]]} />
165
+ {/each}
166
+ {:else}
167
+ {#each providers as { type, icon, name }}
168
+ {#if logins?.includes(type)}
169
+ <Button
170
+ color="light"
171
+ variant="border"
172
+ startIcon={{ icon, classes: 'h-4' }}
173
+ on:click={() => storeRedirect(type)}
174
+ >
175
+ {name}
176
+ </Button>
177
+ {/if}
178
+ {/each}
179
+ {#each logins.filter((x) => !providersType?.includes(x)) as login}
180
+ <Button
181
+ color="dark"
182
+ variant="border"
183
+ btnClasses="mt-2 w-full !border-gray-300"
184
+ on:click={() => storeRedirect(login)}
185
+ >
186
+ {login}
187
+ </Button>
188
+ {/each}
189
+ {/if}
190
+ {#if saml}
191
+ <Button
192
+ color="dark"
193
+ variant="border"
194
+ btnClasses="mt-2 w-full !border-gray-300"
195
+ on:click={() => {
196
+ if (saml) {
197
+ window.location.href = saml
198
+ } else {
199
+ sendUserToast('No SAML login available', true)
200
+ }
201
+ }}
202
+ >
203
+ SSO
204
+ </Button>
205
+ {/if}
206
+ </div>
207
+ {#if saml || (logins && logins.length > 0)}
208
+ <div class={classNames('center-center', logins && logins.length > 0 ? 'mt-6' : '')}>
209
+ <Button
210
+ size="xs"
211
+ color="blue"
212
+ variant="border"
213
+ btnClasses="!border-none"
214
+ on:click={() => {
215
+ showPassword = !showPassword
216
+ }}
217
+ >
218
+ Log in without third-party
219
+ </Button>
220
+ </div>
221
+ {/if}
222
+
223
+ {#if showPassword}
224
+ <div>
225
+ <div class="space-y-6">
226
+ {#if isCloudHosted()}
227
+ <p class="text-xs text-tertiary italic pb-6">
228
+ To get credentials without the OAuth providers above, send an email at
229
+ contact@windmill.dev
230
+ </p>
231
+ {/if}
232
+ <div>
233
+ <label for="email" class="block text-sm font-medium leading-6 text-primary">
234
+ Email
235
+ </label>
236
+ <div>
237
+ <input
238
+ type="email"
239
+ bind:value={email}
240
+ id="email"
241
+ autocomplete="email"
242
+ class="block w-full rounded-md border-0 py-1.5 text-primary shadow-sm ring-1 ring-inset placeholder:text-secondary focus:ring-2 focus:ring-inset focus:ring-frost-600 sm:text-sm sm:leading-6"
243
+ />
244
+ </div>
245
+ </div>
246
+
247
+ <div>
248
+ <label for="password" class="block text-sm font-medium leading-6 text-primary">
249
+ Password
250
+ </label>
251
+ <div>
252
+ <input
253
+ on:keyup={handleKeyUp}
254
+ bind:value={password}
255
+ id="password"
256
+ type="password"
257
+ autocomplete="current-password"
258
+ class="block w-full rounded-md border-0 py-1.5 text-shadow shadow-sm ring-1 ring-inset placeholder:text-secondary focus:ring-2 focus:ring-inset focus:ring-frost-600 sm:text-sm sm:leading-6"
259
+ />
260
+ </div>
261
+ </div>
262
+
263
+ <div class="pt-2">
264
+ <button
265
+ on:click={login}
266
+ disabled={!email || !password}
267
+ class="flex w-full justify-center rounded-md bg-frost-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-frost-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-frost-600"
268
+ >
269
+ Sign in
270
+ </button>
271
+ </div>
272
+ </div>
273
+
274
+ {#if isCloudHosted()}
275
+ <p class="text-2xs text-tertiary italic mt-10 text-center">
276
+ By logging in, you agree to our
277
+ <a href="https://windmill.dev/terms_of_service" target="_blank" rel="noreferrer">
278
+ Terms of Service
279
+ </a>
280
+ and
281
+ <a href="https://windmill.dev/privacy_policy" target="_blank" rel="noreferrer">
282
+ Privacy Policy
283
+ </a>
284
+ </p>
285
+ {/if}
286
+ </div>
287
+ {/if}
288
+ </div>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ rd?: string | undefined;
5
+ email?: string | undefined;
6
+ password?: string | undefined;
7
+ error?: string | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type LoginProps = typeof __propDef.props;
15
+ export type LoginEvents = typeof __propDef.events;
16
+ export type LoginSlots = typeof __propDef.slots;
17
+ export default class Login extends SvelteComponent<LoginProps, LoginEvents, LoginSlots> {
18
+ }
19
+ export {};
@@ -77,6 +77,9 @@ loadResourceTypes();
77
77
  nestedRequired={schema.properties[argName].required}
78
78
  itemsType={schema.properties[argName].items}
79
79
  extra={schema.properties[argName]}
80
+ nullable={schema.properties[argName].nullable}
81
+ title={schema.properties[argName].title}
82
+ placeholder={schema.properties[argName].placeholder}
80
83
  />
81
84
  {/if}
82
85
  <div class="pt-6 mt-0.5">
@@ -0,0 +1,8 @@
1
+ <script>import Popover from './Popover.svelte';
2
+ import { Badge } from './common';
3
+ </script>
4
+
5
+ <Popover notClickable>
6
+ <svelte:fragment slot="text">The script has no main function exported</svelte:fragment>
7
+ <Badge small color="yellow" baseClass="border border-indigo-200">No main</Badge>
8
+ </Popover>
@@ -0,0 +1,14 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {};
8
+ };
9
+ export type NoMainFuncBadgeProps = typeof __propDef.props;
10
+ export type NoMainFuncBadgeEvents = typeof __propDef.events;
11
+ export type NoMainFuncBadgeSlots = typeof __propDef.slots;
12
+ export default class NoMainFuncBadge extends SvelteComponent<NoMainFuncBadgeProps, NoMainFuncBadgeEvents, NoMainFuncBadgeSlots> {
13
+ }
14
+ export {};
@@ -33,7 +33,7 @@ function sync() {
33
33
  size="sm"
34
34
  endIcon={{ icon: Plus }}
35
35
  on:click={() => {
36
- extra_params_vec = extra_params_vec.concat([['key', 'value']])
36
+ extra_params_vec = (extra_params_vec ?? []).concat([['key', 'value']])
37
37
  sync()
38
38
  }}
39
39
  >
@@ -30,7 +30,7 @@ export let scopes = [];
30
30
  size="sm"
31
31
  endIcon={{ icon: Plus }}
32
32
  on:click={() => {
33
- scopes = scopes.concat('')
33
+ scopes = (scopes ?? []).concat('')
34
34
  }}
35
35
  >
36
36
  Add item