windmill-components 1.444.1 → 1.447.4

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 (229) hide show
  1. package/package/autosize.js +1 -1
  2. package/package/components/AppConnectInner.svelte +2 -1
  3. package/package/components/ArgInput.svelte +37 -24
  4. package/package/components/CapturesInputs.svelte +16 -0
  5. package/package/components/CapturesInputs.svelte.d.ts +21 -0
  6. package/package/components/Dev.svelte +7 -1
  7. package/package/components/EditableSchemaForm.svelte +369 -290
  8. package/package/components/EditableSchemaForm.svelte.d.ts +12 -2
  9. package/package/components/Editor.svelte +5 -7
  10. package/package/components/FirstStepInputs.svelte +111 -0
  11. package/package/components/FirstStepInputs.svelte.d.ts +17 -0
  12. package/package/components/FlowBuilder.svelte +28 -7
  13. package/package/components/FlowPreviewContent.svelte +72 -1
  14. package/package/components/FlowPreviewContent.svelte.d.ts +1 -0
  15. package/package/components/GfmMarkdown.svelte +93 -2
  16. package/package/components/HighlightCode.svelte +2 -0
  17. package/package/components/HistoricInputs.svelte +193 -0
  18. package/package/components/HistoricInputs.svelte.d.ts +20 -0
  19. package/package/components/InfiniteList.svelte +161 -0
  20. package/package/components/InfiniteList.svelte.d.ts +40 -0
  21. package/package/components/LightweightArgInput.svelte +19 -15
  22. package/package/components/MoveDrawer.svelte +2 -1
  23. package/package/components/Path.svelte +7 -1
  24. package/package/components/Path.svelte.d.ts +1 -1
  25. package/package/components/ResourcePicker.svelte +2 -1
  26. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  27. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  28. package/package/components/SaveInputsButton.svelte +53 -0
  29. package/package/components/SaveInputsButton.svelte.d.ts +24 -0
  30. package/package/components/SavedInputs.svelte +33 -61
  31. package/package/components/SavedInputsPicker.svelte +264 -0
  32. package/package/components/SavedInputsPicker.svelte.d.ts +20 -0
  33. package/package/components/ScheduleEditorInner.svelte +0 -1
  34. package/package/components/SchemaForm.svelte +22 -3
  35. package/package/components/ScriptBuilder.svelte +595 -562
  36. package/package/components/ScriptEditor.svelte +10 -3
  37. package/package/components/ScriptEditor.svelte.d.ts +5 -2
  38. package/package/components/ScriptSchema.svelte +1 -2
  39. package/package/components/Section.svelte +6 -4
  40. package/package/components/ShareModal.svelte.d.ts +2 -2
  41. package/package/components/SimpleEditor.svelte +39 -7
  42. package/package/components/SimpleEditor.svelte.d.ts +1 -4
  43. package/package/components/StringTypeNarrowing.svelte +3 -1
  44. package/package/components/TestConnection.svelte +5 -0
  45. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  46. package/package/components/WorkerGroup.svelte +2 -1
  47. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -0
  48. package/package/components/apps/editor/component/components.d.ts +79 -79
  49. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  50. package/package/components/apps/editor/component/default-codes.js +10 -10
  51. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +2 -1
  52. package/package/components/apps/inputType.d.ts +2 -2
  53. package/package/components/common/button/Button.svelte +10 -52
  54. package/package/components/common/button/PulseButton.svelte +81 -0
  55. package/package/components/common/button/PulseButton.svelte.d.ts +34 -0
  56. package/package/components/common/button/RoundIconButton.svelte +11 -0
  57. package/package/components/common/button/RoundIconButton.svelte.d.ts +19 -0
  58. package/package/components/common/button/model.d.ts +1 -0
  59. package/package/components/common/button/model.js +47 -0
  60. package/package/components/common/fileUpload/FileUpload.svelte +3 -1
  61. package/package/components/common/fileUpload/FileUpload.svelte.d.ts +1 -0
  62. package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
  63. package/package/components/common/layout/List.svelte +10 -4
  64. package/package/components/common/layout/List.svelte.d.ts +1 -0
  65. package/package/components/common/tabs/Tab.svelte +14 -1
  66. package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
  67. package/package/components/copilot/ScriptGen.svelte +1 -1
  68. package/package/components/copilot/lib.js +1 -1
  69. package/package/components/copilot/prompts/edit.yaml +1 -1
  70. package/package/components/copilot/prompts/editPrompt.js +1 -1
  71. package/package/components/copilot/prompts/fix.yaml +1 -1
  72. package/package/components/copilot/prompts/fixPrompt.js +1 -1
  73. package/package/components/copilot/prompts/gen.yaml +1 -1
  74. package/package/components/copilot/prompts/genPrompt.js +1 -1
  75. package/package/components/custom_ui.d.ts +1 -0
  76. package/package/components/details/DetailPageDetailPanel.svelte +20 -19
  77. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +4 -1
  78. package/package/components/details/DetailPageLayout.svelte +4 -1
  79. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  80. package/package/components/details/DetailPageTriggerPanel.svelte +84 -63
  81. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +3 -1
  82. package/package/components/details/EmailTriggerConfigSection.svelte +1 -1
  83. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +2 -1
  84. package/package/components/details/EmailTriggerPanel.svelte +2 -0
  85. package/package/components/details/EmailTriggerPanel.svelte.d.ts +2 -0
  86. package/package/components/flows/FlowEditor.svelte +8 -2
  87. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  88. package/package/components/flows/common/FlowCard.svelte +12 -6
  89. package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -0
  90. package/package/components/flows/content/FlowEditorPanel.svelte +15 -9
  91. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  92. package/package/components/flows/content/FlowInput.svelte +449 -98
  93. package/package/components/flows/content/FlowInput.svelte.d.ts +2 -0
  94. package/package/components/flows/content/FlowInputEditor.svelte +46 -0
  95. package/package/components/flows/content/FlowInputEditor.svelte.d.ts +25 -0
  96. package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
  97. package/package/components/flows/content/FlowLoop.svelte +192 -194
  98. package/package/components/flows/content/FlowModuleComponent.svelte +372 -382
  99. package/package/components/flows/content/FlowModuleMock.svelte +6 -7
  100. package/package/components/flows/content/FlowPathViewer.svelte +2 -1
  101. package/package/components/flows/content/FlowSettings.svelte +25 -3
  102. package/package/components/flows/content/FlowWhileLoop.svelte +97 -99
  103. package/package/components/flows/flowStore.d.ts +13 -0
  104. package/package/components/flows/flowStore.js +41 -0
  105. package/package/components/flows/header/FlowPreviewButtons.svelte +10 -4
  106. package/package/components/flows/header/FlowPreviewButtons.svelte.d.ts +4 -2
  107. package/package/components/flows/header/FlowYamlEditor.svelte +3 -0
  108. package/package/components/flows/map/FlowModuleSchemaItem.svelte +8 -58
  109. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +67 -0
  110. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +24 -0
  111. package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
  112. package/package/components/flows/pickers/FlowScriptPicker.svelte +1 -1
  113. package/package/components/flows/previousResults.d.ts +1 -1
  114. package/package/components/flows/previousResults.js +7 -2
  115. package/package/components/flows/types.d.ts +7 -0
  116. package/package/components/flows/utils.d.ts +1 -0
  117. package/package/components/flows/utils.js +3 -0
  118. package/package/components/graph/graphBuilder.js +1 -1
  119. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +22 -8
  120. package/package/components/graph/renderers/triggers/TriggersBadge.svelte.d.ts +1 -1
  121. package/package/components/icons/NatsIcon.svelte +19 -0
  122. package/package/components/icons/NatsIcon.svelte.d.ts +18 -0
  123. package/package/components/icons/OracleDBIcon.svelte +15 -0
  124. package/package/components/icons/OracleDBIcon.svelte.d.ts +25 -0
  125. package/package/components/icons/index.d.ts +7 -1
  126. package/package/components/icons/index.js +8 -2
  127. package/package/components/meltComponents/ButtonDropDown.svelte +32 -0
  128. package/package/components/meltComponents/ButtonDropDown.svelte.d.ts +27 -0
  129. package/package/components/meltComponents/Popover.svelte +7 -4
  130. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  131. package/package/components/runs/RunsFilter.svelte +2 -2
  132. package/package/components/schema/AddPropertyFormV2.svelte +46 -0
  133. package/package/components/schema/AddPropertyFormV2.svelte.d.ts +18 -0
  134. package/package/components/schema/AddPropertyV2.svelte +151 -0
  135. package/package/components/schema/AddPropertyV2.svelte.d.ts +25 -0
  136. package/package/components/schema/EditableSchemaDrawer.svelte +17 -8
  137. package/package/components/schema/EditableSchemaWrapper.svelte +58 -14
  138. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +0 -1
  139. package/package/components/schema/FlowPropertyEditor.svelte +8 -3
  140. package/package/components/schema/JobSchemaPicker.svelte +32 -0
  141. package/package/components/schema/JobSchemaPicker.svelte.d.ts +19 -0
  142. package/package/components/schema/PropertyEditor.svelte +9 -1
  143. package/package/components/schema/RunningJobSchemaPicker.svelte +67 -0
  144. package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +21 -0
  145. package/package/components/schema/SchemaFormDND.svelte +1 -1
  146. package/package/components/schema/SchemaPicker.svelte +92 -0
  147. package/package/components/schema/SchemaPicker.svelte.d.ts +23 -0
  148. package/package/components/schema/SchemaPickerRow.svelte +95 -0
  149. package/package/components/schema/SchemaPickerRow.svelte.d.ts +22 -0
  150. package/package/components/scriptEditor/LogPanel.svelte +1 -1
  151. package/package/components/settings/ChangeWorkspaceColor.svelte +103 -0
  152. package/package/components/settings/ChangeWorkspaceColor.svelte.d.ts +16 -0
  153. package/package/components/settings/ChangeWorkspaceId.svelte +1 -0
  154. package/package/components/settings/ChangeWorkspaceName.svelte +4 -0
  155. package/package/components/sidebar/MenuButton.svelte +5 -2
  156. package/package/components/sidebar/MenuButton.svelte.d.ts +1 -0
  157. package/package/components/sidebar/SidebarContent.svelte +8 -0
  158. package/package/components/sidebar/WorkspaceMenu.svelte +40 -21
  159. package/package/components/table/DataTable.svelte +43 -3
  160. package/package/components/table/DataTable.svelte.d.ts +2 -0
  161. package/package/components/table/Head.svelte +1 -1
  162. package/package/components/table/Row.svelte +11 -1
  163. package/package/components/table/Row.svelte.d.ts +3 -0
  164. package/package/components/table/index.d.ts +3 -0
  165. package/package/components/table/index.js +3 -0
  166. package/package/components/triggers/CaptureButton.svelte +38 -4
  167. package/package/components/triggers/CaptureButton.svelte.d.ts +3 -1
  168. package/package/components/triggers/CaptureIcon.svelte +7 -4
  169. package/package/components/triggers/CaptureIcon.svelte.d.ts +7 -13
  170. package/package/components/triggers/CaptureSection.svelte +50 -17
  171. package/package/components/triggers/CaptureSection.svelte.d.ts +5 -3
  172. package/package/components/triggers/CaptureTable.svelte +239 -186
  173. package/package/components/triggers/CaptureTable.svelte.d.ts +9 -11
  174. package/package/components/triggers/CaptureWrapper.svelte +126 -109
  175. package/package/components/triggers/CaptureWrapper.svelte.d.ts +3 -1
  176. package/package/components/triggers/KafkaTriggerEditorInner.svelte +1 -0
  177. package/package/components/triggers/KafkaTriggersConfigSection.svelte +16 -4
  178. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +3 -1
  179. package/package/components/triggers/KafkaTriggersPanel.svelte +2 -0
  180. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +2 -0
  181. package/package/components/triggers/NatsTriggerEditor.svelte +19 -0
  182. package/package/components/triggers/NatsTriggerEditor.svelte.d.ts +21 -0
  183. package/package/components/triggers/NatsTriggerEditorInner.svelte +239 -0
  184. package/package/components/triggers/NatsTriggerEditorInner.svelte.d.ts +21 -0
  185. package/package/components/triggers/NatsTriggersConfigSection.svelte +276 -0
  186. package/package/components/triggers/NatsTriggersConfigSection.svelte.d.ts +37 -0
  187. package/package/components/triggers/NatsTriggersPanel.svelte +126 -0
  188. package/package/components/triggers/NatsTriggersPanel.svelte.d.ts +26 -0
  189. package/package/components/triggers/RouteEditorConfigSection.svelte +12 -2
  190. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +5 -1
  191. package/package/components/triggers/RouteEditorInner.svelte +5 -0
  192. package/package/components/triggers/RoutesPanel.svelte +4 -0
  193. package/package/components/triggers/RoutesPanel.svelte.d.ts +3 -0
  194. package/package/components/triggers/TriggersEditor.svelte +146 -97
  195. package/package/components/triggers/TriggersEditor.svelte.d.ts +2 -0
  196. package/package/components/triggers/TriggersEditorSection.svelte +19 -13
  197. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +3 -0
  198. package/package/components/triggers/TriggersWrapper.svelte +7 -3
  199. package/package/components/triggers/TriggersWrapper.svelte.d.ts +2 -1
  200. package/package/components/triggers/WebhooksConfigSection.svelte +7 -6
  201. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +2 -1
  202. package/package/components/triggers/WebhooksPanel.svelte +2 -0
  203. package/package/components/triggers/WebhooksPanel.svelte.d.ts +2 -0
  204. package/package/components/triggers/WebsocketEditorConfigSection.svelte +3 -1
  205. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +2 -1
  206. package/package/components/triggers/WebsocketTriggersPanel.svelte +2 -0
  207. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +2 -0
  208. package/package/components/triggers.d.ts +2 -1
  209. package/package/components/triggers.js +2 -0
  210. package/package/components/vscode.js +12 -8
  211. package/package/consts.d.ts +1 -0
  212. package/package/consts.js +18 -0
  213. package/package/gen/core/OpenAPI.js +1 -1
  214. package/package/gen/schemas.gen.d.ts +207 -13
  215. package/package/gen/schemas.gen.js +207 -13
  216. package/package/gen/services.gen.d.ts +118 -10
  217. package/package/gen/services.gen.js +237 -17
  218. package/package/gen/types.gen.d.ts +400 -40
  219. package/package/hubPaths.json +2 -1
  220. package/package/infer.js +11 -2
  221. package/package/monaco_workers/build_workers.js +39 -37
  222. package/package/monaco_workers/graphql.worker.bundle.js +18371 -36513
  223. package/package/script_helpers.d.ts +5 -2
  224. package/package/script_helpers.js +46 -8
  225. package/package/scripts.js +4 -0
  226. package/package/stores.d.ts +2 -1
  227. package/package/stores.js +2 -1
  228. package/package.json +14 -16
  229. package/package/monaco_workers/graphql.worker.bundle.d.ts +0 -0
@@ -0,0 +1,193 @@
1
+ <script>import { InputService } from '../gen/index.js';
2
+ import { workspaceStore } from '../stores.js';
3
+ import { sendUserToast } from '../utils.js';
4
+ import JobSchemaPicker from './schema/JobSchemaPicker.svelte';
5
+ import RunningJobSchemaPicker from './schema/RunningJobSchemaPicker.svelte';
6
+ import { createEventDispatcher, onDestroy } from 'svelte';
7
+ import JobLoader from './runs/JobLoader.svelte';
8
+ import { DataTable } from './table';
9
+ import { clickOutside } from '../utils';
10
+ import InfiniteList from './InfiniteList.svelte';
11
+ export let scriptHash = null;
12
+ export let scriptPath = null;
13
+ export let flowPath = null;
14
+ const dispatch = createEventDispatcher();
15
+ let jobs = [];
16
+ let loading = false;
17
+ let hasMoreCurrentRuns = false;
18
+ let page = 1;
19
+ let infiniteList = undefined;
20
+ let loadInputsPageFn = undefined;
21
+ let runnableType = undefined;
22
+ $: runnableType = scriptHash
23
+ ? 'ScriptHash'
24
+ : scriptPath
25
+ ? 'ScriptPath'
26
+ : flowPath
27
+ ? 'FlowPath'
28
+ : undefined;
29
+ let runnableId = undefined;
30
+ function initLoadInputs() {
31
+ runnableId = scriptHash || scriptPath || flowPath || undefined;
32
+ loadInputsPageFn = async (page, perPage) => {
33
+ const inputs = await InputService.getInputHistory({
34
+ workspace: $workspaceStore,
35
+ runnableId,
36
+ runnableType,
37
+ page,
38
+ perPage,
39
+ includePreview: true
40
+ });
41
+ const inputsWithPayload = await Promise.all(inputs.map(async (input) => {
42
+ const payloadData = await loadArgsFromHistory(input.id, undefined, false);
43
+ return {
44
+ ...input,
45
+ payloadData
46
+ };
47
+ }));
48
+ return inputsWithPayload;
49
+ };
50
+ infiniteList?.setLoader(loadInputsPageFn);
51
+ }
52
+ function handleSelected(data) {
53
+ if (selected === data.id) {
54
+ selected = undefined;
55
+ dispatch('select', undefined);
56
+ return;
57
+ }
58
+ selected = data.id;
59
+ dispatch('select', data.payloadData);
60
+ }
61
+ let selected = undefined;
62
+ onDestroy(() => {
63
+ selected = undefined;
64
+ dispatch('select', undefined);
65
+ });
66
+ async function getPropPickerElements() {
67
+ return Array.from(document.querySelectorAll('[data-schema-picker], [data-schema-picker] *'));
68
+ }
69
+ async function loadArgsFromHistory(id, input, allowLarge) {
70
+ if (!id)
71
+ return;
72
+ const payloadData = await InputService.getArgsFromHistoryOrSavedInput({
73
+ jobOrInputId: id,
74
+ workspace: $workspaceStore,
75
+ input,
76
+ allowLarge
77
+ });
78
+ return payloadData;
79
+ }
80
+ function handleKeydown(event) {
81
+ if (event.key === 'Escape' && selected) {
82
+ selected = undefined;
83
+ dispatch('select', undefined);
84
+ }
85
+ }
86
+ function handleError(e) {
87
+ if (e.type === 'load') {
88
+ sendUserToast(`Failed to load input history: ${e.error}`, true);
89
+ }
90
+ }
91
+ let jobHovered = undefined;
92
+ function refresh() {
93
+ if (infiniteList) {
94
+ infiniteList.loadData('refresh');
95
+ }
96
+ }
97
+ $: !loading && refresh();
98
+ $: $workspaceStore && (scriptHash || scriptPath || flowPath) && infiniteList && initLoadInputs();
99
+ </script>
100
+
101
+ <svelte:window on:keydown={handleKeydown} />
102
+
103
+ {#if runnableId}
104
+ <JobLoader
105
+ bind:jobs
106
+ path={runnableId}
107
+ isSkipped={false}
108
+ jobKindsCat="all"
109
+ user={null}
110
+ label={null}
111
+ folder={null}
112
+ concurrencyKey={null}
113
+ tag={null}
114
+ success="running"
115
+ argFilter={undefined}
116
+ bind:loading
117
+ syncQueuedRunsCount={false}
118
+ refreshRate={10000}
119
+ computeMinAndMax={undefined}
120
+ perPage={5}
121
+ />
122
+ {/if}
123
+
124
+ <div
125
+ class="h-full w-full flex flex-col gap-4"
126
+ use:clickOutside={{ capture: false, exclude: getPropPickerElements }}
127
+ on:click_outside={() => {
128
+ if (selected) {
129
+ selected = undefined
130
+ dispatch('select', undefined)
131
+ }
132
+ }}
133
+ >
134
+ <div class="grow-0">
135
+ <DataTable size="xs" bind:currentPage={page} hasMore={hasMoreCurrentRuns} tableFixed={true}>
136
+ {#if loading && (jobs == undefined || jobs?.length == 0)}
137
+ <div class="text-center text-tertiary text-xs py-2">Loading current runs...</div>
138
+ {:else if jobs?.length > 0}
139
+ <colgroup>
140
+ <col class="w-8" />
141
+ <col class="w-20" />
142
+ <col />
143
+ </colgroup>
144
+
145
+ <tbody class="w-full overflow-y-auto">
146
+ {#each jobs as job (job.id)}
147
+ <RunningJobSchemaPicker
148
+ {job}
149
+ selected={selected === job.id}
150
+ hovering={jobHovered === job.id}
151
+ on:select={(e) => handleSelected(e.detail)}
152
+ />
153
+ {/each}
154
+ {#if jobs?.length == 5}
155
+ <div class="text-left text-tertiary text-xs"
156
+ >... there may be more runs not displayed here as the limit is 5</div
157
+ >
158
+ {/if}
159
+ </tbody>
160
+ {:else}
161
+ <div class="text-center text-tertiary text-xs py-2">No job currently running</div>
162
+ {/if}
163
+ </DataTable>
164
+ </div>
165
+
166
+ <div class="min-h-0 grow">
167
+ <InfiniteList
168
+ bind:this={infiniteList}
169
+ selectedItemId={selected}
170
+ on:error={(e) => handleError(e.detail)}
171
+ on:select={(e) => handleSelected(e.detail)}
172
+ >
173
+ <svelte:fragment slot="columns">
174
+ <colgroup>
175
+ <col class="w-8" />
176
+ <col class="w-20" />
177
+ <col />
178
+ </colgroup>
179
+ </svelte:fragment>
180
+ <svelte:fragment let:item let:hover>
181
+ <JobSchemaPicker
182
+ job={item}
183
+ selected={selected === item.id}
184
+ hovering={hover}
185
+ payloadData={item.payloadData}
186
+ />
187
+ </svelte:fragment>
188
+ <svelte:fragment slot="empty">
189
+ <div class="text-center text-tertiary text-xs py-2">No previous Runs</div>
190
+ </svelte:fragment>
191
+ </InfiniteList>
192
+ </div>
193
+ </div>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ scriptHash?: string | null | undefined;
5
+ scriptPath?: string | null | undefined;
6
+ flowPath?: string | null | undefined;
7
+ };
8
+ events: {
9
+ select: CustomEvent<any>;
10
+ } & {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type HistoricInputsProps = typeof __propDef.props;
16
+ export type HistoricInputsEvents = typeof __propDef.events;
17
+ export type HistoricInputsSlots = typeof __propDef.slots;
18
+ export default class HistoricInputs extends SvelteComponent<HistoricInputsProps, HistoricInputsEvents, HistoricInputsSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,161 @@
1
+ <script>import DataTable from './table/DataTable.svelte';
2
+ import Skeleton from './common/skeleton/Skeleton.svelte';
3
+ import { createEventDispatcher } from 'svelte';
4
+ import { Row } from './table/index';
5
+ import { twMerge } from 'tailwind-merge';
6
+ const dispatch = createEventDispatcher();
7
+ export let loading = false;
8
+ export let items = undefined;
9
+ export let selectedItemId = undefined;
10
+ export let isEmpty = true;
11
+ export let length = 0;
12
+ let hasMore = false;
13
+ let page = 1;
14
+ let perPage = 10;
15
+ let hasAlreadyFailed = false;
16
+ let hovered = undefined;
17
+ let initLoad = false;
18
+ let loadInputs = undefined;
19
+ let deleteItemFn = undefined;
20
+ export async function loadData(loadOption = 'loadMore') {
21
+ if (!loadInputs)
22
+ return;
23
+ loading = true;
24
+ hasMore = hasMore;
25
+ if (hasMore && loadOption === 'loadMore') {
26
+ page++;
27
+ }
28
+ try {
29
+ const newItems = await loadInputs(1, page * perPage);
30
+ if (loadOption === 'refresh' &&
31
+ items &&
32
+ items?.length > 0 &&
33
+ newItems.length === items?.length &&
34
+ newItems.every((i, index) => i.id === items?.[index]?.id)) {
35
+ return;
36
+ }
37
+ const existingIds = new Set(items?.map((i) => i.id) || []);
38
+ items = newItems.map((item) => ({
39
+ ...item,
40
+ isNew: initLoad && !existingIds.has(item.id)
41
+ }));
42
+ setTimeout(() => {
43
+ if (items) {
44
+ items = items.map((item) => ({
45
+ ...item,
46
+ isNew: false
47
+ }));
48
+ }
49
+ }, 1000);
50
+ page = Math.floor(items.length / perPage) + 1;
51
+ hasMore = items.length === perPage * (page - 1);
52
+ initLoad = true;
53
+ isEmpty = items.length === 0;
54
+ length = items.length;
55
+ }
56
+ catch (err) {
57
+ console.error(err);
58
+ if (hasAlreadyFailed)
59
+ return;
60
+ hasAlreadyFailed = true;
61
+ dispatch('error', { type: 'load', error: err });
62
+ }
63
+ finally {
64
+ loading = false;
65
+ }
66
+ }
67
+ export async function deleteItem(id) {
68
+ if (!deleteItemFn)
69
+ return;
70
+ try {
71
+ items = items?.map((i) => (i.id === id ? { ...i, isDeleting: true } : i)) ?? [];
72
+ setTimeout(async () => {
73
+ deleteItemFn ? await deleteItemFn(id) : null;
74
+ if (selectedItemId === id) {
75
+ selectedItemId = null;
76
+ }
77
+ loadData('refresh');
78
+ }, 100);
79
+ }
80
+ catch (err) {
81
+ dispatch('error', { type: 'delete', error: err });
82
+ }
83
+ }
84
+ export async function setLoader(loader) {
85
+ loadInputs = loader;
86
+ loadData('forceRefresh');
87
+ }
88
+ export async function setDeleteItemFn(fn) {
89
+ deleteItemFn = fn;
90
+ }
91
+ </script>
92
+
93
+ <div class="h-full">
94
+ {#if items === undefined && loading}
95
+ <Skeleton layout={[[8]]} />
96
+ {:else if items && items.length > 0}
97
+ <DataTable
98
+ size="xs"
99
+ infiniteScroll
100
+ {hasMore}
101
+ tableFixed={true}
102
+ on:loadMore={() => {
103
+ loadData()
104
+ }}
105
+ >
106
+ <slot name="columns" />
107
+
108
+ <tbody class="h-full w-full">
109
+ {#each items ?? [] as item, index}
110
+ {@const hover = item.id === hovered}
111
+ <Row
112
+ on:click={() => dispatch('select', item)}
113
+ class={twMerge(
114
+ selectedItemId === item.id ? 'bg-surface-selected' : 'hover:bg-surface-hover',
115
+ 'cursor-pointer rounded-md',
116
+ item.isNew && index === 0 ? 'animate-slideIn' : 'group'
117
+ )}
118
+ on:hover={(e) => (hovered = e.detail ? item.id : undefined)}
119
+ >
120
+ <slot {item} {hover} />
121
+ </Row>
122
+ {/each}
123
+ </tbody>
124
+ </DataTable>
125
+ {:else}
126
+ <slot name="empty" {items} />
127
+ {/if}
128
+ </div>
129
+
130
+ <style>
131
+ @keyframes slideOut {
132
+ from {
133
+ opacity: 1;
134
+ transform: translateX(0);
135
+ max-height: 100px;
136
+ }
137
+ to {
138
+ opacity: 0;
139
+ transform: translateX(-100%);
140
+ max-height: 0;
141
+ margin: 0;
142
+ padding: 0;
143
+ }
144
+ }
145
+
146
+ @keyframes greenHighlight {
147
+ 0% {
148
+ background-color: rgba(70, 255, 138, 0.5);
149
+ box-shadow: 0 0 15px rgb(34 197 94 / 0.3);
150
+ }
151
+ 100% {
152
+ background-color: transparent;
153
+ box-shadow: none;
154
+ }
155
+ }
156
+
157
+ :global(.animate-slideIn) {
158
+ animation: greenHighlight 2s ease-out forwards;
159
+ will-change: transform, opacity, background-color, box-shadow;
160
+ position: relative;
161
+ }</style>
@@ -0,0 +1,40 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ loading?: boolean | undefined;
5
+ items?: any[] | undefined;
6
+ selectedItemId?: any | undefined;
7
+ isEmpty?: boolean | undefined;
8
+ length?: number | undefined;
9
+ loadData?: ((loadOption?: 'refresh' | 'forceRefresh' | 'loadMore') => Promise<void>) | undefined;
10
+ deleteItem?: ((id: string) => Promise<void>) | undefined;
11
+ setLoader?: ((loader: (page: number, perPage: number) => Promise<any[]>) => Promise<void>) | undefined;
12
+ setDeleteItemFn?: ((fn: (id: any) => Promise<any>) => Promise<void>) | undefined;
13
+ };
14
+ events: {
15
+ select: CustomEvent<any>;
16
+ error: CustomEvent<any>;
17
+ } & {
18
+ [evt: string]: CustomEvent<any>;
19
+ };
20
+ slots: {
21
+ columns: {};
22
+ default: {
23
+ item: any;
24
+ hover: any;
25
+ };
26
+ empty: {
27
+ items: any[] | undefined;
28
+ };
29
+ };
30
+ };
31
+ export type InfiniteListProps = typeof __propDef.props;
32
+ export type InfiniteListEvents = typeof __propDef.events;
33
+ export type InfiniteListSlots = typeof __propDef.slots;
34
+ export default class InfiniteList extends SvelteComponent<InfiniteListProps, InfiniteListEvents, InfiniteListSlots> {
35
+ get loadData(): (loadOption?: "refresh" | "loadMore" | "forceRefresh") => Promise<void>;
36
+ get deleteItem(): (id: string) => Promise<void>;
37
+ get setLoader(): (loader: (page: number, perPage: number) => Promise<any[]>) => Promise<void>;
38
+ get setDeleteItemFn(): (fn: (id: any) => Promise<any>) => Promise<void>;
39
+ }
40
+ export {};
@@ -272,19 +272,21 @@ function addItemByItemsType() {
272
272
  />
273
273
  {/if}
274
274
  {:else if inputCat == 'boolean'}
275
- <Toggle
276
- on:pointerdown={(e) => {
277
- e?.stopPropagation()
278
- }}
279
- class={valid && error == ''
280
- ? ''
281
- : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}
282
- bind:checked={value}
283
- {disabled}
284
- />
285
- {#if type == 'boolean' && value == undefined}
286
- <span>&nbsp; Not set</span>
287
- {/if}
275
+ <div class="w-full">
276
+ <Toggle
277
+ on:pointerdown={(e) => {
278
+ e?.stopPropagation()
279
+ }}
280
+ class={valid && error == ''
281
+ ? ''
282
+ : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}
283
+ bind:checked={value}
284
+ {disabled}
285
+ />
286
+ {#if type == 'boolean' && value == undefined}
287
+ <span>&nbsp; Not set</span>
288
+ {/if}
289
+ </div>
288
290
  {:else if inputCat == 'list'}
289
291
  <div class="w-full">
290
292
  {#if Array.isArray(itemsType?.multiselect) && Array.isArray(value)}
@@ -448,12 +450,14 @@ function addItemByItemsType() {
448
450
  <div class="p-4 pl-8 border rounded w-full">
449
451
  <LightweightSchemaForm
450
452
  schema={{
453
+ ...obj,
451
454
  properties: Object.fromEntries(
452
455
  Object.entries(obj.properties).filter(([k, v]) => k !== 'label')
453
456
  ),
454
457
  $schema: '',
455
458
  required: obj.required ?? [],
456
- type: 'object'
459
+ type: 'object',
460
+ order: obj.order ?? []
457
461
  }}
458
462
  bind:args={value}
459
463
  {disabled}
@@ -485,7 +489,7 @@ function addItemByItemsType() {
485
489
  }}
486
490
  use:autosize
487
491
  style="min-height: 5px;"
488
- class="col-span-10 {valid && error == ''
492
+ class="col-span-10 !leading-tight !text-2xs {valid && error == ''
489
493
  ? ''
490
494
  : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}"
491
495
  placeholder={defaultValue ? JSON.stringify(defaultValue, null, 4) : ''}
@@ -41,7 +41,8 @@ async function updatePath() {
41
41
  tag: flow.tag,
42
42
  dedicated_worker: flow.dedicated_worker,
43
43
  ws_error_handler_muted: flow.ws_error_handler_muted,
44
- visible_to_runner_only: flow.visible_to_runner_only
44
+ visible_to_runner_only: flow.visible_to_runner_only,
45
+ on_behalf_of_email: flow.on_behalf_of_email
45
46
  }
46
47
  });
47
48
  }
@@ -3,7 +3,7 @@ const lastMetaUsed = writable(undefined);
3
3
  </script>
4
4
 
5
5
  <script>import { pathToMeta } from '../common';
6
- import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService } from '../gen';
6
+ import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService, NatsTriggerService } from '../gen';
7
7
  import { superadmin, userStore, workspaceStore } from '../stores';
8
8
  import { createEventDispatcher, getContext } from 'svelte';
9
9
  import { writable } from 'svelte/store';
@@ -195,6 +195,12 @@ async function pathExists(path, kind) {
195
195
  path: path
196
196
  });
197
197
  }
198
+ else if (kind == 'nats_trigger') {
199
+ return await NatsTriggerService.existsNatsTrigger({
200
+ workspace: $workspaceStore,
201
+ path: path
202
+ });
203
+ }
198
204
  else {
199
205
  return false;
200
206
  }
@@ -10,7 +10,7 @@ declare const __propDef: {
10
10
  checkInitialPathExistence?: boolean | undefined;
11
11
  autofocus?: boolean | undefined;
12
12
  dirty?: boolean | undefined;
13
- kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger";
13
+ kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger" | "nats_trigger";
14
14
  hideUser?: boolean | undefined;
15
15
  focus?: (() => void) | undefined;
16
16
  setName?: ((x: string) => void) | undefined;
@@ -21,6 +21,7 @@ export let showSchemaExplorer = false;
21
21
  export let selectFirst = false;
22
22
  export let expressOAuthSetup = false;
23
23
  export let defaultValues = undefined;
24
+ export let placeholder = undefined;
24
25
  onMount(() => {
25
26
  setTimeout(() => {
26
27
  if (Object.keys(defaultValues ?? {}).length > 0 && resourceType) {
@@ -133,7 +134,7 @@ let darkMode = false;
133
134
  }}
134
135
  items={collection}
135
136
  class="text-clip grow min-w-0"
136
- placeholder="{resourceType ?? 'any'} resource"
137
+ placeholder={placeholder ?? `${resourceType ?? 'any'} resource`}
137
138
  inputStyles={SELECT_INPUT_DEFAULT_STYLE.inputStyles}
138
139
  containerStyles={darkMode
139
140
  ? SELECT_INPUT_DEFAULT_STYLE.containerStylesDark
@@ -11,6 +11,7 @@ declare const __propDef: {
11
11
  selectFirst?: boolean | undefined;
12
12
  expressOAuthSetup?: boolean | undefined;
13
13
  defaultValues?: Record<string, any> | undefined;
14
+ placeholder?: string | undefined;
14
15
  askNewResource?: (() => Promise<void>) | undefined;
15
16
  };
16
17
  events: {
@@ -81,7 +81,7 @@ export default class ResultJobLoader extends SvelteComponent<ResultJobLoaderProp
81
81
  cancel: () => void;
82
82
  error: (err: Error) => void;
83
83
  } | undefined) => Promise<string>;
84
- get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp", args: Record<string, any>, tag: string | undefined, callbacks?: {
84
+ get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "oracledb" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp", args: Record<string, any>, tag: string | undefined, callbacks?: {
85
85
  done: (x: any) => void;
86
86
  cancel: () => void;
87
87
  error: (err: Error) => void;
@@ -0,0 +1,53 @@
1
+ <script>import { displayDate } from '../utils.js';
2
+ import { InputService } from '../gen/index.js';
3
+ import { workspaceStore } from '../stores.js';
4
+ import { Button } from './common';
5
+ import { Save } from 'lucide-svelte';
6
+ import { sendUserToast } from '../utils.js';
7
+ import { createEventDispatcher } from 'svelte';
8
+ import Tooltip from './Tooltip.svelte';
9
+ const dispatch = createEventDispatcher();
10
+ export let runnableId;
11
+ export let runnableType;
12
+ export let args;
13
+ export let disabled = false;
14
+ export let small = undefined;
15
+ export let showTooltip = undefined;
16
+ let savingInputs = false;
17
+ async function saveInput(args) {
18
+ savingInputs = true;
19
+ const requestBody = {
20
+ name: 'Saved ' + displayDate(new Date()),
21
+ args: args
22
+ };
23
+ try {
24
+ await InputService.createInput({
25
+ workspace: $workspaceStore,
26
+ runnableId,
27
+ runnableType,
28
+ requestBody
29
+ });
30
+ }
31
+ catch (err) {
32
+ console.error(err);
33
+ sendUserToast(`Failed to save Input: ${err}`, true);
34
+ }
35
+ savingInputs = false;
36
+ dispatch('update');
37
+ }
38
+ </script>
39
+
40
+ <Button
41
+ on:click={() => saveInput(args)}
42
+ {disabled}
43
+ loading={savingInputs}
44
+ startIcon={{ icon: Save }}
45
+ variant={small ? 'border' : 'contained'}
46
+ color="light"
47
+ size="xs"
48
+ >
49
+ <span>{small ? 'Save inputs' : 'Save current input'}</span>
50
+ {#if showTooltip}
51
+ <Tooltip>Shared inputs are available to anyone with access to the script</Tooltip>
52
+ {/if}
53
+ </Button>
@@ -0,0 +1,24 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type RunnableType } from '../gen/index.js';
3
+ declare const __propDef: {
4
+ props: {
5
+ runnableId: string | undefined;
6
+ runnableType: RunnableType | undefined;
7
+ args: object;
8
+ disabled?: boolean | undefined;
9
+ small?: boolean | undefined;
10
+ showTooltip?: boolean | undefined;
11
+ };
12
+ events: {
13
+ update: CustomEvent<any>;
14
+ } & {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {};
18
+ };
19
+ export type SaveInputsButtonProps = typeof __propDef.props;
20
+ export type SaveInputsButtonEvents = typeof __propDef.events;
21
+ export type SaveInputsButtonSlots = typeof __propDef.slots;
22
+ export default class SaveInputsButton extends SvelteComponent<SaveInputsButtonProps, SaveInputsButtonEvents, SaveInputsButtonSlots> {
23
+ }
24
+ export {};