windmill-components 1.444.2 → 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 +1 -0
  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,151 @@
1
+ <script>import { modalToSchema } from '../../common';
2
+ import { emptySchema, sendUserToast } from '../../utils';
3
+ import { createEventDispatcher } from 'svelte';
4
+ import SimpleEditor from '../SimpleEditor.svelte';
5
+ import AddPropertyFormV2 from './AddPropertyFormV2.svelte';
6
+ export let schema = emptySchema();
7
+ export const DEFAULT_PROPERTY = {
8
+ selectedType: 'string',
9
+ description: '',
10
+ name: '',
11
+ required: false
12
+ };
13
+ const dispatch = createEventDispatcher();
14
+ if (!schema) {
15
+ schema = emptySchema();
16
+ }
17
+ let schemaString = '';
18
+ // Internal state: bound to args builder modal
19
+ let argError = '';
20
+ let editing = false;
21
+ let oldArgName; // when editing argument and changing name
22
+ let jsonEditor;
23
+ reorder();
24
+ function reorder() {
25
+ if (schema.order && Array.isArray(schema.order)) {
26
+ const n = {};
27
+ schema.order.forEach((x) => {
28
+ if (schema.properties && schema.properties[x] != undefined) {
29
+ n[x] = schema.properties[x];
30
+ }
31
+ });
32
+ Object.keys(schema.properties ?? {})
33
+ .filter((x) => !schema.order?.includes(x))
34
+ .forEach((x) => {
35
+ n[x] = schema.properties[x];
36
+ });
37
+ schema.properties = n;
38
+ }
39
+ }
40
+ function syncOrders() {
41
+ if (schema) {
42
+ schema.order = Object.keys(schema.properties ?? {});
43
+ }
44
+ }
45
+ function handleAddOrEditArgument(modalProperty) {
46
+ // If editing the arg's name, oldName containing the old argument name must be provided
47
+ argError = '';
48
+ modalProperty.name = modalProperty.name.trim();
49
+ if (modalProperty.name.length === 0) {
50
+ argError = 'Arguments need to have a name';
51
+ }
52
+ else if (Object.keys(schema.properties ?? {}).includes(modalProperty.name) &&
53
+ (!editing || (editing && oldArgName && oldArgName !== modalProperty.name))) {
54
+ argError = 'There is already an argument with this name';
55
+ }
56
+ else {
57
+ if (!schema.properties) {
58
+ schema.properties = {};
59
+ }
60
+ if (!schema.required) {
61
+ schema.required = [];
62
+ }
63
+ if (!schema.order || !Array.isArray(schema.order)) {
64
+ syncOrders();
65
+ }
66
+ schema.properties[modalProperty.name] = modalToSchema(modalProperty);
67
+ if (modalProperty.required) {
68
+ if (!schema.required.includes(modalProperty.name)) {
69
+ schema.required.push(modalProperty.name);
70
+ }
71
+ }
72
+ else if (schema.required.includes(modalProperty.name)) {
73
+ const index = schema.required.indexOf(modalProperty.name, 0);
74
+ if (index > -1) {
75
+ schema.required.splice(index, 1);
76
+ }
77
+ }
78
+ if (editing && oldArgName && oldArgName !== modalProperty.name) {
79
+ let oldPosition = schema.order.indexOf(oldArgName);
80
+ schema.order[oldPosition] = modalProperty.name;
81
+ reorder();
82
+ handleDeleteArgument([oldArgName]);
83
+ }
84
+ if (!schema.order?.includes(modalProperty.name)) {
85
+ schema.order.push(modalProperty.name);
86
+ }
87
+ modalProperty = Object.assign({}, DEFAULT_PROPERTY);
88
+ editing = false;
89
+ oldArgName = undefined;
90
+ }
91
+ schema = schema;
92
+ schemaString = JSON.stringify(schema, null, '\t');
93
+ jsonEditor?.setCode(schemaString);
94
+ if (argError !== '') {
95
+ sendUserToast(argError, true);
96
+ }
97
+ dispatch('change', schema);
98
+ }
99
+ export function handleDeleteArgument(argPath) {
100
+ try {
101
+ let modifiedObject = schema;
102
+ let modifiedProperties = modifiedObject.properties;
103
+ let argName = argPath.pop();
104
+ argPath.forEach((property) => {
105
+ if (Object.keys(modifiedProperties).includes(property)) {
106
+ modifiedObject = modifiedProperties[property];
107
+ modifiedProperties = modifiedObject.properties;
108
+ }
109
+ else {
110
+ throw Error('Nested argument not found!');
111
+ }
112
+ });
113
+ if (Object.keys(modifiedProperties).includes(argName)) {
114
+ delete modifiedProperties[argName];
115
+ modifiedObject.required = schema.required.filter((arg) => arg !== argName);
116
+ if (modifiedObject.order) {
117
+ modifiedObject.order = modifiedObject.order.filter((arg) => arg !== argName);
118
+ }
119
+ schema = schema;
120
+ schemaString = JSON.stringify(schema, null, '\t');
121
+ dispatch('change', schema);
122
+ }
123
+ else {
124
+ throw Error('Argument not found!');
125
+ }
126
+ syncOrders();
127
+ dispatch('change', schema);
128
+ }
129
+ catch (err) {
130
+ sendUserToast(`Could not delete argument: ${err}`, true);
131
+ }
132
+ }
133
+ </script>
134
+
135
+ <AddPropertyFormV2
136
+ on:add={(e) => {
137
+ try {
138
+ handleAddOrEditArgument({
139
+ ...DEFAULT_PROPERTY,
140
+ selectedType: 'string',
141
+ name: e.detail.name
142
+ })
143
+ } catch (err) {
144
+ sendUserToast(`Could not add argument: ${err}`, true)
145
+ }
146
+ }}
147
+ >
148
+ <svelte:fragment slot="trigger">
149
+ <slot name="trigger" />
150
+ </svelte:fragment>
151
+ </AddPropertyFormV2>
@@ -0,0 +1,25 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type Schema, type ModalSchemaProperty } from '../../common';
3
+ declare const __propDef: {
4
+ props: {
5
+ schema?: Schema | any;
6
+ DEFAULT_PROPERTY?: ModalSchemaProperty | undefined;
7
+ handleDeleteArgument?: ((argPath: string[]) => void) | undefined;
8
+ };
9
+ events: {
10
+ change: CustomEvent<any>;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {
15
+ trigger: {};
16
+ };
17
+ };
18
+ export type AddPropertyV2Props = typeof __propDef.props;
19
+ export type AddPropertyV2Events = typeof __propDef.events;
20
+ export type AddPropertyV2Slots = typeof __propDef.slots;
21
+ export default class AddPropertyV2 extends SvelteComponent<AddPropertyV2Props, AddPropertyV2Events, AddPropertyV2Slots> {
22
+ get DEFAULT_PROPERTY(): ModalSchemaProperty;
23
+ get handleDeleteArgument(): (argPath: string[]) => void;
24
+ }
25
+ export {};
@@ -1,4 +1,4 @@
1
- <script>import { GripVertical, Pen, Trash } from 'lucide-svelte';
1
+ <script>import { GripVertical, Pen, Trash, Plus } from 'lucide-svelte';
2
2
  import EditableSchemaForm from '../EditableSchemaForm.svelte';
3
3
  import { Drawer, DrawerContent } from '../common';
4
4
  import AddProperty from './AddProperty.svelte';
@@ -10,6 +10,7 @@ import { createEventDispatcher, tick } from 'svelte';
10
10
  import Label from '../Label.svelte';
11
11
  import Toggle from '../Toggle.svelte';
12
12
  import SimpleEditor from '../SimpleEditor.svelte';
13
+ import AddPropertyV2 from './AddPropertyV2.svelte';
13
14
  export let schema;
14
15
  export let parentId = undefined;
15
16
  const flipDurationMs = 200;
@@ -36,7 +37,6 @@ function handleFinalize(e) {
36
37
  schema = { ...schema };
37
38
  dispatch('change', schema);
38
39
  }
39
- const yOffset = 49;
40
40
  export let jsonView = false;
41
41
  let schemaString = JSON.stringify(schema, null, '\t');
42
42
  let editor = undefined;
@@ -151,10 +151,7 @@ let error = undefined;
151
151
  </div>
152
152
 
153
153
  <Drawer bind:this={schemaFormDrawer} size="1200px">
154
- <DrawerContent noPadding title="UI Customisation" on:close={schemaFormDrawer.closeDrawer}>
155
- <svelte:fragment slot="actions">
156
- <AddProperty on:change bind:schema />
157
- </svelte:fragment>
154
+ <DrawerContent title="UI Customisation" on:close={schemaFormDrawer.closeDrawer}>
158
155
  <EditableSchemaForm
159
156
  on:change
160
157
  bind:this={editableSchemaForm}
@@ -166,10 +163,22 @@ let error = undefined;
166
163
  on:delete={(e) => {
167
164
  addProperty?.handleDeleteArgument([e.detail])
168
165
  }}
169
- offset={yOffset}
170
166
  lightweightMode
171
167
  dndType="drawer"
172
- />
168
+ editTab="inputEditor"
169
+ >
170
+ <svelte:fragment slot="addProperty">
171
+ <AddPropertyV2 bind:schema on:change>
172
+ <svelte:fragment slot="trigger">
173
+ <div
174
+ class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
175
+ >
176
+ <Plus size={14} />
177
+ </div>
178
+ </svelte:fragment>
179
+ </AddPropertyV2>
180
+ </svelte:fragment>
181
+ </EditableSchemaForm>
173
182
  </DrawerContent>
174
183
  </Drawer>
175
184
  {:else}
@@ -1,13 +1,13 @@
1
1
  <script>import { twMerge } from 'tailwind-merge';
2
2
  import EditableSchemaForm from '../EditableSchemaForm.svelte';
3
- import AddProperty from './AddProperty.svelte';
4
3
  import { createEventDispatcher } from 'svelte';
5
4
  import Toggle from '../Toggle.svelte';
6
5
  import { emptySchema, validateFileExtension } from '../../utils';
7
6
  import AutoComplete from 'simple-svelte-autocomplete';
8
7
  import { Alert } from '../common';
8
+ import AddPropertyV2 from './AddPropertyV2.svelte';
9
+ import { Plus } from 'lucide-svelte';
9
10
  export let schema;
10
- export let offset = 0;
11
11
  export let uiOnly = false;
12
12
  export let noPreview = false;
13
13
  export let fullHeight = true;
@@ -27,7 +27,7 @@ function switchResourceIsFile() {
27
27
  formatExtension = undefined;
28
28
  }
29
29
  else {
30
- formatExtension = "";
30
+ formatExtension = '';
31
31
  schema = emptySchema();
32
32
  schema.order = ['content'];
33
33
  schema.properties = {
@@ -52,19 +52,44 @@ function numberOfMatches(listItem, searchWords) {
52
52
  });
53
53
  return matches;
54
54
  }
55
- let suggestedFileExtensions = ['json', 'yaml', 'jinja', 'j2', 'ini', 'cfg', 'toml', 'html', 'xml', 'yml'];
55
+ let suggestedFileExtensions = [
56
+ 'json',
57
+ 'yaml',
58
+ 'jinja',
59
+ 'j2',
60
+ 'ini',
61
+ 'cfg',
62
+ 'toml',
63
+ 'html',
64
+ 'xml',
65
+ 'yml'
66
+ ];
56
67
  let autocompleteExtension = true;
57
68
  </script>
58
69
 
59
70
  {#if !resourceIsTextFile}
60
- <div class={twMerge(fullHeight ? 'h-full' : 'h-80', 'border overflow-y-auto rounded-md')}>
61
- <div class="p-4 border-b">
62
- <AddProperty
63
- on:change={() => dispatch('change', schema)}
71
+ <div
72
+ class={twMerge(
73
+ fullHeight ? 'h-full' : 'h-80',
74
+ noPreview ? '' : 'border rounded-md p-2',
75
+ 'overflow-y-auto flex flex-col gap-2'
76
+ )}
77
+ >
78
+ {#if noPreview}
79
+ <AddPropertyV2
64
80
  bind:schema
65
81
  bind:this={addProperty}
66
- />
67
- </div>
82
+ on:change={() => dispatch('change', schema)}
83
+ >
84
+ <svelte:fragment slot="trigger">
85
+ <div
86
+ class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
87
+ >
88
+ <Plus size={14} />
89
+ </div>
90
+ </svelte:fragment>
91
+ </AddPropertyV2>
92
+ {/if}
68
93
  <EditableSchemaForm
69
94
  bind:schema
70
95
  on:change={() => dispatch('change', schema)}
@@ -75,17 +100,35 @@ let autocompleteExtension = true;
75
100
  on:delete={(e) => {
76
101
  addProperty?.handleDeleteArgument([e.detail])
77
102
  }}
78
- {offset}
79
103
  {uiOnly}
80
104
  {noPreview}
81
105
  {lightweightMode}
82
- />
106
+ editTab="inputEditor"
107
+ >
108
+ <svelte:fragment slot="addProperty">
109
+ {#if !noPreview}
110
+ <AddPropertyV2
111
+ bind:schema
112
+ bind:this={addProperty}
113
+ on:change={() => dispatch('change', schema)}
114
+ >
115
+ <svelte:fragment slot="trigger">
116
+ <div
117
+ class="w-full py-2 flex justify-center items-center border border-dashed rounded-md hover:bg-surface-hover"
118
+ >
119
+ <Plus size={14} />
120
+ </div>
121
+ </svelte:fragment>
122
+ </AddPropertyV2>
123
+ {/if}
124
+ </svelte:fragment>
125
+ </EditableSchemaForm>
83
126
  </div>
84
127
  {/if}
85
128
  {#if resourceIsTextFile}
86
129
  <div class="flex items-center space-x-2 w-5/12">
87
130
  <label for="format-extension" class="text-base font-medium whitespace-nowrap">
88
- File extension{autocompleteExtension ? "" : " (free text)"}:
131
+ File extension{autocompleteExtension ? '' : ' (free text)'}:
89
132
  </label>
90
133
  {#if autocompleteExtension}
91
134
  <AutoComplete
@@ -135,7 +178,8 @@ let autocompleteExtension = true;
135
178
  {#if invalidExtension}
136
179
  <Alert title="Invalid file extension" type="error">
137
180
  The provided extension (<span class="font-bold font-mono">.{formatExtension}</span>) contains
138
- invalid characters. Note that you shouldn't add the leading dot, (i.e. enter `json` instead of `.json`)
181
+ invalid characters. Note that you shouldn't add the leading dot, (i.e. enter `json` instead of
182
+ `.json`)
139
183
  </Alert>
140
184
  {:else if formatExtension && formatExtension !== ''}
141
185
  <Alert title={`Example: my_file.${formatExtension}`} type="info">
@@ -3,7 +3,6 @@ import type { Schema } from '../../common';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  schema: Schema | undefined | any;
6
- offset?: number | undefined;
7
6
  uiOnly?: boolean | undefined;
8
7
  noPreview?: boolean | undefined;
9
8
  fullHeight?: boolean | undefined;
@@ -263,7 +263,12 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
263
263
  </div>
264
264
  {#if oneOfSelected && schema.oneOf}
265
265
  {@const idx = schema.oneOf.findIndex((obj) => obj.title === oneOfSelected)}
266
- <EditableSchemaDrawer bind:schema={schema.oneOf[idx]} />
266
+ <EditableSchemaDrawer
267
+ bind:schema={schema.oneOf[idx]}
268
+ on:change={() => {
269
+ dispatch('schemaChange')
270
+ }}
271
+ />
267
272
  {/if}
268
273
  {:else if type === 'object' && format !== 'resource-s3_object'}
269
274
  <Tabs
@@ -279,7 +284,7 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
279
284
  <svelte:fragment slot="content">
280
285
  <div class="pt-2">
281
286
  <TabContent value="custom-object">
282
- <EditableSchemaDrawer bind:schema />
287
+ <EditableSchemaDrawer bind:schema on:change={() => dispatch('schemaChange')} />
283
288
  </TabContent>
284
289
 
285
290
  <TabContent value="resource">
@@ -329,7 +334,7 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
329
334
  </Label>
330
335
  {/if}
331
336
 
332
- <div class="flex flex-row gap-2">
337
+ <div class="flex flex-row gap-2 flex-wrap h-auto">
333
338
  <Toggle
334
339
  options={{ right: 'Required' }}
335
340
  size="xs"
@@ -0,0 +1,32 @@
1
+ <script>import SchemaPickerRow from './SchemaPickerRow.svelte';
2
+ import { workspaceStore } from '../../stores';
3
+ import { ExternalLink } from 'lucide-svelte';
4
+ import { base } from '../../base';
5
+ export let job;
6
+ export let selected = false;
7
+ export let payloadData = undefined;
8
+ export let hovering = false;
9
+ </script>
10
+
11
+ <SchemaPickerRow {payloadData} date={job.created_at} {selected} {hovering}>
12
+ <svelte:fragment slot="start">
13
+ <div class="center-center">
14
+ <div
15
+ class="rounded-full w-2 h-2 {job.success ? 'bg-green-400' : 'bg-red-400'}"
16
+ title={job.success ? 'Success' : 'Failed'}
17
+ />
18
+ </div>
19
+ </svelte:fragment>
20
+ <svelte:fragment slot="extra">
21
+ <div class="center-center {hovering ? '' : '!hidden'}">
22
+ <a
23
+ target="_blank"
24
+ href="{base}/run/{job.id}?workspace={$workspaceStore}"
25
+ class="text-right float-right text-secondary"
26
+ title="See run detail in a new tab"
27
+ >
28
+ <ExternalLink size={16} />
29
+ </a>
30
+ </div>
31
+ </svelte:fragment>
32
+ </SchemaPickerRow>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ job: any;
5
+ selected?: boolean | undefined;
6
+ payloadData?: any | undefined;
7
+ hovering?: boolean | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type JobSchemaPickerProps = typeof __propDef.props;
15
+ export type JobSchemaPickerEvents = typeof __propDef.events;
16
+ export type JobSchemaPickerSlots = typeof __propDef.slots;
17
+ export default class JobSchemaPicker extends SvelteComponent<JobSchemaPickerProps, JobSchemaPickerEvents, JobSchemaPickerSlots> {
18
+ }
19
+ export {};
@@ -178,6 +178,7 @@ function updateSchema() {
178
178
  bind:schema={oneOfSchemas[idx]}
179
179
  uiOnly
180
180
  jsonEnabled={false}
181
+ editTab="inputEditor"
181
182
  />
182
183
  </div>
183
184
  {/if}
@@ -185,7 +186,14 @@ function updateSchema() {
185
186
  <div class="text-tertiary text-xs">No settings available for Dynamic Select</div>
186
187
  {:else if type == 'object' && !format?.startsWith('resource-') && !isFlowInput && !isAppInput}
187
188
  <div class="border">
188
- <EditableSchemaForm on:change noPreview bind:schema uiOnly jsonEnabled={false} />
189
+ <EditableSchemaForm
190
+ on:change
191
+ noPreview
192
+ bind:schema
193
+ uiOnly
194
+ jsonEnabled={false}
195
+ editTab="inputEditor"
196
+ />
189
197
  </div>
190
198
  {:else}
191
199
  <div class="text-tertiary text-xs">No settings available for this field type</div>
@@ -0,0 +1,67 @@
1
+ <script>import SchemaPickerRow from './SchemaPickerRow.svelte';
2
+ import Skeleton from '../common/skeleton/Skeleton.svelte';
3
+ import { JobService } from '../../gen/index.js';
4
+ import { workspaceStore } from '../../stores';
5
+ import { createEventDispatcher } from 'svelte';
6
+ import { ExternalLink } from 'lucide-svelte';
7
+ import { base } from '../../base';
8
+ import { Cell, Row } from '../table';
9
+ import { twMerge } from 'tailwind-merge';
10
+ export let job;
11
+ export let selected = false;
12
+ export let payloadData = undefined;
13
+ const dispatch = createEventDispatcher();
14
+ export let hovering = false;
15
+ let loadingArgs = true;
16
+ loadArgsFromRunningJob(job.id);
17
+ async function loadArgsFromRunningJob(id) {
18
+ if (!id)
19
+ return;
20
+ payloadData = await JobService.getJobArgs({
21
+ workspace: $workspaceStore,
22
+ id
23
+ });
24
+ loadingArgs = false;
25
+ }
26
+ </script>
27
+
28
+ {#if loadingArgs}
29
+ <Cell>
30
+ <Skeleton layout={[[1]]} />
31
+ </Cell>
32
+ <Cell>
33
+ <Skeleton layout={[[1]]} />
34
+ </Cell>
35
+ <Cell>
36
+ <Skeleton layout={[[1]]} />
37
+ </Cell>
38
+ {:else}
39
+ <Row
40
+ on:click={() => dispatch('select', { id: job.id, payloadData })}
41
+ class={twMerge(
42
+ selected === job.id ? 'bg-surface-selected' : 'hover:bg-surface-hover',
43
+ 'cursor-pointer rounded-md'
44
+ )}
45
+ on:hover={(e) => (hovering = e.detail ? true : false)}
46
+ >
47
+ <SchemaPickerRow {payloadData} date={job.created_at} {selected} {hovering}>
48
+ <svelte:fragment slot="start">
49
+ <div class="center-center">
50
+ <div class="rounded-full w-2 h-2 bg-orange-400 animate-pulse" title="Running" />
51
+ </div>
52
+ </svelte:fragment>
53
+ <svelte:fragment slot="extra">
54
+ <div class="center-center {hovering ? '' : '!hidden'}">
55
+ <a
56
+ target="_blank"
57
+ href="{base}/run/{job.id}?workspace={$workspaceStore}"
58
+ class="text-right float-right text-secondary"
59
+ title="See run detail in a new tab"
60
+ >
61
+ <ExternalLink size={16} />
62
+ </a>
63
+ </div>
64
+ </svelte:fragment>
65
+ </SchemaPickerRow>
66
+ </Row>
67
+ {/if}
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ job: any;
5
+ selected?: boolean | undefined;
6
+ payloadData?: any | undefined;
7
+ hovering?: boolean | undefined;
8
+ };
9
+ events: {
10
+ select: CustomEvent<any>;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type RunningJobSchemaPickerProps = typeof __propDef.props;
17
+ export type RunningJobSchemaPickerEvents = typeof __propDef.events;
18
+ export type RunningJobSchemaPickerSlots = typeof __propDef.slots;
19
+ export default class RunningJobSchemaPicker extends SvelteComponent<RunningJobSchemaPickerProps, RunningJobSchemaPickerEvents, RunningJobSchemaPickerSlots> {
20
+ }
21
+ export {};
@@ -55,7 +55,7 @@ function handleFinalize(e) {
55
55
  on:consider={handleConsider}
56
56
  on:finalize={handleFinalize}
57
57
  {lightweightMode}
58
- {args}
58
+ bind:args
59
59
  {prettifyHeader}
60
60
  {onlyMaskPassword}
61
61
  {disablePortal}
@@ -0,0 +1,92 @@
1
+ <script>import CustomPopover from '../CustomPopover.svelte';
2
+ import { copyToClipboard } from '../../utils';
3
+ import { createEventDispatcher } from 'svelte';
4
+ import ObjectViewer from '../propertyPicker/ObjectViewer.svelte';
5
+ import { twMerge } from 'tailwind-merge';
6
+ export let payloadData;
7
+ export let date;
8
+ export let selected = false;
9
+ const dispatch = createEventDispatcher();
10
+ let hovering = false;
11
+ function formatDate(dateString) {
12
+ if (!dateString)
13
+ return '';
14
+ const date = new Date(dateString);
15
+ return new Intl.DateTimeFormat('en-US', {
16
+ year: 'numeric',
17
+ month: 'short',
18
+ day: 'numeric',
19
+ hour: '2-digit',
20
+ minute: '2-digit'
21
+ }).format(date);
22
+ }
23
+ </script>
24
+
25
+ <button
26
+ class={twMerge(
27
+ 'w-full rounded-sm px-2',
28
+ hovering ? 'bg-surface-hover' : '',
29
+ selected ? 'bg-surface-selected' : ''
30
+ )}
31
+ on:click={() => {
32
+ dispatch('select')
33
+ }}
34
+ on:mouseenter={() => {
35
+ hovering = true
36
+ }}
37
+ on:mouseleave={() => {
38
+ hovering = false
39
+ }}
40
+ >
41
+ <div class="flex flex-row gap-2">
42
+ <slot name="start" />
43
+
44
+ <div
45
+ class="text-2xs font-normal text-left p-2 rounded-md overflow-auto grow-0 text-ellipsis whitespace-nowrap scrollbar-none"
46
+ title={formatDate(date)}
47
+ >
48
+ {formatDate(date)}
49
+ </div>
50
+
51
+ <CustomPopover class="grow min-w-12 ">
52
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
53
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
54
+ <div
55
+ class={twMerge(
56
+ 'text-xs border font-normal text-left p-1 rounded-md overflow-auto grow whitespace-nowrap scrollbar-none',
57
+ hovering && 'border-surface'
58
+ )}
59
+ on:click={() => {
60
+ if (selected) {
61
+ copyToClipboard(JSON.stringify(payloadData))
62
+ }
63
+ }}
64
+ on:mouseenter={() => {
65
+ hovering = true
66
+ }}
67
+ on:mouseleave={() => {
68
+ hovering = false
69
+ }}
70
+ >
71
+ {JSON.stringify(payloadData)}
72
+ </div>
73
+ <svelte:fragment slot="overlay">
74
+ <ObjectViewer json={payloadData} />
75
+ </svelte:fragment>
76
+ </CustomPopover>
77
+
78
+ {#if hovering}
79
+ <slot name="extra" />
80
+ {/if}
81
+ </div>
82
+ </button>
83
+
84
+ <style>
85
+ .scrollbar-none {
86
+ -ms-overflow-style: none; /* IE and Edge */
87
+ scrollbar-width: none; /* Firefox */
88
+ }
89
+
90
+ .scrollbar-none::-webkit-scrollbar {
91
+ display: none; /* Chrome, Safari and Opera */
92
+ }</style>