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
@@ -0,0 +1,419 @@
1
+ <script>import { isCloudHosted } from '../../../cloud';
2
+ import { sendUserToast } from '../../../toast';
3
+ import FlowScriptPickerQuick from '../pickers/FlowScriptPickerQuick.svelte';
4
+ import WorkspaceScriptPickerQuick from '../pickers/WorkspaceScriptPickerQuick.svelte';
5
+ import { defaultScriptLanguages, processLangs } from '../../../scripts';
6
+ import { defaultScripts, enterpriseLicense, userStore } from '../../../stores';
7
+ import { createEventDispatcher, getContext, onDestroy, onMount } from 'svelte';
8
+ import PickHubScriptQuick from '../pickers/PickHubScriptQuick.svelte';
9
+ import {} from '../../../gen';
10
+ import ListFiltersQuick from '../../home/ListFiltersQuick.svelte';
11
+ import { Folder, User } from 'lucide-svelte';
12
+ import { copilotInfo } from '../../../stores';
13
+ import { nextId } from '../../flows/flowModuleNextId';
14
+ import { twMerge } from 'tailwind-merge';
15
+ import { fade } from 'svelte/transition';
16
+ import { flip } from 'svelte/animate';
17
+ import Scrollable from '../../Scrollable.svelte';
18
+ import { Button } from '../../common';
19
+ import { SettingsIcon } from 'lucide-svelte';
20
+ import DefaultScriptsInner from '../../DefaultScriptsInner.svelte';
21
+ import GenAiQuick from './GenAiQuick.svelte';
22
+ import FlowToplevelNode from '../pickers/FlowToplevelNode.svelte';
23
+ const dispatch = createEventDispatcher();
24
+ export let summary = undefined;
25
+ export let filter = '';
26
+ export let disableAi = false;
27
+ export let preFilter = 'hub';
28
+ export let funcDesc;
29
+ export let index;
30
+ export let modules;
31
+ export let owners = [];
32
+ export let loading = false;
33
+ export let small = false;
34
+ export let kind;
35
+ export let selectedKind = kind;
36
+ let lang = undefined;
37
+ let selectedCompletion = undefined;
38
+ let filteredWorkspaceItems = [];
39
+ let hubCompletions = [];
40
+ const { flowStore, flowStateStore, insertButtonOpen } = getContext('FlowEditorContext');
41
+ const { modulesStore: copilotModulesStore, genFlow } = getContext('FlowCopilotContext');
42
+ let selected = undefined;
43
+ let integrations = [];
44
+ let customUi = getContext('customUi');
45
+ $: langs = processLangs(undefined, $defaultScripts?.order ?? Object.keys(defaultScriptLanguages))
46
+ .map((l) => [defaultScriptLanguages[l], l])
47
+ .filter((x) => $defaultScripts?.hidden == undefined || !$defaultScripts.hidden.includes(x[1]));
48
+ function displayLang(lang, kind) {
49
+ if (kind == 'trigger') {
50
+ return ['python3', 'bun', 'deno', 'go'].includes(lang);
51
+ }
52
+ else if (kind == 'script') {
53
+ return true;
54
+ }
55
+ else if (kind == 'approval') {
56
+ return ['python3', 'bun', 'deno'].includes(lang);
57
+ }
58
+ else if (kind == 'flow') {
59
+ return false;
60
+ }
61
+ else if (kind == 'preprocessor') {
62
+ return ['python3', 'bun', 'deno'].includes(lang);
63
+ }
64
+ else if (kind == 'failure') {
65
+ return ['python3', 'bun', 'deno', 'go'].includes(lang);
66
+ }
67
+ }
68
+ async function onGenerate() {
69
+ if (!selectedCompletion && !$copilotInfo.exists_openai_resource_path) {
70
+ sendUserToast('Windmill AI is not enabled, you can activate it in the workspace settings', true);
71
+ return;
72
+ }
73
+ $copilotModulesStore = [
74
+ {
75
+ id: nextId($flowStateStore, $flowStore),
76
+ type: selectedKind == 'trigger' ? 'trigger' : 'script',
77
+ description: funcDesc,
78
+ code: '',
79
+ source: selectedCompletion ? 'hub' : 'custom',
80
+ hubCompletions,
81
+ selectedCompletion,
82
+ editor: undefined,
83
+ lang
84
+ }
85
+ ];
86
+ genFlow?.(index, modules, true);
87
+ dispatch('close');
88
+ }
89
+ let openScriptSettings = false;
90
+ let selectedByKeyboard = 0;
91
+ $: onSelectedKindChange(selectedKind);
92
+ function onSelectedKindChange(_selectedKind) {
93
+ selectedByKeyboard = 0;
94
+ }
95
+ let inlineScripts = [];
96
+ const enterpriseLangs = ['bigquery', 'snowflake', 'mssql'];
97
+ function computeInlineScriptChoices(funcDesc, selected, preFilter, selectedKind) {
98
+ if (['script', 'trigger', 'failure', 'approval', 'preprocessor'].includes(selectedKind)) {
99
+ if (!selected && preFilter == 'all') {
100
+ inlineScripts = langs.filter((lang) => {
101
+ return ((customUi?.languages == undefined || customUi?.languages?.includes(lang?.[1])) &&
102
+ (funcDesc?.length == 0 ||
103
+ lang?.[0]?.toLowerCase()?.includes(funcDesc?.toLowerCase())) &&
104
+ displayLang(lang?.[1], selectedKind));
105
+ });
106
+ return;
107
+ }
108
+ }
109
+ inlineScripts = [];
110
+ }
111
+ const allToplevelNodes = [
112
+ ['For Loop', 'forloop'],
113
+ ['While Loop', 'whileloop'],
114
+ ['Branch to one', 'branchone'],
115
+ ['Branch to all', 'branchall']
116
+ ];
117
+ let topLevelNodes = [];
118
+ function computeToplevelNodeChoices(funcDesc, preFilter) {
119
+ if (funcDesc.length > 0 && preFilter == 'all' && kind == 'script') {
120
+ topLevelNodes = allToplevelNodes.filter((node) => node[0].toLowerCase().startsWith(funcDesc.toLowerCase()));
121
+ }
122
+ else {
123
+ topLevelNodes = [];
124
+ }
125
+ }
126
+ $: computeToplevelNodeChoices(funcDesc, preFilter);
127
+ $: computeInlineScriptChoices(funcDesc, selected, preFilter, selectedKind);
128
+ $: onPrefilterChange(preFilter);
129
+ function onPrefilterChange(preFilter) {
130
+ if (preFilter == 'workspace') {
131
+ hubCompletions = [];
132
+ }
133
+ else if (preFilter == 'hub') {
134
+ filteredWorkspaceItems = [];
135
+ }
136
+ selectedByKeyboard = 0;
137
+ }
138
+ $: aiLength =
139
+ funcDesc?.length > 0 && !disableAi && selectedKind != 'flow' && preFilter == 'all' ? 2 : 0;
140
+ let scrollable;
141
+ function onKeyDown(e) {
142
+ let length = topLevelNodes?.length +
143
+ inlineScripts.length +
144
+ aiLength +
145
+ filteredWorkspaceItems.length +
146
+ hubCompletions.length;
147
+ if (e.key === 'ArrowDown') {
148
+ selectedByKeyboard = (selectedByKeyboard + 1) % length;
149
+ scrollable?.scrollIntoView(selectedByKeyboard * 32);
150
+ e.preventDefault();
151
+ }
152
+ else if (e.key === 'ArrowUp') {
153
+ selectedByKeyboard = (selectedByKeyboard - 1 + length) % length;
154
+ scrollable?.scrollIntoView(selectedByKeyboard * 32);
155
+ e.preventDefault();
156
+ }
157
+ }
158
+ onMount(() => {
159
+ $insertButtonOpen = true;
160
+ });
161
+ onDestroy(() => {
162
+ $insertButtonOpen = false;
163
+ });
164
+ </script>
165
+
166
+ <svelte:window on:keydown={onKeyDown} />
167
+ <div class="flex flex-row grow min-w-0 divide-x relative {!small ? 'shadow-inset' : ''}">
168
+ {#if selectedKind != 'preprocessor'}
169
+ <Scrollable shiftedShadow scrollableClass="w-32 grow-0 shrink-0 ">
170
+ {#if ['script', 'trigger', 'approval', 'preprocessor', 'failure'].includes(selectedKind)}
171
+ {#if (preFilter === 'all' && owners.length > 0) || preFilter === 'workspace'}
172
+ {#if preFilter !== 'workspace'}
173
+ <div class="pb-0 text-2xs font-light text-secondary ml-2">Workspace Folders</div>
174
+ {/if}
175
+
176
+ {#if owners.length > 0}
177
+ {#each owners as owner (owner)}
178
+ <div
179
+ in:fade={{ duration: 50 }}
180
+ animate:flip={{ duration: 100 }}
181
+ class="w-full px-0.5"
182
+ >
183
+ <button
184
+ class={twMerge(
185
+ 'w-full text-left text-2xs text-primary font-normal py-2 px-3 hover:bg-surface-hover transition-all whitespace-nowrap flex flex-row gap-2 items-center rounded-md',
186
+ owner === selected?.name ? 'bg-surface-hover' : ''
187
+ )}
188
+ on:click={() => {
189
+ selected = selected?.name == owner ? undefined : { kind: 'owner', name: owner }
190
+ }}
191
+ >
192
+ {#if owner.startsWith('f/')}
193
+ <Folder class="mr-0.5" size={14} />
194
+ {:else}
195
+ <User class="mr-0.5" size={14} />
196
+ {/if}
197
+ {owner.slice(2)}
198
+ </button>
199
+ </div>
200
+ {/each}
201
+ <div class="pb-1.5" />
202
+ {:else}
203
+ <div class="text-2xs text-tertiary font-light text-center py-3 px-3 items-center">
204
+ No items found.
205
+ </div>
206
+ {/if}
207
+ {/if}
208
+
209
+ {#if preFilter === 'hub' || preFilter === 'all'}
210
+ {#if preFilter == 'all'}
211
+ <div class="pb-0 text-2xs font-light text-secondary ml-2 pt-0.5">Integrations</div>
212
+ {/if}
213
+ <ListFiltersQuick
214
+ on:selected={() => {
215
+ filteredWorkspaceItems = []
216
+ selectedByKeyboard = 0
217
+ }}
218
+ filters={integrations}
219
+ bind:selectedFilter={selected}
220
+ resourceType
221
+ />
222
+ {/if}
223
+ {:else if selectedKind === 'flow'}
224
+ {#if owners.length > 0}
225
+ {#each owners as owner (owner)}
226
+ <div in:fade={{ duration: 50 }} animate:flip={{ duration: 100 }}>
227
+ <button
228
+ class={twMerge(
229
+ 'w-full text-left text-2xs text-primary font-normal py-2 px-3 hover:bg-surface-hover transition-all whitespace-nowrap flex flex-row gap-2 items-center rounded-md',
230
+ owner === selected?.name ? 'bg-surface-hover' : ''
231
+ )}
232
+ on:click={() => {
233
+ selected = selected?.name == owner ? undefined : { kind: 'owner', name: owner }
234
+ }}
235
+ >
236
+ {#if owner.startsWith('f/')}
237
+ <Folder class="mr-0.5" size={14} />
238
+ {:else}
239
+ <User class="mr-0.5" size={14} />
240
+ {/if}
241
+ {owner.slice(2)}
242
+ </button>
243
+ </div>
244
+ {/each}
245
+ {/if}
246
+ {/if}
247
+ </Scrollable>
248
+ {/if}
249
+ <Scrollable bind:this={scrollable} scrollableClass="grow min-w-0">
250
+ {#if kind == 'script'}
251
+ {#each topLevelNodes as [label, kind], i (label)}
252
+ <FlowToplevelNode
253
+ on:click={() => {
254
+ dispatch('new', { kind })
255
+ }}
256
+ {label}
257
+ selected={selectedByKeyboard === i}
258
+ />
259
+ {/each}
260
+ {/if}
261
+
262
+ {#if inlineScripts?.length > 0}
263
+ <div class="pb-0 flex flex-row items-center gap-2">
264
+ <div class=" text-2xs font-light text-secondary ml-2"
265
+ >New {selectedKind != 'script' ? selectedKind + ' ' : ''}script</div
266
+ >
267
+ {#if $userStore?.is_admin || $userStore?.is_super_admin}
268
+ {#if !openScriptSettings}
269
+ <Button
270
+ on:click={() => (openScriptSettings = true)}
271
+ startIcon={{ icon: SettingsIcon }}
272
+ color="light"
273
+ size="xs2"
274
+ btnClasses="!text-tertiary"
275
+ variant="contained"
276
+ title="Edit global default scripts"
277
+ />
278
+ {:else}
279
+ <Button
280
+ on:click={() => (openScriptSettings = false)}
281
+ startIcon={{ icon: SettingsIcon }}
282
+ color="dark"
283
+ size="xs2"
284
+ variant="contained"
285
+ >
286
+ Close
287
+ </Button>
288
+ {/if}
289
+ {/if}
290
+ </div>
291
+ {#if openScriptSettings}
292
+ <div class="p-2">
293
+ <DefaultScriptsInner small />
294
+ </div>
295
+ {/if}
296
+ {#each inlineScripts as [label, lang], i (lang)}
297
+ <FlowScriptPickerQuick
298
+ eeRestricted={!$enterpriseLicense && enterpriseLangs.includes(lang)}
299
+ selected={selectedByKeyboard === i + topLevelNodes.length}
300
+ {enterpriseLangs}
301
+ {label}
302
+ lang={lang == 'docker' ? 'bash' : lang}
303
+ on:click={() => {
304
+ if (lang == 'docker') {
305
+ if (isCloudHosted()) {
306
+ sendUserToast(
307
+ 'You cannot use Docker scripts on the multi-tenant platform. Use a dedicated instance or self-host windmill instead.',
308
+ true,
309
+ [
310
+ {
311
+ label: 'Learn more',
312
+ callback: () => {
313
+ window.open('https://www.windmill.dev/docs/advanced/docker', '_blank')
314
+ }
315
+ }
316
+ ]
317
+ )
318
+ return
319
+ }
320
+ }
321
+
322
+ dispatch('new', {
323
+ kind: 'script',
324
+ inlineScript: {
325
+ language: lang == 'docker' ? 'bash' : lang,
326
+ kind: selectedKind,
327
+ subkind:
328
+ lang == 'docker'
329
+ ? 'docker'
330
+ : selectedKind == 'preprocessor'
331
+ ? 'preprocessor'
332
+ : 'flow',
333
+ summary
334
+ }
335
+ })
336
+ }}
337
+ />
338
+ {/each}
339
+ {/if}
340
+
341
+ {#if !disableAi && funcDesc?.length > 0 && kind != 'failure' && kind != 'preprocessor' && (selectedKind == 'script' || selectedKind == 'trigger') && preFilter == 'all'}
342
+ <ul class="transition-all">
343
+ <li
344
+ ><GenAiQuick
345
+ {funcDesc}
346
+ lang="TypeScript"
347
+ selected={selectedByKeyboard === inlineScripts?.length + topLevelNodes.length}
348
+ on:click={() => {
349
+ lang = 'bun'
350
+ onGenerate()
351
+ }}
352
+ />
353
+ </li>
354
+ <li>
355
+ <GenAiQuick
356
+ {funcDesc}
357
+ lang="Python"
358
+ selected={selectedByKeyboard === inlineScripts?.length + topLevelNodes.length + 1}
359
+ on:click={() => {
360
+ lang = 'python3'
361
+ onGenerate()
362
+ }}
363
+ />
364
+ </li>
365
+ </ul>
366
+ {/if}
367
+
368
+ {#if (!selected || selected?.kind === 'owner') && (preFilter === 'workspace' || preFilter === 'all')}
369
+ {#if !selected && (preFilter !== 'workspace' || funcDesc?.length > 0)}
370
+ <div class="pt-2 pb-0 text-2xs font-light text-secondary ml-2">Workspace</div>
371
+ {/if}
372
+ <WorkspaceScriptPickerQuick
373
+ bind:owners
374
+ bind:ownerFilter={selected}
375
+ bind:filteredWithOwner={filteredWorkspaceItems}
376
+ {filter}
377
+ kind={selectedKind}
378
+ selected={selectedByKeyboard - inlineScripts?.length - aiLength - topLevelNodes.length}
379
+ on:pickScript
380
+ on:pickFlow
381
+ />
382
+ {/if}
383
+
384
+ {#if selectedKind != 'preprocessor' && selectedKind != 'flow'}
385
+ {#if (!selected || selected?.kind === 'integrations') && (preFilter === 'hub' || preFilter === 'all')}
386
+ {#if !selected && preFilter !== 'hub'}
387
+ <div class=" pb-0 text-2xs font-light text-secondary ml-2">Hub</div>
388
+ {/if}
389
+
390
+ <PickHubScriptQuick
391
+ bind:items={hubCompletions}
392
+ bind:filter
393
+ bind:apps={integrations}
394
+ appFilter={selected?.name}
395
+ kind={selectedKind}
396
+ selected={selectedByKeyboard -
397
+ inlineScripts?.length -
398
+ aiLength -
399
+ filteredWorkspaceItems?.length -
400
+ topLevelNodes.length}
401
+ on:pickScript
402
+ bind:loading
403
+ />
404
+ {/if}
405
+ {/if}
406
+ </Scrollable>
407
+ </div>
408
+
409
+ <style>
410
+ .shadow-inset::before {
411
+ box-shadow: inset 25px 0px 12px -30px rgba(94, 129, 172, 0.5);
412
+ position: absolute;
413
+ top: 0;
414
+ left: 0;
415
+ right: 0;
416
+ bottom: 0;
417
+ content: '';
418
+ pointer-events: none;
419
+ }</style>
@@ -0,0 +1,33 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type FlowModule } from '../../../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ summary?: string | undefined;
6
+ filter?: string | undefined;
7
+ disableAi?: boolean | undefined;
8
+ preFilter?: "workspace" | "all" | "hub" | undefined;
9
+ funcDesc: string;
10
+ index: number;
11
+ modules: FlowModule[];
12
+ owners?: string[] | undefined;
13
+ loading?: boolean | undefined;
14
+ small?: boolean | undefined;
15
+ kind: 'trigger' | 'script' | 'preprocessor' | 'failure' | 'approval';
16
+ selectedKind?: "script" | "failure" | "trigger" | "approval" | "flow" | "preprocessor" | undefined;
17
+ };
18
+ events: {
19
+ pickScript: CustomEvent<any>;
20
+ pickFlow: CustomEvent<any>;
21
+ new: CustomEvent<any>;
22
+ close: CustomEvent<any>;
23
+ } & {
24
+ [evt: string]: CustomEvent<any>;
25
+ };
26
+ slots: {};
27
+ };
28
+ export type FlowInputsQuickProps = typeof __propDef.props;
29
+ export type FlowInputsQuickEvents = typeof __propDef.events;
30
+ export type FlowInputsQuickSlots = typeof __propDef.slots;
31
+ export default class FlowInputsQuick extends SvelteComponent<FlowInputsQuickProps, FlowInputsQuickEvents, FlowInputsQuickSlots> {
32
+ }
33
+ export {};
@@ -17,6 +17,7 @@ import { Play } from 'lucide-svelte';
17
17
  import FlowLoopIterationPreview from '../../FlowLoopIterationPreview.svelte';
18
18
  import FlowModuleDeleteAfterUse from './FlowModuleDeleteAfterUse.svelte';
19
19
  import IteratorGen from '../../copilot/IteratorGen.svelte';
20
+ import FlowModuleSkip from './FlowModuleSkip.svelte';
20
21
  const { previewArgs, flowStateStore, flowStore } = getContext('FlowEditorContext');
21
22
  export let mod;
22
23
  export let parentModule;
@@ -190,6 +191,7 @@ $: previewIterationArgs = $flowStateStore[mod.id]?.previewArgs ?? {};
190
191
  <Tabs bind:selected>
191
192
  <!-- <Tab value="retries">Retries</Tab> -->
192
193
  <Tab value="early-stop">Early Stop/Break</Tab>
194
+ <Tab value="skip">Skip</Tab>
193
195
  <Tab value="suspend">Suspend/Approval/Prompt</Tab>
194
196
  <Tab value="sleep">Sleep</Tab>
195
197
  <Tab value="mock">Mock</Tab>
@@ -208,7 +210,11 @@ $: previewIterationArgs = $flowStateStore[mod.id]?.previewArgs ?? {};
208
210
  <FlowModuleEarlyStop bind:flowModule={mod} />
209
211
  </div>
210
212
  </TabContent>
211
-
213
+ <TabContent value="skip" class="flex flex-col flex-1 h-full">
214
+ <div class="p-4 overflow-y-auto">
215
+ <FlowModuleSkip bind:flowModule={mod} {parentModule} {previousModule} />
216
+ </div>
217
+ </TabContent>
212
218
  <TabContent value="suspend" class="flex flex-col flex-1 h-full">
213
219
  <div class="p-4 overflow-y-auto">
214
220
  <FlowModuleSuspend previousModuleId={previousModule?.id} bind:flowModule={mod} />
@@ -41,9 +41,11 @@ import { loadSchemaFromModule } from '../flowInfers';
41
41
  import { computeFlowStepWarning, initFlowStepWarnings } from '../utils';
42
42
  import { debounce } from '../../../utils';
43
43
  import { dfs } from '../dfs';
44
+ import FlowModuleSkip from './FlowModuleSkip.svelte';
44
45
  const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, saveDraft, flowInputsStore, customUi } = getContext('FlowEditorContext');
45
46
  export let flowModule;
46
47
  export let failureModule = false;
48
+ export let preprocessorModule = false;
47
49
  export let parentModule = undefined;
48
50
  export let previousModule;
49
51
  export let scriptKind = 'script';
@@ -60,7 +62,7 @@ let websocketAlive = {
60
62
  ruff: false,
61
63
  shellcheck: false
62
64
  };
63
- let selected = 'inputs';
65
+ let selected = preprocessorModule ? 'test' : 'inputs';
64
66
  let advancedSelected = 'retries';
65
67
  let advancedRuntimeSelected = 'concurrency';
66
68
  let s3Kind = 's3_client';
@@ -310,9 +312,13 @@ function setFlowInput(argName) {
310
312
  </Pane>
311
313
  <Pane bind:size={editorSettingsPanelSize} minSize={20}>
312
314
  <Tabs bind:selected>
313
- <Tab value="inputs">Step Input</Tab>
315
+ {#if !preprocessorModule}
316
+ <Tab value="inputs">Step Input</Tab>
317
+ {/if}
314
318
  <Tab value="test">Test this step</Tab>
315
- <Tab value="advanced">Advanced</Tab>
319
+ {#if !preprocessorModule}
320
+ <Tab value="advanced">Advanced</Tab>
321
+ {/if}
316
322
  </Tabs>
317
323
  <div
318
324
  class={advancedSelected === 'runtime' ? 'h-[calc(100%-68px)]' : 'h-[calc(100%-34px)]'}
@@ -363,6 +369,7 @@ function setFlowInput(argName) {
363
369
  >
364
370
  Early Stop
365
371
  </Tab>
372
+ <Tab value="skip" active={Boolean(flowModule.skip_if)}>Skip</Tab>
366
373
  <Tab value="suspend" active={Boolean(flowModule.suspend)}>Suspend</Tab>
367
374
  <Tab value="sleep" active={Boolean(flowModule.sleep)}>Sleep</Tab>
368
375
  <Tab value="mock" active={Boolean(flowModule.mock?.enabled)}>Mock</Tab>
@@ -526,6 +533,8 @@ function setFlowInput(argName) {
526
533
  </div>
527
534
  {:else if advancedSelected === 'early-stop'}
528
535
  <FlowModuleEarlyStop bind:flowModule />
536
+ {:else if advancedSelected === 'skip'}
537
+ <FlowModuleSkip bind:flowModule {parentModule} {previousModule} />
529
538
  {:else if advancedSelected === 'suspend'}
530
539
  <div>
531
540
  <FlowModuleSuspend previousModuleId={previousModule?.id} bind:flowModule />
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  flowModule: FlowModule;
6
6
  failureModule?: boolean | undefined;
7
+ preprocessorModule?: boolean | undefined;
7
8
  parentModule?: FlowModule | undefined;
8
9
  previousModule: FlowModule | undefined;
9
10
  scriptKind?: "script" | "trigger" | "approval" | undefined;
@@ -53,7 +53,7 @@ export let showDiff = false;
53
53
 
54
54
  <div class="flex flex-col flex-1 h-full overflow-auto p-2">
55
55
  {#if showDate && date}
56
- <span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent withDate {date} /></span>
56
+ <span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent {date} /></span>
57
57
  {/if}
58
58
  {#if notFound}
59
59
  <div class="text-red-400">script not found at {path} in workspace {$workspaceStore}</div>
@@ -0,0 +1,69 @@
1
+ <script>import SimpleEditor from '../../SimpleEditor.svelte';
2
+ import Toggle from '../../Toggle.svelte';
3
+ import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
4
+ import Tooltip from '../../Tooltip.svelte';
5
+ import { getContext } from 'svelte';
6
+ import Section from '../../Section.svelte';
7
+ import { getStepPropPicker } from '../previousResults';
8
+ const { flowStateStore, flowStore, previewArgs } = getContext('FlowEditorContext');
9
+ export let flowModule;
10
+ export let parentModule;
11
+ export let previousModule;
12
+ let editor = undefined;
13
+ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousModule, flowModule.id, $flowStore, $previewArgs, false);
14
+ $: isSkipEnabled = Boolean(flowModule.skip_if);
15
+ </script>
16
+
17
+ <div class="flex flex-col items-start space-y-2 {$$props.class}">
18
+ <Section label="Skip" class="w-full">
19
+ <svelte:fragment slot="header">
20
+ <Tooltip>
21
+ If the condition is met, the step will behave as an identity step, passing the previous
22
+ step's result through unchanged.
23
+ </Tooltip>
24
+ </svelte:fragment>
25
+
26
+ <Toggle
27
+ checked={isSkipEnabled}
28
+ on:change={() => {
29
+ if (isSkipEnabled && flowModule.skip_if) {
30
+ flowModule.skip_if = undefined
31
+ } else {
32
+ flowModule.skip_if = {
33
+ expr: 'false'
34
+ }
35
+ }
36
+ }}
37
+ options={{
38
+ right: 'Skip step if condition is met'
39
+ }}
40
+ />
41
+
42
+ <div class="w-full border p-2 flex flex-col {flowModule.skip_if ? '' : 'bg-surface-secondary'}">
43
+ {#if flowModule.skip_if}
44
+ <span class="mt-2 text-xs font-bold">Skip condition expression</span>
45
+ <div class="border w-full">
46
+ <PropPickerWrapper
47
+ notSelectable
48
+ pickableProperties={stepPropPicker.pickableProperties}
49
+ on:select={({ detail }) => {
50
+ editor?.insertAtCursor(detail)
51
+ editor?.focus()
52
+ }}
53
+ >
54
+ <SimpleEditor
55
+ bind:this={editor}
56
+ lang="javascript"
57
+ bind:code={flowModule.skip_if.expr}
58
+ class="few-lines-editor"
59
+ extraLib={stepPropPicker.extraLib}
60
+ />
61
+ </PropPickerWrapper>
62
+ </div>
63
+ {:else}
64
+ <span class="mt-2 text-xs font-bold">Skip condition expression</span>
65
+ <textarea disabled rows="3" class="min-h-[80px]" />
66
+ {/if}
67
+ </div>
68
+ </Section>
69
+ </div>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { FlowModule } from '../../../gen';
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ flowModule: FlowModule;
7
+ parentModule: FlowModule | undefined;
8
+ previousModule: FlowModule | undefined;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type FlowModuleSkipProps = typeof __propDef.props;
16
+ export type FlowModuleSkipEvents = typeof __propDef.events;
17
+ export type FlowModuleSkipSlots = typeof __propDef.slots;
18
+ export default class FlowModuleSkip extends SvelteComponent<FlowModuleSkipProps, FlowModuleSkipEvents, FlowModuleSkipSlots> {
19
+ }
20
+ export {};