windmill-components 1.85.0 → 1.86.0

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 (182) hide show
  1. package/components/CenteredModal.svelte +9 -7
  2. package/components/CronInput.svelte +301 -64
  3. package/components/CronInput.svelte.d.ts +3 -3
  4. package/components/DisplayResult.svelte +2 -2
  5. package/components/Editor.svelte +97 -42
  6. package/components/Editor.svelte.d.ts +10 -4
  7. package/components/EditorBar.svelte +14 -9
  8. package/components/EditorBar.svelte.d.ts +1 -1
  9. package/components/FlowBuilder.svelte +73 -53
  10. package/components/FlowGraphViewer.svelte +2 -0
  11. package/components/FlowGraphViewer.svelte.d.ts +1 -0
  12. package/components/FlowPreviewContent.svelte +3 -2
  13. package/components/FlowViewer.svelte +1 -1
  14. package/components/InputTransformForm.svelte +75 -72
  15. package/components/LightweightArgInput.svelte +3 -0
  16. package/components/LightweightArgInput.svelte.d.ts +1 -0
  17. package/components/LightweightSchemaForm.svelte +1 -0
  18. package/components/LightweightSchemaForm.svelte.d.ts +2 -0
  19. package/components/ModulePreview.svelte +2 -2
  20. package/components/Path.svelte +15 -3
  21. package/components/Popover.svelte +7 -19
  22. package/components/ScheduleEditor.svelte +18 -8
  23. package/components/ScriptBuilder.svelte +201 -206
  24. package/components/ScriptBuilder.svelte.d.ts +2 -0
  25. package/components/ScriptEditor.svelte +38 -37
  26. package/components/ScriptEditor.svelte.d.ts +5 -1
  27. package/components/ScriptSchema.svelte +1 -20
  28. package/components/ScriptSchema.svelte.d.ts +0 -1
  29. package/components/SimpleEditor.svelte +8 -2
  30. package/components/SimpleEditor.svelte.d.ts +6 -0
  31. package/components/Star.svelte +2 -1
  32. package/components/TemplateEditor.svelte +16 -3
  33. package/components/TemplateEditor.svelte.d.ts +3 -0
  34. package/components/Toast.svelte +50 -0
  35. package/components/Toast.svelte.d.ts +18 -0
  36. package/components/apps/components/buttons/AppButton.svelte +2 -1
  37. package/components/apps/components/display/AppHtml.svelte +9 -6
  38. package/components/apps/components/display/AppIcon.svelte +3 -0
  39. package/components/apps/components/display/AppImage.svelte +3 -0
  40. package/components/apps/components/display/AppMap.svelte +3 -0
  41. package/components/apps/components/display/AppPdf.svelte +3 -0
  42. package/components/apps/components/display/AppText.svelte +143 -51
  43. package/components/apps/components/display/AppText.svelte.d.ts +4 -0
  44. package/components/apps/components/helpers/AlignWrapper.svelte +1 -20
  45. package/components/apps/components/helpers/HiddenComponent.svelte +12 -6
  46. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +2 -1
  47. package/components/apps/components/helpers/InitializeComponent.svelte +12 -0
  48. package/components/apps/components/helpers/InitializeComponent.svelte.d.ts +16 -0
  49. package/components/apps/components/helpers/InputValue.svelte +6 -0
  50. package/components/apps/components/helpers/NonRunnableComponent.svelte +3 -0
  51. package/components/apps/components/helpers/RunnableComponent.svelte +24 -6
  52. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
  53. package/components/apps/components/helpers/RunnableWrapper.svelte +8 -2
  54. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  55. package/components/apps/components/inputs/AppCheckbox.svelte +3 -0
  56. package/components/apps/components/inputs/AppDateInput.svelte +3 -0
  57. package/components/apps/components/inputs/AppFileInput.svelte +4 -0
  58. package/components/apps/components/inputs/AppMultiSelect.svelte +3 -0
  59. package/components/apps/components/inputs/AppNumberInput.svelte +3 -0
  60. package/components/apps/components/inputs/AppRangeInput.svelte +3 -0
  61. package/components/apps/components/inputs/AppSelect.svelte +3 -9
  62. package/components/apps/components/inputs/AppSliderInputs.svelte +2 -0
  63. package/components/apps/components/inputs/AppTextInput.svelte +3 -0
  64. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +3 -0
  65. package/components/apps/components/layout/AppContainer.svelte +3 -0
  66. package/components/apps/components/layout/AppDivider.svelte +3 -0
  67. package/components/apps/components/layout/AppDrawer.svelte +3 -0
  68. package/components/apps/components/layout/AppSplitpanes.svelte +3 -0
  69. package/components/apps/components/layout/AppTabs.svelte +3 -0
  70. package/components/apps/editor/AppEditor.svelte +29 -18
  71. package/components/apps/editor/AppEditorHeader.svelte +23 -15
  72. package/components/apps/editor/AppPreview.svelte +5 -3
  73. package/components/apps/editor/ComponentHeader.svelte +20 -1
  74. package/components/apps/editor/ComponentHeader.svelte.d.ts +3 -0
  75. package/components/apps/editor/GridEditor.svelte +2 -2
  76. package/components/apps/editor/RecomputeAllComponents.svelte +7 -4
  77. package/components/apps/editor/SettingsPanel.svelte +1 -0
  78. package/components/apps/editor/appUtils.js +12 -2
  79. package/components/apps/editor/component/Component.svelte +24 -2
  80. package/components/apps/editor/component/components.d.ts +39 -39
  81. package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -26
  82. package/components/apps/editor/componentsPanel/CssSettings.svelte +1 -1
  83. package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  84. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -3
  85. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +50 -37
  86. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -3
  87. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +14 -6
  88. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -2
  89. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +8 -3
  90. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +0 -2
  91. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -2
  92. package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte +15 -7
  93. package/components/apps/editor/settingsPanel/triggerLists/BackgroundScriptTriggerList.svelte.d.ts +2 -1
  94. package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +2 -2
  95. package/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte.d.ts +1 -1
  96. package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +6 -5
  97. package/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte.d.ts +1 -1
  98. package/components/apps/inputType.d.ts +1 -0
  99. package/components/apps/rx.d.ts +0 -2
  100. package/components/apps/rx.js +1 -3
  101. package/components/apps/types.d.ts +8 -0
  102. package/components/apps/utils.d.ts +3 -1
  103. package/components/apps/utils.js +24 -1
  104. package/components/build_workers.d.ts +14 -0
  105. package/components/build_workers.js +45 -0
  106. package/components/common/button/Button.svelte +46 -24
  107. package/components/common/button/Button.svelte.d.ts +7 -1
  108. package/components/common/button/ButtonDropdown.svelte +25 -0
  109. package/components/common/button/ButtonDropdown.svelte.d.ts +27 -0
  110. package/components/common/button/model.d.ts +2 -3
  111. package/components/common/button/model.js +7 -3
  112. package/components/common/drawer/Drawer.svelte +0 -1
  113. package/components/common/drawer/DrawerContent.svelte +1 -1
  114. package/components/common/fileInput/FileInput.svelte +5 -1
  115. package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
  116. package/components/common/index.d.ts +0 -2
  117. package/components/common/index.js +0 -2
  118. package/components/common/menu/Menu.svelte.d.ts +1 -1
  119. package/components/common/popup/Popup.svelte +9 -5
  120. package/components/common/table/ScriptRow.svelte +2 -2
  121. package/components/common/tabs/Tab.svelte +10 -5
  122. package/components/common/tabs/Tabs.svelte +20 -1
  123. package/components/common/tabs/Tabs.svelte.d.ts +3 -0
  124. package/components/flows/CreateActionsApp.svelte +12 -7
  125. package/components/flows/CreateActionsFlow.svelte +11 -10
  126. package/components/flows/FlowEditor.svelte +2 -2
  127. package/components/flows/content/CapturePayload.svelte +2 -4
  128. package/components/flows/content/FlowModuleComponent.svelte +1 -0
  129. package/components/flows/content/FlowSchedules.svelte +3 -1
  130. package/components/flows/header/FlowImportExportMenu.svelte +10 -12
  131. package/components/flows/header/FlowPreviewButtons.svelte +21 -23
  132. package/components/flows/scheduleUtils.d.ts +1 -0
  133. package/components/flows/scheduleUtils.js +2 -1
  134. package/components/graph/FlowGraph.svelte +21 -7
  135. package/components/graph/FlowGraph.svelte.d.ts +2 -0
  136. package/components/graph/svelvet/container/views/GraphView.svelte +17 -29
  137. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +2 -0
  138. package/components/graph/svelvet/container/views/Svelvet.svelte +4 -3
  139. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +3 -0
  140. package/components/home/ItemsList.svelte +1 -1
  141. package/components/icons/WindmillIcon.svelte +4 -0
  142. package/components/icons/WindmillIcon.svelte.d.ts +1 -0
  143. package/components/propertyPicker/PropPicker.svelte +2 -2
  144. package/components/scripts/CreateActionsScript.svelte +4 -22
  145. package/editorUtils.js +3 -1
  146. package/gen/core/OpenAPI.js +1 -1
  147. package/gen/index.d.ts +6 -0
  148. package/gen/index.js +2 -0
  149. package/gen/models/CreateInput.d.ts +5 -0
  150. package/gen/models/CreateInput.js +4 -0
  151. package/gen/models/EditSchedule.d.ts +1 -0
  152. package/gen/models/Input.d.ts +6 -0
  153. package/gen/models/Input.js +4 -0
  154. package/gen/models/NewSchedule.d.ts +1 -1
  155. package/gen/models/NewTokenImpersonate.d.ts +5 -0
  156. package/gen/models/NewTokenImpersonate.js +4 -0
  157. package/gen/models/RunnableType.d.ts +5 -0
  158. package/gen/models/RunnableType.js +9 -0
  159. package/gen/models/Schedule.d.ts +1 -1
  160. package/gen/models/UpdateInput.d.ts +4 -0
  161. package/gen/models/UpdateInput.js +4 -0
  162. package/gen/services/FlowService.d.ts +18 -0
  163. package/gen/services/FlowService.js +19 -0
  164. package/gen/services/InputService.d.ts +78 -0
  165. package/gen/services/InputService.js +95 -0
  166. package/gen/services/JobService.d.ts +35 -15
  167. package/gen/services/JobService.js +25 -7
  168. package/gen/services/ScheduleService.d.ts +2 -2
  169. package/gen/services/ScheduleService.js +1 -1
  170. package/gen/services/ScriptService.d.ts +10 -0
  171. package/gen/services/ScriptService.js +16 -0
  172. package/gen/services/UserService.d.ts +12 -0
  173. package/gen/services/UserService.js +13 -0
  174. package/package.json +24 -13
  175. package/script_helpers.d.ts +1 -1
  176. package/script_helpers.js +7 -5
  177. package/utils.d.ts +2 -2
  178. package/utils.js +21 -11
  179. package/components/common/button/ButtonPopup.svelte +0 -78
  180. package/components/common/button/ButtonPopup.svelte.d.ts +0 -39
  181. package/components/common/button/ButtonPopupItem.svelte +0 -48
  182. package/components/common/button/ButtonPopupItem.svelte.d.ts +0 -28
@@ -26,36 +26,34 @@ $: upToDisabled =
26
26
  $selectedId?.includes('branch');
27
27
  </script>
28
28
 
29
- <div class="flex flex-row-reverse justify-between items-center gap-x-2">
29
+ <Button
30
+ size="xs"
31
+ on:click={() => {
32
+ previewMode = 'whole'
33
+ previewOpen = !previewOpen
34
+ }}
35
+ startIcon={{ icon: faPlay }}
36
+ >
37
+ Test flow
38
+ </Button>
39
+ {#if !upToDisabled}
30
40
  <Button
41
+ size="xs"
42
+ disabled={upToDisabled}
43
+ color="light"
44
+ variant="border"
31
45
  on:click={() => {
32
- previewMode = 'whole'
46
+ previewMode = 'upTo'
33
47
  previewOpen = !previewOpen
34
48
  }}
35
- size="sm"
36
49
  startIcon={{ icon: faPlay }}
37
50
  >
38
- Test flow
51
+ Test up to
52
+ <Badge baseClass="ml-1" color="indigo">
53
+ {$selectedId}
54
+ </Badge>
39
55
  </Button>
40
- {#if !upToDisabled}
41
- <Button
42
- size="sm"
43
- disabled={upToDisabled}
44
- color="light"
45
- variant="border"
46
- on:click={() => {
47
- previewMode = 'upTo'
48
- previewOpen = !previewOpen
49
- }}
50
- startIcon={{ icon: faPlay }}
51
- >
52
- Test up to
53
- <Badge baseClass="ml-1" color="indigo">
54
- {$selectedId}
55
- </Badge>
56
- </Button>
57
- {/if}
58
- </div>
56
+ {/if}
59
57
 
60
58
  <Drawer bind:open={previewOpen} alwaysOpen size="75%">
61
59
  <FlowPreviewContent
@@ -1,6 +1,7 @@
1
1
  export type Schedule = {
2
2
  args: Record<string, any>;
3
3
  cron: string;
4
+ timezone: string;
4
5
  enabled: boolean;
5
6
  };
6
7
  export declare function loadFlowSchedule(path: string, workspace?: string): Promise<Schedule>;
@@ -15,6 +15,7 @@ export async function loadFlowSchedule(path, workspace = '') {
15
15
  return {
16
16
  enabled: schedule.enabled,
17
17
  cron: schedule.schedule,
18
- args: schedule.args ?? {},
18
+ timezone: schedule.timezone,
19
+ args: schedule.args ?? {}
19
20
  };
20
21
  }
@@ -1,7 +1,7 @@
1
1
  <script>import { sugiyama, dagStratify, decrossOpt, coordCenter } from 'd3-dag';
2
2
  import { FlowStatusModule } from '../../gen';
3
3
  import { NODE, createIdGenerator, isNode, isLoop, isBranch } from '.';
4
- import { defaultIfEmptyString, truncateRev } from '../../utils';
4
+ import { defaultIfEmptyString, encodeState, truncateRev } from '../../utils';
5
5
  import { createEventDispatcher, setContext } from 'svelte';
6
6
  import Svelvet from './svelvet/container/views/Svelvet.svelte';
7
7
  import MapItem from '../flows/map/MapItem.svelte';
@@ -19,12 +19,15 @@ export let selectedId = writable(undefined);
19
19
  export let insertable = false;
20
20
  export let moving = undefined;
21
21
  export let scroll = false;
22
+ export let download = false;
23
+ export let fullSize = false;
22
24
  setContext('FlowGraphContext', { selectedId });
23
25
  let idGenerator;
24
26
  let nestedNodes;
25
27
  let nodes = [];
26
28
  let edges = [];
27
29
  let width, height;
30
+ let fullWidth;
28
31
  let errorHandlers = {};
29
32
  let dispatch = createEventDispatcher();
30
33
  $: {
@@ -64,8 +67,9 @@ async function createGraph() {
64
67
  const flatNodes = flattenNestedNodes(nestedNodes);
65
68
  const layered = layoutNodes(flatNodes);
66
69
  nodes = layered.nodes;
67
- // width = layered.width
68
- height = Math.min(Math.max(layered.height, minHeight), maxHeight ?? window.innerHeight - 100);
70
+ let hfull = Math.max(layered.height, minHeight);
71
+ fullWidth = layered.width;
72
+ height = fullSize ? hfull : Math.min(hfull, maxHeight ?? window.innerHeight - 100);
69
73
  edges = createEdges(nodes);
70
74
  }
71
75
  function getConvertedFlowModule(module, parent, edgeLabel, loopDepth, insertableEnd, modules) {
@@ -280,12 +284,17 @@ function layoutNodes(nodes) {
280
284
  id: des.data.id,
281
285
  position: {
282
286
  x: des.x
283
- ? des.data.loopDepth * 50 + des.x + width / 2 - boxSize.width / 2 - NODE.width / 2
287
+ ? des.data.loopDepth * 50 +
288
+ des.x +
289
+ (fullSize ? fullWidth : width) / 2 -
290
+ boxSize.width / 2 -
291
+ NODE.width / 2
284
292
  : 0,
285
293
  y: des.y || 0
286
294
  }
287
295
  })),
288
- height: boxSize.height + NODE.height
296
+ height: boxSize.height + NODE.height,
297
+ width: boxSize.width + NODE.width
289
298
  };
290
299
  }
291
300
  function createEdges(nodes) {
@@ -430,13 +439,18 @@ function createErrorHandler(mod, parent_module) {
430
439
  }
431
440
  </script>
432
441
 
433
- <div bind:clientWidth={width} class="w-full h-full overflow-hidden relative">
442
+ <div bind:clientWidth={width} class={fullSize ? '' : 'w-full h-full overflow-hidden relative'}>
434
443
  {#if width && height}
435
444
  <Svelvet
445
+ on:expand={() => {
446
+ localStorage.setItem('svelvet', encodeState({ modules, failureModule }))
447
+ window.open('/view_graph', '_blank')
448
+ }}
449
+ {download}
436
450
  highlightEdges={false}
437
451
  locked
438
452
  {nodes}
439
- {width}
453
+ width={fullSize ? fullWidth : width}
440
454
  {edges}
441
455
  {height}
442
456
  {scroll}
@@ -16,6 +16,8 @@ declare const __propDef: {
16
16
  insertable?: boolean | undefined;
17
17
  moving?: string | undefined;
18
18
  scroll?: boolean | undefined;
19
+ download?: boolean | undefined;
20
+ fullSize?: boolean | undefined;
19
21
  };
20
22
  events: {
21
23
  delete: CustomEvent<any>;
@@ -1,6 +1,6 @@
1
1
  <script>import { pointer, select, selectAll } from 'd3-selection';
2
2
  import { zoom, zoomIdentity, zoomTransform } from 'd3-zoom';
3
- import { onMount } from 'svelte';
3
+ import { createEventDispatcher, onMount } from 'svelte';
4
4
  import SimpleBezierEdge from '../../edges/views/Edges/SimpleBezierEdge.svelte';
5
5
  import SmoothStepEdge from '../../edges/views/Edges/SmoothStepEdge.svelte';
6
6
  import StepEdge from '../../edges/views/Edges/StepEdge.svelte';
@@ -8,12 +8,14 @@ import Node from '../../nodes/views/Node.svelte';
8
8
  import { determineD3Instance } from '../..//d3/controllers/d3';
9
9
  import { findStore } from '../../store/controllers/storeApi';
10
10
  import { onDestroy } from 'svelte';
11
+ import { Expand } from 'lucide-svelte';
11
12
  //these are typscripted as any, however they have been transformed inside of store.ts
12
13
  export let canvasId;
13
14
  export let width;
14
15
  export let height;
15
16
  export let boundary = false;
16
17
  export let scroll = false;
18
+ export let download = false;
17
19
  // here we lookup the store using the unique key
18
20
  const store = findStore(canvasId);
19
21
  const { edgesStore, nodesStore, nodeSelected, backgroundStore, movementStore, widthStore, heightStore, d3Scale } = store;
@@ -22,6 +24,7 @@ $: edges = Object.values($edgesStore);
22
24
  // declaring the grid and dot size for d3's transformations and zoom
23
25
  const gridSize = 15;
24
26
  const dotSize = 10;
27
+ const dispatch = createEventDispatcher();
25
28
  // leveraging d3 library to zoom/pan
26
29
  let d3 = {
27
30
  zoom,
@@ -49,8 +52,6 @@ onMount(() => {
49
52
  d3.select('#zoom_in').on('click', function () {
50
53
  try {
51
54
  d3Zoom.scaleBy(nodes.transition().duration(250), 1.4);
52
- // d3Zoom.translateTo(edgesd3, d3Translate.x, d3Translate.y)
53
- // d3Zoom.translateTo(nodesd3, d3Translate.x, d3Translate.y)
54
55
  }
55
56
  catch (e) {
56
57
  console.log('error', e);
@@ -59,37 +60,15 @@ onMount(() => {
59
60
  d3.select('#zoom_out').on('click', function () {
60
61
  try {
61
62
  d3Zoom.scaleBy(nodes.transition().duration(250), 0.714);
62
- // d3Zoom.translateTo(edgesd3.transition().duration(0), d3Translate.x, d3Translate.y)
63
- // d3Zoom.translateTo(nodesd3.transition().duration(0), d3Translate.x, d3Translate.y)
64
63
  }
65
64
  catch (e) {
66
65
  console.log('error', e);
67
66
  }
68
67
  });
69
- // })
70
- // d3Translate = zoomInit(d3, canvasId, d3Zoom, d3Translate, initialLocation, initialZoom, d3Scale)
71
68
  });
72
69
  onDestroy(() => {
73
70
  d3.select('svg').remove();
74
71
  });
75
- // This is necessary to make Graphview reactive to changes in initialZoom
76
- // When initialZoom changes, then zoomInit will set the zoom/position
77
- // let prevZoom = initialZoom
78
- // let prevInitialLocationX = initialLocation.x
79
- // let prevInitialLocationY = initialLocation.y
80
- // $: if (
81
- // initialZoom !== prevZoom ||
82
- // prevInitialLocationX !== initialLocation.x ||
83
- // prevInitialLocationY !== initialLocation.y
84
- // ) {
85
- // prevZoom = initialZoom
86
- // prevInitialLocationX = initialLocation.x
87
- // prevInitialLocationY = initialLocation.y
88
- // d3Translate = zoomInit(d3, canvasId, d3Zoom, d3Translate, initialLocation, initialZoom, d3Scale)
89
- // }
90
- // moves canvas when you click on the minimap
91
- // handles case for when minimap sends message back to initiate translation event (click to traverse minimap)
92
- // moves camera to the clicked node
93
72
  function handleZoom(e) {
94
73
  if (!$movementStore)
95
74
  return;
@@ -183,18 +162,26 @@ function handleZoom(e) {
183
162
  </svg>
184
163
  </div>
185
164
  <div id="buttons">
186
- <button id="zoom_in">+</button>
187
- <button id="zoom_out">-</button>
165
+ <button title="Zoom In" id="zoom_in">+</button>
166
+ <button title="Zoom Out" id="zoom_out">-</button>
167
+ {#if download}
168
+ <button title="Download" id="download" on:click={() => dispatch('expand')}
169
+ ><Expand size="15" /></button
170
+ >
171
+ {/if}
188
172
  </div>
189
173
 
190
174
  <style>
191
175
  #buttons {
192
176
  position: absolute;
193
177
  top: 4px;
194
- right: 4px;
178
+ right: 10px;
195
179
  z-index: 20;
196
180
  }
197
-
181
+ #buttons > #download {
182
+ padding: 0;
183
+ padding-left: 3.5px;
184
+ }
198
185
  #buttons > button {
199
186
  border-radius: 4px;
200
187
  background-color: white;
@@ -202,6 +189,7 @@ function handleZoom(e) {
202
189
  padding-right: 4px;
203
190
  padding-left: 4px;
204
191
  width: 24px;
192
+ height: 24px;
205
193
  }
206
194
 
207
195
  .Nodes {
@@ -6,9 +6,11 @@ declare const __propDef: {
6
6
  height: number;
7
7
  boundary?: boolean | undefined;
8
8
  scroll?: boolean | undefined;
9
+ download?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  contextmenu: MouseEvent;
13
+ expand: CustomEvent<any>;
12
14
  } & {
13
15
  [evt: string]: CustomEvent<any>;
14
16
  };
@@ -3,8 +3,8 @@ import { createStoreEmpty, populateSvelvetStoreFromUserInput } from '../../store
3
3
  import { afterUpdate, onMount } from 'svelte';
4
4
  import GraphView from './GraphView.svelte';
5
5
  import { sanitizeCanvasOptions, sanitizeUserNodesAndEdges } from '../controllers/middleware';
6
- export let nodes; // TODO: update type to make possible user id being a number
7
- export let edges; // TODO: update type to make possible user id being a number
6
+ export let nodes;
7
+ export let edges;
8
8
  export let bgColor = '#ffffff'; // this is used to set the background color of the the Svelvet canvas
9
9
  export let width = 600;
10
10
  export let height = 600;
@@ -20,6 +20,7 @@ export let locked = false; // if true, node movement is disabled
20
20
  export let editable = false;
21
21
  export let highlightEdges = true;
22
22
  export let scroll = false;
23
+ export let download = false;
23
24
  // generates a unique string for each svelvet component's unique store instance
24
25
  // creates a store that uses the unique sting as the key to create and look up the corresponding store
25
26
  // this way we can have multiple Svelvet Components on the same page and prevent overlap of information
@@ -102,7 +103,7 @@ afterUpdate(() => {
102
103
  {#if error != ''}
103
104
  <div class="error text-red-600 center-center p-4">{error}</div>
104
105
  {:else}
105
- <GraphView {scroll} {canvasId} {width} {height} {boundary} />
106
+ <GraphView on:expand {download} {scroll} {canvasId} {width} {height} {boundary} />
106
107
  {/if}
107
108
  </div>
108
109
 
@@ -19,8 +19,11 @@ declare const __propDef: {
19
19
  editable?: boolean | undefined;
20
20
  highlightEdges?: boolean | undefined;
21
21
  scroll?: boolean | undefined;
22
+ download?: boolean | undefined;
22
23
  };
23
24
  events: {
25
+ expand: CustomEvent<any>;
26
+ } & {
24
27
  [evt: string]: CustomEvent<any>;
25
28
  };
26
29
  slots: {};
@@ -256,7 +256,7 @@ let archived = false;
256
256
  {:else}
257
257
  <div class="border rounded-md divide-y divide-gray-200">
258
258
  <!-- <VirtualList {items} let:item bind:start bind:end> -->
259
- {#each (items ?? []).slice(0, nbDisplayed) as item (item.type + '/' + item.path + (item.summary ?? ''))}
259
+ {#each (items ?? []).slice(0, nbDisplayed) as item (item.type + '/' + item.path)}
260
260
  {#if item.type == 'script'}
261
261
  <ScriptRow
262
262
  bind:deleteConfirmedCallback
@@ -1,11 +1,15 @@
1
1
  <script>export let height = '24px';
2
2
  export let width = '24px';
3
3
  export let white = false;
4
+ export let spin = undefined;
4
5
  </script>
5
6
 
6
7
  <!-- Generator: Adobe Illustrator 26.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
7
8
  <svg
8
9
  class={$$props.class}
10
+ class:animate-[spin_5s_linear_infinite]={spin === 'fast'}
11
+ class:animate-[spin_15s_linear_infinite]={spin === 'medium'}
12
+ class:animate-[spin_50s_linear_infinite]={spin === 'slow'}
9
13
  version="1.1"
10
14
  id="Calque_1"
11
15
  xmlns="http://www.w3.org/2000/svg"
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  height?: string | undefined;
6
6
  width?: string | undefined;
7
7
  white?: boolean | undefined;
8
+ spin?: 'slow' | 'medium' | 'fast' | undefined;
8
9
  };
9
10
  events: {
10
11
  [evt: string]: CustomEvent<any>;
@@ -38,7 +38,7 @@ async function loadResources() {
38
38
  }
39
39
  </script>
40
40
 
41
- <div class="flex flex-col h-full ">
41
+ <div class="flex flex-col h-full">
42
42
  <div class="px-2">
43
43
  {#if !notSelectable}
44
44
  <div class="flex flex-row space-x-1">
@@ -50,7 +50,7 @@ async function loadResources() {
50
50
  {`Mode: ${$propPickerConfig?.insertionMode}`}
51
51
  </Badge>
52
52
  {:else}
53
- <Badge large color="blue">&leftarrow; Select a step input</Badge>
53
+ <Badge large color="blue">&leftarrow; Edit or link an input</Badge>
54
54
  {/if}
55
55
  </div>
56
56
  {/if}
@@ -1,29 +1,11 @@
1
1
  <script>import { faPlus } from '@fortawesome/free-solid-svg-icons';
2
- import { ButtonPopup, ButtonPopupItem } from '../common';
3
- import Drawer from '../common/drawer/Drawer.svelte';
4
- import DrawerContent from '../common/drawer/DrawerContent.svelte';
5
- import WorkspaceScriptPicker from '../flows/pickers/WorkspaceScriptPicker.svelte';
6
- import { goto } from '$app/navigation';
7
2
  import { Code2 } from 'lucide-svelte';
8
- let drawer = undefined;
3
+ import Button from '../common/button/Button.svelte';
9
4
  </script>
10
5
 
11
6
  <!-- Buttons -->
12
7
  <div class="flex flex-row gap-2">
13
- <ButtonPopup size="sm" spacingSize="xl" startIcon={{ icon: faPlus }} href="/scripts/add">
14
- <svelte:fragment slot="main">Script <Code2 class="ml-1.5" size={18} /></svelte:fragment>
15
- <ButtonPopupItem on:click={() => drawer?.toggleDrawer?.()}>
16
- Import from template
17
- </ButtonPopupItem>
18
- </ButtonPopup>
8
+ <Button size="sm" spacingSize="xl" startIcon={{ icon: faPlus }} href="/scripts/add">
9
+ Script <Code2 class="ml-1.5" size={18} />
10
+ </Button>
19
11
  </div>
20
-
21
- <!-- Template script list -->
22
- <Drawer bind:this={drawer} size="800px">
23
- <DrawerContent title="Pick a template" on:close={() => drawer?.toggleDrawer?.()}>
24
- <WorkspaceScriptPicker
25
- isTemplate
26
- on:pick={(e) => goto(`/scripts/add?template=${e.detail.path}`)}
27
- />
28
- </DrawerContent>
29
- </Drawer>
package/editorUtils.js CHANGED
@@ -21,7 +21,7 @@ export function editorConfig(model, code, lang, automaticLayout, fixedOverflowWi
21
21
  enabled: true
22
22
  },
23
23
  suggest: {
24
- showKeywords: false
24
+ showKeywords: true
25
25
  },
26
26
  bracketPairColorization: {
27
27
  enabled: true
@@ -51,6 +51,8 @@ export function langToExt(lang) {
51
51
  return 'go';
52
52
  case 'bash':
53
53
  return 'sh';
54
+ case 'deno':
55
+ return 'ts';
54
56
  default:
55
57
  return 'unknown';
56
58
  }
@@ -1,6 +1,6 @@
1
1
  export const OpenAPI = {
2
2
  BASE: '/api',
3
- VERSION: '1.84.1',
3
+ VERSION: '1.86.0',
4
4
  WITH_CREDENTIALS: false,
5
5
  CREDENTIALS: 'include',
6
6
  TOKEN: undefined,
package/gen/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export type { BranchAll } from './models/BranchAll';
8
8
  export type { BranchOne } from './models/BranchOne';
9
9
  export { CompletedJob } from './models/CompletedJob';
10
10
  export type { ContextualVariable } from './models/ContextualVariable';
11
+ export type { CreateInput } from './models/CreateInput';
11
12
  export type { CreateResource } from './models/CreateResource';
12
13
  export type { CreateVariable } from './models/CreateVariable';
13
14
  export type { CreateWorkspace } from './models/CreateWorkspace';
@@ -29,6 +30,7 @@ export type { ForloopFlow } from './models/ForloopFlow';
29
30
  export { GlobalUserInfo } from './models/GlobalUserInfo';
30
31
  export type { Group } from './models/Group';
31
32
  export type { Identity } from './models/Identity';
33
+ export type { Input } from './models/Input';
32
34
  export type { InputTransform } from './models/InputTransform';
33
35
  export type { JavascriptTransform } from './models/JavascriptTransform';
34
36
  export { Job } from './models/Job';
@@ -39,6 +41,7 @@ export type { Login } from './models/Login';
39
41
  export { MainArgSignature } from './models/MainArgSignature';
40
42
  export type { NewSchedule } from './models/NewSchedule';
41
43
  export type { NewToken } from './models/NewToken';
44
+ export type { NewTokenImpersonate } from './models/NewTokenImpersonate';
42
45
  export type { NewUser } from './models/NewUser';
43
46
  export type { OpenFlow } from './models/OpenFlow';
44
47
  export type { OpenFlowWPath } from './models/OpenFlowWPath';
@@ -51,6 +54,7 @@ export { RawScript } from './models/RawScript';
51
54
  export type { Resource } from './models/Resource';
52
55
  export type { ResourceType } from './models/ResourceType';
53
56
  export type { Retry } from './models/Retry';
57
+ export { RunnableType } from './models/RunnableType';
54
58
  export type { Schedule } from './models/Schedule';
55
59
  export { Script } from './models/Script';
56
60
  export type { ScriptArgs } from './models/ScriptArgs';
@@ -58,6 +62,7 @@ export type { SlackToken } from './models/SlackToken';
58
62
  export type { StaticTransform } from './models/StaticTransform';
59
63
  export type { TokenResponse } from './models/TokenResponse';
60
64
  export type { TruncatedToken } from './models/TruncatedToken';
65
+ export type { UpdateInput } from './models/UpdateInput';
61
66
  export type { Usage } from './models/Usage';
62
67
  export type { User } from './models/User';
63
68
  export type { UserWorkspaceList } from './models/UserWorkspaceList';
@@ -73,6 +78,7 @@ export { FlowService } from './services/FlowService';
73
78
  export { FolderService } from './services/FolderService';
74
79
  export { GranularAclService } from './services/GranularAclService';
75
80
  export { GroupService } from './services/GroupService';
81
+ export { InputService } from './services/InputService';
76
82
  export { JobService } from './services/JobService';
77
83
  export { OauthService } from './services/OauthService';
78
84
  export { ResourceService } from './services/ResourceService';
package/gen/index.js CHANGED
@@ -16,6 +16,7 @@ export { Policy } from './models/Policy';
16
16
  export { Preview } from './models/Preview';
17
17
  export { QueuedJob } from './models/QueuedJob';
18
18
  export { RawScript } from './models/RawScript';
19
+ export { RunnableType } from './models/RunnableType';
19
20
  export { Script } from './models/Script';
20
21
  export { AdminService } from './services/AdminService';
21
22
  export { AppService } from './services/AppService';
@@ -26,6 +27,7 @@ export { FlowService } from './services/FlowService';
26
27
  export { FolderService } from './services/FolderService';
27
28
  export { GranularAclService } from './services/GranularAclService';
28
29
  export { GroupService } from './services/GroupService';
30
+ export { InputService } from './services/InputService';
29
31
  export { JobService } from './services/JobService';
30
32
  export { OauthService } from './services/OauthService';
31
33
  export { ResourceService } from './services/ResourceService';
@@ -0,0 +1,5 @@
1
+ export type CreateInput = {
2
+ name: string;
3
+ args: any;
4
+ created_by: string;
5
+ };
@@ -0,0 +1,4 @@
1
+ /* istanbul ignore file */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -1,5 +1,6 @@
1
1
  import type { ScriptArgs } from './ScriptArgs';
2
2
  export type EditSchedule = {
3
3
  schedule: string;
4
+ timezone: string;
4
5
  args: ScriptArgs;
5
6
  };
@@ -0,0 +1,6 @@
1
+ export type Input = {
2
+ id: string;
3
+ name: string;
4
+ args: any;
5
+ created_by: string;
6
+ };
@@ -0,0 +1,4 @@
1
+ /* istanbul ignore file */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -2,7 +2,7 @@ import type { ScriptArgs } from './ScriptArgs';
2
2
  export type NewSchedule = {
3
3
  path: string;
4
4
  schedule: string;
5
- offset?: number;
5
+ timezone: string;
6
6
  script_path: string;
7
7
  is_flow: boolean;
8
8
  args: ScriptArgs;
@@ -0,0 +1,5 @@
1
+ export type NewTokenImpersonate = {
2
+ label?: string;
3
+ expiration?: string;
4
+ impersonate_email: string;
5
+ };
@@ -0,0 +1,4 @@
1
+ /* istanbul ignore file */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare enum RunnableType {
2
+ SCRIPT_HASH = "ScriptHash",
3
+ SCRIPT_PATH = "ScriptPath",
4
+ FLOW_PATH = "FlowPath"
5
+ }
@@ -0,0 +1,9 @@
1
+ /* istanbul ignore file */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export var RunnableType;
5
+ (function (RunnableType) {
6
+ RunnableType["SCRIPT_HASH"] = "ScriptHash";
7
+ RunnableType["SCRIPT_PATH"] = "ScriptPath";
8
+ RunnableType["FLOW_PATH"] = "FlowPath";
9
+ })(RunnableType || (RunnableType = {}));
@@ -4,7 +4,7 @@ export type Schedule = {
4
4
  edited_by: string;
5
5
  edited_at: string;
6
6
  schedule: string;
7
- offset_: number;
7
+ timezone: string;
8
8
  enabled: boolean;
9
9
  script_path: string;
10
10
  is_flow: boolean;
@@ -0,0 +1,4 @@
1
+ export type UpdateInput = {
2
+ id: string;
3
+ name: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ /* istanbul ignore file */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -1,4 +1,5 @@
1
1
  import type { Flow } from '../models/Flow';
2
+ import type { Input } from '../models/Input';
2
3
  import type { OpenFlow } from '../models/OpenFlow';
3
4
  import type { OpenFlowWPath } from '../models/OpenFlowWPath';
4
5
  import type { CancelablePromise } from '../core/CancelablePromise';
@@ -143,4 +144,21 @@ export declare class FlowService {
143
144
  workspace: string;
144
145
  path: string;
145
146
  }): CancelablePromise<string>;
147
+ /**
148
+ * list inputs for previous completed flow jobs
149
+ * @returns Input input history for completed jobs with this flow path
150
+ * @throws ApiError
151
+ */
152
+ static getFlowInputHistoryByPath({ workspace, path, page, perPage, }: {
153
+ workspace: string;
154
+ path: string;
155
+ /**
156
+ * which page to return (start at 1, default 1)
157
+ */
158
+ page?: number;
159
+ /**
160
+ * number of items to return for a given page (default 30, max 100)
161
+ */
162
+ perPage?: number;
163
+ }): CancelablePromise<Array<Input>>;
146
164
  }