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
@@ -5,6 +5,7 @@ import { sendUserToast } from '../../../../toast';
5
5
  import { gridColumns } from '../../gridUtils';
6
6
  import { copyToClipboard } from '../../../../utils';
7
7
  import { get } from 'svelte/store';
8
+ import { processSubcomponents } from '../../utils';
8
9
  // const { app, selectedComponent, focusedGrid, componentControl } =
9
10
  // getContext<AppViewerContext>('AppViewerContext')
10
11
  // const { history, movingcomponents, jobsDrawerOpen } =
@@ -203,7 +204,13 @@ export async function handlePaste(event, ctx) {
203
204
  app.grid = app.grid.filter((item) => item.id !== tempGridItem?.id);
204
205
  }
205
206
  const gridItem = tempGridItem;
206
- insertNewGridItem(app, (id) => ({ ...gridItem.data, id }), focusedGrid, Object.fromEntries(gridColumns.map((column) => [column, gridItem[column]])), tempGridItem.id);
207
+ insertNewGridItem(app, (id) => {
208
+ let newComponent = { ...gridItem.data, id };
209
+ processSubcomponents(newComponent, (c) => {
210
+ c.id = c.id.replace(tempGridItem.id + '_', id + '_');
211
+ });
212
+ return newComponent;
213
+ }, focusedGrid, Object.fromEntries(gridColumns.map((column) => [column, gridItem[column]])), tempGridItem.id);
207
214
  }
208
215
  copyGridItemsToClipboard(tempGridItems, ctx);
209
216
  ctx.selectedComponent.set(tempGridItems.map((x) => x.id));
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { stopPropagation } from 'svelte/legacy';
2
- import { allItems } from '../../../utils';
2
+ import { allItems, processSubcomponents } from '../../../utils';
3
3
  import { classNames } from '../../../../../utils';
4
4
  import { ChevronDown, ChevronUp, Pointer } from 'lucide-svelte';
5
5
  import { getContext } from 'svelte';
@@ -53,56 +53,19 @@ function renameId(oldId, newId) {
53
53
  });
54
54
  }
55
55
  propagateRename(oldId, newId);
56
- if (item?.data.type == 'tablecomponent') {
57
- for (let c of item.data.actionButtons) {
58
- let old = c.id;
59
- c.id = c.id.replace(oldId + '_', newId + '_');
60
- propagateRename(old, c.id);
61
- }
62
- }
63
- if (item?.data.type == 'aggridcomponent' ||
64
- item?.data.type == 'aggridcomponentee' ||
65
- item?.data.type == 'dbexplorercomponent' ||
66
- item?.data.type == 'aggridinfinitecomponent' ||
67
- item?.data.type == 'aggridinfinitecomponentee') {
68
- for (let c of item.data.actions ?? []) {
69
- let old = c.id;
70
- c.id = c.id.replace(oldId + '_', newId + '_');
71
- propagateRename(old, c.id);
72
- }
73
- }
74
- if (item?.data.type === 'menucomponent') {
75
- for (let c of item.data.menuItems) {
76
- let old = c.id;
77
- c.id = c.id.replace(oldId + '_', newId + '_');
78
- propagateRename(old, c.id);
79
- }
80
- }
56
+ processSubcomponents(item.data, (c) => {
57
+ let old = c.id;
58
+ c.id = c.id.replace(oldId + '_', newId + '_');
59
+ propagateRename(old, c.id);
60
+ });
81
61
  $app = $app;
82
62
  $selectedComponent = [newId];
83
63
  delete $worldStore.outputsById[id];
84
64
  }
85
65
  function renameComponent(from, to, data) {
86
- if (data.type == 'tablecomponent') {
87
- for (let c of data.actionButtons) {
88
- renameComponent(from, to, c);
89
- }
90
- }
91
- if ((data.type == 'aggridcomponent' ||
92
- data.type == 'aggridcomponentee' ||
93
- data.type == 'dbexplorercomponent' ||
94
- data.type == 'aggridinfinitecomponent' ||
95
- data.type == 'aggridinfinitecomponentee') &&
96
- Array.isArray(data.actions)) {
97
- for (let c of data.actions) {
98
- renameComponent(from, to, c);
99
- }
100
- }
101
- if (data.type === 'menucomponent') {
102
- for (let c of data.menuItems) {
103
- renameComponent(from, to, c);
104
- }
105
- }
66
+ processSubcomponents(data, (c) => {
67
+ renameComponent(from, to, c);
68
+ });
106
69
  let componentInput = data.componentInput;
107
70
  if (componentInput?.type == 'connected') {
108
71
  if (componentInput.connection?.componentId === from) {
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">import { Alert, Button, Drawer, DrawerContent } from '../../../common';
2
- import { Network, Plus, Trash } from 'lucide-svelte';
2
+ import { Network, Trash } from 'lucide-svelte';
3
3
  import { Pane, Splitpanes } from 'svelte-splitpanes';
4
4
  import { getContext, setContext } from 'svelte';
5
5
  import InputsSpecEditor from './InputsSpecEditor.svelte';
6
6
  import Section from '../../../Section.svelte';
7
7
  import { writable } from 'svelte/store';
8
8
  import DecisionTreePreview from './decisionTree/DecisionTreePreview.svelte';
9
- import { addNewBranch, removeNode } from './decisionTree/utils';
9
+ import { removeNode } from './decisionTree/utils';
10
10
  import Label from '../../../Label.svelte';
11
11
  import { debounce } from '../../../../utils';
12
12
  import Badge from '../../../common/badge/Badge.svelte';
@@ -23,14 +23,14 @@ const { debounced: debouncedNodes } = debounce(() => {
23
23
  }, 300);
24
24
  let selectedNode = $derived(nodes?.find((node) => node.id == $selectedNodeId));
25
25
  setContext('DecisionTreeEditor', { selectedNodeId });
26
- let sortedSelectedNextNodes = $derived([...(selectedNode?.next ?? [])].sort((n1, n2) => n1.id.localeCompare(n2.id)));
27
26
  </script>
28
27
 
29
- <Drawer bind:this={drawer} on:close={() => {}} on:open={() => {}} size="1200px">
28
+ <Drawer bind:this={drawer} size="1800px" on:close={() => {}} on:open={() => {}}>
30
29
  <DrawerContent
31
30
  title="Decision tree"
32
31
  on:close={drawer.closeDrawer}
33
32
  noPadding
33
+ forceOverflowVisible
34
34
  tooltip="Decision tree graph editor"
35
35
  >
36
36
  <Splitpanes>
@@ -96,8 +96,8 @@ let sortedSelectedNextNodes = $derived([...(selectedNode?.next ?? [])].sort((n1,
96
96
  />
97
97
  </Label>
98
98
 
99
- {#if selectedNode.next.length > 1 && sortedSelectedNextNodes}
100
- {#each sortedSelectedNextNodes as subNode, index (subNode.id)}
99
+ {#if selectedNode.next.length > 1}
100
+ {#each selectedNode.next ?? [] as subNode, index (subNode.id)}
101
101
  {#if subNode.condition}
102
102
  <div class="flex flex-row gap-4 items-center w-full justify-center">
103
103
  <div class="grow relative">
@@ -111,16 +111,22 @@ let sortedSelectedNextNodes = $derived([...(selectedNode?.next ?? [])].sort((n1,
111
111
  userInputEnabled={false}
112
112
  shouldCapitalize={true}
113
113
  resourceOnly={false}
114
- fieldType={subNode.condition?.['fieldType']}
115
- subFieldType={subNode.condition?.['subFieldType']}
116
- format={subNode.condition?.['format']}
117
- selectOptions={subNode.condition?.['selectOptions']}
118
- tooltip={subNode.condition?.['tooltip']}
119
- fileUpload={subNode.condition?.['fileUpload']}
120
- placeholder={subNode.condition?.['placeholder']}
114
+ fieldType={'boolean'}
115
+ subFieldType={undefined}
116
+ format={undefined}
117
+ selectOptions={undefined}
118
+ tooltip={undefined}
119
+ fileUpload={undefined}
120
+ placeholder={undefined}
121
121
  displayType={false}
122
122
  fixedOverflowWidgets={false}
123
123
  />
124
+ {#if index == selectedNode.next.length - 1}
125
+ <div class="text-xs text-secondary">
126
+ If no branch evaluates to true, clicking next will show an error toast.
127
+ </div>
128
+ {/if}
129
+
124
130
  <div class="flex flex-row gap-1 mt-2">
125
131
  <Badge>
126
132
  {`Next node id: ${subNode.id}`}
@@ -133,7 +139,6 @@ let sortedSelectedNextNodes = $derived([...(selectedNode?.next ?? [])].sort((n1,
133
139
  </div>
134
140
  {/if}
135
141
  {/each}
136
-
137
142
  <Alert type="info" class="mt-4" title="Multiple branches" size="xs">
138
143
  The conditions above are evaluated in order. The first condition that is met will
139
144
  be the branch that is taken.
@@ -142,44 +147,25 @@ let sortedSelectedNextNodes = $derived([...(selectedNode?.next ?? [])].sort((n1,
142
147
  {#key selectedNode.id}
143
148
  {#if selectedNode.allowed}
144
149
  <InputsSpecEditor
145
- key={`Can proceed to next step if:`}
150
+ customTitle={`Can proceed to next step if:`}
151
+ key={`allowed-${selectedNode.id}`}
146
152
  bind:componentInput={selectedNode.allowed}
147
- id={'allowed'}
153
+ id={component.id}
148
154
  userInputEnabled={false}
149
155
  shouldCapitalize={true}
156
+ fieldType={'boolean'}
157
+ subFieldType={undefined}
158
+ format={undefined}
159
+ selectOptions={undefined}
160
+ tooltip={undefined}
161
+ fileUpload={undefined}
162
+ placeholder={undefined}
150
163
  resourceOnly={false}
151
- fieldType={selectedNode.allowed?.['fieldType']}
152
- subFieldType={selectedNode.allowed?.['subFieldType']}
153
- format={selectedNode.allowed?.['format']}
154
- selectOptions={selectedNode.allowed?.['selectOptions']}
155
- tooltip={selectedNode.allowed?.['tooltip']}
156
- fileUpload={selectedNode.allowed?.['fileUpload']}
157
- placeholder={selectedNode.allowed?.['placeholder']}
158
- customTitle={selectedNode.allowed?.['customTitle']}
159
164
  displayType={false}
160
165
  fixedOverflowWidgets={false}
161
166
  />
162
167
  {/if}
163
168
  {/key}
164
-
165
- {#if selectedNode?.next.length > 0}
166
- <div>
167
- <Button
168
- startIcon={{ icon: Plus }}
169
- color="light"
170
- variant="border"
171
- size="xs"
172
- on:click={() => {
173
- if (!selectedNode) return
174
-
175
- nodes = addNewBranch(nodes, selectedNode)
176
- renderCount++
177
- }}
178
- >
179
- Add branch
180
- </Button>
181
- </div>
182
- {/if}
183
169
  </Section>
184
170
  {/if}
185
171
  </div>
@@ -15,7 +15,7 @@ import { fieldTypeToTsType } from '../../utils';
15
15
  import EvalV2InputEditor from './inputEditor/EvalV2InputEditor.svelte';
16
16
  import ConnectionButton from '../../../common/button/ConnectionButton.svelte';
17
17
  import Toggle from '../../../Toggle.svelte';
18
- let { id, componentInput = $bindable(), key, userInputEnabled = false, shouldCapitalize = true, resourceOnly = false, tooltip = undefined, fieldType, subFieldType, format, selectOptions, fileUpload = undefined, fileUploadS3 = undefined, placeholder, customTitle = undefined, displayType = false, allowTypeChange = true, shouldFormatExpression = false, fixedOverflowWidgets = true, loading = false, acceptSelf = false, recomputeOnInputChanged = true, showOnDemandOnlyToggle = true, documentationLink = undefined, markdownTooltip = undefined, securedContext = false } = $props();
18
+ let { id, componentInput = $bindable(), key, userInputEnabled = false, shouldCapitalize = true, resourceOnly = false, tooltip = undefined, fieldType, subFieldType, format, selectOptions, fileUpload = undefined, fileUploadS3 = undefined, placeholder, customTitle = undefined, displayType = false, allowTypeChange = true, disabled = false, shouldFormatExpression = false, fixedOverflowWidgets = true, loading = false, acceptSelf = false, recomputeOnInputChanged = true, showOnDemandOnlyToggle = true, documentationLink = undefined, markdownTooltip = undefined, securedContext = false } = $props();
19
19
  $effect.pre(() => {
20
20
  if (componentInput == undefined) {
21
21
  //@ts-ignore
@@ -196,6 +196,7 @@ function openConnection() {
196
196
  {recomputeOnInputChanged}
197
197
  {showOnDemandOnlyToggle}
198
198
  {securedContext}
199
+ {disabled}
199
200
  />
200
201
  {:else if componentInput?.type === 'upload'}
201
202
  <UploadInputEditor bind:componentInput {fileUpload} />
@@ -27,6 +27,7 @@ interface Props {
27
27
  documentationLink?: string | undefined;
28
28
  markdownTooltip?: string | undefined;
29
29
  securedContext?: boolean;
30
+ disabled?: boolean;
30
31
  }
31
32
  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> {
32
33
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -8,7 +8,7 @@ import { Pane, Splitpanes } from 'svelte-splitpanes';
8
8
  import Toggle from '../../../../Toggle.svelte';
9
9
  import { zIndexes } from '../../../../../zIndexes';
10
10
  import Popover from '../../../../Popover.svelte';
11
- let { componentInput = $bindable(), id, field, fixedOverflowWidgets = true, acceptSelf = false, recomputeOnInputChanged = true, showOnDemandOnlyToggle = false, securedContext = false } = $props();
11
+ let { componentInput = $bindable(), id, field, fixedOverflowWidgets = true, acceptSelf = false, recomputeOnInputChanged = true, showOnDemandOnlyToggle = false, securedContext = false, disabled = false } = $props();
12
12
  const { onchange, worldStore, state: stateStore, app } = getContext('AppViewerContext');
13
13
  const { evalPreview } = getContext('AppEditorContext');
14
14
  let editor = $state();
@@ -29,7 +29,6 @@ if (componentInput && componentInput.connections == undefined) {
29
29
  componentInput.connections = [];
30
30
  }
31
31
  function inferDepsFromCode(code) {
32
- console.log('inferDepsFromCode', id);
33
32
  if (componentInput) {
34
33
  inferDeps(code, $worldStore.outputsById, componentInput, app);
35
34
  }
@@ -97,6 +96,7 @@ let focus = $state(false);
97
96
  shouldBindKey={false}
98
97
  {extraLib}
99
98
  autoHeight
99
+ {disabled}
100
100
  {fixedOverflowWidgets}
101
101
  on:focus={() => {
102
102
  focus = true
@@ -8,6 +8,7 @@ interface Props {
8
8
  recomputeOnInputChanged?: boolean;
9
9
  showOnDemandOnlyToggle?: boolean;
10
10
  securedContext?: boolean;
11
+ disabled?: boolean;
11
12
  }
12
13
  declare const EvalV2InputEditor: import("svelte").Component<Props, {
13
14
  setCode: (code: string) => void;
@@ -10,23 +10,22 @@ import gridHelp from './utils/helper';
10
10
  import { twMerge } from 'tailwind-merge';
11
11
  import { getContainerHeight } from './utils/container';
12
12
  import { moveItem, getItemById, specifyUndefinedColumns } from './utils/item';
13
- import { onMount, createEventDispatcher, getContext } from 'svelte';
13
+ import { onMount, getContext } from 'svelte';
14
14
  import { getColumn, throttle } from './utils/other';
15
15
  import MoveResize from './MoveResize.svelte';
16
16
  import { areShadowsTheSame, findGridItemParentGrid, getDeltaXByComponent, getDeltaYByComponent, isContainer, ROW_GAP_X, ROW_GAP_Y, ROW_HEIGHT, sortGridItemsPosition, subGridIndexKey } from '../editor/appUtils';
17
- const dispatch = createEventDispatcher();
18
17
  const { app, worldStore } = getContext('AppViewerContext');
19
- let { items, rowHeight = ROW_HEIGHT, gap = [ROW_GAP_X, ROW_GAP_Y], throttleUpdate = 100, throttleResize = 100, selectedIds, allIdsInPath, containerWidth = $bindable(undefined), scroller = undefined, sensor = 20, root = false, parentWidth = undefined, disableMove = false, children } = $props();
18
+ let { items, rowHeight = ROW_HEIGHT, gap = [ROW_GAP_X, ROW_GAP_Y], throttleUpdate = 100, throttleResize = 100, selectedIds, allIdsInPath, containerWidth = $bindable(undefined), scroller = undefined, sensor = 20, root = false, parentWidth = undefined, disableMove = false, children, onDropped, onRedraw, onResize, onMounted } = $props();
20
19
  const cols = columnConfiguration;
21
20
  let getComputedCols = $state($app.mobileViewOnSmallerScreens == false ? WIDE_GRID_COLUMNS : undefined);
22
21
  let container = $state();
23
22
  let xPerPx = $state(0);
24
23
  let yPerPx = rowHeight;
25
- const onResize = throttle(() => {
24
+ const onResizeThrottled = throttle(() => {
26
25
  if (!getComputedCols)
27
26
  return;
28
27
  sortedItems = specifyUndefinedColumns(sortedItems, getComputedCols, cols);
29
- dispatch('resize', {
28
+ onResize?.({
30
29
  cols: getComputedCols,
31
30
  xPerPx,
32
31
  yPerPx,
@@ -51,14 +50,15 @@ onMount(() => {
51
50
  xPerPx = width / getComputedCols;
52
51
  if (!containerWidth && getComputedCols) {
53
52
  sortedItems = specifyUndefinedColumns(sortedItems, getComputedCols, cols);
54
- dispatch('mount', {
53
+ onMounted?.({
55
54
  cols: getComputedCols,
56
55
  xPerPx,
57
- yPerPx // same as rowHeight
56
+ yPerPx,
57
+ width
58
58
  });
59
59
  }
60
60
  else {
61
- onResize();
61
+ onResizeThrottled();
62
62
  }
63
63
  containerWidth = width;
64
64
  mounted = true;
@@ -89,8 +89,7 @@ function smartCopy(items) {
89
89
  })
90
90
  : [];
91
91
  }
92
- const updateMatrix = ({ detail }) => {
93
- let isPointerUp = detail.isPointerUp;
92
+ const updateMatrix = ({ isPointerUp, id, activate }) => {
94
93
  let citems;
95
94
  if (isPointerUp) {
96
95
  if (initItems == undefined) {
@@ -108,8 +107,8 @@ const updateMatrix = ({ detail }) => {
108
107
  citems = smartCopy(initItems);
109
108
  }
110
109
  let nselectedIds = selectedIds ?? [];
111
- if (detail.id && !selectedIds?.includes(detail.id)) {
112
- nselectedIds = [detail.id, ...(selectedIds ?? [])];
110
+ if (id && !selectedIds?.includes(id)) {
111
+ nselectedIds = [id, ...(selectedIds ?? [])];
113
112
  }
114
113
  for (let id of nselectedIds) {
115
114
  let activeItem = getItemById(id, citems);
@@ -155,23 +154,23 @@ const updateMatrix = ({ detail }) => {
155
154
  }
156
155
  }
157
156
  for (let id of nselectedIds ?? []) {
158
- if (detail.activate) {
157
+ if (activate) {
159
158
  moveResizes?.[id]?.inActivate();
160
159
  }
161
160
  }
162
161
  if (isPointerUp && getComputedCols) {
163
- dispatch('redraw', sortGridItemsPosition(smartCopy(sortedItems), getComputedCols));
162
+ onRedraw?.(sortGridItemsPosition(smartCopy(sortedItems), getComputedCols));
164
163
  }
165
164
  };
166
165
  const throttleMatrix = throttle(updateMatrix, throttleResize);
167
166
  //let hiddenComponents = writable({})
168
167
  let lastDetail = $state(undefined);
169
- const handleRepaint = ({ detail }) => {
170
- if (!detail.isPointerUp) {
171
- throttleMatrix({ detail });
168
+ const handleRepaint = ({ isPointerUp, id, activate }) => {
169
+ if (!isPointerUp) {
170
+ throttleMatrix({ isPointerUp, id, activate });
172
171
  }
173
172
  else {
174
- updateMatrix({ detail });
173
+ updateMatrix({ isPointerUp, id, activate });
175
174
  }
176
175
  /**
177
176
  setTimeout(() => {
@@ -367,19 +366,19 @@ $effect.pre(() => {
367
366
  {/if}
368
367
  <MoveResize
369
368
  {mounted}
370
- on:initmove={() => handleInitMove(item.id)}
369
+ onInitMove={() => handleInitMove(item.id)}
371
370
  onMove={handleMove}
372
371
  bind:shadow={shadows[item.id]}
373
372
  bind:this={moveResizes[item.id]}
374
- on:repaint={handleRepaint}
375
- on:resizeStart={() => (resizing = true)}
376
- on:resizeEnd={() => (resizing = false)}
373
+ onRepaint={handleRepaint}
374
+ onResizeStart={() => (resizing = true)}
375
+ onResizeEnd={() => (resizing = false)}
377
376
  onTop={Boolean(allIdsInPath?.includes(item.id))}
378
377
  id={item.id}
379
378
  {xPerPx}
380
379
  {yPerPx}
381
380
  fakeShadow={$fakeShadowStore}
382
- on:dropped={(e) => {
381
+ onDropped={({ id, overlapped, x, y }) => {
383
382
  $componentDraggedIdStore = undefined
384
383
  $componentDraggedParentIdStore = undefined
385
384
  $overlappedStore = undefined
@@ -389,8 +388,7 @@ $effect.pre(() => {
389
388
  if ($moveMode === 'move') {
390
389
  return
391
390
  }
392
-
393
- dispatch('dropped', e.detail)
391
+ onDropped?.({ id, overlapped, x, y })
394
392
  }}
395
393
  width={xPerPx == 0
396
394
  ? 0
@@ -16,13 +16,27 @@ declare class __sveltets_Render<T> {
16
16
  parentWidth?: number | undefined;
17
17
  disableMove?: boolean;
18
18
  children?: import("svelte").Snippet<[any]>;
19
+ onDropped?: ((e: {
20
+ id: string;
21
+ overlapped: string | undefined;
22
+ x: number;
23
+ y: number;
24
+ }) => void) | undefined;
25
+ onRedraw?: ((grid: FilledItem<T>[]) => void) | undefined;
26
+ onResize?: ((e: {
27
+ cols: number;
28
+ xPerPx: number;
29
+ yPerPx: number;
30
+ width: number | undefined;
31
+ }) => void) | undefined;
32
+ onMounted?: ((e: {
33
+ cols: number;
34
+ xPerPx: number;
35
+ yPerPx: number;
36
+ width: number | undefined;
37
+ }) => void) | undefined;
19
38
  };
20
- events(): {
21
- dropped: CustomEvent<any>;
22
- resize: CustomEvent<any>;
23
- mount: CustomEvent<any>;
24
- redraw: CustomEvent<any>;
25
- };
39
+ events(): {};
26
40
  slots(): {};
27
41
  bindings(): "containerWidth";
28
42
  exports(): {
@@ -43,9 +57,7 @@ interface $$IsomorphicComponent {
43
57
  new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
44
58
  $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
45
59
  } & ReturnType<__sveltets_Render<T>['exports']>;
46
- <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {
47
- $$events?: ReturnType<__sveltets_Render<T>['events']>;
48
- }): ReturnType<__sveltets_Render<T>['exports']>;
60
+ <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
49
61
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
50
62
  }
51
63
  declare const Grid: $$IsomorphicComponent;
@@ -1,15 +1,14 @@
1
- <script lang="ts">import { createEventDispatcher, getContext, onMount } from 'svelte';
1
+ <script lang="ts">import { getContext, onMount } from 'svelte';
2
2
  import { writable } from 'svelte/store';
3
3
  import { twMerge } from 'tailwind-merge';
4
4
  import { computePosition, findGridItemParentGrid, isContainer } from '../editor/appUtils';
5
5
  import { throttle } from './utils/other';
6
6
  import { moveMode } from '../gridUtils';
7
- const dispatch = createEventDispatcher();
8
- let { sensor, width, height, left, top, id, container, xPerPx, yPerPx, gapX, gapY, item, cols, nativeContainer, onTop, shadow = $bindable(undefined), overlapped = undefined, type = undefined, fakeShadow = undefined, disableMove = true, mounted = false, onMove, children } = $props();
7
+ let { sensor, width, height, left, top, id, container, xPerPx, yPerPx, gapX, gapY, item, cols, nativeContainer, onTop, shadow = $bindable(undefined), overlapped = undefined, type = undefined, fakeShadow = undefined, disableMove = true, mounted = false, onMove, onDropped, onInitMove, onResizeStart, onResizeEnd, onRepaint, children } = $props();
9
8
  const ctx = getContext('AppEditorContext');
10
9
  const { mode, app } = getContext('AppViewerContext');
11
10
  const scale = ctx ? ctx.scale : writable(100);
12
- const divId = `component-${id}`;
11
+ const divId = `wm-component-${id}`;
13
12
  let shadowElement = $state();
14
13
  let active = $state(false);
15
14
  let initX, initY;
@@ -34,7 +33,7 @@ onMount(() => {
34
33
  initY = (clientY / $scale) * 100;
35
34
  window.addEventListener('pointermove', pointermove);
36
35
  window.addEventListener('pointerup', pointerup);
37
- dispatch('initmove');
36
+ onInitMove?.();
38
37
  const cordDiff = {
39
38
  x: (moveX / $scale) * 100 - initX,
40
39
  y: (moveY / $scale) * 100 - initY
@@ -76,11 +75,7 @@ export function inActivate() {
76
75
  }
77
76
  }
78
77
  let repaint = (activate, isPointerUp) => {
79
- dispatch('repaint', {
80
- id,
81
- isPointerUp,
82
- activate
83
- });
78
+ onRepaint?.({ id, isPointerUp, activate });
84
79
  };
85
80
  // Autoscroll
86
81
  let _scrollTop = 0;
@@ -123,7 +118,7 @@ const pointerdown = ({ clientX, clientY }) => {
123
118
  ctx.componentActive.set(true);
124
119
  initX = (clientX / $scale) * 100;
125
120
  initY = (clientY / $scale) * 100;
126
- dispatch('initmove');
121
+ onInitMove?.();
127
122
  };
128
123
  window.addEventListener('pointermove', pointermove);
129
124
  window.addEventListener('pointerup', pointerup);
@@ -235,7 +230,7 @@ function computeShadow(clientX, clientY) {
235
230
  const intersectingElement = elementsAtPoint.find((el) => el.id !== divId &&
236
231
  el.classList.contains('svlt-grid-item') &&
237
232
  el.getAttribute('data-iscontainer') === 'true');
238
- const newOverlapped = intersectingElement ? intersectingElement?.id.split('-')[1] : undefined;
233
+ const newOverlapped = intersectingElement ? intersectingElement?.id.split('-')[2] : undefined;
239
234
  const container = newOverlapped
240
235
  ? intersectingElement?.querySelector('.svlt-grid-container')
241
236
  : document.getElementById('root-grid');
@@ -272,6 +267,9 @@ const pointerup = (e) => {
272
267
  else {
273
268
  dragClosure = undefined;
274
269
  }
270
+ if (!fakeShadow) {
271
+ return;
272
+ }
275
273
  if (!moving) {
276
274
  return;
277
275
  }
@@ -279,7 +277,7 @@ const pointerup = (e) => {
279
277
  if (overlapped && (overlapped === parent || parent?.startsWith(overlapped))) {
280
278
  return;
281
279
  }
282
- dispatch('dropped', {
280
+ onDropped?.({
283
281
  id,
284
282
  overlapped,
285
283
  x: fakeShadow?.x,
@@ -305,7 +303,7 @@ const resizePointerDown = (e, o) => {
305
303
  scrollElement = getScroller(container);
306
304
  window.addEventListener('pointermove', resizePointerMove);
307
305
  window.addEventListener('pointerup', resizePointerUp);
308
- dispatch('resizeStart');
306
+ onResizeStart?.();
309
307
  };
310
308
  const resizePointerMove = ({ pageX, pageY }) => {
311
309
  if (shadow) {
@@ -335,7 +333,7 @@ const resizePointerUp = (e) => {
335
333
  repaint(true, true);
336
334
  window.removeEventListener('pointermove', resizePointerMove);
337
335
  window.removeEventListener('pointerup', resizePointerUp);
338
- dispatch('resizeEnd');
336
+ onResizeEnd?.();
339
337
  };
340
338
  function shouldDisplayShadow(moveMode, overlapped) {
341
339
  if (moveMode === 'move') {
@@ -34,35 +34,28 @@ interface Props {
34
34
  clientY: number;
35
35
  intersectingElement?: string | undefined;
36
36
  shadow?: GridShadow | undefined;
37
- overlapped?: string | undefined;
37
+ overlapped?: string;
38
+ }) => void;
39
+ onDropped?: (e: {
40
+ id: string;
41
+ overlapped: string | undefined;
42
+ x: number;
43
+ y: number;
44
+ }) => void;
45
+ onInitMove?: () => void;
46
+ onResizeStart?: () => void;
47
+ onResizeEnd?: () => void;
48
+ onRepaint?: (e: {
49
+ id: string;
50
+ isPointerUp: boolean;
51
+ activate: boolean;
38
52
  }) => void;
39
53
  children?: import('svelte').Snippet;
40
54
  }
41
- 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> {
42
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
43
- $$bindings?: Bindings;
44
- } & Exports;
45
- (internal: unknown, props: Props & {
46
- $$events?: Events;
47
- $$slots?: Slots;
48
- }): Exports & {
49
- $set?: any;
50
- $on?: any;
51
- };
52
- z_$$bindings?: Bindings;
53
- }
54
- declare const MoveResize: $$__sveltets_2_IsomorphicComponent<Props, {
55
- initmove: CustomEvent<any>;
56
- repaint: CustomEvent<any>;
57
- dropped: CustomEvent<any>;
58
- resizeStart: CustomEvent<any>;
59
- resizeEnd: CustomEvent<any>;
60
- } & {
61
- [evt: string]: CustomEvent<any>;
62
- }, {}, {
55
+ declare const MoveResize: import("svelte").Component<Props, {
63
56
  inActivate: () => void;
64
57
  initmove: () => void;
65
58
  updateMove: (newCoordDiff: any, clientY: any) => void;
66
59
  }, "shadow">;
67
- type MoveResize = InstanceType<typeof MoveResize>;
60
+ type MoveResize = ReturnType<typeof MoveResize>;
68
61
  export default MoveResize;
@@ -1,9 +1,11 @@
1
1
  import type { Schema } from '../../common';
2
+ import { type AppComponent } from './editor/component';
2
3
  import type { AppInput, InputType, ResultAppInput, StaticAppInput } from './inputType';
3
4
  import type { Output } from './rx';
4
5
  import type { App, ComponentCssProperty, GridItem, HorizontalAlignment, VerticalAlignment } from './types';
5
6
  export declare const BG_PREFIX = "bg_";
6
7
  export declare function migrateApp(app: App): void;
8
+ export declare function processSubcomponents(data: AppComponent, fn: (data: AppComponent) => void): void;
7
9
  export declare function allItems(grid: GridItem[], subgrids: Record<string, GridItem[]> | undefined): GridItem[];
8
10
  export declare function schemaToInputsSpec(schema: Schema, defaultUserInput: boolean): Record<string, StaticAppInput>;
9
11
  export declare function accessPropertyByPath<T>(object: T, path: string): any;
@@ -23,6 +23,28 @@ export function migrateApp(app) {
23
23
  });
24
24
  });
25
25
  }
26
+ export function processSubcomponents(data, fn) {
27
+ if (data.type == 'tablecomponent' && Array.isArray(data.actionButtons)) {
28
+ for (let c of data.actionButtons) {
29
+ fn(c);
30
+ }
31
+ }
32
+ if ((data.type == 'aggridcomponent' ||
33
+ data.type == 'aggridcomponentee' ||
34
+ data.type == 'dbexplorercomponent' ||
35
+ data.type == 'aggridinfinitecomponent' ||
36
+ data.type == 'aggridinfinitecomponentee') &&
37
+ Array.isArray(data.actions)) {
38
+ for (let c of data.actions ?? []) {
39
+ fn(c);
40
+ }
41
+ }
42
+ if (data.type === 'menucomponent' && Array.isArray(data.menuItems)) {
43
+ for (let c of data.menuItems) {
44
+ fn(c);
45
+ }
46
+ }
47
+ }
26
48
  export function allItems(grid, subgrids) {
27
49
  if (subgrids == undefined) {
28
50
  return grid ?? [];