windmill-components 1.383.9 → 1.389.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/package/assets/app.css +25 -1
  2. package/package/components/ArgInput.svelte +2 -1
  3. package/package/components/ChangeInstanceUsername.svelte +9 -108
  4. package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
  5. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
  6. package/package/components/DiffDrawer.svelte +27 -20
  7. package/package/components/DiffEditor.svelte +5 -1
  8. package/package/components/DisplayResult.svelte +39 -9
  9. package/package/components/DropdownV2.svelte +4 -26
  10. package/package/components/DropdownV2.svelte.d.ts +9 -1
  11. package/package/components/DropdownV2Inner.svelte +42 -0
  12. package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
  13. package/package/components/Editor.svelte +24 -4
  14. package/package/components/Editor.svelte.d.ts +5 -4
  15. package/package/components/EditorBar.svelte +9 -11
  16. package/package/components/EditorSettings.svelte +44 -0
  17. package/package/components/EditorSettings.svelte.d.ts +17 -0
  18. package/package/components/EditorTheme.svelte +1 -1
  19. package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
  20. package/package/components/FlowBuilder.svelte +17 -3
  21. package/package/components/FlowBuilder.svelte.d.ts +3 -0
  22. package/package/components/FlowGraphViewerStep.svelte +1 -1
  23. package/package/components/FlowStatusViewer.svelte +3 -1
  24. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  25. package/package/components/FlowStatusViewerInner.svelte +5 -2
  26. package/package/components/FlowViewerInner.svelte +3 -7
  27. package/package/components/FormatOnSave.svelte +12 -29
  28. package/package/components/GraphqlSchemaViewer.svelte +1 -1
  29. package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InstanceNameEditor.svelte +64 -0
  32. package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
  33. package/package/components/LightweightArgInput.svelte +6 -11
  34. package/package/components/LogViewer.svelte +37 -29
  35. package/package/components/LogViewer.svelte.d.ts +2 -0
  36. package/package/components/ObjectResourceInput.svelte +1 -1
  37. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  38. package/package/components/Path.svelte +3 -3
  39. package/package/components/QueueMetricsDrawer.svelte +6 -218
  40. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
  41. package/package/components/QueueMetricsDrawerInner.svelte +211 -0
  42. package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
  43. package/package/components/ResourceEditorDrawer.svelte +14 -11
  44. package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
  45. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  46. package/package/components/S3FilePicker.svelte +20 -8
  47. package/package/components/ScheduleEditorInner.svelte +497 -469
  48. package/package/components/ScriptBuilder.svelte +37 -24
  49. package/package/components/ScriptBuilder.svelte.d.ts +3 -0
  50. package/package/components/ScriptEditor.svelte +1 -0
  51. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  52. package/package/components/ServiceLogsInner.svelte +511 -0
  53. package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
  54. package/package/components/SimpleEditor.svelte +27 -2
  55. package/package/components/SimpleEditor.svelte.d.ts +5 -3
  56. package/package/components/Summary.svelte +33 -31
  57. package/package/components/Summary.svelte.d.ts +1 -0
  58. package/package/components/SuperadminSettings.svelte +28 -10
  59. package/package/components/TemplateEditor.svelte +1 -1
  60. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  61. package/package/components/VimMode.svelte +16 -0
  62. package/package/components/VimMode.svelte.d.ts +14 -0
  63. package/package/components/WorkerTagPicker.svelte +4 -1
  64. package/package/components/WorkspaceGroup.svelte +139 -68
  65. package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
  66. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
  67. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  68. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
  69. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
  70. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
  71. package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
  72. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
  73. package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
  74. package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
  75. package/package/components/apps/editor/AppEditor.svelte +239 -92
  76. package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
  77. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
  78. package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
  79. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/AppExportButton.svelte +1 -1
  81. package/package/components/apps/editor/AppPreview.svelte +4 -0
  82. package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
  83. package/package/components/apps/editor/GridEditor.svelte +4 -13
  84. package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
  85. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
  86. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
  87. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
  88. package/package/components/apps/editor/SubGridEditor.svelte +3 -1
  89. package/package/components/apps/editor/component/Component.svelte +26 -4
  90. package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/component/components.d.ts +5 -0
  92. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
  93. package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
  94. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
  95. package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
  96. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
  97. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +3 -0
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
  102. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
  103. package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
  104. package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
  105. package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
  106. package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  107. package/package/components/apps/svelte-grid/Grid.svelte +6 -2
  108. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
  109. package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
  110. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
  111. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  112. package/package/components/apps/svelte-grid/utils/item.js +11 -4
  113. package/package/components/common/button/Button.svelte.d.ts +2 -2
  114. package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
  115. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
  116. package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
  117. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
  118. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  119. package/package/components/common/popup/Popup.svelte +2 -1
  120. package/package/components/common/popup/Popup.svelte.d.ts +1 -0
  121. package/package/components/common/table/AppRow.svelte +11 -8
  122. package/package/components/common/table/AppRow.svelte.d.ts +1 -2
  123. package/package/components/common/table/FlowRow.svelte +3 -3
  124. package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
  125. package/package/components/common/table/RawAppRow.svelte +3 -3
  126. package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
  127. package/package/components/common/table/ScriptRow.svelte +3 -3
  128. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
  129. package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
  130. package/package/components/copilot/StepGen.svelte +2 -1
  131. package/package/components/custom_ui.d.ts +5 -1
  132. package/package/components/flows/CreateActionsApp.svelte +11 -8
  133. package/package/components/flows/CreateActionsFlow.svelte +11 -8
  134. package/package/components/flows/FlowEditor.svelte +1 -2
  135. package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
  136. package/package/components/flows/FlowHistory.svelte +6 -3
  137. package/package/components/flows/content/FlowModuleScript.svelte +15 -11
  138. package/package/components/flows/content/FlowSettings.svelte +1 -4
  139. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
  140. package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
  141. package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
  142. package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
  143. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
  144. package/package/components/flows/map/VirtualItem.svelte +1 -1
  145. package/package/components/flows/pickers/PickHubScript.svelte +1 -0
  146. package/package/components/flows/types.d.ts +7 -6
  147. package/package/components/flows/utils.d.ts +9 -0
  148. package/package/components/flows/utils.js +21 -0
  149. package/package/components/graph/graphBuilder.js +1 -0
  150. package/package/components/graph/model.d.ts +1 -0
  151. package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
  152. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  153. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
  154. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
  155. package/package/components/home/Item.svelte +0 -17
  156. package/package/components/home/deploy_ui.d.ts +2 -0
  157. package/package/components/home/deploy_ui.js +21 -0
  158. package/package/components/icons/RustIcon.svelte +70 -0
  159. package/package/components/icons/RustIcon.svelte.d.ts +25 -0
  160. package/package/components/icons/rust-logo.svg +1 -0
  161. package/package/components/instanceSettings.js +2 -2
  162. package/package/components/monaco_keybindings.d.ts +3 -0
  163. package/package/components/monaco_keybindings.js +9 -0
  164. package/package/components/preview/FlowPreviewStatus.svelte +6 -2
  165. package/package/components/runs/JobLoader.svelte +12 -3
  166. package/package/components/runs/JobLoader.svelte.d.ts +1 -1
  167. package/package/components/runs/ManuelDatePicker.svelte +31 -44
  168. package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
  169. package/package/components/runs/RunsFilter.svelte +4 -1
  170. package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
  171. package/package/components/search/GlobalSearchModal.svelte +36 -25
  172. package/package/components/wizards/TableActionsWizard.svelte +84 -0
  173. package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
  174. package/package/editorUtils.js +2 -0
  175. package/package/gen/core/OpenAPI.js +1 -1
  176. package/package/gen/schemas.gen.d.ts +8 -8
  177. package/package/gen/schemas.gen.js +8 -8
  178. package/package/gen/services.gen.d.ts +4 -0
  179. package/package/gen/services.gen.js +16 -0
  180. package/package/gen/types.gen.d.ts +20 -8
  181. package/package/infer.d.ts +1 -1
  182. package/package/infer.js +48 -7
  183. package/package/script_helpers.d.ts +1 -0
  184. package/package/script_helpers.js +39 -1
  185. package/package/scripts.d.ts +1 -1
  186. package/package/scripts.js +11 -3
  187. package/package/stores.d.ts +5 -1
  188. package/package/stores.js +7 -2
  189. package/package.json +13 -7
@@ -4,9 +4,8 @@ import BarsStaggered from '../icons/BarsStaggered.svelte';
4
4
  import { Button } from '../common';
5
5
  import Drawer from '../common/drawer/Drawer.svelte';
6
6
  import DrawerContent from '../common/drawer/DrawerContent.svelte';
7
- import SimpleEditor from '../SimpleEditor.svelte';
8
7
  import { importFlowStore } from './flowStore';
9
- import { Plus } from 'lucide-svelte';
8
+ import { Loader2, Plus } from 'lucide-svelte';
10
9
  import YAML from 'yaml';
11
10
  let drawer = undefined;
12
11
  let pendingRaw;
@@ -54,12 +53,16 @@ async function importRaw() {
54
53
  title={'Import flow from ' + (importType === 'yaml' ? 'YAML' : 'JSON')}
55
54
  on:close={() => drawer?.toggleDrawer?.()}
56
55
  >
57
- <SimpleEditor
58
- bind:code={pendingRaw}
59
- lang={importType}
60
- class="h-full"
61
- fixedOverflowWidgets={false}
62
- />
56
+ {#await import('../SimpleEditor.svelte')}
57
+ <Loader2 class="animate-spin" />
58
+ {:then Module}
59
+ <Module.default
60
+ bind:code={pendingRaw}
61
+ lang={importType}
62
+ class="h-full"
63
+ fixedOverflowWidgets={false}
64
+ />
65
+ {/await}
63
66
  <svelte:fragment slot="actions">
64
67
  <Button size="sm" on:click={importRaw}>Import</Button>
65
68
  </svelte:fragment>
@@ -12,7 +12,6 @@ export let disableTutorials = false;
12
12
  export let disableAi = false;
13
13
  export let disableSettings = false;
14
14
  export let smallErrorHandler = false;
15
- export let enableAi = true;
16
15
  let size = 40;
17
16
  const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotContext');
18
17
  </script>
@@ -53,7 +52,7 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
53
52
  </div>
54
53
  </div>
55
54
  {:else}
56
- <FlowEditorPanel {enableAi} />
55
+ <FlowEditorPanel enableAi={!disableAi} />
57
56
  {/if}
58
57
  </Pane>
59
58
  </Splitpanes>
@@ -7,7 +7,6 @@ declare const __propDef: {
7
7
  disableAi?: boolean | undefined;
8
8
  disableSettings?: boolean | undefined;
9
9
  smallErrorHandler?: boolean | undefined;
10
- enableAi?: boolean | undefined;
11
10
  };
12
11
  events: {
13
12
  reload: any;
@@ -4,11 +4,10 @@ import { classNames, displayDate, emptyString, sendUserToast } from '../../utils
4
4
  import { FlowService } from '../../gen';
5
5
  import { workspaceStore } from '../../stores';
6
6
  import { Skeleton } from '../common';
7
- import FlowViewer from '../FlowViewer.svelte';
8
7
  import Drawer from '../common/drawer/Drawer.svelte';
9
8
  import DrawerContent from '../common/drawer/DrawerContent.svelte';
10
9
  import Button from '../common/button/Button.svelte';
11
- import { ArrowRight, Pencil, X } from 'lucide-svelte';
10
+ import { ArrowRight, Loader2, Pencil, X } from 'lucide-svelte';
12
11
  import { createEventDispatcher } from 'svelte';
13
12
  export let path;
14
13
  let drawer;
@@ -194,7 +193,11 @@ $: selectedVersion !== undefined && loadFlow(selectedVersion.id);
194
193
  >Redeploy with that version
195
194
  </Button>
196
195
  </div>
197
- <FlowViewer flow={selected} />
196
+ {#await import('../FlowViewer.svelte')}
197
+ <Loader2 class="animate-spin" />
198
+ {:then Module}
199
+ <Module.default flow={selected} />
200
+ {/await}
198
201
  </div>
199
202
  {:else}
200
203
  <Skeleton layout={[[40]]} />
@@ -1,9 +1,9 @@
1
- <script>import DiffEditor from '../../DiffEditor.svelte';
2
- import HighlightCode from '../../HighlightCode.svelte';
1
+ <script>import HighlightCode from '../../HighlightCode.svelte';
3
2
  import TimeAgo from '../../TimeAgo.svelte';
4
3
  import { ScriptService } from '../../../gen';
5
4
  import { getScriptByPath, scriptLangToEditorLang } from '../../../scripts';
6
5
  import { workspaceStore } from '../../../stores';
6
+ import { Loader2 } from 'lucide-svelte';
7
7
  export let path;
8
8
  export let hash = undefined;
9
9
  export let previousHash = undefined;
@@ -60,15 +60,19 @@ export let showDiff = false;
60
60
  {:else if showAllCode}
61
61
  {#if showDiff}
62
62
  {#key previousCode + code}
63
- <DiffEditor
64
- open={true}
65
- class="h-screen"
66
- readOnly
67
- automaticLayout
68
- defaultLang={scriptLangToEditorLang(language)}
69
- defaultOriginal={previousCode}
70
- defaultModified={code}
71
- />
63
+ {#await import('../../DiffEditor.svelte')}
64
+ <Loader2 class="animate-spin" />
65
+ {:then Module}
66
+ <Module.default
67
+ open={true}
68
+ class="h-screen"
69
+ readOnly
70
+ automaticLayout
71
+ defaultLang={scriptLangToEditorLang(language)}
72
+ defaultOriginal={previousCode}
73
+ defaultModified={code}
74
+ />
75
+ {/await}
72
76
  {/key}
73
77
  {:else}
74
78
  <HighlightCode {language} {code} />
@@ -10,7 +10,7 @@ import Toggle from '../../Toggle.svelte';
10
10
  import { Alert, Button, SecondsInput } from '../../common';
11
11
  import { getContext } from 'svelte';
12
12
  import Slider from '../../Slider.svelte';
13
- import { enterpriseLicense, workerTags, workspaceStore } from '../../../stores';
13
+ import { enterpriseLicense, workspaceStore } from '../../../stores';
14
14
  import { isCloudHosted } from '../../../cloud';
15
15
  import { copyToClipboard } from '../../../utils';
16
16
  import Tooltip from '../../Tooltip.svelte';
@@ -27,9 +27,6 @@ const { selectedId, flowStore, initialPath, previewArgs, pathStore, schedule, cu
27
27
  let hostname = BROWSER ? window.location.protocol + '//' + window.location.host : 'SSR';
28
28
  $: url = `${hostname}/api/w/${$workspaceStore}/jobs/run/f/${$pathStore}`;
29
29
  $: syncedUrl = `${hostname}/api/w/${$workspaceStore}/jobs/run_wait_result/f/${$pathStore}`;
30
- $: if ($selectedId == 'settings-worker-group') {
31
- $workerTags = undefined;
32
- }
33
30
  function asSchema(x) {
34
31
  return x;
35
32
  }
@@ -147,6 +147,9 @@ async function checkForUnsavedChanges() {
147
147
  {#if script}
148
148
  {#key script.hash}
149
149
  <ScriptEditor
150
+ on:saveDraft={() => {
151
+ saveScript()
152
+ }}
150
153
  noSyncFromGithub
151
154
  lang={script.language}
152
155
  path={script.path}
@@ -0,0 +1,55 @@
1
+ <script>import Drawer from '../../common/drawer/Drawer.svelte';
2
+ import DrawerContent from '../../common/drawer/DrawerContent.svelte';
3
+ import { getContext } from 'svelte';
4
+ import { filteredContentForExport } from '../utils';
5
+ import YAML from 'yaml';
6
+ import SimpleEditor from '../../SimpleEditor.svelte';
7
+ import { Button } from '../../common';
8
+ import { sendUserToast } from '../../../toast';
9
+ const { flowStore } = getContext('FlowEditorContext');
10
+ export let drawer;
11
+ let code = '';
12
+ function reload() {
13
+ code = YAML.stringify(filteredContentForExport($flowStore));
14
+ }
15
+ function apply() {
16
+ try {
17
+ const parsed = YAML.parse(code);
18
+ if (parsed.summary && typeof parsed.summary === 'string') {
19
+ $flowStore.summary = parsed.summary;
20
+ }
21
+ if (parsed.description && typeof parsed.description === 'string') {
22
+ $flowStore.description = parsed.description;
23
+ }
24
+ if (parsed['ws_error_handler_muted'] !== undefined) {
25
+ $flowStore.ws_error_handler_muted = parsed['ws_error_handler_muted'];
26
+ }
27
+ if (parsed['dedicated_worker'] !== undefined) {
28
+ $flowStore.dedicated_worker = parsed['dedicated_worker'];
29
+ }
30
+ if (parsed['visible_to_runner_only'] !== undefined) {
31
+ $flowStore.visible_to_runner_only = parsed['visible_to_runner_only'];
32
+ }
33
+ $flowStore.value = parsed.value;
34
+ $flowStore.schema = parsed.schema;
35
+ $flowStore.tag = parsed.tag;
36
+ $flowStore = $flowStore;
37
+ }
38
+ catch (e) {
39
+ sendUserToast('Error parsing yaml: ' + e), true;
40
+ }
41
+ }
42
+ </script>
43
+
44
+ <Drawer on:open={reload} bind:this={drawer} size="800px">
45
+ <DrawerContent title="OpenFlow" on:close={() => drawer?.toggleDrawer()}>
46
+ <svelte:fragment slot="actions">
47
+ <Button color="dark" size="sm" on:click={reload}>Reset code</Button>
48
+ <Button color="dark" size="sm" on:click={apply}>Apply changes</Button>
49
+ </svelte:fragment>
50
+
51
+ {#if $flowStore}
52
+ <SimpleEditor autoHeight bind:code lang="yaml" />
53
+ {/if}
54
+ </DrawerContent>
55
+ </Drawer>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import Drawer from '../../common/drawer/Drawer.svelte';
3
+ declare const __propDef: {
4
+ props: {
5
+ drawer: Drawer | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type FlowYamlEditorProps = typeof __propDef.props;
13
+ export type FlowYamlEditorEvents = typeof __propDef.events;
14
+ export type FlowYamlEditorSlots = typeof __propDef.slots;
15
+ export default class FlowYamlEditor extends SvelteComponent<FlowYamlEditorProps, FlowYamlEditorEvents, FlowYamlEditorSlots> {
16
+ }
17
+ export {};
@@ -28,7 +28,7 @@ $: !open && (funcDesc = '');
28
28
  <Zap size={14} />
29
29
  </button>
30
30
  {#if !disableAi}
31
- <StepGen {index} bind:funcDesc bind:open {close} {modules} trigger />
31
+ <StepGen {index} bind:funcDesc bind:open {close} {modules} trigger on:insert />
32
32
  {/if}
33
33
  {#if funcDesc.length === 0}
34
34
  <div class="font-mono divide-y text-xs w-full text-secondary whitespace-nowrap">
@@ -9,6 +9,7 @@ declare const __propDef: {
9
9
  disableAi?: boolean | undefined;
10
10
  };
11
11
  events: {
12
+ insert: CustomEvent<any>;
12
13
  new: CustomEvent<any>;
13
14
  } & {
14
15
  [evt: string]: CustomEvent<any>;
@@ -33,7 +33,7 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
33
33
  }
34
34
  }
35
35
  }}
36
- id={`flow-editor-virtual-${label}`}
36
+ id={`flow-editor-virtual-${encodeURIComponent(label)}`}
37
37
  >
38
38
  <div
39
39
  style={borderColor ? `border-color: ${borderColor};` : ''}
@@ -62,6 +62,7 @@ async function applyFilter(filter, filterKind, appFilter) {
62
62
  path: `hub/${x.version_id}/${x.app}/${x.summary.toLowerCase().replaceAll(/\s+/g, '_')}`,
63
63
  summary: `${x.summary} (${x.app})`
64
64
  }));
65
+ hubNotAvailable = false;
65
66
  }
66
67
  catch (err) {
67
68
  hubNotAvailable = true;
@@ -12,6 +12,12 @@ export type FlowInput = Record<string, {
12
12
  type: 'error' | 'warning';
13
13
  }>;
14
14
  }>;
15
+ export type ExtendedOpenFlow = OpenFlow & {
16
+ tag?: string;
17
+ ws_error_handler_muted?: boolean;
18
+ dedicated_worker?: boolean;
19
+ visible_to_runner_only?: boolean;
20
+ };
15
21
  export type FlowEditorContext = {
16
22
  selectedId: Writable<string>;
17
23
  moving: Writable<{
@@ -23,12 +29,7 @@ export type FlowEditorContext = {
23
29
  scriptEditorDrawer: Writable<ScriptEditorDrawer | undefined>;
24
30
  history: History<OpenFlow>;
25
31
  pathStore: Writable<string>;
26
- flowStore: Writable<OpenFlow & {
27
- tag?: string;
28
- ws_error_handler_muted?: boolean;
29
- dedicated_worker?: boolean;
30
- visible_to_runner_only?: boolean;
31
- }>;
32
+ flowStore: Writable<ExtendedOpenFlow>;
32
33
  flowStateStore: Writable<FlowState>;
33
34
  testStepStore: Writable<Record<string, any>>;
34
35
  saveDraft: () => void;
@@ -2,7 +2,16 @@ import { type FlowModule, type InputTransform, type Job, type RestartedFrom, typ
2
2
  import type { FlowModuleState } from './flowState';
3
3
  import type { PickableProperties } from './previousResults';
4
4
  import type { Schema } from '../../common';
5
+ import type { ExtendedOpenFlow } from './types';
5
6
  export declare function evalValue(k: string, mod: FlowModule, testStepStore: Record<string, any>, pickableProperties: PickableProperties | undefined, showError: boolean): any;
7
+ export declare function filteredContentForExport(flow: ExtendedOpenFlow): {
8
+ summary: string;
9
+ description: string | undefined;
10
+ value: import("../../gen").FlowValue;
11
+ schema: {
12
+ [key: string]: unknown;
13
+ } | undefined;
14
+ };
6
15
  export declare function cleanInputs(flow: OpenFlow | any): OpenFlow & {
7
16
  tag?: string;
8
17
  ws_error_handler_muted?: boolean;
@@ -49,6 +49,27 @@ export function evalValue(k, mod, testStepStore, pickableProperties, showError)
49
49
  }
50
50
  return v;
51
51
  }
52
+ export function filteredContentForExport(flow) {
53
+ let o = {
54
+ summary: flow.summary,
55
+ description: flow.description,
56
+ value: flow.value,
57
+ schema: flow.schema
58
+ };
59
+ if (flow.dedicated_worker) {
60
+ o['dedicated_worker'] = flow.dedicated_worker;
61
+ }
62
+ if (flow.visible_to_runner_only) {
63
+ o['visible_to_runner_only'] = flow.visible_to_runner_only;
64
+ }
65
+ if (flow.ws_error_handler_muted) {
66
+ o['ws_error_handler_muted'] = flow.ws_error_handler_muted;
67
+ }
68
+ if (flow.tag) {
69
+ o['tag'] = flow.tag;
70
+ }
71
+ return o;
72
+ }
52
73
  export function cleanInputs(flow) {
53
74
  const newFlow = JSON.parse(JSON.stringify(flow));
54
75
  newFlow.value.modules.forEach((mod) => {
@@ -243,6 +243,7 @@ export default function graphBuilder(modules, extra, failureModule, eventHandler
243
243
  branchIndex: -1,
244
244
  modules: module.value.default,
245
245
  eventHandlers: eventHandlers,
246
+ branchOne: true,
246
247
  ...extra
247
248
  },
248
249
  position: { x: -1, y: -1 },
@@ -37,6 +37,7 @@ export type FlowStatusViewerContext = {
37
37
  hideDownloadInGraph?: boolean;
38
38
  hideTimeline?: boolean;
39
39
  hideNodeDefinition?: boolean;
40
+ hideJobId?: boolean;
40
41
  };
41
42
  export type GraphModuleState = {
42
43
  type: FlowStatusModule['type'];
@@ -44,6 +44,14 @@ let menuOpen = false;
44
44
  on:new={(e) => {
45
45
  data?.eventHandlers.insert({ modules: data.modules, index: data.index, detail: e.detail })
46
46
  }}
47
+ on:insert={(e) => {
48
+ data?.eventHandlers.insert({
49
+ modules: data.modules,
50
+ index: data.index,
51
+ script: e.detail,
52
+ detail: 'script'
53
+ })
54
+ }}
47
55
  bind:open={menuOpen}
48
56
  />
49
57
  </div>
@@ -61,6 +69,14 @@ let menuOpen = false;
61
69
  detail: e.detail
62
70
  })
63
71
  }}
72
+ on:insert={(e) => {
73
+ data?.eventHandlers.insert({
74
+ modules: data.modules,
75
+ index: data.index,
76
+ script: e.detail,
77
+ detail: 'script'
78
+ })
79
+ }}
64
80
  index={data?.index ?? 0}
65
81
  modules={data?.modules ?? []}
66
82
  />
@@ -4,7 +4,7 @@ import { X } from 'lucide-svelte';
4
4
  import { getStateColor } from '../../util';
5
5
  import { computeBorderStatus } from '../utils';
6
6
  export let data;
7
- $: borderStatus = computeBorderStatus(data.branchIndex, 'branchone', data.flowModuleStates?.[data.id]);
7
+ $: borderStatus = computeBorderStatus(data.branchIndex + 1, 'branchone', data.flowModuleStates?.[data.id]);
8
8
  </script>
9
9
 
10
10
  <NodeWrapper let:darkMode offset={data.offset}>
@@ -1,7 +1,11 @@
1
1
  <script>import VirtualItem from '../../../flows/map/VirtualItem.svelte';
2
2
  import NodeWrapper from './NodeWrapper.svelte';
3
3
  import { getStateColor } from '../../util';
4
+ import { computeBorderStatus } from '../utils';
4
5
  export let data;
6
+ $: borderStatus = data.branchOne
7
+ ? computeBorderStatus(0, 'branchone', data.flowModuleStates?.[data.id])
8
+ : undefined;
5
9
  </script>
6
10
 
7
11
  <NodeWrapper offset={data.offset} let:darkMode enableSourceHandle enableTargetHandle>
@@ -12,7 +16,7 @@ export let data;
12
16
  selectable={true}
13
17
  selected={false}
14
18
  bgColor={getStateColor(undefined, darkMode)}
15
- borderColor={getStateColor(data?.flowModuleStates?.[data?.id]?.type, darkMode)}
19
+ borderColor={getStateColor(borderStatus, darkMode)}
16
20
  on:select={(e) => {
17
21
  data?.eventHandlers?.select(e.detail)
18
22
  }}
@@ -12,6 +12,7 @@ declare const __propDef: {
12
12
  flowModuleStates: Record<string, GraphModuleState> | undefined;
13
13
  offset: number;
14
14
  label: string | undefined;
15
+ branchOne: boolean;
15
16
  };
16
17
  };
17
18
  events: {
@@ -9,9 +9,6 @@ import MoveDrawer from '../MoveDrawer.svelte';
9
9
  import ShareModal from '../ShareModal.svelte';
10
10
  import { createEventDispatcher } from 'svelte';
11
11
  import { ArrowBigUp } from 'lucide-svelte';
12
- import { enterpriseLicense, workspaceStore } from '../../stores';
13
- import { WorkspaceService } from '../../gen';
14
- import { ALL_DEPLOYABLE } from '../../utils_deployable';
15
12
  export let item;
16
13
  export let depth = 0;
17
14
  const dispatch = createEventDispatcher();
@@ -21,16 +18,6 @@ let moveDrawer;
21
18
  let deploymentDrawer;
22
19
  let menuOpen = false;
23
20
  export let showCode;
24
- let deployUiSettings = undefined;
25
- async function getDeployUiSettings() {
26
- if (!$enterpriseLicense) {
27
- deployUiSettings = ALL_DEPLOYABLE;
28
- return;
29
- }
30
- let settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
31
- deployUiSettings = settings.deploy_ui ?? ALL_DEPLOYABLE;
32
- }
33
- getDeployUiSettings();
34
21
  </script>
35
22
 
36
23
  {#if item.type == 'script'}
@@ -50,7 +37,6 @@ getDeployUiSettings();
50
37
  {depth}
51
38
  bind:menuOpen
52
39
  {showCode}
53
- {deployUiSettings}
54
40
  />
55
41
  {:else if item.type == 'flow'}
56
42
  <FlowRow
@@ -68,7 +54,6 @@ getDeployUiSettings();
68
54
  {deploymentDrawer}
69
55
  {depth}
70
56
  bind:menuOpen
71
- {deployUiSettings}
72
57
  />
73
58
  {:else if item.type == 'app'}
74
59
  <AppRow
@@ -82,7 +67,6 @@ getDeployUiSettings();
82
67
  {deploymentDrawer}
83
68
  {depth}
84
69
  bind:menuOpen
85
- {deployUiSettings}
86
70
  />
87
71
  {:else if item.type == 'raw_app'}
88
72
  <RawAppRow
@@ -96,7 +80,6 @@ getDeployUiSettings();
96
80
  {deploymentDrawer}
97
81
  {depth}
98
82
  bind:menuOpen
99
- {deployUiSettings}
100
83
  />
101
84
  {/if}
102
85
 
@@ -0,0 +1,2 @@
1
+ import { type WorkspaceDeployUISettings } from '../../gen';
2
+ export declare function getDeployUiSettings(): Promise<WorkspaceDeployUISettings>;
@@ -0,0 +1,21 @@
1
+ import { enterpriseLicense, workspaceStore } from '../../stores';
2
+ import { WorkspaceService } from '../../gen';
3
+ import { ALL_DEPLOYABLE } from '../../utils_deployable';
4
+ import { get, writable } from 'svelte/store';
5
+ const deployUiStore = writable({});
6
+ export async function getDeployUiSettings() {
7
+ let deployUiSettings = get(deployUiStore);
8
+ let workspace = get(workspaceStore);
9
+ if (!deployUiSettings[workspace]) {
10
+ deployUiSettings[workspace] = await getDeployUiSettingsInner();
11
+ deployUiStore.set(deployUiSettings);
12
+ }
13
+ return deployUiSettings[workspace];
14
+ }
15
+ async function getDeployUiSettingsInner() {
16
+ if (!get(enterpriseLicense)) {
17
+ return ALL_DEPLOYABLE;
18
+ }
19
+ let settings = await WorkspaceService.getSettings({ workspace: get(workspaceStore) });
20
+ return settings.deploy_ui ?? ALL_DEPLOYABLE;
21
+ }
@@ -0,0 +1,70 @@
1
+ <script>
2
+ export let height = '24px'
3
+ export let width = '24px'
4
+ </script>
5
+
6
+ <svg
7
+ {height}
8
+ {width}
9
+ id="svg3430"
10
+ version="1.1"
11
+ viewBox="0 0 106 106"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ >
14
+
15
+ <g id="logo" transform="translate(53, 53)">
16
+ <path id="r" transform="translate(0.5, 0.5)" stroke="black" stroke-width="1" stroke-linejoin="round" d=" M -9,-15 H 4 C 12,-15 12,-7 4,-7 H -9 Z M -40,22 H 0 V 11 H -9 V 3 H 1 C 12,3 6,22 15,22 H 40 V 3 H 34 V 5 C 34,13 25,12 24,7 C 23,2 19,-2 18,-2 C 33,-10 24,-26 12,-26 H -35 V -15 H -25 V 11 H -40 Z"/>
17
+ <g id="gear" mask="url(#holes)">
18
+ <circle r="43" fill="none" stroke="black" stroke-width="9"/>
19
+ <g id="cogs">
20
+ <polygon id="cog" stroke="black" stroke-width="3" stroke-linejoin="round" points="46,3 51,0 46,-3"/>
21
+ <use xlink:href="#cog" transform="rotate(11.25)"/>
22
+ <use xlink:href="#cog" transform="rotate(22.50)"/>
23
+ <use xlink:href="#cog" transform="rotate(33.75)"/>
24
+ <use xlink:href="#cog" transform="rotate(45.00)"/>
25
+ <use xlink:href="#cog" transform="rotate(56.25)"/>
26
+ <use xlink:href="#cog" transform="rotate(67.50)"/>
27
+ <use xlink:href="#cog" transform="rotate(78.75)"/>
28
+ <use xlink:href="#cog" transform="rotate(90.00)"/>
29
+ <use xlink:href="#cog" transform="rotate(101.25)"/>
30
+ <use xlink:href="#cog" transform="rotate(112.50)"/>
31
+ <use xlink:href="#cog" transform="rotate(123.75)"/>
32
+ <use xlink:href="#cog" transform="rotate(135.00)"/>
33
+ <use xlink:href="#cog" transform="rotate(146.25)"/>
34
+ <use xlink:href="#cog" transform="rotate(157.50)"/>
35
+ <use xlink:href="#cog" transform="rotate(168.75)"/>
36
+ <use xlink:href="#cog" transform="rotate(180.00)"/>
37
+ <use xlink:href="#cog" transform="rotate(191.25)"/>
38
+ <use xlink:href="#cog" transform="rotate(202.50)"/>
39
+ <use xlink:href="#cog" transform="rotate(213.75)"/>
40
+ <use xlink:href="#cog" transform="rotate(225.00)"/>
41
+ <use xlink:href="#cog" transform="rotate(236.25)"/>
42
+ <use xlink:href="#cog" transform="rotate(247.50)"/>
43
+ <use xlink:href="#cog" transform="rotate(258.75)"/>
44
+ <use xlink:href="#cog" transform="rotate(270.00)"/>
45
+ <use xlink:href="#cog" transform="rotate(281.25)"/>
46
+ <use xlink:href="#cog" transform="rotate(292.50)"/>
47
+ <use xlink:href="#cog" transform="rotate(303.75)"/>
48
+ <use xlink:href="#cog" transform="rotate(315.00)"/>
49
+ <use xlink:href="#cog" transform="rotate(326.25)"/>
50
+ <use xlink:href="#cog" transform="rotate(337.50)"/>
51
+ <use xlink:href="#cog" transform="rotate(348.75)"/>
52
+ </g>
53
+ <g id="mounts">
54
+ <polygon id="mount" stroke="black" stroke-width="6" stroke-linejoin="round" points="-7,-42 0,-35 7,-42"/>
55
+ <use xlink:href="#mount" transform="rotate(72)"/>
56
+ <use xlink:href="#mount" transform="rotate(144)"/>
57
+ <use xlink:href="#mount" transform="rotate(216)"/>
58
+ <use xlink:href="#mount" transform="rotate(288)"/>
59
+ </g>
60
+ </g>
61
+ <mask id="holes">
62
+ <rect x="-60" y="-60" width="120" height="120" fill="white"/>
63
+ <circle id="hole" cy="-40" r="3"/>
64
+ <use xlink:href="#hole" transform="rotate(72)"/>
65
+ <use xlink:href="#hole" transform="rotate(144)"/>
66
+ <use xlink:href="#hole" transform="rotate(216)"/>
67
+ <use xlink:href="#hole" transform="rotate(288)"/>
68
+ </mask>
69
+ </g>
70
+ </svg>
@@ -0,0 +1,25 @@
1
+ /** @typedef {typeof __propDef.props} RustIconProps */
2
+ /** @typedef {typeof __propDef.events} RustIconEvents */
3
+ /** @typedef {typeof __propDef.slots} RustIconSlots */
4
+ export default class RustIcon extends SvelteComponent<{
5
+ height?: string | undefined;
6
+ width?: string | undefined;
7
+ }, {
8
+ [evt: string]: CustomEvent<any>;
9
+ }, {}> {
10
+ }
11
+ export type RustIconProps = typeof __propDef.props;
12
+ export type RustIconEvents = typeof __propDef.events;
13
+ export type RustIconSlots = typeof __propDef.slots;
14
+ import { SvelteComponent } from "svelte";
15
+ declare const __propDef: {
16
+ props: {
17
+ height?: string | undefined;
18
+ width?: string | undefined;
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {};
24
+ };
25
+ export {};
@@ -0,0 +1 @@
1
+ <svg height="144" width="144" xmlns="http://www.w3.org/2000/svg"><path d="m71.05 23.68c-26.06 0-47.27 21.22-47.27 47.27s21.22 47.27 47.27 47.27 47.27-21.22 47.27-47.27-21.22-47.27-47.27-47.27zm-.07 4.2a3.1 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm7.12 5.12a38.27 38.27 0 0 1 26.2 18.66l-3.67 8.28c-.63 1.43.02 3.11 1.44 3.75l7.06 3.13a38.27 38.27 0 0 1 .08 6.64h-3.93c-.39 0-.55.26-.55.64v1.8c0 4.24-2.39 5.17-4.49 5.4-2 .23-4.21-.84-4.49-2.06-1.18-6.63-3.14-8.04-6.24-10.49 3.85-2.44 7.85-6.05 7.85-10.87 0-5.21-3.57-8.49-6-10.1-3.42-2.25-7.2-2.7-8.22-2.7h-40.6a38.27 38.27 0 0 1 21.41-12.08l4.79 5.02c1.08 1.13 2.87 1.18 4 .09zm-44.2 23.02a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm74.15.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm-68.29.5h5.42v24.44h-10.94a38.27 38.27 0 0 1 -1.24-14.61l6.7-2.98c1.43-.64 2.08-2.31 1.44-3.74zm22.62.26h12.91c.67 0 4.71.77 4.71 3.8 0 2.51-3.1 3.41-5.65 3.41h-11.98zm0 17.56h9.89c.9 0 4.83.26 6.08 5.28.39 1.54 1.26 6.56 1.85 8.17.59 1.8 2.98 5.4 5.53 5.4h16.14a38.27 38.27 0 0 1 -3.54 4.1l-6.57-1.41c-1.53-.33-3.04.65-3.37 2.18l-1.56 7.28a38.27 38.27 0 0 1 -31.91-.15l-1.56-7.28c-.33-1.53-1.83-2.51-3.36-2.18l-6.43 1.38a38.27 38.27 0 0 1 -3.32-3.92h31.27c.35 0 .59-.06.59-.39v-11.06c0-.32-.24-.39-.59-.39h-9.15zm-14.43 25.33a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm46.05.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11z"/><path d="m115.68 70.95a44.63 44.63 0 0 1 -44.63 44.63 44.63 44.63 0 0 1 -44.63-44.63 44.63 44.63 0 0 1 44.63-44.63 44.63 44.63 0 0 1 44.63 44.63zm-.84-4.31 6.96 4.31-6.96 4.31 5.98 5.59-7.66 2.87 4.78 6.65-8.09 1.32 3.4 7.46-8.19-.29 1.88 7.98-7.98-1.88.29 8.19-7.46-3.4-1.32 8.09-6.65-4.78-2.87 7.66-5.59-5.98-4.31 6.96-4.31-6.96-5.59 5.98-2.87-7.66-6.65 4.78-1.32-8.09-7.46 3.4.29-8.19-7.98 1.88 1.88-7.98-8.19.29 3.4-7.46-8.09-1.32 4.78-6.65-7.66-2.87 5.98-5.59-6.96-4.31 6.96-4.31-5.98-5.59 7.66-2.87-4.78-6.65 8.09-1.32-3.4-7.46 8.19.29-1.88-7.98 7.98 1.88-.29-8.19 7.46 3.4 1.32-8.09 6.65 4.78 2.87-7.66 5.59 5.98 4.31-6.96 4.31 6.96 5.59-5.98 2.87 7.66 6.65-4.78 1.32 8.09 7.46-3.4-.29 8.19 7.98-1.88-1.88 7.98 8.19-.29-3.4 7.46 8.09 1.32-4.78 6.65 7.66 2.87z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/></svg>
@@ -91,8 +91,8 @@ export const settings = {
91
91
  ee_only: ''
92
92
  },
93
93
  {
94
- label: 'Critical Error Channels',
95
- description: 'Channels to send critical errors to. SMTP must be configured for the email channel.',
94
+ label: 'Critical Alert Channels',
95
+ description: 'Channels to send critical alerts to. SMTP must be configured for the email channel.',
96
96
  key: 'critical_error_channels',
97
97
  fieldType: 'critical_error_channels',
98
98
  storage: 'setting',
@@ -0,0 +1,3 @@
1
+ import type { IDisposable } from 'monaco-editor';
2
+ import * as monaco from 'monaco-editor';
3
+ export declare function initVim(editor: monaco.editor.ICodeEditor, statusBarElement: Element, save: () => void): IDisposable;
@@ -0,0 +1,9 @@
1
+ import * as monaco from 'monaco-editor';
2
+ // @ts-ignore
3
+ import * as MonacoVim from 'monaco-vim';
4
+ export function initVim(editor, statusBarElement, save) {
5
+ MonacoVim.VimMode.Vim.defineEx('write', 'w', function () {
6
+ save();
7
+ });
8
+ return MonacoVim.initVimMode(editor, statusBarElement);
9
+ }