windmill-components 1.522.0 → 1.531.1

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 (272) hide show
  1. package/package/components/AIAgentLogViewer.svelte +123 -0
  2. package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
  3. package/package/components/AppConnectInner.svelte +10 -10
  4. package/package/components/AutoscalingConfigEditor.svelte +76 -2
  5. package/package/components/Dev.svelte +12 -28
  6. package/package/components/DiffEditor.svelte +6 -3
  7. package/package/components/DiffEditor.svelte.d.ts +1 -0
  8. package/package/components/DisplayResult.svelte +16 -10
  9. package/package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/package/components/EditableSchemaForm.svelte +5 -2
  11. package/package/components/Editor.svelte +26 -8
  12. package/package/components/Editor.svelte.d.ts +1 -1
  13. package/package/components/EditorBar.svelte +25 -5
  14. package/package/components/EditorSettings.svelte +6 -0
  15. package/package/components/FirstStepInputs.svelte +2 -2
  16. package/package/components/FlowBuilder.svelte +18 -36
  17. package/package/components/FlowGraphViewerStep.svelte +7 -0
  18. package/package/components/FlowJobResult.svelte +15 -63
  19. package/package/components/FlowJobResult.svelte.d.ts +10 -4
  20. package/package/components/FlowLogViewer.svelte +660 -0
  21. package/package/components/FlowLogViewer.svelte.d.ts +34 -0
  22. package/package/components/FlowLogViewerWrapper.svelte +52 -0
  23. package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
  24. package/package/components/FlowLoopIterationPreview.svelte +3 -3
  25. package/package/components/FlowPreviewContent.svelte +4 -5
  26. package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
  27. package/package/components/FlowPreviewResult.svelte +4 -5
  28. package/package/components/FlowPreviewResult.svelte.d.ts +3 -5
  29. package/package/components/FlowStatusViewer.svelte +28 -16
  30. package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
  31. package/package/components/FlowStatusViewerInner.svelte +483 -296
  32. package/package/components/FlowStatusViewerInner.svelte.d.ts +27 -33
  33. package/package/components/FlowTimeline.svelte +11 -13
  34. package/package/components/FlowTimeline.svelte.d.ts +6 -5
  35. package/package/components/FlowWrapper.svelte +3 -2
  36. package/package/components/HighlightCode.svelte +4 -1
  37. package/package/components/IconedResourceType.svelte +9 -5
  38. package/package/components/JobLoader.svelte +61 -8
  39. package/package/components/JobLoader.svelte.d.ts +9 -1
  40. package/package/components/LogViewer.svelte +8 -2
  41. package/package/components/LogViewer.svelte.d.ts +1 -0
  42. package/package/components/LogViewerHeader.svelte +32 -0
  43. package/package/components/LogViewerHeader.svelte.d.ts +8 -0
  44. package/package/components/ModulePreviewForm.svelte +10 -6
  45. package/package/components/ModulePreviewResultViewer.svelte +16 -0
  46. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
  47. package/package/components/ModuleTest.svelte +59 -16
  48. package/package/components/RelativeLineNumbers.svelte +16 -0
  49. package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
  50. package/package/components/ResourceEditor.svelte +9 -4
  51. package/package/components/ScriptBuilder.svelte +13 -11
  52. package/package/components/ScriptEditor.svelte +2 -2
  53. package/package/components/SimpleEditor.svelte +10 -4
  54. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  55. package/package/components/TemplateEditor.svelte +1 -1
  56. package/package/components/UserSettings.svelte +4 -4
  57. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  58. package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
  59. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
  60. package/package/components/apps/components/display/table/AppAggridTable.svelte +2 -2
  61. package/package/components/apps/components/helpers/HiddenComponent.svelte +0 -1
  62. package/package/components/apps/components/helpers/InputValue.svelte +6 -1
  63. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
  64. package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  65. package/package/components/apps/components/helpers/RunnableComponent.svelte +7 -8
  66. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  67. package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
  68. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
  69. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
  70. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
  71. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  72. package/package/components/apps/components/layout/AppDecisionTree.svelte +31 -20
  73. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  74. package/package/components/apps/components/layout/AppList.svelte +9 -8
  75. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  76. package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
  77. package/package/components/apps/components/layout/AppStepper.svelte +9 -5
  78. package/package/components/apps/components/layout/AppTabs.svelte +2 -2
  79. package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
  80. package/package/components/apps/editor/GridEditor.svelte +24 -19
  81. package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
  82. package/package/components/apps/editor/GridViewer.svelte +1 -1
  83. package/package/components/apps/editor/SubGridEditor.svelte +7 -11
  84. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
  85. package/package/components/apps/editor/appUtils.js +17 -68
  86. package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
  87. package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
  88. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -46
  89. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +29 -43
  90. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  91. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
  92. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
  93. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
  94. package/package/components/apps/svelte-grid/Grid.svelte +23 -25
  95. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
  96. package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
  97. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
  98. package/package/components/apps/utils.d.ts +2 -0
  99. package/package/components/apps/utils.js +22 -0
  100. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  101. package/package/components/common/fileDownload/FileDownload.svelte +1 -3
  102. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
  103. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  104. package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
  105. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  106. package/package/components/copilot/MetadataGen.svelte +19 -1
  107. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
  108. package/package/components/copilot/ScriptGen.svelte +23 -31
  109. package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
  110. package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
  111. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
  112. package/package/components/copilot/chat/AIChatInput.svelte +29 -6
  113. package/package/components/copilot/chat/AIChatManager.svelte.js +110 -26
  114. package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
  115. package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
  116. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
  117. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
  118. package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
  119. package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
  120. package/package/components/copilot/chat/api/apiTools.js +192 -0
  121. package/package/components/copilot/chat/api/core.d.ts +7 -0
  122. package/package/components/copilot/chat/api/core.js +61 -0
  123. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
  124. package/package/components/copilot/chat/flow/core.js +213 -42
  125. package/package/components/copilot/chat/flow/utils.js +3 -0
  126. package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
  127. package/package/components/copilot/chat/monaco-adapter.js +10 -4
  128. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  129. package/package/components/copilot/chat/navigator/core.js +20 -22
  130. package/package/components/copilot/chat/script/core.d.ts +11 -3
  131. package/package/components/copilot/chat/script/core.js +92 -15
  132. package/package/components/copilot/chat/shared.d.ts +30 -3
  133. package/package/components/copilot/chat/shared.js +228 -9
  134. package/package/components/copilot/lib.d.ts +1 -1
  135. package/package/components/copilot/lib.js +15 -6
  136. package/package/components/custom_ui.d.ts +2 -0
  137. package/package/components/details/DetailPageLayout.svelte +34 -33
  138. package/package/components/flow_builder.d.ts +1 -2
  139. package/package/components/flows/FlowEditor.svelte +3 -3
  140. package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
  141. package/package/components/flows/common/FlowCard.svelte +2 -2
  142. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  143. package/package/components/flows/common/FlowCardHeader.svelte +13 -4
  144. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  145. package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
  146. package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
  147. package/package/components/flows/content/FlowConstants.svelte +3 -3
  148. package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
  150. package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
  151. package/package/components/flows/content/FlowLoop.svelte +2 -2
  152. package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
  153. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
  156. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  157. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  158. package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
  159. package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
  160. package/package/components/flows/content/FlowResult.svelte +2 -3
  161. package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
  162. package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
  163. package/package/components/flows/dfs.d.ts +3 -1
  164. package/package/components/flows/dfs.js +5 -1
  165. package/package/components/flows/flowInfers.js +78 -0
  166. package/package/components/flows/flowState.d.ts +2 -3
  167. package/package/components/flows/flowState.js +2 -2
  168. package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
  169. package/package/components/flows/flowStateUtils.svelte.js +14 -13
  170. package/package/components/flows/flowStore.d.ts +3 -4
  171. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  172. package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
  173. package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
  174. package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
  175. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
  176. package/package/components/flows/map/FlowModuleSchemaItem.svelte +12 -12
  177. package/package/components/flows/map/FlowModuleSchemaMap.svelte +26 -19
  178. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
  179. package/package/components/flows/map/InsertModuleInner.svelte +9 -1
  180. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  181. package/package/components/flows/map/MapItem.svelte +4 -2
  182. package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
  183. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
  184. package/package/components/flows/propPicker/OutputBadge.svelte +11 -9
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte +10 -1
  186. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  187. package/package/components/flows/testSteps.svelte.d.ts +3 -2
  188. package/package/components/flows/testSteps.svelte.js +26 -23
  189. package/package/components/flows/types.d.ts +1 -1
  190. package/package/components/flows/utils.d.ts +3 -5
  191. package/package/components/flows/utils.js +3 -4
  192. package/package/components/git_sync/GitSyncContext.svelte.js +2 -1
  193. package/package/components/graph/FlowGraphV2.svelte +44 -24
  194. package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
  195. package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
  196. package/package/components/graph/graphBuilder.svelte.js +30 -14
  197. package/package/components/graph/model.d.ts +9 -6
  198. package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
  199. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
  200. package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
  201. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
  202. package/package/components/graph/renderers/nodes/AssetNode.svelte +15 -10
  203. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
  204. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  205. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  206. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  207. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
  208. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  209. package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
  210. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
  211. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
  212. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  213. package/package/components/icons/RubyIcon.svelte +656 -0
  214. package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
  215. package/package/components/instanceSettings.js +9 -0
  216. package/package/components/modulesTest.svelte.d.ts +6 -3
  217. package/package/components/modulesTest.svelte.js +32 -0
  218. package/package/components/preview/FlowPreviewStatus.svelte +3 -1
  219. package/package/components/raw_apps/RawAppEditor.svelte +27 -26
  220. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
  221. package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +1 -4
  222. package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
  223. package/package/components/runs/RunRow.svelte +5 -1
  224. package/package/components/schema/AddProperty.svelte +41 -36
  225. package/package/components/schema/AddProperty.svelte.d.ts +2 -2
  226. package/package/components/schema/AddPropertyV2.svelte +41 -37
  227. package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
  228. package/package/components/schema/FlowPropertyEditor.svelte +8 -6
  229. package/package/components/search/RunsSearch.svelte +1 -1
  230. package/package/components/settings/CreateToken.svelte +132 -12
  231. package/package/components/settings/CreateToken.svelte.d.ts +3 -20
  232. package/package/components/settings/TokenDisplay.svelte +18 -42
  233. package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
  234. package/package/components/settings/TokensTable.svelte +2 -4
  235. package/package/components/settings/TokensTable.svelte.d.ts +3 -19
  236. package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
  237. package/package/components/sidebar/MenuButton.svelte +12 -10
  238. package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
  239. package/package/components/stepHistoryLoader.svelte.js +7 -12
  240. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
  241. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
  242. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
  243. package/package/components/tutorials/utils.js +3 -0
  244. package/package/components/worker_group.d.ts +4 -1
  245. package/package/components/worker_group.js +3 -2
  246. package/package/editorLangUtils.d.ts +1 -1
  247. package/package/editorLangUtils.js +2 -0
  248. package/package/editorUtils.d.ts +2 -1
  249. package/package/editorUtils.js +2 -1
  250. package/package/gen/core/OpenAPI.js +1 -1
  251. package/package/gen/schemas.gen.d.ts +296 -8
  252. package/package/gen/schemas.gen.js +364 -70
  253. package/package/gen/services.gen.d.ts +118 -16
  254. package/package/gen/services.gen.js +226 -19
  255. package/package/gen/types.gen.d.ts +660 -16
  256. package/package/hubPaths.json +7 -4
  257. package/package/infer.js +10 -1
  258. package/package/monaco_workers/graphql.worker.bundle.js +144 -110
  259. package/package/script_helpers.d.ts +3 -0
  260. package/package/script_helpers.js +58 -3
  261. package/package/scripts.d.ts +1 -1
  262. package/package/scripts.js +3 -2
  263. package/package/stores.d.ts +2 -0
  264. package/package/stores.js +2 -0
  265. package/package/svelte5Utils.svelte.d.ts +16 -0
  266. package/package/svelte5Utils.svelte.js +26 -0
  267. package/package/utils.d.ts +1 -1
  268. package/package.json +20 -19
  269. package/package/components/AllFlowLogs.svelte +0 -31
  270. package/package/components/AllFlowLogs.svelte.d.ts +0 -8
  271. package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
  272. package/package/components/copilot/chat/navigator/apiTools.js +0 -258
@@ -4,17 +4,18 @@ import { getScriptByPath } from '../scripts';
4
4
  import { getContext } from 'svelte';
5
5
  import JobLoader, {} from './JobLoader.svelte';
6
6
  import { getStepHistoryLoaderContext } from './stepHistoryLoader.svelte';
7
+ import { loadSchemaFromModule } from './flows/flowInfers';
7
8
  let { mod, testJob = $bindable(undefined), testIsLoading = $bindable(false), noEditor = false, scriptProgress = $bindable(undefined) } = $props();
8
9
  const { flowStore, flowStateStore, pathStore, testSteps, previewArgs, modulesTestStates } = getContext('FlowEditorContext');
9
10
  let jobLoader = $state(undefined);
10
11
  let jobProgressReset = () => { };
11
12
  let stepHistoryLoader = getStepHistoryLoaderContext();
12
13
  export function runTestWithStepArgs() {
13
- runTest(testSteps.getStepArgs(mod.id)?.value);
14
+ runTest(testSteps.getStepArgs(mod.id));
14
15
  }
15
16
  export function loadArgsAndRunTest() {
16
- testSteps?.updateStepArgs(mod.id, $flowStateStore, flowStore?.val, previewArgs?.val);
17
- runTest(testSteps.getStepArgs(mod.id)?.value);
17
+ testSteps?.updateStepArgs(mod.id, flowStateStore.val, flowStore?.val, previewArgs?.val);
18
+ runTest(testSteps.getStepArgs(mod.id));
18
19
  }
19
20
  export async function runTest(args) {
20
21
  // Not defined if JobProgressBar not loaded
@@ -46,36 +47,65 @@ export async function runTest(args) {
46
47
  else if (val.type == 'flow') {
47
48
  await jobLoader?.runFlowByPath(val.path, args, callbacks);
48
49
  }
50
+ else if (val.type == 'aiagent') {
51
+ const { schema } = await loadSchemaFromModule(mod);
52
+ const inputTransforms = Object.fromEntries(Object.keys(args).map((key) => [
53
+ key,
54
+ {
55
+ expr: `flow_input.${key}`,
56
+ type: 'javascript'
57
+ }
58
+ ]));
59
+ await jobLoader?.runFlowPreview(args, {
60
+ value: {
61
+ modules: [
62
+ {
63
+ ...mod,
64
+ value: {
65
+ type: 'aiagent',
66
+ tools: mod.value.type == 'aiagent' ? mod.value.tools : [],
67
+ input_transforms: inputTransforms
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ summary: '',
73
+ schema
74
+ }, callbacks);
75
+ }
49
76
  else {
50
77
  throw Error('Not supported module type');
51
78
  }
52
79
  }
53
80
  function jobDone(testJob) {
54
81
  if (testJob && !testJob.canceled && testJob.type == 'CompletedJob') {
55
- if ($flowStateStore[mod.id]) {
56
- $flowStateStore[mod.id].previewResult = testJob.result;
57
- $flowStateStore[mod.id].previewSuccess = testJob.success;
58
- $flowStateStore[mod.id].previewJobId = testJob.id;
59
- $flowStateStore[mod.id].previewWorkspaceId = testJob.workspace_id;
60
- $flowStateStore = $flowStateStore;
82
+ if (flowStateStore.val[mod.id]) {
83
+ flowStateStore.val[mod.id] = {
84
+ ...flowStateStore.val[mod.id],
85
+ previewResult: testJob.result,
86
+ previewSuccess: testJob.success,
87
+ previewJobId: testJob.id
88
+ };
61
89
  }
62
90
  stepHistoryLoader?.resetInitial(mod.id);
63
91
  }
64
- modulesTestStates.states[mod.id].testJob = undefined;
92
+ if (modulesTestStates.states[mod.id]) {
93
+ modulesTestStates.states[mod.id].testJob = testJob;
94
+ }
65
95
  }
66
96
  export function cancelJob() {
67
97
  modulesTestStates.states[mod.id]?.cancel?.();
68
98
  }
69
99
  $effect(() => {
70
100
  // Update testIsLoading to read the state from parent components
71
- testIsLoading = modulesTestStates.states[mod.id]?.loading ?? false;
101
+ testIsLoading = modulesTestStates.states?.[mod.id]?.loading ?? false;
72
102
  });
73
103
  $effect(() => {
74
104
  // Update testJob to read the state from parent components
75
- testJob = modulesTestStates.states[mod.id]?.testJob;
105
+ testJob = modulesTestStates.states?.[mod.id]?.testJob;
76
106
  });
77
107
  modulesTestStates.states[mod.id] = {
78
- ...(modulesTestStates.states[mod.id] ?? { loading: false }),
108
+ ...(modulesTestStates.states?.[mod.id] ?? { loading: false }),
79
109
  loading: testIsLoading,
80
110
  testJob: testJob
81
111
  };
@@ -90,13 +120,26 @@ modulesTestStates.states[mod.id] = {
90
120
  () => modulesTestStates.states[mod.id]?.loading ?? false,
91
121
  (v) => {
92
122
  let newLoading = v ?? false
93
- if (modulesTestStates.states[mod.id]?.loading !== newLoading) {
123
+ if (modulesTestStates.states && modulesTestStates.states?.[mod.id]?.loading !== newLoading) {
94
124
  modulesTestStates.states[mod.id] = {
95
- ...(modulesTestStates.states[mod.id] ?? {}),
96
- loading: newLoading
125
+ ...(modulesTestStates.states?.[mod.id] ?? {}),
126
+ loading: newLoading,
127
+ hiddenInGraph: false
97
128
  }
98
129
  }
99
130
  }
100
131
  }
101
132
  bind:job={modulesTestStates.states[mod.id].testJob}
133
+ loadPlaceholderJobOnStart={{
134
+ type: 'QueuedJob',
135
+ id: '',
136
+ running: false,
137
+ canceled: false,
138
+ job_kind: 'preview',
139
+ permissioned_as: '',
140
+ is_flow_step: false,
141
+ email: '',
142
+ visible_to_owner: true,
143
+ tag: ''
144
+ }}
102
145
  />
@@ -0,0 +1,16 @@
1
+ <script lang="ts">import { RELATIVE_LINE_NUMBERS_SETTING_NAME, relativeLineNumbers } from '../stores';
2
+ import { storeLocalSetting } from '../utils';
3
+ import Toggle from './Toggle.svelte';
4
+ function storeSetting() {
5
+ storeLocalSetting(RELATIVE_LINE_NUMBERS_SETTING_NAME, $relativeLineNumbers.toString());
6
+ }
7
+ </script>
8
+
9
+ <Toggle
10
+ size="xs"
11
+ bind:checked={$relativeLineNumbers}
12
+ on:change={() => {
13
+ storeSetting()
14
+ }}
15
+ options={{ right: 'relative line numbers' }}
16
+ />
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const RelativeLineNumbers: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type RelativeLineNumbers = InstanceType<typeof RelativeLineNumbers>;
18
+ export default RelativeLineNumbers;
@@ -17,6 +17,7 @@ import autosize from '../autosize';
17
17
  import GfmMarkdown from './GfmMarkdown.svelte';
18
18
  import TestTriggerConnection from './triggers/TestTriggerConnection.svelte';
19
19
  import GitHubAppIntegration from './GitHubAppIntegration.svelte';
20
+ import Button from './common/button/Button.svelte';
20
21
  let { canSave = $bindable(true), resource_type = $bindable(undefined), path = $bindable(''), newResource = false, hidePath = false, onChange, defaultValues = undefined } = $props();
21
22
  let isValid = $state(true);
22
23
  let jsonError = $state('');
@@ -190,10 +191,14 @@ run(() => {
190
191
  <h4 class="mt-4 inline-flex items-center gap-4"
191
192
  >Resource description <Required required={false} />
192
193
  {#if can_write}
193
- <div class="flex gap-1 items-center">
194
- <Toggle size="xs" bind:checked={editDescription} />
195
- <Pen size={14} />
196
- </div>
194
+ <Button
195
+ size="xs2"
196
+ variant="contained"
197
+ color="light"
198
+ btnClasses={editDescription ? 'bg-surface-hover' : ''}
199
+ startIcon={{ icon: Pen }}
200
+ on:click={() => (editDescription = !editDescription)}
201
+ />
197
202
  {/if}</h4
198
203
  >
199
204
  {#if can_write && editDescription}
@@ -908,7 +908,7 @@ async function loadWorkerTags() {
908
908
  >
909
909
  <LanguageIcon {lang} />
910
910
  <span class="ml-2 py-2 truncate">{label}</span>
911
- {#if lang === 'nu'}
911
+ {#if lang === 'nu' || lang === 'ruby'}
912
912
  <span class="text-tertiary !text-xs"> BETA </span>
913
913
  {/if}
914
914
  </Button>
@@ -1487,16 +1487,18 @@ async function loadWorkerTags() {
1487
1487
  {/if}
1488
1488
 
1489
1489
  <div class="flex flex-row gap-x-1 lg:gap-x-2">
1490
- {#if $workerTags}
1491
- {#if $workerTags?.length ?? 0 > 0}
1492
- <div class="max-w-[200px] pr-8">
1493
- <WorkerTagSelect
1494
- inputClass="text-sm text-secondary !placeholder-secondary"
1495
- nullTag={script.language}
1496
- placeholder={customUi?.tagSelectPlaceholder}
1497
- bind:tag={script.tag}
1498
- />
1499
- </div>
1490
+ {#if customUi?.topBar?.tagEdit != false}
1491
+ {#if $workerTags}
1492
+ {#if $workerTags?.length ?? 0 > 0}
1493
+ <div class="max-w-[200px] pr-8">
1494
+ <WorkerTagSelect
1495
+ inputClass="text-sm text-secondary !placeholder-secondary"
1496
+ nullTag={script.language}
1497
+ placeholder={customUi?.tagSelectPlaceholder}
1498
+ bind:tag={script.tag}
1499
+ />
1500
+ </div>
1501
+ {/if}
1500
1502
  {/if}
1501
1503
  {/if}
1502
1504
  {#if customUi?.topBar?.settings != false}
@@ -295,9 +295,9 @@ $effect(() => {
295
295
  };
296
296
  untrack(() => {
297
297
  aiChatManager.scriptEditorOptions = options;
298
- aiChatManager.scriptEditorApplyCode = (code) => {
298
+ aiChatManager.scriptEditorApplyCode = (code, applyAll = false) => {
299
299
  hideDiffMode();
300
- editor?.reviewAndApplyCode(code);
300
+ editor?.reviewAndApplyCode(code, applyAll);
301
301
  };
302
302
  aiChatManager.scriptEditorShowDiffMode = showDiffMode;
303
303
  });
@@ -72,7 +72,7 @@ import libStdContent from '../es6.d.ts.txt?raw';
72
72
  import domContent from '../dom.d.ts.txt?raw';
73
73
  import { initializeVscode, keepModelAroundToAvoidDisposalOfWorkers } from './vscode';
74
74
  import EditorTheme from './EditorTheme.svelte';
75
- import { vimMode } from '../stores';
75
+ import { vimMode, relativeLineNumbers } from '../stores';
76
76
  import { initVim } from './monaco_keybindings';
77
77
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
78
78
  import { editorPositionMap } from '../utils';
@@ -89,7 +89,7 @@ let suggestion = $state('');
89
89
  let placeholderVisible = $state(false);
90
90
  let mounted = $state(false);
91
91
  let valueAfterDispose = undefined;
92
- let { lang, code = $bindable(), hash = createHash(), cmdEnterAction, formatAction, automaticLayout = true, extraLib = '', placeholder = '', disableSuggestions = false, disableLinting = false, hideLineNumbers = false, shouldBindKey = true, autoHeight = false, fixedOverflowWidgets = true, small = false, domLib = false, autofocus = false, allowVim = false, tailwindClasses = [], class: className = '', loadAsync = false, key, disabled = false } = $props();
92
+ let { lang, code = $bindable(), hash = createHash(), cmdEnterAction, formatAction, automaticLayout = true, extraLib = '', placeholder = '', disableSuggestions = false, disableLinting = false, hideLineNumbers = false, shouldBindKey = true, autoHeight = false, fixedOverflowWidgets = true, small = false, domLib = false, autofocus = false, allowVim = false, tailwindClasses = [], class: className = '', loadAsync = false, key, disabled = false, minHeight = 1000 } = $props();
93
93
  const dispatch = createEventDispatcher();
94
94
  const uri = `file:///${hash}.${langToExt(lang)}`;
95
95
  export function getCode() {
@@ -186,6 +186,11 @@ $effect(() => {
186
186
  untrack(() => onVimDisable());
187
187
  }
188
188
  });
189
+ $effect(() => {
190
+ editor?.updateOptions({
191
+ lineNumbers: $relativeLineNumbers ? 'relative' : 'on'
192
+ });
193
+ });
189
194
  function onVimDisable() {
190
195
  vimDisposable?.dispose();
191
196
  }
@@ -284,8 +289,9 @@ async function loadMonaco() {
284
289
  return;
285
290
  }
286
291
  try {
292
+ console.log('fixedOverflowWidgets', fixedOverflowWidgets);
287
293
  editor = meditor.create(divEl, {
288
- ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets),
294
+ ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets, $relativeLineNumbers),
289
295
  model,
290
296
  lineDecorationsWidth: 6,
291
297
  lineNumbersMinChars: 2,
@@ -346,7 +352,7 @@ async function loadMonaco() {
346
352
  const updateHeight = () => {
347
353
  if (!editor)
348
354
  return;
349
- const contentHeight = Math.min(1000, editor.getContentHeight());
355
+ const contentHeight = Math.min(minHeight, editor.getContentHeight());
350
356
  if (divEl) {
351
357
  divEl.style.height = `${contentHeight}px`;
352
358
  }
@@ -29,6 +29,7 @@ type $$ComponentProps = {
29
29
  initialCursorPos?: IPosition;
30
30
  key?: string;
31
31
  disabled?: boolean;
32
+ minHeight?: number;
32
33
  };
33
34
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
34
35
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -395,7 +395,7 @@ async function loadMonaco() {
395
395
  model.updateOptions(updateOptions);
396
396
  try {
397
397
  editor = meditor.create(divEl, {
398
- ...editorConfig(code, lang, automaticLayout, fixedOverflowWidgets),
398
+ ...editorConfig(code, lang, automaticLayout, fixedOverflowWidgets, false),
399
399
  model,
400
400
  // overflowWidgetsDomNode: widgets,
401
401
  // lineNumbers: 'on',
@@ -21,9 +21,9 @@ export function closeDrawer() {
21
21
  function removeHash() {
22
22
  window.location.hash = '';
23
23
  }
24
- function handleTokenCreated(event) {
25
- newToken = event.detail;
26
- dispatch('tokenCreated', newToken);
24
+ function handleTokenCreated(token) {
25
+ newToken = token;
26
+ dispatch('tokenCreated', token);
27
27
  }
28
28
  </script>
29
29
 
@@ -53,7 +53,7 @@ function handleTokenCreated(event) {
53
53
  defaultNewTokenLabel={newTokenLabel}
54
54
  defaultNewTokenWorkspace={newTokenWorkspace}
55
55
  {scopes}
56
- on:tokenCreated={handleTokenCreated}
56
+ onTokenCreated={handleTokenCreated}
57
57
  />
58
58
  </div>
59
59
  </DrawerContent>
@@ -121,7 +121,7 @@ function toggleAccordion(index) {
121
121
  subGridId={`${id}-0`}
122
122
  containerHeight={componentContainerHeight -
123
123
  (30 * accordionInput?.value.length + 40)}
124
- on:focus={() => {
124
+ onFocus={() => {
125
125
  if (!$connectingInput.opened) {
126
126
  $selectedComponent = [id]
127
127
  }
@@ -101,14 +101,20 @@ $componentControl[id] = {
101
101
 
102
102
  <InitializeComponent {id} />
103
103
 
104
+ {#snippet nonRenderedPlaceholder()}
105
+ <ListWrapper disabled value={undefined} index={0}>
106
+ <SubGridEditor visible={false} {id} subGridId={`${id}-0`} />
107
+ </ListWrapper>
108
+ {/snippet}
104
109
  <RunnableWrapper
105
- render={true}
110
+ {render}
106
111
  {outputs}
107
112
  autoRefresh
108
113
  {componentInput}
109
114
  {id}
110
115
  bind:initializing
111
116
  bind:result
117
+ {nonRenderedPlaceholder}
112
118
  >
113
119
  {#if everRender}
114
120
  <div class="w-full flex flex-wrap overflow-auto divide-y max-h-full">
@@ -206,7 +212,7 @@ $componentControl[id] = {
206
212
  style={css?.container?.style}
207
213
  subGridId={`${id}-0`}
208
214
  containerHeight={componentContainerHeight - 40}
209
- on:focus={() => {
215
+ onFocus={() => {
210
216
  if (!$connectingInput.opened) {
211
217
  $selectedComponent = [id]
212
218
  }
@@ -219,9 +225,7 @@ $componentControl[id] = {
219
225
  </Carousel>
220
226
  {/key}
221
227
  {:else}
222
- <ListWrapper disabled value={undefined} index={0}>
223
- <SubGridEditor visible={false} {id} subGridId={`${id}-0`} />
224
- </ListWrapper>
228
+ {@render nonRenderedPlaceholder?.()}
225
229
  {#if !Array.isArray(result)}
226
230
  <div class="text-center text-tertiary">Input data is not an array</div>
227
231
  {/if}
@@ -229,8 +233,6 @@ $componentControl[id] = {
229
233
  {/if}
230
234
  </div>
231
235
  {:else if $app.subgrids}
232
- <ListWrapper disabled value={undefined} index={0}>
233
- <SubGridEditor visible={false} {id} subGridId={`${id}-0`} />
234
- </ListWrapper>
236
+ {@render nonRenderedPlaceholder?.()}
235
237
  {/if}
236
238
  </RunnableWrapper>
@@ -72,13 +72,13 @@ let jobId = $derived(resolvedConfig.jobId);
72
72
  <FlowStatusViewer
73
73
  workspaceId={workspace}
74
74
  {jobId}
75
- on:start={() => {
75
+ onStart={() => {
76
76
  outputs?.jobId.set(jobId)
77
77
  outputs?.loading.set(true)
78
78
  }}
79
- on:done={(e) => {
79
+ onDone={({ job }) => {
80
80
  outputs?.loading.set(false)
81
- outputs?.result.set(e?.detail?.result)
81
+ outputs?.result.set(job?.result as any)
82
82
  }}
83
83
  />
84
84
  {:else}
@@ -125,13 +125,13 @@ function onCellValueChanged(event) {
125
125
  let idx = Number(event.node.data['__index'].split('-')[0]);
126
126
  uid = prevUid ?? '';
127
127
  outputs?.newChange?.set({
128
- row: event.node.rowIndex,
128
+ row: idx,
129
129
  column: event.colDef.field,
130
130
  value: dataCell,
131
131
  old: result[idx][event.colDef.field]
132
132
  });
133
133
  result[idx][event.colDef.field] = dataCell;
134
- let data = { ...result[event.node.rowIndex] };
134
+ let data = { ...result[idx] };
135
135
  outputs?.selectedRow?.set(data);
136
136
  resolvedConfig?.extraConfig?.['defaultColDef']?.['onCellValueChanged']?.(event);
137
137
  }
@@ -24,7 +24,6 @@ let outputs = initOutput($worldStore, id, {
24
24
 
25
25
  {#if runnable && (runnable.type == 'runnableByPath' || (runnable.type == 'runnableByName' && runnable.inlineScript != undefined))}
26
26
  <RunnableComponent
27
- hasChildrens={false}
28
27
  render={false}
29
28
  {id}
30
29
  fields={runnable.fields}
@@ -167,7 +167,12 @@ async function evalExpr(input, args) {
167
167
  }
168
168
  catch (e) {
169
169
  error = e.message;
170
- console.warn("Eval error in app input '" + id + "' with key '" + key + "'", e);
170
+ try {
171
+ console.warn("Eval error in app input '" + id + "' with key '" + key + "'", e);
172
+ }
173
+ catch (e) {
174
+ console.warn('error warning', e);
175
+ }
171
176
  return value;
172
177
  }
173
178
  }
@@ -2,7 +2,7 @@
2
2
  import InputValue from './InputValue.svelte';
3
3
  import InitializeComponent from './InitializeComponent.svelte';
4
4
  import RefreshIndicator from './RefreshIndicator.svelte';
5
- let { componentInput, id, result = $bindable(), render, hasChildrens, noInitialize, children } = $props();
5
+ let { componentInput, id, result = $bindable(), render, noInitialize, children, nonRenderedPlaceholder } = $props();
6
6
  // Sync the result to the output
7
7
  const { worldStore } = getContext('AppViewerContext');
8
8
  let outputs = $derived($worldStore?.outputsById?.[id]);
@@ -38,7 +38,7 @@ function builtSubscriptions(connections) {
38
38
  }
39
39
  });
40
40
  }
41
- $effect.pre(() => {
41
+ $effect(() => {
42
42
  componentInput.type === 'evalv2' &&
43
43
  componentInput.connections &&
44
44
  untrack(() => builtSubscriptions(componentInput.connections));
@@ -56,11 +56,15 @@ $effect.pre(() => {
56
56
  <InputValue key="nonrunnable" {id} input={componentInput} bind:value={result} />
57
57
  {/if}
58
58
 
59
- {#if render || hasChildrens}
60
- <div class={render ? 'h-full w-full' : 'invisible h-0 overflow-hidden'}>
59
+ {#if render}
60
+ <div class="h-full w-full">
61
61
  {@render children?.()}
62
62
  <div class="flex absolute top-1 right-1 z-50 app-component-refresh-btn">
63
63
  <RefreshIndicator {loading} />
64
64
  </div>
65
65
  </div>
66
+ {:else if nonRenderedPlaceholder}
67
+ <div class="invisible h-0 overflow-hidden">
68
+ {@render nonRenderedPlaceholder?.()}
69
+ </div>
66
70
  {/if}
@@ -4,9 +4,9 @@ interface Props {
4
4
  id: string;
5
5
  result: any;
6
6
  render: boolean;
7
- hasChildrens: boolean;
8
7
  noInitialize: any;
9
8
  children?: import('svelte').Snippet;
9
+ nonRenderedPlaceholder?: import('svelte').Snippet;
10
10
  }
11
11
  declare const NonRunnableComponent: import("svelte").Component<Props, {}, "result">;
12
12
  type NonRunnableComponent = ReturnType<typeof NonRunnableComponent>;
@@ -16,7 +16,7 @@ import { computeWorkspaceS3FileInputPolicy } from '../../editor/appUtilsS3';
16
16
  import { executeRunnable } from './executeRunnable';
17
17
  import SchemaForm from '../../../SchemaForm.svelte';
18
18
  import JobLoader, {} from '../../../JobLoader.svelte';
19
- let { id, fields, runnable, transformer, extraQueryParams = {}, autoRefresh = true, result = $bindable(undefined), result_stream = $bindable(undefined), forceSchemaDisplay = false, wrapperClass = '', wrapperStyle = '', render, outputs, extraKey = '', initializing = false, recomputeOnInputChanged = true, loading = $bindable(false), refreshOnStart = false, recomputableByRefreshButton, errorHandledByComponent = false, hideRefreshButton = false, hasChildrens, allowConcurentRequests = false, noInitialize = false, overrideCallback = undefined, overrideAutoRefresh = false, replaceCallback = false, children } = $props();
19
+ let { id, fields, runnable, transformer, extraQueryParams = {}, autoRefresh = true, result = $bindable(undefined), result_stream = $bindable(undefined), forceSchemaDisplay = false, wrapperClass = '', wrapperStyle = '', render, outputs, extraKey = '', initializing = false, recomputeOnInputChanged = true, loading = $bindable(false), refreshOnStart = false, recomputableByRefreshButton, errorHandledByComponent = false, hideRefreshButton = false, allowConcurentRequests = false, noInitialize = false, overrideCallback = undefined, overrideAutoRefresh = false, replaceCallback = false, children, nonRenderedPlaceholder } = $props();
20
20
  const { worldStore, runnableComponents, workspace, appPath, isEditor, jobs, jobsById, noBackend, errorByComponent, mode, stateId, state: stateStore, componentControl, initialized, selectedComponent, app, connectingInput, bgRuns, recomputeAllContext } = getContext('AppViewerContext');
21
21
  const editorContext = getContext('AppEditorContext');
22
22
  const iterContext = getContext('ListWrapperContext');
@@ -628,13 +628,8 @@ $effect(() => {
628
628
  bind:this={resultJobLoader}
629
629
  />
630
630
 
631
- {#if render || hasChildrens}
632
- <div
633
- class="h-full flex relative flex-row flex-wrap {wrapperClass} {render
634
- ? 'visible'
635
- : 'invisible h-0 overflow-hidden'}"
636
- style={wrapperStyle}
637
- >
631
+ {#if render}
632
+ <div class="h-full flex relative flex-row flex-wrap {wrapperClass} visible" style={wrapperStyle}>
638
633
  <!-- {Object.keys(schemaStripped?.properties ?? {}).length > 0} -->
639
634
  {#if render && (autoRefresh || forceSchemaDisplay) && schemaStripped && Object.keys(schemaStripped?.properties ?? {}).length > 0}
640
635
  <div class="px-2 h-fit min-h-0">
@@ -706,4 +701,8 @@ $effect(() => {
706
701
  </div>
707
702
  {/if}
708
703
  </div>
704
+ {:else if nonRenderedPlaceholder}
705
+ <div class="invisible h-0 overflow-hidden">
706
+ {@render nonRenderedPlaceholder?.()}
707
+ </div>
709
708
  {/if}
@@ -29,13 +29,13 @@ interface Props {
29
29
  recomputableByRefreshButton: boolean;
30
30
  errorHandledByComponent?: boolean;
31
31
  hideRefreshButton?: boolean;
32
- hasChildrens: boolean;
33
32
  allowConcurentRequests?: boolean;
34
33
  noInitialize?: boolean;
35
34
  overrideCallback?: (() => CancelablePromise<void>) | undefined;
36
35
  overrideAutoRefresh?: boolean;
37
36
  replaceCallback?: boolean;
38
37
  children?: import('svelte').Snippet;
38
+ nonRenderedPlaceholder?: import('svelte').Snippet;
39
39
  }
40
40
  type RunnableCallback = {
41
41
  onDone?: (r: any) => void;
@@ -4,7 +4,7 @@ import NonRunnableComponent from './NonRunnableComponent.svelte';
4
4
  import RunnableComponent from './RunnableComponent.svelte';
5
5
  import { sendUserToast } from '../../../../toast';
6
6
  import InitializeComponent from './InitializeComponent.svelte';
7
- let { componentInput = $bindable(), noInitialize = false, hideRefreshButton = undefined, overrideCallback = undefined, overrideAutoRefresh = false, replaceCallback = false, id, result = $bindable(undefined), initializing = $bindable(undefined), loading = $bindable(false), extraQueryParams = {}, autoRefresh = true, runnableComponent = $bindable(undefined), forceSchemaDisplay = false, runnableClass = '', runnableStyle = '', doOnSuccess = undefined, doOnError = undefined, render, recomputeIds = [], outputs, extraKey = undefined, refreshOnStart = false, errorHandledByComponent = false, hasChildrens = false, allowConcurentRequests = false, onSuccess = () => { }, children } = $props();
7
+ let { componentInput = $bindable(), noInitialize = false, hideRefreshButton = undefined, overrideCallback = undefined, overrideAutoRefresh = false, replaceCallback = false, id, result = $bindable(undefined), initializing = $bindable(undefined), loading = $bindable(false), extraQueryParams = {}, autoRefresh = true, runnableComponent = $bindable(undefined), forceSchemaDisplay = false, runnableClass = '', runnableStyle = '', doOnSuccess = undefined, doOnError = undefined, render, recomputeIds = [], outputs, extraKey = undefined, refreshOnStart = false, errorHandledByComponent = false, allowConcurentRequests = false, onSuccess = () => { }, children, nonRenderedPlaceholder } = $props();
8
8
  $effect.pre(() => {
9
9
  if (initializing == undefined) {
10
10
  initializing = true;
@@ -164,6 +164,8 @@ export async function handleSideEffect(success, errorMessage) {
164
164
  {/if}
165
165
  {#if render}
166
166
  {@render children?.()}
167
+ {:else}
168
+ {@render nonRenderedPlaceholder?.()}
167
169
  {/if}
168
170
  {:else if componentInput.type === 'runnable' && isRunnableDefined(componentInput)}
169
171
  <RunnableComponent
@@ -171,7 +173,6 @@ export async function handleSideEffect(success, errorMessage) {
171
173
  {allowConcurentRequests}
172
174
  {refreshOnStart}
173
175
  {extraKey}
174
- {hasChildrens}
175
176
  {replaceCallback}
176
177
  bind:loading
177
178
  bind:this={runnableComponent}
@@ -216,11 +217,19 @@ export async function handleSideEffect(success, errorMessage) {
216
217
  on:handleError={(e) => handleSideEffect(false, e.detail)}
217
218
  {outputs}
218
219
  {errorHandledByComponent}
220
+ {nonRenderedPlaceholder}
219
221
  >
220
222
  {@render children?.()}
221
223
  </RunnableComponent>
222
224
  {:else}
223
- <NonRunnableComponent {noInitialize} {hasChildrens} {render} bind:result {id} {componentInput}>
225
+ <NonRunnableComponent
226
+ {nonRenderedPlaceholder}
227
+ {noInitialize}
228
+ {render}
229
+ bind:result
230
+ {id}
231
+ {componentInput}
232
+ >
224
233
  {@render children?.()}
225
234
  </NonRunnableComponent>
226
235
  {/if}
@@ -71,10 +71,10 @@ interface Props {
71
71
  extraKey?: string | undefined;
72
72
  refreshOnStart?: boolean;
73
73
  errorHandledByComponent?: boolean;
74
- hasChildrens?: boolean;
75
74
  allowConcurentRequests?: boolean;
76
75
  onSuccess?: (result: any) => void;
77
76
  children?: import('svelte').Snippet;
77
+ nonRenderedPlaceholder?: import('svelte').Snippet;
78
78
  }
79
79
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
80
80
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -80,8 +80,3 @@ $componentControl[id] = {
80
80
  {/await}
81
81
  </div>
82
82
  {/if}
83
-
84
- <style>
85
- :global(.suggest-widget) {
86
- position: fixed !important;
87
- }</style>
@@ -88,7 +88,7 @@ $componentControl[id] = {
88
88
  style={css?.container?.style}
89
89
  subGridId={`${id}-${i}`}
90
90
  containerHeight={componentContainerHeight}
91
- on:focus={(e) => {
91
+ onFocus={() => {
92
92
  if (!$connectingInput.opened) {
93
93
  $selectedComponent = [id]
94
94
  }
@@ -71,7 +71,7 @@ let css = $state(initCss($app.css?.containercomponent, customCss));
71
71
  style={css?.container?.style}
72
72
  subGridId={`${id}-0`}
73
73
  containerHeight={componentContainerHeight}
74
- on:focus={() => {
74
+ onFocus={() => {
75
75
  if (!$connectingInput.opened) {
76
76
  $selectedComponent = [id]
77
77
  }