windmill-components 1.434.1 → 1.444.1

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 (285) hide show
  1. package/package/components/ArgInput.svelte +12 -16
  2. package/package/components/ArgInput.svelte.d.ts +1 -0
  3. package/package/components/AssignableTags.svelte +3 -1
  4. package/package/components/AssignableTags.svelte.d.ts +1 -0
  5. package/package/components/AuthSettings.svelte +248 -0
  6. package/package/components/AuthSettings.svelte.d.ts +19 -0
  7. package/package/components/AutoscalingConfigEditor.svelte +2 -2
  8. package/package/components/CronInput.svelte +2 -2
  9. package/package/components/DeployWorkspace.svelte +1 -1
  10. package/package/components/Description.svelte +9 -0
  11. package/package/components/Description.svelte.d.ts +18 -0
  12. package/package/components/Dev.svelte +18 -3
  13. package/package/components/DisplayResult.svelte +7 -4
  14. package/package/components/DisplayResult.svelte.d.ts +1 -0
  15. package/package/components/DropdownV2.svelte +2 -1
  16. package/package/components/DropdownV2.svelte.d.ts +1 -0
  17. package/package/components/EditableSchemaForm.svelte +2 -2
  18. package/package/components/Editor.svelte +9 -6
  19. package/package/components/Editor.svelte.d.ts +4 -2
  20. package/package/components/EditorBar.svelte +51 -6
  21. package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
  22. package/package/components/ExecutionDuration.svelte +2 -1
  23. package/package/components/FieldHeader.svelte +9 -1
  24. package/package/components/FieldHeader.svelte.d.ts +1 -0
  25. package/package/components/FlowBuilder.svelte +16 -3
  26. package/package/components/FlowGraphViewer.svelte +2 -0
  27. package/package/components/FlowPreviewContent.svelte +6 -15
  28. package/package/components/FlowStatusViewerInner.svelte +14 -10
  29. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InputTransformSchemaForm.svelte +1 -1
  32. package/package/components/InstanceSetting.svelte +774 -0
  33. package/package/components/InstanceSetting.svelte.d.ts +27 -0
  34. package/package/components/InstanceSettings.svelte +68 -1005
  35. package/package/components/InstanceSettings.svelte.d.ts +0 -4
  36. package/package/components/Label.svelte +16 -6
  37. package/package/components/Label.svelte.d.ts +3 -0
  38. package/package/components/Login.svelte +17 -9
  39. package/package/components/OAuthSetting.svelte +4 -3
  40. package/package/components/OauthExtraParams.svelte +1 -1
  41. package/package/components/OauthScopes.svelte +2 -2
  42. package/package/components/ObjectStoreConfigSettings.svelte +141 -128
  43. package/package/components/QueueMetricsDrawer.svelte +5 -5
  44. package/package/components/ResourceEditor.svelte +4 -0
  45. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  46. package/package/components/ResourceEditorDrawer.svelte +15 -3
  47. package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
  48. package/package/components/ResourcePicker.svelte +16 -5
  49. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  50. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  51. package/package/components/RunPageSchedules.svelte +15 -10
  52. package/package/components/SavedInputs.svelte +1 -1
  53. package/package/components/ScheduleEditorInner.svelte +58 -27
  54. package/package/components/SchemaForm.svelte +7 -5
  55. package/package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/package/components/ScriptBuilder.svelte +58 -5
  57. package/package/components/ScriptEditor.svelte +78 -40
  58. package/package/components/ScriptEditor.svelte.d.ts +17 -2
  59. package/package/components/ScriptPicker.svelte +41 -34
  60. package/package/components/ScriptPicker.svelte.d.ts +1 -0
  61. package/package/components/ScriptVersionHistory.svelte +1 -1
  62. package/package/components/Section.svelte +38 -35
  63. package/package/components/Section.svelte.d.ts +2 -0
  64. package/package/components/ServiceLogsInner.svelte +1 -1
  65. package/package/components/SimpleEditor.svelte +2 -0
  66. package/package/components/Subsection.svelte +52 -0
  67. package/package/components/Subsection.svelte.d.ts +27 -0
  68. package/package/components/SuperadminSettings.svelte +23 -13
  69. package/package/components/TemplateEditor.svelte +4 -3
  70. package/package/components/TestConnection.svelte +5 -0
  71. package/package/components/TestJobLoader.svelte +2 -1
  72. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  73. package/package/components/Toggle.svelte +2 -4
  74. package/package/components/UserSettings.svelte +1 -1
  75. package/package/components/WorkerGroup.svelte +4 -4
  76. package/package/components/WorkerTagPicker.svelte +4 -2
  77. package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
  78. package/package/components/WorkerTagSelect.svelte +2 -0
  79. package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
  80. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  81. package/package/components/apps/components/display/dbtable/utils.js +26 -1
  82. package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
  83. package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
  84. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
  85. package/package/components/apps/editor/AppEditor.svelte +5 -34
  86. package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  87. package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
  88. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
  89. package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
  90. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  92. package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
  93. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
  94. package/package/components/apps/editor/appUtils.d.ts +1 -0
  95. package/package/components/apps/editor/appUtils.js +17 -0
  96. package/package/components/apps/editor/component/components.d.ts +82 -81
  97. package/package/components/apps/editor/component/components.js +4 -3
  98. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
  99. package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
  100. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
  103. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  104. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
  105. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  106. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
  107. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
  108. package/package/components/apps/inputType.d.ts +2 -2
  109. package/package/components/apps/types.d.ts +2 -0
  110. package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
  111. package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
  112. package/package/components/common/alert/Notification.svelte +15 -0
  113. package/package/components/common/alert/Notification.svelte.d.ts +17 -0
  114. package/package/components/common/button/AnimatedButton.svelte +1 -1
  115. package/package/components/common/button/RefreshButton.svelte +30 -0
  116. package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
  117. package/package/components/common/fileDownload/FileDownload.svelte +4 -3
  118. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
  119. package/package/components/common/fileUpload/FileUpload.svelte +3 -3
  120. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  121. package/package/components/common/layout/List.svelte +35 -0
  122. package/package/components/common/layout/List.svelte.d.ts +21 -0
  123. package/package/components/common/layout/ListElement.svelte +3 -0
  124. package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
  125. package/package/components/common/menu/MenuV2.svelte +3 -2
  126. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  127. package/package/components/common/modal/Modal.svelte +6 -4
  128. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  129. package/package/components/common/modal/Modal2.svelte +101 -0
  130. package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
  131. package/package/components/common/popup/Popup.svelte +5 -1
  132. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  133. package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
  134. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  135. package/package/components/details/ClipboardPanel.svelte +12 -2
  136. package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +24 -0
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
  139. package/package/components/details/DetailPageLayout.svelte +3 -1
  140. package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
  141. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
  142. package/package/components/details/EmailTriggerPanel.svelte +27 -74
  143. package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
  144. package/package/components/flows/FlowEditor.svelte +1 -1
  145. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  146. package/package/components/flows/FlowHistoryInner.svelte +1 -1
  147. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
  148. package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
  150. package/package/components/flows/content/FlowInput.svelte +2 -15
  151. package/package/components/flows/content/FlowInputs.svelte +1 -1
  152. package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
  153. package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowPathViewer.svelte +3 -1
  158. package/package/components/flows/content/FlowRetries.svelte +32 -5
  159. package/package/components/flows/content/FlowSettings.svelte +56 -48
  160. package/package/components/flows/flowStateUtils.d.ts +10 -1
  161. package/package/components/flows/flowStateUtils.js +23 -0
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
  163. package/package/components/flows/map/InsertModuleButton.svelte +3 -3
  164. package/package/components/flows/map/VirtualItem.svelte +29 -1
  165. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
  166. package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
  167. package/package/components/flows/previousResults.js +8 -2
  168. package/package/components/flows/types.d.ts +1 -0
  169. package/package/components/graph/FlowGraphV2.svelte +5 -1
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  173. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  174. package/package/components/icons/CSharpIcon.svelte +14 -0
  175. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  176. package/package/components/icons/GitIcon.svelte +5 -2
  177. package/package/components/icons/XeroIcon.svelte +24 -0
  178. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  179. package/package/components/icons/index.d.ts +3 -1
  180. package/package/components/icons/index.js +4 -2
  181. package/package/components/instanceSettings.d.ts +3 -1
  182. package/package/components/instanceSettings.js +77 -69
  183. package/package/components/meltComponents/Popover.svelte +82 -0
  184. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  185. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  186. package/package/components/runs/JobLoader.svelte +5 -2
  187. package/package/components/runs/JobPreview.svelte +5 -5
  188. package/package/components/runs/RunRow.svelte +3 -4
  189. package/package/components/runs/RunsFilter.svelte +4 -4
  190. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  191. package/package/components/schema/PropertyEditor.svelte +1 -1
  192. package/package/components/schema/SchemaFormDND.svelte +2 -0
  193. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  194. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  195. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  196. package/package/components/search/GlobalSearchModal.svelte +3 -3
  197. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  198. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  200. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  201. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  202. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  203. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  204. package/package/components/sidebar/SidebarContent.svelte +5 -5
  205. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  207. package/package/components/sidebar/changelogs.js +82 -17
  208. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  209. package/package/components/table/AutoDataTable.svelte +1 -1
  210. package/package/components/table/Cell.svelte +5 -3
  211. package/package/components/table/Cell.svelte.d.ts +1 -0
  212. package/package/components/table/DataTable.svelte +65 -58
  213. package/package/components/table/DataTable.svelte.d.ts +2 -0
  214. package/package/components/table/Head.svelte +1 -1
  215. package/package/components/table/Row.svelte +3 -1
  216. package/package/components/table/Row.svelte.d.ts +1 -0
  217. package/package/components/toast.js +3 -1
  218. package/package/components/triggers/CaptureButton.svelte +77 -0
  219. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  220. package/package/components/triggers/CaptureIcon.svelte +17 -0
  221. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  222. package/package/components/triggers/CaptureSection.svelte +76 -0
  223. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  224. package/package/components/triggers/CaptureTable.svelte +224 -0
  225. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  226. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  227. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  228. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  229. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  230. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  232. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  234. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  235. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  236. package/package/components/triggers/RouteEditor.svelte +2 -2
  237. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  238. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  239. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  240. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  241. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  242. package/package/components/triggers/RoutesPanel.svelte +69 -54
  243. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  244. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  245. package/package/components/triggers/TriggersEditor.svelte +119 -89
  246. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  247. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  249. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  250. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  251. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  253. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  254. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  255. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  257. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  261. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  263. package/package/components/triggers.d.ts +6 -2
  264. package/package/components/triggers.js +16 -0
  265. package/package/components/wizards/AgGridWizard.svelte +4 -4
  266. package/package/editorUtils.d.ts +2 -0
  267. package/package/editorUtils.js +6 -3
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +17 -8
  270. package/package/gen/schemas.gen.js +17 -8
  271. package/package/gen/services.gen.d.ts +55 -5
  272. package/package/gen/services.gen.js +108 -5
  273. package/package/gen/types.gen.d.ts +180 -13
  274. package/package/hubPaths.json +6 -3
  275. package/package/infer.js +9 -0
  276. package/package/script_helpers.d.ts +5 -0
  277. package/package/script_helpers.js +68 -8
  278. package/package/scripts.d.ts +1 -1
  279. package/package/scripts.js +5 -1
  280. package/package/stores.d.ts +1 -0
  281. package/package/utils.d.ts +3 -1
  282. package/package/utils.js +20 -4
  283. package/package.json +11 -8
  284. package/package/components/flows/content/CapturePayload.svelte +0 -114
  285. package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
@@ -152,10 +152,10 @@ export let awareness = undefined;
152
152
  export let folding = false;
153
153
  export let args = undefined;
154
154
  export let useWebsockets = true;
155
- export let listenEmptyChanges = false;
156
155
  export let small = false;
157
156
  export let scriptLang;
158
157
  export let disabled = false;
158
+ export let lineNumbersMinChars = 3;
159
159
  const rHash = randomHash();
160
160
  $: filePath = computePath(path);
161
161
  function computePath(path) {
@@ -329,6 +329,9 @@ export async function format() {
329
329
  }
330
330
  }
331
331
  }
332
+ export function getScriptLang() {
333
+ return scriptLang;
334
+ }
332
335
  let command = undefined;
333
336
  let sqlTypeCompletor = undefined;
334
337
  $: initialized && lang === 'sql' && scriptLang
@@ -903,6 +906,7 @@ function onVimMode() {
903
906
  vimDisposable = initVim(editor, statusDiv, saveDraft);
904
907
  }
905
908
  }
909
+ let timeoutModel = undefined;
906
910
  async function loadMonaco() {
907
911
  try {
908
912
  console.log("Loading Monaco's language client");
@@ -931,21 +935,19 @@ async function loadMonaco() {
931
935
  ...editorConfig(code, lang, automaticLayout, fixedOverflowWidgets),
932
936
  model,
933
937
  fontSize: !small ? 14 : 12,
938
+ lineNumbersMinChars,
934
939
  // overflowWidgetsDomNode: widgets,
935
940
  tabSize: lang == 'python' ? 4 : 2,
936
941
  folding
937
942
  });
938
943
  // updateEditorKeybindingsMode(editor, 'vim', undefined)
939
- let timeoutModel = undefined;
940
944
  let ataModel = undefined;
941
945
  editor?.onDidChangeModelContent((event) => {
942
946
  timeoutModel && clearTimeout(timeoutModel);
943
947
  timeoutModel = setTimeout(() => {
944
948
  let ncode = getCode();
945
- if (ncode != '' || listenEmptyChanges) {
946
- code = ncode;
947
- dispatch('change', code);
948
- }
949
+ code = ncode;
950
+ dispatch('change', code);
949
951
  }, 500);
950
952
  ataModel && clearTimeout(ataModel);
951
953
  ataModel = setTimeout(() => {
@@ -1092,6 +1094,7 @@ onDestroy(() => {
1092
1094
  sqlSchemaCompletor && sqlSchemaCompletor.dispose();
1093
1095
  copilotCompletor && copilotCompletor.dispose();
1094
1096
  sqlTypeCompletor && sqlTypeCompletor.dispose();
1097
+ timeoutModel && clearTimeout(timeoutModel);
1095
1098
  });
1096
1099
  async function genRoot(hostname) {
1097
1100
  let token = $lspTokenStore;
@@ -7,7 +7,7 @@ import { editor as meditor, type IDisposable } from 'monaco-editor';
7
7
  declare const __propDef: {
8
8
  props: {
9
9
  [x: string]: any;
10
- lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript' | 'rust' | 'yaml';
10
+ lang: 'typescript' | 'python' | 'go' | 'shell' | 'sql' | 'graphql' | 'powershell' | 'php' | 'css' | 'javascript' | 'rust' | 'yaml' | 'csharp';
11
11
  code?: string | undefined;
12
12
  cmdEnterAction?: (() => void) | undefined;
13
13
  formatAction?: (() => void) | undefined;
@@ -27,10 +27,10 @@ declare const __propDef: {
27
27
  folding?: boolean | undefined;
28
28
  args?: Record<string, any> | undefined;
29
29
  useWebsockets?: boolean | undefined;
30
- listenEmptyChanges?: boolean | undefined;
31
30
  small?: boolean | undefined;
32
31
  scriptLang: Preview['language'] | 'bunnative';
33
32
  disabled?: boolean | undefined;
33
+ lineNumbersMinChars?: number | undefined;
34
34
  getCode?: (() => string) | undefined;
35
35
  insertAtCursor?: ((code: string) => void) | undefined;
36
36
  arrowDown?: (() => void) | undefined;
@@ -44,6 +44,7 @@ declare const __propDef: {
44
44
  setCode?: ((ncode: string, noHistory?: boolean) => void) | undefined;
45
45
  append?: ((code: any) => void) | undefined;
46
46
  format?: (() => Promise<void>) | undefined;
47
+ getScriptLang?: (() => string | undefined) | undefined;
47
48
  reloadWebsocket?: (() => Promise<void>) | undefined;
48
49
  addAction?: ((id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void) | undefined;
49
50
  };
@@ -74,6 +75,7 @@ export default class Editor extends SvelteComponent<EditorProps, EditorEvents, E
74
75
  get setCode(): (ncode: string, noHistory?: boolean) => void;
75
76
  get append(): (code: any) => void;
76
77
  get format(): () => Promise<void>;
78
+ get getScriptLang(): () => string | undefined;
77
79
  get reloadWebsocket(): () => Promise<void>;
78
80
  get addAction(): (id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void;
79
81
  }
@@ -63,7 +63,8 @@ $: showContextVarPicker = [
63
63
  'bunnative',
64
64
  'nativets',
65
65
  'php',
66
- 'rust'
66
+ 'rust',
67
+ 'csharp'
67
68
  ].includes(lang ?? '');
68
69
  $: showVarPicker = [
69
70
  'python3',
@@ -75,7 +76,8 @@ $: showVarPicker = [
75
76
  'bunnative',
76
77
  'nativets',
77
78
  'php',
78
- 'rust'
79
+ 'rust',
80
+ 'csharp'
79
81
  ].includes(lang ?? '');
80
82
  $: showResourcePicker = [
81
83
  'python3',
@@ -87,7 +89,8 @@ $: showResourcePicker = [
87
89
  'bunnative',
88
90
  'nativets',
89
91
  'php',
90
- 'rust'
92
+ 'rust',
93
+ 'csharp'
91
94
  ].includes(lang ?? '');
92
95
  $: showResourceTypePicker =
93
96
  ['typescript', 'javascript'].includes(scriptLangToEditorLang(lang)) ||
@@ -253,6 +256,23 @@ function clearContent() {
253
256
  editor.setCode(resetCode);
254
257
  }
255
258
  }
259
+ function windmillPathToCamelCaseName(path) {
260
+ const parts = path.split('/');
261
+ const lastPart = parts[parts.length - 1];
262
+ const words = lastPart.split('_');
263
+ return words
264
+ .map((word, index) => {
265
+ if (index === 0) {
266
+ // Lowercase the first word
267
+ return word.toLowerCase();
268
+ }
269
+ else {
270
+ // Capitalize the first letter of subsequent words
271
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
272
+ }
273
+ })
274
+ .join('');
275
+ }
256
276
  let historyBrowserDrawerOpen = false;
257
277
  </script>
258
278
 
@@ -312,6 +332,10 @@ let historyBrowserDrawerOpen = false;
312
332
  editor.insertAtCursor(`$Env:${name}`)
313
333
  } else if (lang == 'php') {
314
334
  editor.insertAtCursor(`getenv('${name}');`)
335
+ } else if (lang == 'rust') {
336
+ editor.insertAtCursor(`std::env::var("${name}").unwrap();`)
337
+ } else if (lang == 'csharp') {
338
+ editor.insertAtCursor(`Environment.GetEnvironmentVariable("${name}");`)
315
339
  }
316
340
  sendUserToast(`${name} inserted at cursor`)
317
341
  }}
@@ -368,6 +392,15 @@ let historyBrowserDrawerOpen = false;
368
392
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . getenv('WM_TOKEN')));
369
393
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
370
394
  $var = json_decode(curl_exec($ch));`)
395
+ } else if (lang == 'csharp') {
396
+ editor.insertAtCursor(`var baseUrl = Environment.GetEnvironmentVariable("BASE_INTERNAL_URL");
397
+ var workspace = Environment.GetEnvironmentVariable("WM_WORKSPACE");
398
+ var uri = $"{baseUrl}/api/w/{workspace}/variables/get_value/${path}";
399
+ using var client = new HttpClient();
400
+ client.DefaultRequestHeaders.Add("Authorization", $"Bearer {Environment.GetEnvironmentVariable("WM_TOKEN")}");
401
+
402
+ string ${windmillPathToCamelCaseName(path)} = await client.GetStringAsync(uri);
403
+ `)
371
404
  }
372
405
  sendUserToast(`${name} inserted at cursor`)
373
406
  }}
@@ -388,7 +421,7 @@ $var = json_decode(curl_exec($ch));`)
388
421
  variableEditor.initNew()
389
422
  }}
390
423
  >
391
- New Variable
424
+ New variable
392
425
  </Button>
393
426
  </div>
394
427
  </ItemPicker>
@@ -438,6 +471,18 @@ $var = json_decode(curl_exec($ch));`)
438
471
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . getenv('WM_TOKEN')));
439
472
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
440
473
  $res = json_decode(curl_exec($ch));`)
474
+ } else if (lang == 'csharp') {
475
+ if (!editor.getCode().includes(`using System.Text.Json.Nodes;`)) {
476
+ editor.insertAtBeginning(`using System.Text.Json.Nodes;\n`)
477
+ }
478
+ editor.insertAtCursor(`var baseUrl = Environment.GetEnvironmentVariable("BASE_INTERNAL_URL");
479
+ var workspace = Environment.GetEnvironmentVariable("WM_WORKSPACE");
480
+ var uri = $"{baseUrl}/api/w/{workspace}/resources/get_value_interpolated/${path}";
481
+ using var client = new HttpClient();
482
+ client.DefaultRequestHeaders.Add("Authorization", $"Bearer {Environment.GetEnvironmentVariable("WM_TOKEN")}");
483
+
484
+ JsonNode ${windmillPathToCamelCaseName(path)} = JsonNode.Parse(await client.GetStringAsync(uri));
485
+ `)
441
486
  }
442
487
  sendUserToast(`${path} inserted at cursor`)
443
488
  }}
@@ -459,7 +504,7 @@ $res = json_decode(curl_exec($ch));`)
459
504
  size="sm"
460
505
  href="{base}/resources?connect_app=undefined"
461
506
  >
462
- Add Resource
507
+ Add resource
463
508
  </Button>
464
509
  </div>
465
510
  </ItemPicker>
@@ -498,7 +543,7 @@ $res = json_decode(curl_exec($ch));`)
498
543
  spacingSize="md"
499
544
  startIcon={{ icon: DollarSign }}
500
545
  {iconOnly}
501
- >+Context Var
546
+ >+Context var
502
547
  </Button>
503
548
  {/if}
504
549
  {#if showVarPicker && customUi?.variable != false}
@@ -168,8 +168,8 @@ $: handlerPath &&
168
168
 
169
169
  <div>
170
170
  <Tabs bind:selected={handlerSelected} class="mt-2 mb-4">
171
- <Tab value="slack">Slack</Tab>
172
- <Tab value="custom">
171
+ <Tab value="slack" disabled={!isEditable}>Slack</Tab>
172
+ <Tab value="custom" disabled={!isEditable}>
173
173
  Custom
174
174
  <slot name="custom-tab-tooltip" />
175
175
  </Tab>
@@ -185,7 +185,7 @@ $: handlerPath &&
185
185
  allowFlow={true}
186
186
  bind:scriptPath={handlerPath}
187
187
  bind:itemKind={customHandlerKind}
188
- allowRefresh
188
+ allowRefresh={isEditable}
189
189
  />
190
190
 
191
191
  {#if handlerPath === undefined}
@@ -194,6 +194,7 @@ $: handlerPath &&
194
194
  color="dark"
195
195
  size="xs"
196
196
  href={customScriptTemplate}
197
+ disabled={!isEditable}
197
198
  target="_blank">Create from template</Button
198
199
  >
199
200
  {/if}
@@ -1,4 +1,5 @@
1
1
  <script>import {} from '../gen';
2
+ import { isScriptPreview } from '../utils';
2
3
  import { onDestroy } from 'svelte';
3
4
  export let job = undefined;
4
5
  /** Execution duration of current active job (in ms) */
@@ -19,7 +20,7 @@ let interval;
19
20
  $: if (!busy &&
20
21
  job &&
21
22
  'running' in job &&
22
- (job.job_kind == 'script' || job?.job_kind == 'preview'))
23
+ (job.job_kind == 'script' || isScriptPreview(job?.job_kind)))
23
24
  start(job);
24
25
  function start(job) {
25
26
  busy = true;
@@ -12,10 +12,18 @@ export let displayType = true;
12
12
  export let labelClass = '';
13
13
  export let prettify = false;
14
14
  export let simpleTooltip = undefined;
15
+ export let lightHeader = false;
15
16
  </script>
16
17
 
17
18
  <div class="inline-flex flex-row items-baseline truncated">
18
- <span class={twMerge(disabled ? 'text-tertiary' : '', 'font-semibold', labelClass)}>
19
+ <span
20
+ class={twMerge(
21
+ disabled ? 'text-tertiary' : '',
22
+ 'font-semibold',
23
+ lightHeader ? 'text-secondary text-sm font-normal' : '',
24
+ labelClass
25
+ )}
26
+ >
19
27
  {#if prettify}
20
28
  {label.replace(/_/g, ' ').split(' ').map(capitalize).join(' ')}
21
29
  {:else}
@@ -11,6 +11,7 @@ declare const __propDef: {
11
11
  labelClass?: string | undefined;
12
12
  prettify?: boolean | undefined;
13
13
  simpleTooltip?: string | undefined;
14
+ lightHeader?: boolean | undefined;
14
15
  };
15
16
  events: {
16
17
  [evt: string]: CustomEvent<any>;
@@ -431,13 +431,16 @@ setContext('FlowEditorContext', {
431
431
  initialPath,
432
432
  flowInputsStore: writable({}),
433
433
  customUi,
434
- insertButtonOpen
434
+ insertButtonOpen,
435
+ executionCount: writable(0)
435
436
  });
436
437
  setContext('TriggerContext', {
437
438
  selectedTrigger: selectedTriggerStore,
438
439
  primarySchedule: primaryScheduleStore,
439
440
  triggersCount,
440
- simplifiedPoll
441
+ simplifiedPoll,
442
+ defaultValues: writable(undefined),
443
+ captureOn: writable(undefined)
441
444
  });
442
445
  async function loadTriggers() {
443
446
  $triggersCount = await FlowService.getTriggersCountOfFlow({
@@ -986,6 +989,7 @@ function onCustomUiChange(customUi) {
986
989
  }
987
990
  let deploymentMsg = '';
988
991
  let msgInput = undefined;
992
+ let flowPreviewButtons;
989
993
  </script>
990
994
 
991
995
  <svelte:window on:keydown={onKeyDown} />
@@ -1197,7 +1201,7 @@ let msgInput = undefined;
1197
1201
  {abortController}
1198
1202
  />
1199
1203
  {/if}
1200
- <FlowPreviewButtons />
1204
+ <FlowPreviewButtons bind:this={flowPreviewButtons} />
1201
1205
  <Button
1202
1206
  loading={loadingDraft}
1203
1207
  size="xs"
@@ -1262,6 +1266,15 @@ let msgInput = undefined;
1262
1266
  renderCount += 1
1263
1267
  }}
1264
1268
  {newFlow}
1269
+ on:applyArgs={(ev) => {
1270
+ if (ev.detail.kind === 'preprocessor') {
1271
+ $testStepStore['preprocessor'] = ev.detail.args ?? {}
1272
+ $selectedIdStore = 'preprocessor'
1273
+ } else {
1274
+ $previewArgsStore = ev.detail.args ?? {}
1275
+ flowPreviewButtons?.openPreview()
1276
+ }
1277
+ }}
1265
1278
  />
1266
1279
  {:else}
1267
1280
  <CenteredPage>Loading...</CenteredPage>
@@ -23,6 +23,8 @@ const dispatch = createEventDispatcher();
23
23
  >
24
24
  <FlowGraphV2
25
25
  {triggerNode}
26
+ earlyStop={flow.value.skip_expr !== undefined}
27
+ cache={flow.value.cache_ttl !== undefined}
26
28
  path={flow?.path}
27
29
  {download}
28
30
  minHeight={400}
@@ -6,14 +6,12 @@ import { runFlowPreview } from './flows/utils';
6
6
  import SchemaForm from './SchemaForm.svelte';
7
7
  import FlowStatusViewer from '../components/FlowStatusViewer.svelte';
8
8
  import FlowProgressBar from './flows/FlowProgressBar.svelte';
9
- import CapturePayload from './flows/content/CapturePayload.svelte';
10
9
  import { AlertTriangle, ArrowRight, CornerDownLeft, Play, RefreshCw, X } from 'lucide-svelte';
11
10
  import { emptyString, sendUserToast } from '../utils';
12
11
  import DrawerContent from './common/drawer/DrawerContent.svelte';
13
12
  import SavedInputs from './SavedInputs.svelte';
14
13
  import { dfs } from './flows/dfs';
15
14
  import { sliceModules } from './flows/flowStateUtils';
16
- let capturePayload;
17
15
  export let previewMode;
18
16
  export let open;
19
17
  export let jobId = undefined;
@@ -28,7 +26,7 @@ let jobProgressReset;
28
26
  export function test() {
29
27
  runPreview($previewArgs, undefined);
30
28
  }
31
- const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, initialPath, customUi } = getContext('FlowEditorContext');
29
+ const { selectedId, previewArgs, flowStateStore, flowStore, pathStore, initialPath, customUi, executionCount } = getContext('FlowEditorContext');
32
30
  const dispatch = createEventDispatcher();
33
31
  function extractFlow(previewMode) {
34
32
  if (previewMode === 'whole') {
@@ -101,8 +99,6 @@ let inputLibraryDrawer;
101
99
  let renderCount = 0;
102
100
  </script>
103
101
 
104
- <CapturePayload bind:this={capturePayload} />
105
-
106
102
  <svelte:window on:keydown={onKeyDown} />
107
103
 
108
104
  <Drawer bind:this={inputLibraryDrawer}>
@@ -267,18 +263,9 @@ let renderCount = 0;
267
263
  variant="border"
268
264
  on:click={() => {
269
265
  inputLibraryDrawer?.openDrawer()
270
- }}>Past Runs/Input library</Button
266
+ }}>Past runs/Input library</Button
271
267
  >
272
268
  {/if}
273
-
274
- <Button
275
- btnClasses="h-full truncate"
276
- size="sm"
277
- variant="border"
278
- on:click={() => {
279
- capturePayload.openDrawer()
280
- }}>Fill args from a request</Button
281
- >
282
269
  </div>
283
270
  </div>
284
271
  <div class="w-full flex flex-col gap-y-1">
@@ -314,6 +301,10 @@ let renderCount = 0;
314
301
  wideResults
315
302
  {flowStateStore}
316
303
  {jobId}
304
+ on:done={() => {
305
+ console.log('done')
306
+ $executionCount = $executionCount + 1
307
+ }}
317
308
  on:jobsLoaded={({ detail }) => {
318
309
  job = detail
319
310
  }}
@@ -10,7 +10,7 @@ import DisplayResult from './DisplayResult.svelte';
10
10
  import Tabs from './common/tabs/Tabs.svelte';
11
11
  import {} from './graph';
12
12
  import ModuleStatus from './ModuleStatus.svelte';
13
- import { emptyString, msToSec, truncateRev } from '../utils';
13
+ import { emptyString, isScriptPreview, msToSec, truncateRev } from '../utils';
14
14
  import JobArgs from './JobArgs.svelte';
15
15
  import { ChevronDown, Hourglass, Loader2 } from 'lucide-svelte';
16
16
  import FlowStatusWaitingForEvents from './FlowStatusWaitingForEvents.svelte';
@@ -366,9 +366,7 @@ async function updateJobId() {
366
366
  if (flowJobIds) {
367
367
  let modId = flowJobIds?.moduleId ?? '';
368
368
  let common = {
369
- iteration_from:
370
- // $localDurationStatuses?.[modId]?.iteration_from ??
371
- Math.max(flowJobIds.flowJobs.length - 20, 0),
369
+ iteration_from: flowJobIds?.branchall ? 0 : Math.max(flowJobIds.flowJobs.length - 20, 0),
372
370
  iteration_total: $localDurationStatuses?.[modId]?.iteration_total ?? flowJobIds?.length
373
371
  };
374
372
  $localDurationStatuses[modId] = {
@@ -496,7 +494,6 @@ async function setIteration(j, id, clicked, modId, isForloop) {
496
494
  j != state?.selectedForloopIndex ||
497
495
  setManually != state?.selectedForLoopSetManually;
498
496
  if (selectedNotEqual) {
499
- console.log('not equal');
500
497
  globalState?.update((topLevelModuleStates) => {
501
498
  topLevelModuleStates[modId] = {
502
499
  type: 'WaitingForPriorSteps',
@@ -581,9 +578,7 @@ function innerJobLoaded(jobLoaded, j, clicked, force) {
581
578
  duration_ms: jobLoaded.duration_ms
582
579
  });
583
580
  }
584
- if (jobLoaded.job_kind == 'script' ||
585
- jobLoaded.job_kind == 'flowscript' ||
586
- jobLoaded.job_kind == 'preview') {
581
+ if (jobLoaded.job_kind == 'script' || isScriptPreview(jobLoaded.job_kind)) {
587
582
  let id = undefined;
588
583
  if ((innerModule?.type == 'forloopflow' || innerModule?.type == 'whileloopflow') &&
589
584
  innerModule.modules.length == 1) {
@@ -647,6 +642,7 @@ function allModulesForTimeline(modules, expandedSubflows) {
647
642
  }
648
643
  return rec(ids, undefined);
649
644
  }
645
+ let subflowsSize = 500;
650
646
  </script>
651
647
 
652
648
  {#if notAnonynmous}
@@ -776,7 +772,12 @@ function allModulesForTimeline(modules, expandedSubflows) {
776
772
  </h3>
777
773
  <div class="overflow-auto max-h-1/2">
778
774
  {#each flowJobIds?.flowJobs ?? [] as loopJobId, j (loopJobId)}
779
- {#if render}
775
+ {#if render && j + subflowsSize + 1 == (flowJobIds?.flowJobs.length ?? 0)}
776
+ <Button variant="border" color="light" on:click={() => (subflowsSize += 500)}
777
+ >Load 500 more...</Button
778
+ >
779
+ {/if}
780
+ {#if render && j + subflowsSize + 1 > (flowJobIds?.flowJobs.length ?? 0)}
780
781
  <Button
781
782
  variant={forloop_selected === loopJobId ? 'contained' : 'border'}
782
783
  color={flowJobIds?.flowJobsSuccess?.[j] === false
@@ -970,7 +971,8 @@ function allModulesForTimeline(modules, expandedSubflows) {
970
971
  moduleId: mod.id,
971
972
  flowJobs: mod.flow_jobs,
972
973
  flowJobsSuccess: mod.flow_jobs_success,
973
- length: mod.iterator?.itered?.length ?? mod.flow_jobs.length
974
+ length: mod.iterator?.itered?.length ?? mod.flow_jobs.length,
975
+ branchall: job?.raw_flow?.modules?.[i]?.value?.type == 'branchall'
974
976
  }
975
977
  : undefined}
976
978
  on:jobsLoaded={(e) => {
@@ -1073,6 +1075,8 @@ function allModulesForTimeline(modules, expandedSubflows) {
1073
1075
  }
1074
1076
  }
1075
1077
  }}
1078
+ earlyStop={job.raw_flow?.skip_expr !== undefined}
1079
+ cache={job.raw_flow?.cache_ttl !== undefined}
1076
1080
  modules={job.raw_flow?.modules ?? []}
1077
1081
  failureModule={job.raw_flow?.failure_module}
1078
1082
  preprocessorModule={job.raw_flow?.preprocessor_module}
@@ -12,6 +12,7 @@ declare const __propDef: {
12
12
  flowJobs: string[];
13
13
  flowJobsSuccess: (boolean | undefined)[];
14
14
  length: number;
15
+ branchall?: boolean;
15
16
  } | undefined;
16
17
  innerModule?: FlowModuleValue | undefined;
17
18
  globalRefreshes?: Record<string, (clear: any, root: any) => Promise<void>> | undefined;
@@ -9,6 +9,7 @@ import sql from 'svelte-highlight/languages/sql';
9
9
  import powershell from 'svelte-highlight/languages/powershell';
10
10
  import php from 'svelte-highlight/languages/php';
11
11
  import rust from 'svelte-highlight/languages/rust';
12
+ import csharp from 'svelte-highlight/languages/csharp';
12
13
  import yaml from 'svelte-highlight/languages/yaml';
13
14
  import { Button } from './common';
14
15
  import { copyToClipboard } from '../utils';
@@ -51,6 +52,8 @@ function getLang(lang) {
51
52
  return php;
52
53
  case 'rust':
53
54
  return rust;
55
+ case 'csharp':
56
+ return csharp;
54
57
  case 'ansible':
55
58
  return yaml;
56
59
  default:
@@ -126,7 +126,7 @@ $: {
126
126
  variableEditor?.initNew?.()
127
127
  }}
128
128
  >
129
- New Variable
129
+ New variable
130
130
  </Button>
131
131
  </div>
132
132
  </ItemPicker>