windmill-components 1.394.8 → 1.405.5

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 (305) hide show
  1. package/package/assets/app.css +20 -0
  2. package/package/ata/edgeCases.d.ts +0 -1
  3. package/package/ata/edgeCases.js +2 -8
  4. package/package/ata/index.js +4 -3
  5. package/package/common.d.ts +1 -1
  6. package/package/common.js +2 -2
  7. package/package/components/ApiConnectForm.svelte +33 -7
  8. package/package/components/AppConnectLightweightResourcePicker.svelte +66 -0
  9. package/package/components/AppConnectLightweightResourcePicker.svelte.d.ts +21 -0
  10. package/package/components/ArgInput.svelte +10 -4
  11. package/package/components/ArgInput.svelte.d.ts +1 -0
  12. package/package/components/CenteredModal.svelte +4 -1
  13. package/package/components/CenteredModal.svelte.d.ts +1 -0
  14. package/package/components/CustomPopover.svelte +1 -1
  15. package/package/components/DateInput.svelte +2 -0
  16. package/package/components/DateInput.svelte.d.ts +1 -0
  17. package/package/components/DefaultScripts.svelte +8 -3
  18. package/package/components/DefaultScripts.svelte.d.ts +5 -1
  19. package/package/components/DefaultScriptsInner.svelte +16 -7
  20. package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
  21. package/package/components/Dev.svelte +68 -11
  22. package/package/components/DisplayResult.svelte +1 -1
  23. package/package/components/DropdownV2.svelte.d.ts +3 -3
  24. package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
  25. package/package/components/EditableSchemaForm.svelte +1 -0
  26. package/package/components/Editor.svelte +3 -2
  27. package/package/components/Editor.svelte.d.ts +1 -1
  28. package/package/components/ExecutionDuration.svelte +44 -0
  29. package/package/components/ExecutionDuration.svelte.d.ts +24 -0
  30. package/package/components/FlowBuilder.svelte +22 -12
  31. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  32. package/package/components/FlowGraphViewer.svelte +9 -2
  33. package/package/components/FlowGraphViewerStep.svelte +23 -10
  34. package/package/components/FlowInputViewer.svelte +25 -0
  35. package/package/components/FlowInputViewer.svelte.d.ts +19 -0
  36. package/package/components/FlowJobResult.svelte +8 -2
  37. package/package/components/FlowJobResult.svelte.d.ts +1 -0
  38. package/package/components/FlowMetadata.svelte +2 -2
  39. package/package/components/FlowStatusViewer.svelte +3 -1
  40. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  41. package/package/components/FlowStatusViewerInner.svelte +21 -5
  42. package/package/components/FlowTimeline.svelte +3 -3
  43. package/package/components/FlowViewer.svelte +2 -21
  44. package/package/components/HighlightCode.svelte +3 -0
  45. package/package/components/IconedResourceType.svelte +17 -10
  46. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  47. package/package/components/IdEditorInput.svelte +0 -1
  48. package/package/components/InstanceSettings.svelte +247 -129
  49. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  50. package/package/components/JobArgs.svelte +3 -1
  51. package/package/components/LightweightArgInput.svelte +35 -10
  52. package/package/components/LightweightArgInput.svelte.d.ts +1 -0
  53. package/package/components/LightweightObjectResourceInput.svelte +2 -0
  54. package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
  55. package/package/components/LightweightResourcePicker.svelte +34 -30
  56. package/package/components/LightweightSchemaForm.svelte +2 -0
  57. package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
  58. package/package/components/LogViewer.svelte +4 -3
  59. package/package/components/LogViewer.svelte.d.ts +1 -0
  60. package/package/components/Login.svelte +10 -5
  61. package/package/components/Login.svelte.d.ts +1 -0
  62. package/package/components/ManualPopover.svelte +1 -1
  63. package/package/components/ModulePreview.svelte +21 -2
  64. package/package/components/ModuleStatus.svelte +3 -0
  65. package/package/components/ModuleStatus.svelte.d.ts +1 -0
  66. package/package/components/OAuthSetting.svelte +40 -15
  67. package/package/components/ObjectResourceInput.svelte +5 -2
  68. package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
  69. package/package/components/ObjectStoreConfigSettings.svelte +78 -76
  70. package/package/components/ParqetCsvTableRenderer.svelte +25 -3
  71. package/package/components/Password.svelte.d.ts +1 -1
  72. package/package/components/Path.svelte +74 -54
  73. package/package/components/Path.svelte.d.ts +2 -1
  74. package/package/components/Popover.svelte +1 -1
  75. package/package/components/Portal.svelte +7 -8
  76. package/package/components/Portal.svelte.d.ts +3 -7
  77. package/package/components/QueueMetricsDrawer.svelte +368 -3
  78. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -0
  79. package/package/components/ResourceEditor.svelte +38 -10
  80. package/package/components/ResourcePicker.svelte +14 -9
  81. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  82. package/package/components/ResultJobLoader.svelte +6 -3
  83. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  84. package/package/components/RunForm.svelte +1 -1
  85. package/package/components/SavedInputs.svelte +2 -2
  86. package/package/components/ScheduleEditorInner.svelte +2 -2
  87. package/package/components/SchemaForm.svelte +6 -1
  88. package/package/components/ScriptBuilder.svelte +12 -5
  89. package/package/components/ScriptEditor.svelte +33 -3
  90. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  91. package/package/components/ScriptVersionHistory.svelte +54 -59
  92. package/package/components/Scrollable.svelte +47 -0
  93. package/package/components/Scrollable.svelte.d.ts +21 -0
  94. package/package/components/ShareModal.svelte.d.ts +2 -2
  95. package/package/components/SuperadminSettings.svelte +5 -7
  96. package/package/components/TestConnection.svelte +1 -0
  97. package/package/components/TestJobLoader.svelte +46 -5
  98. package/package/components/TestJobLoader.svelte.d.ts +2 -1
  99. package/package/components/TimeAgo.svelte +5 -6
  100. package/package/components/TimeAgo.svelte.d.ts +1 -1
  101. package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
  102. package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
  103. package/package/components/WorkspaceGroup.svelte +3 -2
  104. package/package/components/apps/components/buttons/AppButton.svelte +1 -1
  105. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
  106. package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  107. package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
  108. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +1 -1
  109. package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
  110. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  111. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  112. package/package/components/apps/editor/AppEditor.svelte +11 -3
  113. package/package/components/apps/editor/GridEditor.svelte +57 -4
  114. package/package/components/apps/editor/GridEditor.svelte.d.ts +8 -0
  115. package/package/components/apps/editor/GridEditorMenu.svelte +1 -1
  116. package/package/components/apps/editor/SubGridEditor.svelte +82 -3
  117. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +16 -0
  118. package/package/components/apps/editor/appUtils.d.ts +19 -2
  119. package/package/components/apps/editor/appUtils.js +103 -7
  120. package/package/components/apps/editor/component/Component.svelte +36 -8
  121. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  122. package/package/components/apps/editor/component/components.d.ts +79 -79
  123. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +1 -1
  124. package/package/components/apps/svelte-grid/Grid.svelte +235 -12
  125. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +7 -7
  126. package/package/components/apps/svelte-grid/MoveResize.svelte +104 -11
  127. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +7 -0
  128. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  129. package/package/components/apps/svelte-grid/utils/item.js +2 -3
  130. package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +1 -1
  131. package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +1 -1
  132. package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
  133. package/package/components/common/button/ButtonDropdown.svelte +1 -1
  134. package/package/components/common/drawer/ConditionalPortal.svelte +1 -1
  135. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  136. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  137. package/package/components/common/menu/Menu.svelte +2 -1
  138. package/package/components/common/menu/MenuV2.svelte +4 -2
  139. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  140. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
  141. package/package/components/common/popup/Popup.svelte +22 -12
  142. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  143. package/package/components/common/popup/PopupV2.svelte +58 -0
  144. package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
  145. package/package/components/copilot/CronGen.svelte +1 -1
  146. package/package/components/copilot/RegexGen.svelte +4 -4
  147. package/package/components/copilot/StepGen.svelte +6 -6
  148. package/package/components/copilot/StepGenQuick.svelte +58 -0
  149. package/package/components/copilot/StepGenQuick.svelte.d.ts +24 -0
  150. package/package/components/copilot/flow.d.ts +2 -0
  151. package/package/components/copilot/flow.js +55 -0
  152. package/package/components/details/DetailPageDetailPanel.svelte +9 -1
  153. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
  154. package/package/components/details/DetailPageLayout.svelte +2 -0
  155. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  156. package/package/components/details/Menu.svelte +1 -1
  157. package/package/components/details/utils.d.ts +0 -1
  158. package/package/components/details/utils.js +1 -12
  159. package/package/components/flows/CreateActionsApp.svelte +1 -1
  160. package/package/components/flows/FlowEditor.svelte +4 -2
  161. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  162. package/package/components/flows/FlowHistory.svelte +10 -195
  163. package/package/components/flows/FlowHistory.svelte.d.ts +0 -1
  164. package/package/components/flows/FlowHistoryInner.svelte +200 -0
  165. package/package/components/flows/FlowHistoryInner.svelte.d.ts +19 -0
  166. package/package/components/flows/FlowProgressBar.svelte +16 -1
  167. package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
  168. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
  169. package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
  170. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
  171. package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
  172. package/package/components/flows/content/FlowConstants.svelte +1 -1
  173. package/package/components/flows/content/FlowEditorPanel.svelte +5 -1
  174. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  175. package/package/components/flows/content/FlowInput.svelte +66 -58
  176. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  177. package/package/components/flows/content/FlowInputs.svelte +7 -6
  178. package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
  179. package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
  180. package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
  181. package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
  182. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -1
  184. package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
  185. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
  188. package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
  189. package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
  190. package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
  191. package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
  192. package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
  193. package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
  194. package/package/components/flows/content/GenAiQuick.svelte +30 -0
  195. package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
  196. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  197. package/package/components/flows/flowInfers.js +1 -1
  198. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
  199. package/package/components/flows/idUtils.js +3 -1
  200. package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
  201. package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
  202. package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
  203. package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
  205. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  206. package/package/components/flows/map/FlowModuleSchemaMap.svelte +64 -20
  207. package/package/components/flows/map/InsertModuleButton.svelte +161 -138
  208. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
  209. package/package/components/flows/map/MapItem.svelte +11 -0
  210. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  211. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
  212. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
  213. package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
  214. package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
  215. package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
  216. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
  217. package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
  218. package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
  219. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
  220. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
  221. package/package/components/flows/types.d.ts +1 -0
  222. package/package/components/graph/FlowGraphV2.svelte +93 -58
  223. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
  224. package/package/components/graph/graphBuilder.d.ts +2 -1
  225. package/package/components/graph/graphBuilder.js +345 -280
  226. package/package/components/graph/model.d.ts +2 -0
  227. package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
  228. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  229. package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
  230. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
  231. package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
  232. package/package/components/graph/util.d.ts +1 -1
  233. package/package/components/graph/util.js +7 -2
  234. package/package/components/home/ListFiltersQuick.svelte +51 -0
  235. package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
  236. package/package/components/icons/AnsibleIcon.svelte +42 -0
  237. package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
  238. package/package/components/icons/WindmillIcon.svelte +119 -105
  239. package/package/components/icons/WindmillIcon2.svelte +141 -0
  240. package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
  241. package/package/components/icons/index.d.ts +2 -1
  242. package/package/components/icons/index.js +2 -1
  243. package/package/components/icons/store.d.ts +4 -0
  244. package/package/components/icons/store.js +1 -0
  245. package/package/components/instanceSettings.d.ts +2 -2
  246. package/package/components/instanceSettings.js +25 -58
  247. package/package/components/jobs/JobProgressBar.svelte +52 -0
  248. package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
  249. package/package/components/multiselect/MultiSelectWrapper.svelte +1 -1
  250. package/package/components/progressBar/ProgressBar.svelte +18 -1
  251. package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
  252. package/package/components/propertyPicker/ObjectViewer.svelte +1 -1
  253. package/package/components/runs/JobPreview.svelte +1 -0
  254. package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
  255. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
  256. package/package/components/runs/RunRow.svelte +3 -7
  257. package/package/components/schema/AddProperty.svelte +1 -0
  258. package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
  259. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
  260. package/package/components/schema/FlowPropertyEditor.svelte +13 -0
  261. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
  262. package/package/components/scriptEditor/LogPanel.svelte +1 -0
  263. package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
  264. package/package/components/search/GlobalSearchModal.svelte +3 -2
  265. package/package/components/sidebar/SidebarContent.svelte +69 -8
  266. package/package/components/sidebar/changelogs.js +10 -0
  267. package/package/components/triggers/RouteEditor.svelte +19 -0
  268. package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
  269. package/package/components/triggers/RouteEditorInner.svelte +327 -0
  270. package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
  271. package/package/components/triggers/RoutesPanel.svelte +74 -0
  272. package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
  273. package/package/editorUtils.js +2 -0
  274. package/package/gen/core/OpenAPI.js +1 -1
  275. package/package/gen/schemas.gen.d.ts +159 -8
  276. package/package/gen/schemas.gen.js +161 -8
  277. package/package/gen/services.gen.d.ts +139 -1
  278. package/package/gen/services.gen.js +282 -1
  279. package/package/gen/types.gen.d.ts +455 -12
  280. package/package/hubPaths.json +6 -8
  281. package/package/infer.d.ts +4 -2
  282. package/package/infer.js +25 -23
  283. package/package/inferArgSig.js +8 -2
  284. package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
  285. package/package/relative_imports.d.ts +3 -0
  286. package/package/relative_imports.js +25 -0
  287. package/package/script_helpers.d.ts +38 -34
  288. package/package/script_helpers.js +245 -35
  289. package/package/scripts.d.ts +1 -1
  290. package/package/scripts.js +5 -1
  291. package/package/stores.d.ts +1 -0
  292. package/package/stores.js +1 -0
  293. package/package/utils.d.ts +1 -0
  294. package/package/utils.js +4 -0
  295. package/package.json +38 -7
  296. package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
  297. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
  298. package/package/init_scripts/python_failure_module.d.ts +0 -2
  299. package/package/init_scripts/python_failure_module.js +0 -8
  300. package/package/init_scripts/python_init_code.d.ts +0 -2
  301. package/package/init_scripts/python_init_code.js +0 -40
  302. package/package/init_scripts/python_init_code_clear.d.ts +0 -2
  303. package/package/init_scripts/python_init_code_clear.js +0 -5
  304. package/package/init_scripts/python_init_code_trigger.d.ts +0 -2
  305. package/package/init_scripts/python_init_code_trigger.js +0 -14
@@ -1,11 +1,11 @@
1
- <script>import CollapseLink from './CollapseLink.svelte';
1
+ <script>import { X } from 'lucide-svelte';
2
+ import CollapseLink from './CollapseLink.svelte';
2
3
  import IconedResourceType from './IconedResourceType.svelte';
3
4
  import Toggle from './Toggle.svelte';
4
5
  export let name;
5
6
  export let value;
6
7
  export let login = true;
7
8
  $: enabled = value != undefined;
8
- let allowed_domains = value?.['allowed_domains'] ?? '';
9
9
  let tenant = '';
10
10
  $: name == 'microsoft' && changeTenantId(tenant);
11
11
  function changeTenantId(tenant) {
@@ -61,19 +61,44 @@ function changeTenantId(tenant) {
61
61
  </label>
62
62
  {:else if login}
63
63
  <label class="block pb-2">
64
- <span class="text-primary font-semibold text-sm">Allowed domain</span>
65
- <input
66
- type="text"
67
- placeholder="windmill.dev"
68
- bind:value={allowed_domains}
69
- on:keyup={() => {
70
- if (allowed_domains == '') {
71
- value['allowed_domains'] = undefined
72
- } else {
73
- value['allowed_domains'] = [allowed_domains]
74
- }
75
- }}
76
- />
64
+ <span class="text-primary font-semibold text-sm">Allowed domains</span>
65
+ <div class="flex flex-col gap-1">
66
+ {#each value?.['allowed_domains'] ?? [] as domain}
67
+ <div class="flex gap-2">
68
+ <input
69
+ class="max-w-96 w-full"
70
+ type="text"
71
+ bind:value={domain}
72
+ on:keyup={(e) => {
73
+ if (domain == '') {
74
+ value['allowed_domains'] = value['allowed_domains']?.filter(
75
+ (d) => d != domain
76
+ )
77
+ }
78
+ }}
79
+ />
80
+ <button
81
+ class="text-primary text-xs rounded hover:bg-surface-hover"
82
+ on:click={() => {
83
+ value['allowed_domains'] = value['allowed_domains']?.filter((d) => d != domain)
84
+ if (value['allowed_domains'].length == 0) {
85
+ value['allowed_domains'] = undefined
86
+ }
87
+ }}
88
+ >
89
+ <X size={14} />
90
+ </button>
91
+ </div>
92
+ {/each}
93
+ <div class="flex gap-2">
94
+ <button
95
+ class="text-primary text-sm border rounded p-1"
96
+ on:click={() => {
97
+ value['allowed_domains'] = [...(value['allowed_domains'] ?? []), 'mydomain.com']
98
+ }}>+ Add domain</button
99
+ >
100
+ </div>
101
+ </div>
77
102
  </label>
78
103
  {/if}
79
104
  {#if name == 'google'}
@@ -14,7 +14,7 @@ function isString(value) {
14
14
  }
15
15
  export let path = '';
16
16
  function resourceToValue() {
17
- if (path) {
17
+ if (path && path != '') {
18
18
  value = `$res:${path}`;
19
19
  }
20
20
  else {
@@ -43,8 +43,11 @@ $: value && valueToPath();
43
43
  path = e.detail
44
44
  resourceToValue()
45
45
  }}
46
+ on:clear
46
47
  bind:value={path}
47
- initialValue={defaultValue}
48
+ initialValue={typeof defaultValue == 'string' && defaultValue.startsWith('$res:')
49
+ ? defaultValue.substr('$res:'.length)
50
+ : defaultValue}
48
51
  resourceType={format.split('-').length > 1 ? format.substring('resource-'.length) : undefined}
49
52
  {showSchemaExplorer}
50
53
  />
@@ -12,6 +12,8 @@ declare const __propDef: {
12
12
  path?: string | undefined;
13
13
  };
14
14
  events: {
15
+ clear: CustomEvent<any>;
16
+ } & {
15
17
  [evt: string]: CustomEvent<any>;
16
18
  };
17
19
  slots: {};
@@ -49,7 +49,7 @@ async function testConnection() {
49
49
  />
50
50
  </div>
51
51
  {#if bucket_config}
52
- <div class="flex gap-2">
52
+ <div class="flex gap-2 py-1">
53
53
  <Button
54
54
  spacingSize="sm"
55
55
  size="xs"
@@ -100,81 +100,83 @@ async function testConnection() {
100
100
  <Tab size="sm" value="S3">S3</Tab>
101
101
  <Tab size="sm" value="Azure">Azure Blob</Tab>
102
102
  </Tabs>
103
- {#if bucket_config.type === 'S3'}
104
- <label class="block pb-2">
105
- <span class="text-primary font-semibold text-sm">Bucket</span>
106
- <input type="text" placeholder="bucket-name" bind:value={bucket_config.bucket} />
107
- </label>
103
+ <div class="flex flex-col gap-2 mt-2 p-2 border rounded-md">
104
+ {#if bucket_config.type === 'S3'}
105
+ <label class="block pb-2">
106
+ <span class="text-primary font-semibold text-sm">Bucket</span>
107
+ <input type="text" placeholder="bucket-name" bind:value={bucket_config.bucket} />
108
+ </label>
108
109
 
109
- <label class="block pb-2">
110
- <span class="text-primary font-semibold text-sm">Region</span>
111
- <span class="text-tertiary text-2xs"
112
- >If left empty, will be derived automatically from $AWS_REGION</span
113
- >
114
- <input type="text" bind:value={bucket_config.region} />
115
- </label>
116
- <label class="block pb-2">
117
- <span class="text-primary font-semibold text-sm">Access key ID</span>
118
- <span class="text-tertiary text-2xs"
119
- >If left empty, will be derived automatically from $AWS_ACCESS_KEY_ID, pod or ec2 profile</span
120
- >
121
- <input type="text" bind:value={bucket_config.access_key} />
122
- </label>
123
- <label class="block pb-2">
124
- <span class="text-primary font-semibold text-sm">Secret key</span>
125
- <span class="text-tertiary text-2xs"
126
- >If left empty, will be derived automatically from $AWS_SECRET_KEY, pod or ec2 profile</span
127
- >
128
- <input type="password" autocomplete="new-password" bind:value={bucket_config.secret_key} />
129
- </label>
130
- <label class="block pb-2">
131
- <span class="text-primary font-semibold text-sm">Endpoint</span>
132
- <span class="text-tertiary text-2xs"
133
- >Only needed for non AWS S3 providers like R2 or MinIo</span
134
- >
135
- <input type="text" bind:value={bucket_config.endpoint} />
136
- </label>
137
- <div class="block pb-2">
138
- <span class="text-tertiary text-2xs">Disable if using https only policy</span>
139
- <div>
140
- <Toggle bind:checked={bucket_config.allow_http} options={{ right: 'Allow http' }} />
110
+ <label class="block pb-2">
111
+ <span class="text-primary font-semibold text-sm">Region</span>
112
+ <span class="text-tertiary text-2xs"
113
+ >If left empty, will be derived automatically from $AWS_REGION</span
114
+ >
115
+ <input type="text" bind:value={bucket_config.region} />
116
+ </label>
117
+ <label class="block pb-2">
118
+ <span class="text-primary font-semibold text-sm">Access key ID</span>
119
+ <span class="text-tertiary text-2xs"
120
+ >If left empty, will be derived automatically from $AWS_ACCESS_KEY_ID, pod or ec2 profile</span
121
+ >
122
+ <input type="text" bind:value={bucket_config.access_key} />
123
+ </label>
124
+ <label class="block pb-2">
125
+ <span class="text-primary font-semibold text-sm">Secret key</span>
126
+ <span class="text-tertiary text-2xs"
127
+ >If left empty, will be derived automatically from $AWS_SECRET_KEY, pod or ec2 profile</span
128
+ >
129
+ <input type="password" autocomplete="new-password" bind:value={bucket_config.secret_key} />
130
+ </label>
131
+ <label class="block pb-2">
132
+ <span class="text-primary font-semibold text-sm">Endpoint</span>
133
+ <span class="text-tertiary text-2xs"
134
+ >Only needed for non AWS S3 providers like R2 or MinIo</span
135
+ >
136
+ <input type="text" bind:value={bucket_config.endpoint} />
137
+ </label>
138
+ <div class="block pb-2">
139
+ <span class="text-tertiary text-2xs">Disable if using https only policy</span>
140
+ <div>
141
+ <Toggle bind:checked={bucket_config.allow_http} options={{ right: 'Allow http' }} />
142
+ </div>
141
143
  </div>
142
- </div>
143
- {:else if bucket_config.type === 'Azure'}
144
- <label class="block pb-2">
145
- <span class="text-primary font-semibold text-sm">Account name</span>
146
- <input type="text" placeholder="account-name" bind:value={bucket_config.accountName} />
147
- </label>
148
- <label class="block pb-2">
149
- <span class="text-primary font-semibold text-sm">Container name</span>
150
- <input type="text" placeholder="container-name" bind:value={bucket_config.containerName} />
151
- </label>
152
- <label class="block pb-2">
153
- <span class="text-primary font-semibold text-sm">Access key</span>
154
- <input type="password" autocomplete="new-password" bind:value={bucket_config.accessKey} />
155
- </label>
156
- <label class="block pb-2">
157
- <span class="text-primary font-semibold text-sm"
158
- >Tenant ID <span class="text-2xs text-tertiary">(optional)</span></span
159
- >
160
- <input type="text" bind:value={bucket_config.tenantId} />
161
- </label>
162
- <label class="block pb-2">
163
- <span class="text-primary font-semibold text-sm"
164
- >Client ID <span class="text-2xs text-tertiary">(optional)</span></span
165
- >
166
- <input type="text" bind:value={bucket_config.clientId} />
167
- </label>
168
- <label class="block pb-2">
169
- <span class="text-primary font-semibold text-sm"
170
- >Endpoint <span class="text-2xs text-tertiary">(optional)</span></span
171
- >
172
- <span class="text-tertiary text-2xs"
173
- >Only needed for non Azure Blob providers like Azurite</span
174
- >
175
- <input type="text" bind:value={bucket_config.endpoint} />
176
- </label>
177
- {:else}
178
- <div>Unknown bucket type {bucket_config['type']}</div>
179
- {/if}
144
+ {:else if bucket_config.type === 'Azure'}
145
+ <label class="block pb-2">
146
+ <span class="text-primary font-semibold text-sm">Account name</span>
147
+ <input type="text" placeholder="account-name" bind:value={bucket_config.accountName} />
148
+ </label>
149
+ <label class="block pb-2">
150
+ <span class="text-primary font-semibold text-sm">Container name</span>
151
+ <input type="text" placeholder="container-name" bind:value={bucket_config.containerName} />
152
+ </label>
153
+ <label class="block pb-2">
154
+ <span class="text-primary font-semibold text-sm">Access key</span>
155
+ <input type="password" autocomplete="new-password" bind:value={bucket_config.accessKey} />
156
+ </label>
157
+ <label class="block pb-2">
158
+ <span class="text-primary font-semibold text-sm"
159
+ >Tenant ID <span class="text-2xs text-tertiary">(optional)</span></span
160
+ >
161
+ <input type="text" bind:value={bucket_config.tenantId} />
162
+ </label>
163
+ <label class="block pb-2">
164
+ <span class="text-primary font-semibold text-sm"
165
+ >Client ID <span class="text-2xs text-tertiary">(optional)</span></span
166
+ >
167
+ <input type="text" bind:value={bucket_config.clientId} />
168
+ </label>
169
+ <label class="block pb-2">
170
+ <span class="text-primary font-semibold text-sm"
171
+ >Endpoint <span class="text-2xs text-tertiary">(optional)</span></span
172
+ >
173
+ <span class="text-tertiary text-2xs"
174
+ >Only needed for non Azure Blob providers like Azurite</span
175
+ >
176
+ <input type="text" bind:value={bucket_config.endpoint} />
177
+ </label>
178
+ {:else}
179
+ <div>Unknown bucket type {bucket_config['type']}</div>
180
+ {/if}
181
+ </div>
180
182
  {/if}
@@ -7,19 +7,36 @@ import { HelpersService } from '../gen';
7
7
  import { base } from '../base';
8
8
  import { enterpriseLicense, workspaceStore } from '../stores';
9
9
  import { Download } from 'lucide-svelte';
10
+ import { Loader2 } from 'lucide-svelte';
10
11
  // import 'ag-grid-community/dist/styles/ag-theme-alpine-dark.css'
11
12
  let selectedRowIndex = -1;
12
13
  export let s3resource;
13
14
  export let storage;
14
15
  export let workspaceId;
15
16
  export let disable_download = false;
17
+ let lastSearch = undefined;
18
+ let nbRows = undefined;
16
19
  let csvSeparatorChar = ',';
17
20
  let datasource = {
18
21
  rowCount: 0,
19
22
  getRows: async function (params) {
20
23
  try {
21
24
  const searchCol = params.filterModel ? Object.keys(params.filterModel)?.[0] : undefined;
25
+ const searchTerm = searchCol ? params.filterModel?.[searchCol]?.filter : undefined;
22
26
  const csv = s3resource.endsWith('.csv');
27
+ const newSearch = searchCol ? searchCol + searchTerm : undefined;
28
+ if (!nbRows || lastSearch != newSearch) {
29
+ nbRows = undefined;
30
+ const res = await HelpersService.loadTableRowCount({
31
+ workspace: workspaceId ?? $workspaceStore,
32
+ path: s3resource,
33
+ searchCol: searchCol,
34
+ storage,
35
+ searchTerm
36
+ });
37
+ nbRows = res.count;
38
+ lastSearch = newSearch;
39
+ }
23
40
  const requestBody = {
24
41
  workspace: workspaceId ?? $workspaceStore,
25
42
  path: s3resource,
@@ -27,8 +44,8 @@ let datasource = {
27
44
  limit: params.endRow - params.startRow,
28
45
  sortCol: params.sortModel?.[0]?.colId,
29
46
  sortDesc: params.sortModel?.[0]?.sort == 'desc',
30
- searchCol: searchCol,
31
- searchTerm: searchCol ? params.filterModel?.[searchCol]?.filter : undefined,
47
+ searchCol,
48
+ searchTerm,
32
49
  storage: storage,
33
50
  csvSeparator: csv ? csvSeparatorChar : undefined
34
51
  };
@@ -45,7 +62,7 @@ let datasource = {
45
62
  });
46
63
  }
47
64
  }
48
- params.successCallback(res.rows);
65
+ params.successCallback(res.rows, nbRows);
49
66
  }
50
67
  catch (e) {
51
68
  console.error(e);
@@ -164,6 +181,11 @@ let darkMode = false;
164
181
  >
165
182
  {/if}
166
183
 
184
+ {#if nbRows != undefined}
185
+ <div class="text-secondary ml-0.5 text-2xs">{nbRows} rows</div>
186
+ {:else}
187
+ <Loader2 class="animate-spin ml-0.5" size={12} />
188
+ {/if}
167
189
  <div
168
190
  class="ag-theme-alpine shadow-sm h-full"
169
191
  class:ag-theme-alpine-dark={darkMode}
@@ -1,7 +1,7 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
- password: string;
4
+ password: string | undefined;
5
5
  placeholder?: string | undefined;
6
6
  disabled?: boolean | undefined;
7
7
  required?: boolean | undefined;
@@ -3,7 +3,7 @@ const lastMetaUsed = writable(undefined);
3
3
  </script>
4
4
 
5
5
  <script>import { pathToMeta } from '../common';
6
- import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, VariableService } from '../gen';
6
+ import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService } from '../gen';
7
7
  import { superadmin, userStore, workspaceStore } from '../stores';
8
8
  import { createEventDispatcher, getContext } from 'svelte';
9
9
  import { writable } from 'svelte/store';
@@ -27,6 +27,7 @@ export let checkInitialPathExistence = false;
27
27
  export let autofocus = true;
28
28
  export let dirty = false;
29
29
  export let kind;
30
+ export let hideUser = false;
30
31
  let inputP = undefined;
31
32
  const dispatch = createEventDispatcher();
32
33
  let folders = [];
@@ -65,22 +66,33 @@ export async function reset() {
65
66
  if (path == '' || path == 'u//') {
66
67
  if ($lastMetaUsed == undefined || $lastMetaUsed.owner != $userStore?.username) {
67
68
  meta = {
68
- ownerKind: 'user',
69
+ ownerKind: hideUser ? 'folder' : 'user',
69
70
  name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder,
70
71
  owner: ''
71
72
  };
72
- if ($userStore?.username?.includes('@')) {
73
- meta.owner = $userStore.username.split('@')[0].replace(/[^a-zA-Z0-9_]/g, '');
74
- }
75
- else {
76
- meta.owner = $userStore.username;
73
+ if (!hideUser) {
74
+ if ($userStore?.username?.includes('@')) {
75
+ meta.owner = $userStore.username.split('@')[0].replace(/[^a-zA-Z0-9_]/g, '');
76
+ }
77
+ else {
78
+ meta.owner = $userStore.username;
79
+ }
77
80
  }
78
81
  }
79
82
  else {
80
- meta = {
81
- ...$lastMetaUsed,
82
- name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder
83
- };
83
+ if ($lastMetaUsed.ownerKind == 'user' && hideUser) {
84
+ meta = {
85
+ ownerKind: 'folder',
86
+ owner: '',
87
+ name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder
88
+ };
89
+ }
90
+ else {
91
+ meta = {
92
+ ...$lastMetaUsed,
93
+ name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder
94
+ };
95
+ }
84
96
  }
85
97
  let newMeta = { ...meta };
86
98
  while (await pathExists(metaToPath(newMeta), kind)) {
@@ -94,7 +106,7 @@ export async function reset() {
94
106
  path = metaToPath(meta);
95
107
  }
96
108
  else {
97
- meta = pathToMeta(path);
109
+ meta = pathToMeta(path, hideUser);
98
110
  }
99
111
  }
100
112
  async function loadFolders() {
@@ -167,6 +179,12 @@ async function pathExists(path, kind) {
167
179
  else if (kind == 'app') {
168
180
  return await AppService.existsApp({ workspace: $workspaceStore, path: path });
169
181
  }
182
+ else if (kind == 'http_trigger') {
183
+ return await HttpTriggerService.existsHttpTrigger({
184
+ workspace: $workspaceStore,
185
+ path: path
186
+ });
187
+ }
170
188
  else {
171
189
  return false;
172
190
  }
@@ -200,7 +218,7 @@ $: {
200
218
  }
201
219
  function initPath() {
202
220
  if (path != undefined && path != '') {
203
- meta = pathToMeta(path);
221
+ meta = pathToMeta(path, hideUser);
204
222
  onMetaChange();
205
223
  return;
206
224
  }
@@ -208,7 +226,7 @@ function initPath() {
208
226
  reset();
209
227
  }
210
228
  else {
211
- meta = pathToMeta(initialPath);
229
+ meta = pathToMeta(initialPath, hideUser);
212
230
  onMetaChange();
213
231
  path = initialPath;
214
232
  }
@@ -267,47 +285,49 @@ const openSearchWithPrefilledText = getContext('openSearchWithPrefilledText');
267
285
  {#if meta != undefined}
268
286
  <div class="flex gap-x-4 shrink">
269
287
  <!-- svelte-ignore a11y-label-has-associated-control -->
270
- <div class="block">
271
- <span class="text-secondary text-sm whitespace-nowrap">&nbsp;</span>
288
+ {#if !hideUser}
289
+ <div class="block">
290
+ <span class="text-secondary text-sm whitespace-nowrap">&nbsp;</span>
272
291
 
273
- <ToggleButtonGroup
274
- class="mt-0.5"
275
- bind:selected={meta.ownerKind}
276
- on:selected={(e) => {
277
- setDirty()
278
- const kind = e.detail
279
- if (meta) {
280
- if (kind === 'folder') {
281
- meta.owner = folders?.[0]?.name ?? ''
282
- } else if (kind === 'group') {
283
- meta.owner = 'all'
284
- } else {
285
- meta.owner = $userStore?.username?.split('@')[0] ?? ''
292
+ <ToggleButtonGroup
293
+ class="mt-0.5"
294
+ bind:selected={meta.ownerKind}
295
+ on:selected={(e) => {
296
+ setDirty()
297
+ const kind = e.detail
298
+ if (meta) {
299
+ if (kind === 'folder') {
300
+ meta.owner = folders?.[0]?.name ?? ''
301
+ } else if (kind === 'group') {
302
+ meta.owner = 'all'
303
+ } else {
304
+ meta.owner = $userStore?.username?.split('@')[0] ?? ''
305
+ }
286
306
  }
287
- }
288
- }}
289
- >
290
- <ToggleButton
291
- icon={User}
292
- {disabled}
293
- light
294
- size="xs"
295
- value="user"
296
- position="left"
297
- label="User"
298
- />
299
- <!-- <ToggleButton light size="xs" value="group" position="center">Group</ToggleButton> -->
300
- <ToggleButton
301
- icon={Folder}
302
- {disabled}
303
- light
304
- size="xs"
305
- value="folder"
306
- position="right"
307
- label="Folder"
308
- />
309
- </ToggleButtonGroup>
310
- </div>
307
+ }}
308
+ >
309
+ <ToggleButton
310
+ icon={User}
311
+ {disabled}
312
+ light
313
+ size="xs"
314
+ value="user"
315
+ position="left"
316
+ label="User"
317
+ />
318
+ <!-- <ToggleButton light size="xs" value="group" position="center">Group</ToggleButton> -->
319
+ <ToggleButton
320
+ icon={Folder}
321
+ {disabled}
322
+ light
323
+ size="xs"
324
+ value="folder"
325
+ position="right"
326
+ label="Folder"
327
+ />
328
+ </ToggleButtonGroup>
329
+ </div>
330
+ {/if}
311
331
  {#if meta.ownerKind === 'user'}
312
332
  <label class="block shrink min-w-0">
313
333
  <span class="text-secondary text-sm">User</span>
@@ -417,7 +437,7 @@ const openSearchWithPrefilledText = getContext('openSearchWithPrefilledText');
417
437
  <div class="text-red-600 dark:text-red-400 text-2xs">{error}</div>
418
438
  </div>
419
439
 
420
- {#if kind != 'app' && kind != 'schedule' && initialPath != '' && initialPath != undefined && initialPath != path}
440
+ {#if kind != 'app' && kind != 'schedule' && kind != 'http_trigger' && initialPath != '' && initialPath != undefined && initialPath != path}
421
441
  <Alert type="warning" class="mt-4" title="Moving may break other items relying on it">
422
442
  You are renaming an item that may be depended upon by other items. This may break apps, flows
423
443
  or resources. Find if it used elsewhere using the content search. Note that linked variables
@@ -10,7 +10,8 @@ declare const __propDef: {
10
10
  checkInitialPathExistence?: boolean | undefined;
11
11
  autofocus?: boolean | undefined;
12
12
  dirty?: boolean | undefined;
13
- kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app";
13
+ kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger";
14
+ hideUser?: boolean | undefined;
14
15
  focus?: (() => void) | undefined;
15
16
  setName?: ((x: string) => void) | undefined;
16
17
  reset?: (() => Promise<void>) | undefined;
@@ -60,7 +60,7 @@ function close() {
60
60
  </button>
61
61
  {/if}
62
62
  {#if showTooltip && !disablePopup}
63
- <Portal>
63
+ <Portal name="popover">
64
64
  <!-- svelte-ignore a11y-no-static-element-interactions -->
65
65
  <div
66
66
  use:popperContent={popperOptions}
@@ -1,13 +1,8 @@
1
1
  <script context="module">
2
2
  import { tick } from 'svelte'
3
3
 
4
- /**
5
- * Usage: <div use:portal={'css selector'}> or <div use:portal={document.body}>
6
- *
7
- * @param {HTMLElement} el
8
- * @param {HTMLElement|string} target DOM Element or CSS Selector
9
- */
10
- export function portal(el, target = 'body') {
4
+ export function portal(el, options) {
5
+ let { target, name } = options
11
6
  let targetEl
12
7
  async function update(newTarget) {
13
8
  target = newTarget
@@ -32,6 +27,9 @@
32
27
  if (!el.classList.contains('windmill-app')) {
33
28
  el.classList.add('windmill-app')
34
29
  }
30
+ if (name && !el.classList.contains(name)) {
31
+ el.classList.add(name)
32
+ }
35
33
  targetEl.appendChild(el)
36
34
  el.hidden = false
37
35
  }
@@ -56,8 +54,9 @@
56
54
  * @type { HTMLElement|string}
57
55
  */
58
56
  export let target = 'body'
57
+ export let name = undefined
59
58
  </script>
60
59
 
61
- <div use:portal={target} hidden>
60
+ <div use:portal={{ target, name }} hidden>
62
61
  <slot />
63
62
  </div>
@@ -1,10 +1,4 @@
1
- /**
2
- * Usage: <div use:portal={'css selector'}> or <div use:portal={document.body}>
3
- *
4
- * @param {HTMLElement} el
5
- * @param {HTMLElement|string} target DOM Element or CSS Selector
6
- */
7
- export function portal(el: HTMLElement, target?: HTMLElement | string): {
1
+ export function portal(el: any, options: any): {
8
2
  update: (newTarget: any) => Promise<void>;
9
3
  destroy: () => void;
10
4
  };
@@ -12,6 +6,7 @@ export function portal(el: HTMLElement, target?: HTMLElement | string): {
12
6
  /** @typedef {typeof __propDef.events} PortalEvents */
13
7
  /** @typedef {typeof __propDef.slots} PortalSlots */
14
8
  export default class Portal extends SvelteComponent<{
9
+ name?: any;
15
10
  target?: string | HTMLElement | undefined;
16
11
  }, {
17
12
  [evt: string]: CustomEvent<any>;
@@ -25,6 +20,7 @@ export type PortalSlots = typeof __propDef.slots;
25
20
  import { SvelteComponent } from "svelte";
26
21
  declare const __propDef: {
27
22
  props: {
23
+ name?: any;
28
24
  target?: string | HTMLElement | undefined;
29
25
  };
30
26
  events: {