windmill-components 1.339.2 → 1.352.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 (231) hide show
  1. package/package/assets/app.css +0 -12
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +1 -1
  4. package/package/common.d.ts +6 -2
  5. package/package/common.js +2 -1
  6. package/package/components/AppConnectDrawer.svelte +1 -1
  7. package/package/components/AppConnectInner.svelte +9 -15
  8. package/package/components/ArgEnum.svelte +4 -1
  9. package/package/components/ArgEnum.svelte.d.ts +3 -1
  10. package/package/components/ArgInput.svelte +184 -141
  11. package/package/components/ArgInput.svelte.d.ts +7 -7
  12. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  13. package/package/components/CenteredPage.svelte +2 -2
  14. package/package/components/DefaultTagsInner.svelte +1 -1
  15. package/package/components/Dev.svelte +2 -1
  16. package/package/components/DiffDrawer.svelte +1 -2
  17. package/package/components/DisplayResult.svelte +293 -233
  18. package/package/components/DurationMs.svelte +11 -3
  19. package/package/components/DurationMs.svelte.d.ts +2 -0
  20. package/package/components/EditableSchemaForm.svelte +447 -103
  21. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  22. package/package/components/Editor.svelte +3 -1
  23. package/package/components/EditorBar.svelte +2 -2
  24. package/package/components/FlowBuilder.svelte +14 -6
  25. package/package/components/FlowGraphViewer.svelte +1 -1
  26. package/package/components/FlowGraphViewerStep.svelte +37 -9
  27. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  28. package/package/components/FlowJobResult.svelte +1 -3
  29. package/package/components/FlowMetadata.svelte +1 -1
  30. package/package/components/FlowPreviewContent.svelte +5 -3
  31. package/package/components/FlowStatusViewer.svelte +4 -0
  32. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  33. package/package/components/FlowStatusViewerInner.svelte +50 -17
  34. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  35. package/package/components/FlowTimeline.svelte +13 -0
  36. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  37. package/package/components/FlowViewer.svelte +0 -5
  38. package/package/components/FolderEditor.svelte +25 -0
  39. package/package/components/FolderEditor.svelte.d.ts +2 -0
  40. package/package/components/GroupEditor.svelte +36 -91
  41. package/package/components/GroupInfo.svelte +1 -1
  42. package/package/components/InputTransformForm.svelte +16 -1
  43. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  44. package/package/components/InputTransformSchemaForm.svelte +6 -0
  45. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  46. package/package/components/InstanceSettings.svelte +36 -3
  47. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  48. package/package/components/JobStatus.svelte +2 -2
  49. package/package/components/LightweightArgInput.svelte +66 -14
  50. package/package/components/LightweightArgInput.svelte.d.ts +3 -2
  51. package/package/components/LightweightSchemaForm.svelte +24 -15
  52. package/package/components/ModulePreviewForm.svelte +1 -0
  53. package/package/components/NumberTypeNarrowing.svelte +71 -44
  54. package/package/components/ObjectResourceInput.svelte +2 -0
  55. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  56. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  57. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  58. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  59. package/package/components/Path.svelte +2 -2
  60. package/package/components/PersistentScriptDrawer.svelte +6 -3
  61. package/package/components/Range.svelte +88 -286
  62. package/package/components/Range.svelte.d.ts +9 -23
  63. package/package/components/ResourceEditor.svelte +138 -141
  64. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  65. package/package/components/ResourceEditorDrawer.svelte +45 -0
  66. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  67. package/package/components/ResourcePicker.svelte +5 -2
  68. package/package/components/ResourceTypePicker.svelte +88 -36
  69. package/package/components/RunChart.svelte +55 -5
  70. package/package/components/RunChart.svelte.d.ts +1 -0
  71. package/package/components/RunForm.svelte +1 -1
  72. package/package/components/S3FilePicker.svelte +20 -8
  73. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  74. package/package/components/ScheduleEditorInner.svelte +40 -37
  75. package/package/components/SchemaForm.svelte +192 -103
  76. package/package/components/SchemaForm.svelte.d.ts +16 -2
  77. package/package/components/ScriptBuilder.svelte +13 -8
  78. package/package/components/ScriptSchedules.svelte +11 -8
  79. package/package/components/ScriptSchema.svelte +3 -21
  80. package/package/components/ScriptVersionHistory.svelte +1 -1
  81. package/package/components/StringTypeNarrowing.svelte +217 -174
  82. package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
  83. package/package/components/Toggle.svelte +6 -3
  84. package/package/components/Toggle.svelte.d.ts +1 -0
  85. package/package/components/UserSettings.svelte +24 -1
  86. package/package/components/WorkspaceGroup.svelte +11 -13
  87. package/package/components/apps/components/buttons/AppButton.svelte +2 -0
  88. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  89. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  90. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  91. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
  92. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  93. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
  94. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  95. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  96. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  97. package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
  98. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
  99. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
  100. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  101. package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
  102. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  103. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
  104. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  105. package/package/components/apps/components/helpers/eval.js +1 -36
  106. package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
  107. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  108. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  109. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  110. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
  111. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  112. package/package/components/apps/components/layout/AppStepper.svelte +5 -1
  113. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  114. package/package/components/apps/components/layout/AppTabs.svelte +3 -1
  115. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  116. package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
  117. package/package/components/apps/editor/SettingsPanel.svelte +13 -3
  118. package/package/components/apps/editor/component/Component.svelte +8 -16
  119. package/package/components/apps/editor/component/components.d.ts +11 -2
  120. package/package/components/apps/editor/component/components.js +2 -1
  121. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  122. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  123. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
  124. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  125. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  126. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  127. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  128. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
  129. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
  130. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
  131. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  132. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  133. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
  134. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  135. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  136. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  137. package/package/components/common/drawer/Disposable.svelte +3 -2
  138. package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
  139. package/package/components/common/drawer/Drawer.svelte +12 -2
  140. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  141. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  142. package/package/components/common/fileUpload/FileUpload.svelte +4 -3
  143. package/package/components/common/modal/Modal.svelte +4 -1
  144. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  145. package/package/components/common/popup/Popup.svelte +1 -1
  146. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  147. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  148. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  149. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  150. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  151. package/package/components/flows/content/FlowInput.svelte +63 -53
  152. package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
  153. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  154. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  155. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  156. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  157. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  158. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
  159. package/package/components/flows/flowStateUtils.js +4 -1
  160. package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
  161. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  162. package/package/components/flows/types.d.ts +4 -0
  163. package/package/components/flows/utils.d.ts +5 -1
  164. package/package/components/flows/utils.js +36 -0
  165. package/package/components/graph/FlowGraph.svelte +5 -2
  166. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  167. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  168. package/package/components/graph/svelvet/container/models/index.js +1 -1
  169. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  170. package/package/components/graph/util.d.ts +1 -37
  171. package/package/components/graph/util.js +0 -34
  172. package/package/components/instanceSettings.js +2 -1
  173. package/package/components/jobs/JobPreview.svelte +1 -1
  174. package/package/components/multiselect/MultiSelect.svelte +4 -3
  175. package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
  176. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  177. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  178. package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
  179. package/package/components/runs/JobPreview.svelte +5 -1
  180. package/package/components/runs/RunRow.svelte +22 -3
  181. package/package/components/runs/RunRow.svelte.d.ts +2 -1
  182. package/package/components/runs/RunsTable.svelte +22 -9
  183. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  184. package/package/components/schema/AddProperty.svelte +149 -0
  185. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  186. package/package/components/schema/AddPropertyForm.svelte +33 -0
  187. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  188. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  189. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  190. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  191. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  192. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  193. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  194. package/package/components/schema/PropertyEditor.svelte +185 -0
  195. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  196. package/package/components/schema/SchemaFormDND.svelte +75 -0
  197. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  198. package/package/components/table/AutoDataTable.svelte +90 -104
  199. package/package/components/table/Cell.svelte +4 -1
  200. package/package/components/table/Cell.svelte.d.ts +1 -0
  201. package/package/components/table/DownloadCsv.svelte +30 -0
  202. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  203. package/package/components/table/tableUtils.d.ts +8 -0
  204. package/package/components/table/tableUtils.js +37 -0
  205. package/package/consts.js +3 -1
  206. package/package/deno_fetch.d.ts.txt +6 -0
  207. package/package/gen/core/OpenAPI.js +1 -1
  208. package/package/gen/schemas.gen.d.ts +76 -0
  209. package/package/gen/schemas.gen.js +76 -0
  210. package/package/gen/services.gen.d.ts +100 -5
  211. package/package/gen/services.gen.js +216 -16
  212. package/package/gen/types.gen.d.ts +378 -5
  213. package/package/inferArgSig.d.ts +10 -0
  214. package/package/inferArgSig.js +59 -2
  215. package/package/scripts.d.ts +2 -0
  216. package/package/scripts.js +6 -3
  217. package/package/utils.d.ts +4 -3
  218. package/package/utils.js +9 -4
  219. package/package/workspace_settings.d.ts +15 -0
  220. package/package/workspace_settings.js +81 -0
  221. package/package.json +16 -7
  222. package/package/components/ParqetTableRenderer.svelte +0 -117
  223. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  224. package/package/components/PropertyRow.svelte +0 -88
  225. package/package/components/PropertyRow.svelte.d.ts +0 -23
  226. package/package/components/SchemaEditor.svelte +0 -346
  227. package/package/components/SchemaEditor.svelte.d.ts +0 -25
  228. package/package/components/SchemaModal.svelte +0 -443
  229. package/package/components/SchemaModal.svelte.d.ts +0 -33
  230. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  231. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -1,72 +1,15 @@
1
- <script>import { getContext } from 'svelte';
2
- import { twMerge } from 'tailwind-merge';
3
- import { initOutput } from '../../editor/appUtils';
4
- import RunnableWrapper from '../helpers/RunnableWrapper.svelte';
5
- import { initCss } from '../../utils';
6
- import FlowStatusViewer from '../../../FlowStatusViewer.svelte';
7
- import ResolveStyle from '../helpers/ResolveStyle.svelte';
8
- export let id;
9
- export let componentInput;
10
- export let initializing = false;
11
- export let customCss = undefined;
12
- export let render;
13
- const { app, worldStore, workspace } = getContext('AppViewerContext');
14
- const outputs = initOutput($worldStore, id, {
15
- result: undefined,
16
- loading: false
17
- });
18
- initializing = false;
19
- let css = initCss($app.css?.flowstatuscomponent, customCss);
20
- let jobId;
1
+ <script>import { Alert } from '../../../common';
2
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
21
3
  </script>
22
4
 
23
- {#each Object.keys(css ?? {}) as key (key)}
24
- <ResolveStyle
25
- {id}
26
- {customCss}
27
- {key}
28
- bind:css={css[key]}
29
- componentStyle={$app.css?.flowstatuscomponent}
30
- />
31
- {/each}
32
-
33
- <RunnableWrapper
34
- on:started={(e) => {
35
- jobId = e.detail
36
- }}
37
- {outputs}
38
- {render}
39
- {componentInput}
40
- {id}
41
- >
42
- <div class="flex flex-col w-full h-full">
43
- <div
44
- class={twMerge(
45
- 'w-full border-b px-2 text-xs p-1 font-semibold bg-gray-500 text-white rounded-t-sm',
46
- css?.header?.class,
47
- 'wm-flow-status-header'
48
- )}
49
- style={css?.header?.style}
50
- >
51
- Flow Status
52
- </div>
53
- <div
54
- style={twMerge(
55
- $app.css?.['flowstatuscomponent']?.['container']?.style,
56
- customCss?.container?.style
57
- )}
58
- class={twMerge(
59
- 'p-2 grow overflow-auto',
60
- $app.css?.['flowstatuscomponent']?.['container']?.class,
61
- customCss?.container?.class,
62
- 'wm-flow-status-container'
63
- )}
64
- >
65
- {#if jobId}
66
- <FlowStatusViewer workspaceId={workspace} {jobId} />
67
- {:else}
68
- <span class="text-secondary text-xs">No flow</span>
69
- {/if}
70
- </div>
71
- </div>
72
- </RunnableWrapper>
5
+ <AlignWrapper verticalAlignment="center" horizontalAlignment="center">
6
+ <Alert
7
+ title="Deprecated component"
8
+ documentationLink="https://www.windmill.dev/docs/apps/app_configuration_settings/flow_status"
9
+ tooltip="See documentation of the new component:"
10
+ type="error"
11
+ >
12
+ This component is deprecated and has been removed. Please use the Flow status by Job Id
13
+ component instead.
14
+ </Alert>
15
+ </AlignWrapper>
@@ -1,14 +1,6 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { AppInput } from '../../inputType';
3
- import type { ComponentCustomCSS } from '../../types';
4
2
  declare const __propDef: {
5
- props: {
6
- id: string;
7
- componentInput: AppInput | undefined;
8
- initializing?: boolean | undefined;
9
- customCss?: ComponentCustomCSS<'flowstatuscomponent'> | undefined;
10
- render: boolean;
11
- };
3
+ props: Record<string, never>;
12
4
  events: {
13
5
  [evt: string]: CustomEvent<any>;
14
6
  };
@@ -1,23 +1,23 @@
1
1
  <script>import { getContext } from 'svelte';
2
2
  import { twMerge } from 'tailwind-merge';
3
3
  import { initConfig, initOutput } from '../../editor/appUtils';
4
- import RunnableWrapper from '../helpers/RunnableWrapper.svelte';
5
4
  import { initCss } from '../../utils';
6
5
  import FlowStatusViewer from '../../../FlowStatusViewer.svelte';
7
6
  import { components } from '../../editor/component';
8
7
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
9
8
  import ResolveStyle from '../helpers/ResolveStyle.svelte';
9
+ import InitializeComponent from '../helpers/InitializeComponent.svelte';
10
10
  export let id;
11
- export let componentInput;
12
11
  export let initializing = false;
13
12
  export let customCss = undefined;
14
- export let render;
15
13
  export let configuration;
14
+ export let render;
16
15
  const { app, worldStore, workspace } = getContext('AppViewerContext');
17
- let resolvedConfig = initConfig(components['jobidlogcomponent'].initialData.configuration, configuration);
16
+ const resolvedConfig = initConfig(components['jobidlogcomponent'].initialData.configuration, configuration);
18
17
  const outputs = initOutput($worldStore, id, {
19
18
  result: undefined,
20
- loading: false
19
+ loading: false,
20
+ jobId: undefined
21
21
  });
22
22
  initializing = false;
23
23
  let css = initCss($app.css?.jobidflowstatuscomponent, customCss);
@@ -43,7 +43,9 @@ $: jobId = resolvedConfig.jobId;
43
43
  />
44
44
  {/each}
45
45
 
46
- <RunnableWrapper {outputs} {render} {componentInput} {id}>
46
+ <InitializeComponent {id} />
47
+
48
+ {#if render}
47
49
  <div class="flex flex-col w-full h-full component-wrapper">
48
50
  <div
49
51
  class={twMerge(
@@ -66,10 +68,21 @@ $: jobId = resolvedConfig.jobId;
66
68
  )}
67
69
  >
68
70
  {#if jobId}
69
- <FlowStatusViewer workspaceId={workspace} {jobId} />
71
+ <FlowStatusViewer
72
+ workspaceId={workspace}
73
+ {jobId}
74
+ on:start={() => {
75
+ outputs?.jobId.set(jobId)
76
+ outputs?.loading.set(true)
77
+ }}
78
+ on:done={(e) => {
79
+ outputs?.loading.set(false)
80
+ outputs?.result.set(e?.detail?.result)
81
+ }}
82
+ />
70
83
  {:else}
71
84
  <span class="text-secondary text-xs">No flow</span>
72
85
  {/if}
73
86
  </div>
74
87
  </div>
75
- </RunnableWrapper>
88
+ {/if}
@@ -1,14 +1,12 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { AppInput } from '../../inputType';
3
2
  import type { ComponentCustomCSS, RichConfigurations } from '../../types';
4
3
  declare const __propDef: {
5
4
  props: {
6
5
  id: string;
7
- componentInput: AppInput | undefined;
8
6
  initializing?: boolean | undefined;
9
7
  customCss?: ComponentCustomCSS<'jobidflowstatuscomponent'> | undefined;
10
- render: boolean;
11
8
  configuration: RichConfigurations;
9
+ render: boolean;
12
10
  };
13
11
  events: {
14
12
  [evt: string]: CustomEvent<any>;
@@ -1,20 +1,19 @@
1
1
  <script>import { getContext } from 'svelte';
2
2
  import { twMerge } from 'tailwind-merge';
3
3
  import { initConfig, initOutput } from '../../editor/appUtils';
4
- import RunnableWrapper from '../helpers/RunnableWrapper.svelte';
5
4
  import { initCss } from '../../utils';
6
5
  import LogViewer from '../../../LogViewer.svelte';
7
6
  import TestJobLoader from '../../../TestJobLoader.svelte';
8
7
  import { components } from '../../editor/component';
9
8
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
10
9
  import ResolveStyle from '../helpers/ResolveStyle.svelte';
10
+ import InitializeComponent from '../helpers/InitializeComponent.svelte';
11
11
  export let id;
12
- export let componentInput;
13
12
  export let initializing = false;
14
13
  export let customCss = undefined;
15
- export let render;
16
14
  export let configuration;
17
- const { app, worldStore } = getContext('AppViewerContext');
15
+ export let render;
16
+ const { app, worldStore, workspace } = getContext('AppViewerContext');
18
17
  let resolvedConfig = initConfig(components['jobidlogcomponent'].initialData.configuration, configuration);
19
18
  const outputs = initOutput($worldStore, id, {
20
19
  result: undefined,
@@ -27,6 +26,7 @@ let testJobLoader = undefined;
27
26
  let testIsLoading = false;
28
27
  let testJob = undefined;
29
28
  $: if (resolvedConfig.jobId) {
29
+ outputs.loading.set(true);
30
30
  testJobLoader?.watchJob(resolvedConfig?.['jobId']);
31
31
  }
32
32
  </script>
@@ -50,9 +50,21 @@ $: if (resolvedConfig.jobId) {
50
50
  />
51
51
  {/each}
52
52
 
53
- <TestJobLoader bind:this={testJobLoader} bind:isLoading={testIsLoading} bind:job={testJob} />
53
+ <TestJobLoader
54
+ workspaceOverride={workspace}
55
+ bind:this={testJobLoader}
56
+ bind:isLoading={testIsLoading}
57
+ bind:job={testJob}
58
+ on:done={(e) => {
59
+ outputs.loading.set(false)
60
+ outputs.jobId.set(e.detail.id)
61
+ outputs.result.set(e.detail.result)
62
+ }}
63
+ />
64
+
65
+ <InitializeComponent {id} />
54
66
 
55
- <RunnableWrapper {outputs} {render} {componentInput} {id}>
67
+ {#if render}
56
68
  <div class="flex flex-col w-full h-full component-wrapper">
57
69
  <div
58
70
  class={twMerge(
@@ -77,4 +89,4 @@ $: if (resolvedConfig.jobId) {
77
89
  />
78
90
  </div>
79
91
  </div>
80
- </RunnableWrapper>
92
+ {/if}
@@ -1,14 +1,12 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { AppInput } from '../../inputType';
3
2
  import type { ComponentCustomCSS, RichConfigurations } from '../../types';
4
3
  declare const __propDef: {
5
4
  props: {
6
5
  id: string;
7
- componentInput: AppInput | undefined;
8
6
  initializing?: boolean | undefined;
9
7
  customCss?: ComponentCustomCSS<'jobidlogcomponent'> | undefined;
10
- render: boolean;
11
8
  configuration: RichConfigurations;
9
+ render: boolean;
12
10
  };
13
11
  events: {
14
12
  [evt: string]: CustomEvent<any>;
@@ -1,72 +1,15 @@
1
- <script>import { getContext } from 'svelte';
2
- import { twMerge } from 'tailwind-merge';
3
- import { initOutput } from '../../editor/appUtils';
4
- import RunnableWrapper from '../helpers/RunnableWrapper.svelte';
5
- import { initCss } from '../../utils';
6
- import LogViewer from '../../../LogViewer.svelte';
7
- import TestJobLoader from '../../../TestJobLoader.svelte';
8
- import ResolveStyle from '../helpers/ResolveStyle.svelte';
9
- export let id;
10
- export let componentInput;
11
- export let initializing = false;
12
- export let customCss = undefined;
13
- export let render;
14
- const { app, worldStore } = getContext('AppViewerContext');
15
- const outputs = initOutput($worldStore, id, {
16
- result: undefined,
17
- loading: false
18
- });
19
- initializing = false;
20
- let css = initCss($app.css?.logcomponent, customCss);
21
- let testJobLoader = undefined;
22
- let testIsLoading = false;
23
- let testJob = undefined;
1
+ <script>import { Alert } from '../../../common';
2
+ import AlignWrapper from '../helpers/AlignWrapper.svelte';
24
3
  </script>
25
4
 
26
- <TestJobLoader bind:this={testJobLoader} bind:isLoading={testIsLoading} bind:job={testJob} />
27
-
28
- {#each Object.keys(css ?? {}) as key (key)}
29
- <ResolveStyle
30
- {id}
31
- {customCss}
32
- {key}
33
- bind:css={css[key]}
34
- componentStyle={$app.css?.logcomponent}
35
- />
36
- {/each}
37
-
38
- <RunnableWrapper
39
- on:started={(e) => {
40
- testJobLoader?.watchJob(e.detail)
41
- }}
42
- {outputs}
43
- {render}
44
- {componentInput}
45
- {id}
46
- >
47
- <div class="flex flex-col w-full h-full">
48
- <div
49
- class={twMerge(
50
- 'w-full border-b px-2 text-xs p-1 font-semibold bg-gray-500 text-white rounded-t-sm',
51
- css?.header?.class,
52
- 'wm-log-header'
53
- )}
54
- style={css?.header?.style}
55
- >
56
- Logs
57
- </div>
58
- <div
59
- style={css?.container?.style}
60
- class={twMerge('p-2 grow overflow-auto', css?.container?.class, 'wm-log-container')}
61
- >
62
- <LogViewer
63
- jobId={testJob?.id}
64
- duration={testJob?.['duration_ms']}
65
- mem={testJob?.['mem_peak']}
66
- content={testJob?.logs}
67
- isLoading={testIsLoading}
68
- tag={testJob?.tag}
69
- />
70
- </div>
71
- </div>
72
- </RunnableWrapper>
5
+ <AlignWrapper verticalAlignment="center" horizontalAlignment="center">
6
+ <Alert
7
+ title="Deprecated component"
8
+ documentationLink="https://www.windmill.dev/docs/apps/app_configuration_settings/log_display"
9
+ tooltip="See documentation of the new component:"
10
+ type="error"
11
+ >
12
+ This component is deprecated and has been removed. Please use the Log by Job Id component
13
+ instead.
14
+ </Alert>
15
+ </AlignWrapper>
@@ -1,14 +1,6 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { AppInput } from '../../inputType';
3
- import type { ComponentCustomCSS } from '../../types';
4
2
  declare const __propDef: {
5
- props: {
6
- id: string;
7
- componentInput: AppInput | undefined;
8
- initializing?: boolean | undefined;
9
- customCss?: ComponentCustomCSS<'logcomponent'> | undefined;
10
- render: boolean;
11
- };
3
+ props: Record<string, never>;
12
4
  events: {
13
5
  [evt: string]: CustomEvent<any>;
14
6
  };
@@ -1,6 +1,6 @@
1
1
  <script>import RunnableWrapper from '../../helpers/RunnableWrapper.svelte';
2
2
  import { initCss } from '../../../utils';
3
- import { getContext, onMount } from 'svelte';
3
+ import { getContext } from 'svelte';
4
4
  import { initConfig, initOutput } from '../../../editor/appUtils';
5
5
  import { components } from '../../../editor/component';
6
6
  import ResolveConfig from '../../helpers/ResolveConfig.svelte';
@@ -194,22 +194,32 @@ async function loadLibrary() {
194
194
  AgChartsInstance = community.AgCharts;
195
195
  }
196
196
  }
197
- onMount(() => {
197
+ function initChart() {
198
+ try {
199
+ // Chart Options
200
+ const options = {
201
+ container: document.getElementById(`agchart-${id}`),
202
+ data: [],
203
+ series: []
204
+ };
205
+ chartInstance = AgChartsInstance?.create(options);
206
+ }
207
+ catch (error) {
208
+ console.error(error);
209
+ }
210
+ }
211
+ function destroyChart() {
212
+ if (chartInstance) {
213
+ chartInstance.destroy();
214
+ chartInstance = undefined;
215
+ }
216
+ }
217
+ $: if (render) {
218
+ destroyChart();
198
219
  loadLibrary().then(() => {
199
- try {
200
- // Chart Options
201
- const options = {
202
- container: document.getElementById(`agchart-${id}`),
203
- data: [],
204
- series: []
205
- };
206
- chartInstance = AgChartsInstance?.create(options);
207
- }
208
- catch (error) {
209
- console.error(error);
210
- }
220
+ initChart();
211
221
  });
212
- });
222
+ }
213
223
  </script>
214
224
 
215
225
  {#if datasets}
@@ -141,6 +141,7 @@ const { selectedComponent, hoverStore, mode, connectingInput } = getContext('App
141
141
  }}
142
142
  componentInput={action.componentInput}
143
143
  verticalAlignment="center"
144
+ replaceCallback={true}
144
145
  {controls}
145
146
  />
146
147
  {:else if action.type == 'checkboxcomponent'}
@@ -198,6 +199,7 @@ const { selectedComponent, hoverStore, mode, connectingInput } = getContext('App
198
199
  extraQueryParams={{
199
200
  row
200
201
  }}
202
+ replaceCallback={true}
201
203
  componentInput={action.componentInput}
202
204
  />
203
205
  {:else if action.type == 'checkboxcomponent'}
@@ -95,7 +95,7 @@ async function updateConfiguration() {
95
95
  </div>
96
96
  </Alert>
97
97
  </div>
98
- {:else}
98
+ {:else if $mode === 'dnd'}
99
99
  <div class="m-16">
100
100
  <Alert title="Parsing issues" type="error" size="xs">
101
101
  <div class="flex flex-col items-start gap-2">
@@ -18,7 +18,8 @@ onMount(() => {
18
18
  });
19
19
  let outputs = initOutput($worldStore, id, {
20
20
  result: result,
21
- loading: false
21
+ loading: false,
22
+ jobId: undefined
22
23
  });
23
24
  </script>
24
25
 
@@ -39,6 +39,7 @@ export let allowConcurentRequests = false;
39
39
  export let noInitialize = false;
40
40
  export let overrideCallback = undefined;
41
41
  export let overrideAutoRefresh = false;
42
+ export let replaceCallback = false;
42
43
  const { worldStore, runnableComponents, workspace, appPath, isEditor, jobs, jobsById, noBackend, errorByComponent, mode, stateId, state, componentControl, initialized, selectedComponent, app, connectingInput, bgRuns } = getContext('AppViewerContext');
43
44
  const editorContext = getContext('AppEditorContext');
44
45
  const iterContext = getContext('ListWrapperContext');
@@ -318,7 +319,7 @@ async function executeComponent(noToast = false, inlineScriptOverride, setRunnab
318
319
  loading = false;
319
320
  }
320
321
  }
321
- export async function runComponent(noToast = false, inlineScriptOverride, setRunnableJobEditorPanel, dynamicArgsOverride, callbacks) {
322
+ export async function runComponent(noToast = true, inlineScriptOverride, setRunnableJobEditorPanel, dynamicArgsOverride, callbacks) {
322
323
  try {
323
324
  if (cancellableRun && !dynamicArgsOverride) {
324
325
  await cancellableRun();
@@ -329,7 +330,7 @@ export async function runComponent(noToast = false, inlineScriptOverride, setRun
329
330
  }
330
331
  }
331
332
  catch (e) {
332
- let error = e.body ?? e.message;
333
+ let error = e?.body ?? e?.message;
333
334
  updateResult({ error });
334
335
  $errorByComponent[id] = { error };
335
336
  }
@@ -454,7 +455,7 @@ onMount(() => {
454
455
  },
455
456
  error: (e) => {
456
457
  console.error(e);
457
- reject();
458
+ reject(e);
458
459
  }
459
460
  }).catch(reject);
460
461
  });
@@ -466,11 +467,20 @@ onMount(() => {
466
467
  return p;
467
468
  };
468
469
  }
469
- $runnableComponents[id] = {
470
- autoRefresh: (autoRefresh && recomputableByRefreshButton) || overrideAutoRefresh,
471
- refreshOnStart: refreshOnStart,
472
- cb: [...($runnableComponents[id]?.cb ?? []), cancellableRun]
473
- };
470
+ if (replaceCallback) {
471
+ $runnableComponents[id] = {
472
+ autoRefresh: (autoRefresh && recomputableByRefreshButton) || overrideAutoRefresh,
473
+ refreshOnStart: refreshOnStart,
474
+ cb: [cancellableRun]
475
+ };
476
+ }
477
+ else {
478
+ $runnableComponents[id] = {
479
+ autoRefresh: (autoRefresh && recomputableByRefreshButton) || overrideAutoRefresh,
480
+ refreshOnStart: refreshOnStart,
481
+ cb: [...($runnableComponents[id]?.cb ?? []), cancellableRun]
482
+ };
483
+ }
474
484
  if (!noInitialize && !$initialized.initializedComponents.includes(id)) {
475
485
  $initialized.initializedComponents = [...$initialized.initializedComponents, id];
476
486
  }
@@ -35,6 +35,7 @@ declare const __propDef: {
35
35
  noInitialize?: boolean | undefined;
36
36
  overrideCallback?: (() => CancelablePromise<void>) | undefined;
37
37
  overrideAutoRefresh?: boolean | undefined;
38
+ replaceCallback?: boolean | undefined;
38
39
  setArgs?: ((value: any) => void) | undefined;
39
40
  invalidate?: ((key: string, error: string) => void) | undefined;
40
41
  validate?: ((key: string) => void) | undefined;
@@ -9,6 +9,7 @@ export let noInitialize = false;
9
9
  export let hideRefreshButton = undefined;
10
10
  export let overrideCallback = undefined;
11
11
  export let overrideAutoRefresh = false;
12
+ export let replaceCallback = false;
12
13
  export let id;
13
14
  export let result = undefined;
14
15
  export let initializing = true;
@@ -173,6 +174,7 @@ export async function handleSideEffect(success, errorMessage) {
173
174
  {refreshOnStart}
174
175
  {extraKey}
175
176
  {hasChildrens}
177
+ {replaceCallback}
176
178
  bind:loading
177
179
  bind:this={runnableComponent}
178
180
  fields={componentInput.fields}
@@ -10,6 +10,7 @@ declare const __propDef: {
10
10
  hideRefreshButton?: boolean | undefined;
11
11
  overrideCallback?: (() => CancelablePromise<void>) | undefined;
12
12
  overrideAutoRefresh?: boolean | undefined;
13
+ replaceCallback?: boolean | undefined;
13
14
  id: string;
14
15
  result?: any;
15
16
  initializing?: boolean | undefined;
@@ -1,4 +1,3 @@
1
- import { isPlainObject } from 'lodash';
2
1
  import { sendUserToast } from '../../../../toast';
3
2
  export function computeGlobalContext(world, extraContext = {}) {
4
3
  return {
@@ -41,35 +40,6 @@ function make_context_evaluator(eval_string, contextKeys, noReturn) {
41
40
  functorCache[cacheKey] = r;
42
41
  return r;
43
42
  }
44
- function isSerializable(obj) {
45
- var isNestedSerializable;
46
- function isPlain(val) {
47
- return (val == null ||
48
- typeof val === 'undefined' ||
49
- typeof val === 'string' ||
50
- typeof val === 'boolean' ||
51
- typeof val === 'number' ||
52
- Array.isArray(val) ||
53
- isPlainObject(val));
54
- }
55
- if (!isPlain(obj)) {
56
- return false;
57
- }
58
- for (var property in obj) {
59
- if (obj.hasOwnProperty(property)) {
60
- if (!isPlain(obj[property])) {
61
- return false;
62
- }
63
- if (typeof obj[property] == 'object') {
64
- isNestedSerializable = isSerializable(obj[property]);
65
- if (!isNestedSerializable) {
66
- return false;
67
- }
68
- }
69
- }
70
- }
71
- return true;
72
- }
73
43
  function hashCode(s) {
74
44
  var hash = 0, i, chr;
75
45
  if (s.length === 0)
@@ -89,12 +59,7 @@ export async function eval_like(text, context = {}, state, editor, controlCompon
89
59
  }
90
60
  target[key] = value;
91
61
  let o = worldStore?.newOutput('state', key, value);
92
- if (isSerializable(value)) {
93
- o?.set(value, true);
94
- }
95
- else {
96
- o?.set('Not serializable object usable only by frontend scripts', true);
97
- }
62
+ o?.set(value, true);
98
63
  return true;
99
64
  }
100
65
  });
@@ -10,7 +10,8 @@ export let id;
10
10
  export let configuration;
11
11
  export let customCss = undefined;
12
12
  export let render;
13
- const { app, worldStore, componentControl, mode } = getContext('AppViewerContext');
13
+ export let onFileChange = undefined;
14
+ const { app, worldStore, componentControl, mode, runnableComponents } = getContext('AppViewerContext');
14
15
  let acceptedFileTypes = undefined;
15
16
  let allowMultiple = undefined;
16
17
  let text = undefined;
@@ -28,6 +29,7 @@ async function handleChange(files) {
28
29
  });
29
30
  }
30
31
  outputs?.result.set(files);
32
+ onFileChange?.forEach((id) => $runnableComponents?.[id]?.cb?.forEach((cb) => cb?.()));
31
33
  }
32
34
  let css = initCss($app.css?.fileinputcomponent, customCss);
33
35
  let fileInput = undefined;
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  configuration: RichConfigurations;
7
7
  customCss?: ComponentCustomCSS<'fileinputcomponent'> | undefined;
8
8
  render: boolean;
9
+ onFileChange?: string[] | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -12,9 +12,10 @@ export let configuration;
12
12
  export let customCss = undefined;
13
13
  export let render;
14
14
  export let extraKey = undefined;
15
+ export let onFileChange = undefined;
15
16
  let resolvedConfig = initConfig(components['s3fileinputcomponent'].initialData.configuration, configuration);
16
17
  let fileUploads = writable([]);
17
- const { app, worldStore, componentControl } = getContext('AppViewerContext');
18
+ const { app, worldStore, componentControl, runnableComponents } = getContext('AppViewerContext');
18
19
  $componentControl[id] = {
19
20
  clearFiles: () => {
20
21
  outputs.result.set([]);
@@ -102,6 +103,7 @@ let forceDisplayUploads = false;
102
103
  on:addition={(evt) => {
103
104
  const curr = outputs.result.peak()
104
105
  outputs.result.set(curr.concat(evt.detail))
106
+ onFileChange?.forEach((id) => $runnableComponents?.[id]?.cb?.forEach((cb) => cb?.()))
105
107
  }}
106
108
  on:deletion={(evt) => {
107
109
  const curr = outputs.result.peak()
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  customCss?: ComponentCustomCSS<'s3fileinputcomponent'> | undefined;
8
8
  render: boolean;
9
9
  extraKey?: string | undefined;
10
+ onFileChange?: string[] | undefined;
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;