From 63dbd65e34af028b41e3d531bf81bcbcd3a2e9bf Mon Sep 17 00:00:00 2001 From: Suguru Inoue Date: Fri, 26 Sep 2025 12:39:12 +0200 Subject: [PATCH] fix(editor): NDV in focus panel review batch 2.1 (no-changelog) (#19665) --- .../AssignmentCollection.vue | 25 ++++- .../components/ExpressionParameterInput.vue | 3 +- .../src/components/FocusPanel.test.ts | 2 +- .../editor-ui/src/components/FocusPanel.vue | 18 +++- .../editor-ui/src/components/InputPanel.vue | 2 + .../src/components/ParameterInput.test.ts | 6 ++ .../src/components/ParameterInput.vue | 60 +++-------- .../src/components/ParameterInputList.vue | 5 +- .../src/components/ParameterOptions.vue | 32 +++--- .../editor-ui/src/components/RunData.vue | 2 + .../src/components/VirtualSchema.vue | 12 ++- .../ExperimentalEmbeddedNdvMapper.test.ts | 101 ++++++++++++++++++ .../ExperimentalEmbeddedNdvMapper.vue | 91 +++++++++++++--- .../ExperimentalFocusPanelHeader.vue | 22 +++- .../src/composables/useCodeEditor.ts | 3 +- .../src/composables/useDataSchema.test.ts | 8 ++ .../src/composables/useDataSchema.ts | 7 +- .../src/composables/useExpressionEditor.ts | 3 +- .../src/composables/useHistoryHelper.ts | 10 +- .../logs/components/ChatMessagesPanel.vue | 2 + .../logs/components/LogDetailsPanel.test.ts | 6 ++ .../logs/components/LogDetailsPanel.vue | 3 + .../logs/components/LogsOverviewPanel.test.ts | 1 + .../logs/components/LogsOverviewPanel.vue | 3 + .../logs/components/LogsPanel.test.ts | 8 +- .../features/logs/components/LogsPanel.vue | 9 +- .../logs/components/LogsPanelActions.vue | 1 + .../logs/components/LogsPanelHeader.vue | 13 ++- .../frontend/editor-ui/src/utils/htmlUtils.ts | 8 ++ .../editor-ui/src/utils/nodeSettingsUtils.ts | 8 +- .../playwright/pages/components/FocusPanel.ts | 4 +- .../tests/ui/54-focus-panel.spec.ts | 6 +- 32 files changed, 370 insertions(+), 114 deletions(-) create mode 100644 packages/frontend/editor-ui/src/components/canvas/experimental/components/ExperimentalEmbeddedNdvMapper.test.ts diff --git a/packages/frontend/editor-ui/src/components/AssignmentCollection/AssignmentCollection.vue b/packages/frontend/editor-ui/src/components/AssignmentCollection/AssignmentCollection.vue index e983293bc13..9b61e092e89 100644 --- a/packages/frontend/editor-ui/src/components/AssignmentCollection/AssignmentCollection.vue +++ b/packages/frontend/editor-ui/src/components/AssignmentCollection/AssignmentCollection.vue @@ -9,13 +9,16 @@ import type { INode, INodeProperties, } from 'n8n-workflow'; -import { computed, reactive, watch } from 'vue'; +import { computed, inject, reactive, useTemplateRef, watch } from 'vue'; import DropArea from '../DropArea/DropArea.vue'; import ParameterOptions from '../ParameterOptions.vue'; import Assignment from './Assignment.vue'; import { inputDataToAssignments, typeFromExpression } from './utils'; import { propertyNameFromExpression } from '@/utils/mappingUtils'; import Draggable from 'vuedraggable'; +import ExperimentalEmbeddedNdvMapper from '@/components/canvas/experimental/components/ExperimentalEmbeddedNdvMapper.vue'; +import { ExpressionLocalResolveContextSymbol } from '@/constants'; +import { useExperimentalNdvStore } from '@/components/canvas/experimental/experimentalNdv.store'; interface Props { parameter: INodeProperties; @@ -38,6 +41,8 @@ const emit = defineEmits<{ }>(); const i18n = useI18n(); +const expressionLocalResolveCtx = inject(ExpressionLocalResolveContextSymbol, undefined); +const dropAreaContainer = useTemplateRef('dropArea'); const state = reactive<{ paramValue: AssignmentCollectionValue }>({ paramValue: { @@ -50,6 +55,7 @@ const state = reactive<{ paramValue: AssignmentCollectionValue }>({ }); const ndvStore = useNDVStore(); +const experimentalNdvStore = useExperimentalNdvStore(); const { callDebounced } = useDebounce(); const issues = computed(() => { @@ -147,6 +153,21 @@ function optionSelected(action: string) { /> + + +
- +