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.
- package/package/components/AIAgentLogViewer.svelte +123 -0
- package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
- package/package/components/AppConnectInner.svelte +10 -10
- package/package/components/AutoscalingConfigEditor.svelte +76 -2
- package/package/components/Dev.svelte +12 -28
- package/package/components/DiffEditor.svelte +6 -3
- package/package/components/DiffEditor.svelte.d.ts +1 -0
- package/package/components/DisplayResult.svelte +16 -10
- package/package/components/DisplayResult.svelte.d.ts +1 -0
- package/package/components/EditableSchemaForm.svelte +5 -2
- package/package/components/Editor.svelte +26 -8
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/EditorBar.svelte +25 -5
- package/package/components/EditorSettings.svelte +6 -0
- package/package/components/FirstStepInputs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +18 -36
- package/package/components/FlowGraphViewerStep.svelte +7 -0
- package/package/components/FlowJobResult.svelte +15 -63
- package/package/components/FlowJobResult.svelte.d.ts +10 -4
- package/package/components/FlowLogViewer.svelte +660 -0
- package/package/components/FlowLogViewer.svelte.d.ts +34 -0
- package/package/components/FlowLogViewerWrapper.svelte +52 -0
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
- package/package/components/FlowLoopIterationPreview.svelte +3 -3
- package/package/components/FlowPreviewContent.svelte +4 -5
- package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
- package/package/components/FlowPreviewResult.svelte +4 -5
- package/package/components/FlowPreviewResult.svelte.d.ts +3 -5
- package/package/components/FlowStatusViewer.svelte +28 -16
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
- package/package/components/FlowStatusViewerInner.svelte +483 -296
- package/package/components/FlowStatusViewerInner.svelte.d.ts +27 -33
- package/package/components/FlowTimeline.svelte +11 -13
- package/package/components/FlowTimeline.svelte.d.ts +6 -5
- package/package/components/FlowWrapper.svelte +3 -2
- package/package/components/HighlightCode.svelte +4 -1
- package/package/components/IconedResourceType.svelte +9 -5
- package/package/components/JobLoader.svelte +61 -8
- package/package/components/JobLoader.svelte.d.ts +9 -1
- package/package/components/LogViewer.svelte +8 -2
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/LogViewerHeader.svelte +32 -0
- package/package/components/LogViewerHeader.svelte.d.ts +8 -0
- package/package/components/ModulePreviewForm.svelte +10 -6
- package/package/components/ModulePreviewResultViewer.svelte +16 -0
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
- package/package/components/ModuleTest.svelte +59 -16
- package/package/components/RelativeLineNumbers.svelte +16 -0
- package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
- package/package/components/ResourceEditor.svelte +9 -4
- package/package/components/ScriptBuilder.svelte +13 -11
- package/package/components/ScriptEditor.svelte +2 -2
- package/package/components/SimpleEditor.svelte +10 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/UserSettings.svelte +4 -4
- package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
- package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridTable.svelte +2 -2
- package/package/components/apps/components/helpers/HiddenComponent.svelte +0 -1
- package/package/components/apps/components/helpers/InputValue.svelte +6 -1
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +7 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
- package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
- package/package/components/apps/components/layout/AppContainer.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +31 -20
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppList.svelte +9 -8
- package/package/components/apps/components/layout/AppModal.svelte +1 -1
- package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
- package/package/components/apps/components/layout/AppStepper.svelte +9 -5
- package/package/components/apps/components/layout/AppTabs.svelte +2 -2
- package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
- package/package/components/apps/editor/GridEditor.svelte +24 -19
- package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
- package/package/components/apps/editor/GridViewer.svelte +1 -1
- package/package/components/apps/editor/SubGridEditor.svelte +7 -11
- package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
- package/package/components/apps/editor/appUtils.js +17 -68
- package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
- package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -46
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +29 -43
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +23 -25
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
- package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
- package/package/components/apps/utils.d.ts +2 -0
- package/package/components/apps/utils.js +22 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/fileDownload/FileDownload.svelte +1 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
- package/package/components/copilot/MetadataGen.svelte +19 -1
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
- package/package/components/copilot/ScriptGen.svelte +23 -31
- package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
- package/package/components/copilot/chat/AIChatInput.svelte +29 -6
- package/package/components/copilot/chat/AIChatManager.svelte.js +110 -26
- package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.js +192 -0
- package/package/components/copilot/chat/api/core.d.ts +7 -0
- package/package/components/copilot/chat/api/core.js +61 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
- package/package/components/copilot/chat/flow/core.js +213 -42
- package/package/components/copilot/chat/flow/utils.js +3 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
- package/package/components/copilot/chat/monaco-adapter.js +10 -4
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +20 -22
- package/package/components/copilot/chat/script/core.d.ts +11 -3
- package/package/components/copilot/chat/script/core.js +92 -15
- package/package/components/copilot/chat/shared.d.ts +30 -3
- package/package/components/copilot/chat/shared.js +228 -9
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +15 -6
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/details/DetailPageLayout.svelte +34 -33
- package/package/components/flow_builder.d.ts +1 -2
- package/package/components/flows/FlowEditor.svelte +3 -3
- package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
- package/package/components/flows/common/FlowCard.svelte +2 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +13 -4
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
- package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
- package/package/components/flows/content/FlowConstants.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
- package/package/components/flows/content/FlowLoop.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowResult.svelte +2 -3
- package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
- package/package/components/flows/dfs.d.ts +3 -1
- package/package/components/flows/dfs.js +5 -1
- package/package/components/flows/flowInfers.js +78 -0
- package/package/components/flows/flowState.d.ts +2 -3
- package/package/components/flows/flowState.js +2 -2
- package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
- package/package/components/flows/flowStateUtils.svelte.js +14 -13
- package/package/components/flows/flowStore.d.ts +3 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
- package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +12 -12
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +26 -19
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
- package/package/components/flows/map/InsertModuleInner.svelte +9 -1
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +4 -2
- package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
- package/package/components/flows/propPicker/OutputBadge.svelte +11 -9
- package/package/components/flows/propPicker/OutputPickerInner.svelte +10 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
- package/package/components/flows/testSteps.svelte.d.ts +3 -2
- package/package/components/flows/testSteps.svelte.js +26 -23
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/flows/utils.d.ts +3 -5
- package/package/components/flows/utils.js +3 -4
- package/package/components/git_sync/GitSyncContext.svelte.js +2 -1
- package/package/components/graph/FlowGraphV2.svelte +44 -24
- package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
- package/package/components/graph/graphBuilder.svelte.js +30 -14
- package/package/components/graph/model.d.ts +9 -6
- package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +15 -10
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
- package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
- package/package/components/icons/RubyIcon.svelte +656 -0
- package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
- package/package/components/instanceSettings.js +9 -0
- package/package/components/modulesTest.svelte.d.ts +6 -3
- package/package/components/modulesTest.svelte.js +32 -0
- package/package/components/preview/FlowPreviewStatus.svelte +3 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -26
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
- package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +1 -4
- package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
- package/package/components/runs/RunRow.svelte +5 -1
- package/package/components/schema/AddProperty.svelte +41 -36
- package/package/components/schema/AddProperty.svelte.d.ts +2 -2
- package/package/components/schema/AddPropertyV2.svelte +41 -37
- package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +8 -6
- package/package/components/search/RunsSearch.svelte +1 -1
- package/package/components/settings/CreateToken.svelte +132 -12
- package/package/components/settings/CreateToken.svelte.d.ts +3 -20
- package/package/components/settings/TokenDisplay.svelte +18 -42
- package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
- package/package/components/settings/TokensTable.svelte +2 -4
- package/package/components/settings/TokensTable.svelte.d.ts +3 -19
- package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
- package/package/components/sidebar/MenuButton.svelte +12 -10
- package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
- package/package/components/stepHistoryLoader.svelte.js +7 -12
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
- package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
- package/package/components/tutorials/utils.js +3 -0
- package/package/components/worker_group.d.ts +4 -1
- package/package/components/worker_group.js +3 -2
- package/package/editorLangUtils.d.ts +1 -1
- package/package/editorLangUtils.js +2 -0
- package/package/editorUtils.d.ts +2 -1
- package/package/editorUtils.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +296 -8
- package/package/gen/schemas.gen.js +364 -70
- package/package/gen/services.gen.d.ts +118 -16
- package/package/gen/services.gen.js +226 -19
- package/package/gen/types.gen.d.ts +660 -16
- package/package/hubPaths.json +7 -4
- package/package/infer.js +10 -1
- package/package/monaco_workers/graphql.worker.bundle.js +144 -110
- package/package/script_helpers.d.ts +3 -0
- package/package/script_helpers.js +58 -3
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +3 -2
- package/package/stores.d.ts +2 -0
- package/package/stores.js +2 -0
- package/package/svelte5Utils.svelte.d.ts +16 -0
- package/package/svelte5Utils.svelte.js +26 -0
- package/package/utils.d.ts +1 -1
- package/package.json +20 -19
- package/package/components/AllFlowLogs.svelte +0 -31
- package/package/components/AllFlowLogs.svelte.d.ts +0 -8
- package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
- 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) =>
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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,
|
|
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 {
|
|
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={() => {}}
|
|
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
|
|
100
|
-
{#each
|
|
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={
|
|
115
|
-
subFieldType={
|
|
116
|
-
format={
|
|
117
|
-
selectOptions={
|
|
118
|
-
tooltip={
|
|
119
|
-
fileUpload={
|
|
120
|
-
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
|
-
|
|
150
|
+
customTitle={`Can proceed to next step if:`}
|
|
151
|
+
key={`allowed-${selectedNode.id}`}
|
|
146
152
|
bind:componentInput={selectedNode.allowed}
|
|
147
|
-
id={
|
|
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
|
|
@@ -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,
|
|
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
|
|
24
|
+
const onResizeThrottled = throttle(() => {
|
|
26
25
|
if (!getComputedCols)
|
|
27
26
|
return;
|
|
28
27
|
sortedItems = specifyUndefinedColumns(sortedItems, getComputedCols, cols);
|
|
29
|
-
|
|
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
|
-
|
|
53
|
+
onMounted?.({
|
|
55
54
|
cols: getComputedCols,
|
|
56
55
|
xPerPx,
|
|
57
|
-
yPerPx
|
|
56
|
+
yPerPx,
|
|
57
|
+
width
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
|
-
|
|
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 = ({
|
|
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 (
|
|
112
|
-
nselectedIds = [
|
|
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 (
|
|
157
|
+
if (activate) {
|
|
159
158
|
moveResizes?.[id]?.inActivate();
|
|
160
159
|
}
|
|
161
160
|
}
|
|
162
161
|
if (isPointerUp && getComputedCols) {
|
|
163
|
-
|
|
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 = ({
|
|
170
|
-
if (!
|
|
171
|
-
throttleMatrix({
|
|
168
|
+
const handleRepaint = ({ isPointerUp, id, activate }) => {
|
|
169
|
+
if (!isPointerUp) {
|
|
170
|
+
throttleMatrix({ isPointerUp, id, activate });
|
|
172
171
|
}
|
|
173
172
|
else {
|
|
174
|
-
updateMatrix({
|
|
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
|
-
|
|
369
|
+
onInitMove={() => handleInitMove(item.id)}
|
|
371
370
|
onMove={handleMove}
|
|
372
371
|
bind:shadow={shadows[item.id]}
|
|
373
372
|
bind:this={moveResizes[item.id]}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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('-')[
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 ?? [];
|