refactor(editor): Extract parameters code into features/ndv (no-changelog) (#21235)

This commit is contained in:
Alex Grozav 2025-10-27 20:41:00 +02:00 committed by GitHub
parent 663814459b
commit cc5ee16df1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
232 changed files with 794 additions and 774 deletions

View File

@ -17,7 +17,7 @@ import {
} from '@/constants';
import { useChatPanelStore } from '@/features/ai/assistant/chatPanel.store';
import { useAssistantStore } from '@/features/ai/assistant/assistant.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useUIStore } from '@/stores/ui.store';
import { useUsersStore } from '@/features/settings/users/users.store';

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import type { XYPosition } from '@/Interface';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { v4 as uuid } from 'uuid';
import { computed, ref, watch } from 'vue';

View File

@ -1,5 +1,5 @@
import { createComponentRenderer } from '@/__tests__/render';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { createTestingPinia } from '@pinia/testing';
import userEvent from '@testing-library/user-event';
import { fireEvent } from '@testing-library/vue';

View File

@ -1,12 +1,12 @@
<script setup lang="ts">
import CodeNodeEditor from '@/features/shared/editors/components/CodeNodeEditor/CodeNodeEditor.vue';
import CssEditor from '@/features/shared/editors/components/CssEditor/CssEditor.vue';
import ExpressionEditorModalInput from '@/components/ExpressionEditorModal/ExpressionEditorModalInput.vue';
import ExpressionEditorModalInput from '@/features/ndv/parameters/components/ExpressionEditorModal/ExpressionEditorModalInput.vue';
import HtmlEditor from '@/features/shared/editors/components/HtmlEditor/HtmlEditor.vue';
import JsEditor from '@/features/shared/editors/components/JsEditor/JsEditor.vue';
import JsonEditor from '@/features/shared/editors/components/JsonEditor/JsonEditor.vue';
import NodeExecuteButton from '@/components/NodeExecuteButton.vue';
import ParameterOptions from '@/components/ParameterOptions.vue';
import ParameterOptions from '@/features/ndv/parameters/components/ParameterOptions.vue';
import SqlEditor from '@/features/shared/editors/components/SqlEditor/SqlEditor.vue';
import { useFocusPanelStore } from '@/stores/focusPanel.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
@ -17,10 +17,10 @@ import {
getParameterTypeOption,
isValidParameterOption,
parseFromExpression,
} from '@/features/ndv/ndv.utils';
} from '@/features/ndv/shared/ndv.utils';
import { isValueExpression } from '@/utils/nodeTypesUtils';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useNodeSettingsParameters } from '@/features/ndv/composables/useNodeSettingsParameters';
import { useNodeSettingsParameters } from '@/features/ndv/settings/composables/useNodeSettingsParameters';
import { useResolvedExpression } from '@/composables/useResolvedExpression';
import { useDeviceSupport } from '@n8n/composables/useDeviceSupport';
import {
@ -42,7 +42,7 @@ import { useExecutionData } from '@/features/execution/executions/composables/us
import { useWorkflowsStore } from '@/stores/workflows.store';
import ExperimentalNodeDetailsDrawer from '@/features/workflows/canvas/experimental/components/ExperimentalNodeDetailsDrawer.vue';
import { useExperimentalNdvStore } from '@/features/workflows/canvas/experimental/experimentalNdv.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useVueFlow } from '@vue-flow/core';
import ExperimentalFocusPanelHeader from '@/features/workflows/canvas/experimental/components/ExperimentalFocusPanelHeader.vue';
import { useTelemetryContext } from '@/composables/useTelemetryContext';

View File

@ -4,7 +4,7 @@ import FreeAiCreditsCallout from '@/components/FreeAiCreditsCallout.vue';
import { useCredentialsStore } from '@/features/credentials/credentials.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useUsersStore } from '@/features/settings/users/users.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useProjectsStore } from '@/features/collaboration/projects/projects.store';
import { useRootStore } from '@n8n/stores/useRootStore';
import { useToast } from '@/composables/useToast';
@ -32,7 +32,7 @@ vi.mock('@/features/settings/users/users.store', () => ({
useUsersStore: vi.fn(),
}));
vi.mock('@/features/ndv/ndv.store', () => ({
vi.mock('@/features/ndv/shared/ndv.store', () => ({
useNDVStore: vi.fn(),
}));

View File

@ -3,7 +3,7 @@ import { useI18n } from '@n8n/i18n';
import { useTelemetry } from '@/composables/useTelemetry';
import { useToast } from '@/composables/useToast';
import { useCredentialsStore } from '@/features/credentials/credentials.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useProjectsStore } from '@/features/collaboration/projects/projects.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useUsersStore } from '@/features/settings/users/users.store';

View File

@ -17,7 +17,7 @@ import type { FormFieldValueUpdate, IFormInput } from '@n8n/design-system';
import { computed, ref, watch } from 'vue';
import { useRouter } from 'vue-router';
import { useTelemetry } from '@/composables/useTelemetry';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { type JSONSchema7 } from 'json-schema';
import { useProjectsStore } from '@/features/collaboration/projects/projects.store';

View File

@ -12,7 +12,7 @@ import {
N8N_MAIN_GITHUB_REPO_URL,
} from '@/constants';
import { useExecutionsStore } from '@/features/execution/executions/executions.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useSourceControlStore } from '@/features/integrations/sourceControl.ee/sourceControl.store';
import { useUIStore } from '@/stores/ui.store';

View File

@ -77,7 +77,7 @@ import DeleteUserModal from '@/features/settings/users/components/DeleteUserModa
import DuplicateWorkflowDialog from '@/components/DuplicateWorkflowDialog.vue';
import ExternalSecretsProviderModal from '@/features/integrations/externalSecrets.ee/components/ExternalSecretsProviderModal.ee.vue';
import FromAiParametersModal from '@/components/FromAiParametersModal.vue';
import ImportCurlModal from '@/components/ImportCurlModal.vue';
import ImportCurlModal from '@/features/ndv/parameters/components/ImportCurlModal.vue';
import ImportWorkflowUrlModal from '@/components/ImportWorkflowUrlModal.vue';
import InviteUsersModal from '@/features/settings/users/components/InviteUsersModal.vue';
import MfaSetupModal from '@/features/core/auth/components/MfaSetupModal.vue';

View File

@ -16,13 +16,13 @@ import {
import NodeExecuteButton from './NodeExecuteButton.vue';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useRunWorkflow } from '@/composables/useRunWorkflow';
import { useExternalHooks } from '@/composables/useExternalHooks';
import { usePinnedData } from '@/composables/usePinnedData';
import { useMessage } from '@/composables/useMessage';
import { useToast } from '@/composables/useToast';
import * as buttonParameterUtils from '@/components/ButtonParameter/utils';
import * as buttonParameterUtils from '@/features/ndv/parameters/utils/buttonParameter.utils';
import {
injectWorkflowState,
useWorkflowState,

View File

@ -15,7 +15,7 @@ import {
type INodeTypeDescription,
} from 'n8n-workflow';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useMessage } from '@/composables/useMessage';
import { useToast } from '@/composables/useToast';
@ -27,7 +27,7 @@ import { useRouter } from 'vue-router';
import { useI18n } from '@n8n/i18n';
import { useTelemetry } from '@/composables/useTelemetry';
import type { ButtonSize, IUpdateInformation } from '@/Interface';
import { generateCodeForAiTransform } from '@/components/ButtonParameter/utils';
import { generateCodeForAiTransform } from '@/features/ndv/parameters/utils/buttonParameter.utils';
import { needsAgentInput } from '@/utils/nodes/nodeTransforms';
import { useUIStore } from '@/stores/ui.store';
import type { ButtonType } from '@n8n/design-system';

View File

@ -1,118 +0,0 @@
import { createComponentRenderer } from '@/__tests__/render';
import ResourceMapper from './ResourceMapper.vue';
import { createTestingPinia } from '@pinia/testing';
import {
WORKFLOW_INPUTS_TEST_PARAMETER,
WORKFLOW_INPUTS_TEST_NODE,
WORKFLOW_INPUTS_TEST_PARAMETER_PATH,
EXECUTE_WORKFLOW_NODE_TYPE_TEST,
} from './ResourceMapper.test.constants';
import { mockedStore, waitAllPromises } from '@/__tests__/utils';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
vi.mock('vue-router', async () => {
const actual = await vi.importActual('vue-router');
const params = {};
const location = {};
return {
...actual,
useRouter: () => ({
push: vi.fn(),
}),
useRoute: () => ({
params,
location,
}),
};
});
let nodeTypesStore: ReturnType<typeof mockedStore<typeof useNodeTypesStore>>;
const renderComponent = createComponentRenderer(ResourceMapper, {
props: {
inputSize: 'small',
labelSize: 'small',
dependentParametersValues: '-1',
teleported: false,
},
global: {
stubs: {
ParameterInputFull: { template: '<div data-test-id="field-input"></div>' },
},
},
});
describe('ResourceMapper::Workflow Inputs', () => {
beforeEach(() => {
createTestingPinia();
nodeTypesStore = mockedStore(useNodeTypesStore);
nodeTypesStore.nodeTypes = {
'n8n-nodes-base.executeWorkflow': {
1.2: EXECUTE_WORKFLOW_NODE_TYPE_TEST,
},
};
});
it('renders', async () => {
expect(() =>
renderComponent({
props: {
parameter: WORKFLOW_INPUTS_TEST_PARAMETER,
node: WORKFLOW_INPUTS_TEST_NODE,
path: WORKFLOW_INPUTS_TEST_PARAMETER_PATH,
},
}),
).not.toThrow();
});
it('renders workflow inputs list correctly', async () => {
nodeTypesStore.getLocalResourceMapperFields.mockResolvedValue({
fields: [
{
id: 'firstName',
displayName: 'First Name',
type: 'string',
required: false,
defaultMatch: false,
display: true,
},
{
id: 'lastName',
displayName: 'Last Name',
type: 'string',
required: false,
defaultMatch: false,
display: true,
},
],
});
const { getByTestId, getAllByTestId } = renderComponent({
props: {
parameter: WORKFLOW_INPUTS_TEST_PARAMETER,
node: WORKFLOW_INPUTS_TEST_NODE,
path: WORKFLOW_INPUTS_TEST_PARAMETER_PATH,
},
});
await waitAllPromises();
expect(getByTestId('mapping-fields-container')).toBeInTheDocument();
expect(getAllByTestId('field-input')).toHaveLength(2);
});
it('renders provided empty fields message', async () => {
nodeTypesStore.getLocalResourceMapperFields.mockResolvedValue({
fields: [],
emptyFieldsNotice: 'Nothing <b>here</b>',
});
const { queryByTestId, queryAllByTestId, getByTestId } = renderComponent({
props: {
parameter: WORKFLOW_INPUTS_TEST_PARAMETER,
node: WORKFLOW_INPUTS_TEST_NODE,
path: WORKFLOW_INPUTS_TEST_PARAMETER_PATH,
},
});
await waitAllPromises();
expect(queryByTestId('mapping-fields-container')).not.toBeInTheDocument();
expect(queryAllByTestId('field-input')).toHaveLength(0);
expect(getByTestId('empty-fields-notice')).toHaveTextContent('Nothing here');
});
});

View File

@ -9,7 +9,7 @@ import { NodeConnectionTypes } from 'n8n-workflow';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { defaultSettings } from '@/__tests__/defaults';
import { useSettingsStore } from '@/stores/settings.store';
import VirtualSchemaHeader from '@/features/ndv/components/runData/VirtualSchemaHeader.vue';
import VirtualSchemaHeader from '@/features/ndv/runData/components/VirtualSchemaHeader.vue';
describe('VirtualSchemaHeader.vue', () => {
let renderComponent: ReturnType<typeof createComponentRenderer>;

View File

@ -14,7 +14,7 @@ vi.mock('@/composables/useTelemetry', () => ({
useTelemetry: vi.fn(() => ({ track: trackSpy })),
}));
vi.mock('@/features/ndv/ndv.store', () => ({
vi.mock('@/features/ndv/shared/ndv.store', () => ({
useNDVStore: vi.fn(() => ({
activeNode: { type: 'n8n-nodes-base.test' },
setAutocompleteOnboarded: setAutocompleteOnboardedSpy,

View File

@ -2,7 +2,7 @@ import { type MaybeRefOrGetter, computed, toValue, watchEffect } from 'vue';
import { ExpressionExtensions } from 'n8n-workflow';
import { EditorView, type ViewUpdate } from '@codemirror/view';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useRootStore } from '@n8n/stores/useRootStore';
import { useTelemetry } from '../composables/useTelemetry';
import type { Compartment } from '@codemirror/state';

View File

@ -5,7 +5,7 @@ import {
PrebuiltAgentTemplates,
SampleTemplates,
} from '@/features/workflows/templates/utils/workflowSamples';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { mockedStore } from '@/__tests__/utils';
import { NODE_CREATOR_OPEN_SOURCES, VIEWS } from '@/constants';
import { useNodeCreatorStore } from '@/stores/nodeCreator.store';

View File

@ -6,7 +6,7 @@ import { useI18n } from '@n8n/i18n';
import { useUsersStore } from '@/features/settings/users/users.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { usePostHog } from '@/stores/posthog.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeCreatorStore } from '@/stores/nodeCreator.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useViewStacks } from '@/components/Node/NodeCreator/composables/useViewStacks';

View File

@ -18,7 +18,7 @@ import { RemoveNodeCommand, ReplaceNodeParametersCommand } from '@/models/histor
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useUIStore } from '@/stores/ui.store';
import { useHistoryStore } from '@/stores/history.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import {
createTestNode,
createTestWorkflow,

View File

@ -48,7 +48,7 @@ import { useCanvasStore } from '@/stores/canvas.store';
import { useCredentialsStore } from '@/features/credentials/credentials.store';
import { useExecutionsStore } from '@/features/execution/executions/executions.store';
import { useHistoryStore } from '@/stores/history.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeCreatorStore } from '@/stores/nodeCreator.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useRootStore } from '@n8n/stores/useRootStore';

View File

@ -1,6 +1,6 @@
import { defaultSettings } from '@/__tests__/defaults';
import { useLogsStore } from '@/stores/logs.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { setActivePinia } from 'pinia';

View File

@ -1,7 +1,7 @@
import { NDV_UI_OVERHAUL_EXPERIMENT } from '@/constants';
import { useAssistantStore } from '@/features/ai/assistant/assistant.store';
import { useLogsStore } from '@/stores/logs.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { usePostHog } from '@/stores/posthog.store';
import { computed } from 'vue';

View File

@ -9,7 +9,7 @@ import { mock } from 'vitest-mock-extended';
const undoMock = vi.fn();
const redoMock = vi.fn();
vi.mock('@/features/ndv/ndv.store', () => ({
vi.mock('@/features/ndv/shared/ndv.store', () => ({
useNDVStore: () => ({
activeNodeName: null,
activeNode: {},

View File

@ -1,5 +1,5 @@
import { MAIN_HEADER_TABS } from '@/constants';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import type { Undoable } from '@/models/history';
import { BulkCommand, Command } from '@/models/history';
import { useHistoryStore } from '@/stores/history.store';

View File

@ -34,7 +34,7 @@ import type {
import type { ICredentialsResponse } from '@/features/credentials/credentials.types';
import type { AddedNode, INodeUi, INodeUpdatePropertiesInformation } from '@/Interface';
import type { NodePanelType } from '@/features/ndv/ndv.types';
import type { NodePanelType } from '@/features/ndv/shared/ndv.types';
import { isString } from '@/utils/typeGuards';
import { isObject } from '@/utils/objectUtils';

View File

@ -1,4 +1,4 @@
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { isExpression as isExpressionUtil, stringifyExpressionResult } from '@/utils/expressions';

View File

@ -44,7 +44,7 @@ import get from 'lodash/get';
import { useEnvironmentsStore } from '@/features/settings/environments.ee/environments.store';
import { useRootStore } from '@n8n/stores/useRootStore';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';

View File

@ -17,8 +17,8 @@ import { useWorkflowsStore } from '@/stores/workflows.store';
import type { ICredentialType, INodeParameters, NodeError, INode } from 'n8n-workflow';
import { deepCopy } from 'n8n-workflow';
import { codeNodeEditorEventBus } from '@/event-bus';
import { ndvEventBus } from '@/features/ndv/ndv.eventBus';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { ndvEventBus } from '@/features/ndv/shared/ndv.eventBus';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import type { IUpdateInformation } from '@/Interface';
import { useI18n } from '@n8n/i18n';
import { useTelemetry } from '@/composables/useTelemetry';

View File

@ -25,7 +25,7 @@ import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useCredentialsStore } from '@/features/credentials/credentials.store';
import { getAuthTypeForNodeCredential, getMainAuthField } from '@/utils/nodeTypesUtils';
import { stringSizeInBytes } from '@/utils/typesUtils';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
const INFINITE_CREDITS = -1;
export const ENABLED_VIEWS = BUILDER_ENABLED_VIEWS;

View File

@ -7,7 +7,7 @@ import NodeIssueItem from './NodeIssueItem.vue';
import type { INodeTypeDescription } from 'n8n-workflow';
import { createTestingPinia } from '@pinia/testing';
import { setActivePinia } from 'pinia';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
vi.mock('@/components/NodeIcon.vue', () => ({
default: {

View File

@ -6,7 +6,7 @@ interface WorkflowNodeIssue {
type: string;
value: string | string[];
}
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import NodeIcon from '@/components/NodeIcon.vue';
import { N8nIcon } from '@n8n/design-system';

View File

@ -8,7 +8,7 @@ import type {
INode,
} from 'n8n-workflow';
import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { executionDataToJson, getMainAuthField, getNodeAuthOptions } from '@/utils/nodeTypesUtils';
import type { ChatRequest } from '../assistant.types';

View File

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { computed } from 'vue';
import { useI18n } from '@n8n/i18n';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { DATA_TABLE_NODES } from '@/constants';
import { useDataTableStore } from '@/features/core/dataTable/dataTable.store';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import ParameterInputFull from '@/components/ParameterInputFull.vue';
import ParameterInputFull from '@/features/ndv/parameters/components/ParameterInputFull.vue';
import { useI18n } from '@n8n/i18n';
import type { IUpdateInformation, NodeAuthenticationOption } from '@/Interface';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import {
getAuthTypeForNodeCredential,

View File

@ -22,7 +22,7 @@ import {
} from '@/constants';
import type { PermissionsRecord } from '@n8n/permissions';
import { useCredentialsStore } from '../../credentials.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useRootStore } from '@n8n/stores/useRootStore';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';

View File

@ -27,7 +27,7 @@ import { useToast } from '@/composables/useToast';
import { CREDENTIAL_EDIT_MODAL_KEY } from '../../credentials.constants';
import { EnterpriseEditionFeature, MODAL_CONFIRM } from '@/constants';
import { useCredentialsStore } from '../../credentials.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useSettingsStore } from '@/stores/settings.store';
import { useUIStore } from '@/stores/ui.store';

View File

@ -5,7 +5,7 @@ import type {
NodeParameterValueType,
} from 'n8n-workflow';
import type { IUpdateInformation } from '@/Interface';
import ParameterInputExpanded from '@/components/ParameterInputExpanded.vue';
import ParameterInputExpanded from '@/features/ndv/parameters/components/ParameterInputExpanded.vue';
import { computed } from 'vue';
import { N8nNotice } from '@n8n/design-system';

View File

@ -10,7 +10,7 @@ import { mockedStore } from '@/__tests__/utils';
import type { INodeUi } from '@/Interface';
import { useProjectsStore } from '@/features/collaboration/projects/projects.store';
import type { Project } from '@/features/collaboration/projects/projects.types';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';

View File

@ -16,9 +16,9 @@ import TitledList from '@/components/TitledList.vue';
import { useI18n } from '@n8n/i18n';
import { useTelemetry } from '@/composables/useTelemetry';
import { CREDENTIAL_ONLY_NODE_PREFIX } from '@/constants';
import { ndvEventBus } from '@/features/ndv/ndv.eventBus';
import { ndvEventBus } from '@/features/ndv/shared/ndv.eventBus';
import { useCredentialsStore } from '../credentials.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';

View File

@ -19,7 +19,7 @@ import {
isPlaceholderLog,
} from '@/features/execution/logs/logs.utils';
import { LOG_DETAILS_PANEL_STATE } from '@/features/execution/logs/logs.constants';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useExperimentalNdvStore } from '@/features/workflows/canvas/experimental/experimentalNdv.store';
import { N8nButton, N8nResizeWrapper, N8nText } from '@n8n/design-system';

View File

@ -19,7 +19,7 @@ import {
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { IN_PROGRESS_EXECUTION_ID, WorkflowStateKey } from '@/constants';
import { useCanvasOperations } from '@/composables/useCanvasOperations';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { deepCopy } from 'n8n-workflow';
import { createTestTaskData } from '@/__tests__/mocks';
import { useLogsStore } from '@/stores/logs.store';

View File

@ -6,8 +6,8 @@ import ChatMessagesPanel from '@/features/execution/logs/components/ChatMessages
import LogsDetailsPanel from '@/features/execution/logs/components/LogDetailsPanel.vue';
import LogsPanelActions from '@/features/execution/logs/components/LogsPanelActions.vue';
import { useLogsExecutionData } from '@/features/execution/logs/composables/useLogsExecutionData';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { ndvEventBus } from '@/features/ndv/ndv.eventBus';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { ndvEventBus } from '@/features/ndv/shared/ndv.eventBus';
import { useLogsSelection } from '@/features/execution/logs/composables/useLogsSelection';
import { useLogsTreeExpand } from '@/features/execution/logs/composables/useLogsTreeExpand';
import { type LogEntry } from '@/features/execution/logs/logs.types';

View File

@ -1,18 +1,18 @@
<script setup lang="ts">
import RunData from '@/features/ndv/components/runData/RunData.vue';
import RunData from '@/features/ndv/runData/components/RunData.vue';
import { type LogEntry } from '@/features/execution/logs/logs.types';
import { useI18n } from '@n8n/i18n';
import type { IRunDataDisplayMode } from '@/Interface';
import type { NodePanelType } from '@/features/ndv/ndv.types';
import { useNDVStore } from '@/features/ndv/ndv.store';
import type { NodePanelType } from '@/features/ndv/shared/ndv.types';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { waitingNodeTooltip } from '@/features/execution/executions/executions.utils';
import { computed, inject, ref } from 'vue';
import { I18nT } from 'vue-i18n';
import { PopOutWindowKey } from '@/constants';
import { isSubNodeLog } from '../logs.utils';
import RunDataItemCount from '@/features/ndv/components/runData/RunDataItemCount.vue';
import RunDataItemCount from '@/features/ndv/runData/components/RunDataItemCount.vue';
import { type SearchShortcut } from '@/features/workflows/canvas/canvas.types';
import NDVEmptyState from '@/features/ndv/components/panel/NDVEmptyState.vue';
import NDVEmptyState from '@/features/ndv/panel/components/NDVEmptyState.vue';
import { N8nLink, N8nText } from '@n8n/design-system';
const { title, logEntry, paneType, collapsingTableColumnName } = defineProps<{

View File

@ -8,7 +8,7 @@ import { useI18n } from '@n8n/i18n';
import { useMessage } from '@/composables/useMessage';
import { useToast } from '@/composables/useToast';
import { useExternalSecretsStore } from '../externalSecrets.ee.store';
import ParameterInputExpanded from '@/components/ParameterInputExpanded.vue';
import ParameterInputExpanded from '@/features/ndv/parameters/components/ParameterInputExpanded.vue';
import type { IUpdateInformation } from '@/Interface';
import type {
ExternalSecretsProviderData,

View File

@ -26,9 +26,9 @@ import type { EventBus } from '@n8n/utils/event-bus';
import { createEventBus } from '@n8n/utils/event-bus';
import { useLogStreamingStore } from '../logStreaming.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import ParameterInputList from '@/components/ParameterInputList.vue';
import ParameterInputList from '@/features/ndv/parameters/components/ParameterInputList.vue';
import type { IMenuItem, IUpdateInformation, ModalKey } from '@/Interface';
import { LOG_STREAM_MODAL_KEY, MODAL_CONFIRM } from '@/constants';
import Modal from '@/components/Modal.vue';

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { useI18n } from '@n8n/i18n';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { isPresent } from '@/utils/typesUtils';

View File

@ -24,7 +24,7 @@ import { computed, ref, watch } from 'vue';
import InputNodeSelect from './InputNodeSelect.vue';
import NodeExecuteButton from '@/components/NodeExecuteButton.vue';
import NDVEmptyState from './NDVEmptyState.vue';
import RunData from '@/features/ndv/components/runData/RunData.vue';
import RunData from '@/features/ndv/runData/components/RunData.vue';
import WireMeUp from './WireMeUp.vue';
import { usePostHog } from '@/stores/posthog.store';
import { type IRunDataDisplayMode } from '@/Interface';

View File

@ -5,11 +5,11 @@ import type { INodeTypeDescription } from 'n8n-workflow';
import PanelDragButton from './PanelDragButton.vue';
import { LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, MAIN_NODE_PANEL_WIDTH } from '@/constants';
import { useNDVStore } from '../../ndv.store';
import { ndvEventBus } from '../../ndv.eventBus';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { ndvEventBus } from '@/features/ndv/shared/ndv.eventBus';
import NDVFloatingNodes from './NDVFloatingNodes.vue';
import type { Direction, XYPosition } from '@/Interface';
import type { MainPanelType } from '../../ndv.types';
import type { MainPanelType } from '@/features/ndv/shared/ndv.types';
import { ref, onMounted, onBeforeUnmount, computed, watch, nextTick } from 'vue';
import { useUIStore } from '@/stores/ui.store';
import { useThrottleFn } from '@vueuse/core';

View File

@ -16,7 +16,7 @@ import type {
import { useDebounce } from '@/composables/useDebounce';
import { OnClickOutside } from '@vueuse/components';
import { useI18n } from '@n8n/i18n';
import { useNDVStore } from '../../ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { N8nIconButton, N8nTooltip } from '@n8n/design-system';
interface Props {

View File

@ -1,13 +1,13 @@
<script setup lang="ts">
import { ref, computed, onMounted, watch } from 'vue';
import { NodeConnectionTypes, type IRunData, type Workflow } from 'n8n-workflow';
import RunData from '@/features/ndv/components/runData/RunData.vue';
import RunInfo from '@/features/ndv/components/runData/RunInfo.vue';
import RunData from '@/features/ndv/runData/components/RunData.vue';
import RunInfo from '@/features/ndv/runData/components/RunInfo.vue';
import { storeToRefs } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import RunDataAi from '@/features/ndv/components/runData/ai/RunDataAi.vue';
import RunDataAi from '@/features/ndv/runData/components/ai/RunDataAi.vue';
import { useNodeType } from '@/composables/useNodeType';
import { usePinnedData } from '@/composables/usePinnedData';
import { useTelemetry } from '@/composables/useTelemetry';
@ -20,7 +20,7 @@ import { usePostHog } from '@/stores/posthog.store';
import { type IRunDataDisplayMode } from '@/Interface';
import { I18nT } from 'vue-i18n';
import { useExecutionData } from '@/features/execution/executions/composables/useExecutionData';
import NDVEmptyState from '@/features/ndv/components/panel/NDVEmptyState.vue';
import NDVEmptyState from '@/features/ndv/panel/components/NDVEmptyState.vue';
import NodeExecuteButton from '@/components/NodeExecuteButton.vue';
import { N8nIcon, N8nRadioButtons, N8nSpinner, N8nText } from '@n8n/design-system';

View File

@ -15,7 +15,7 @@ import CopyInput from '@/components/CopyInput.vue';
import NodeIcon from '@/components/NodeIcon.vue';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNDVStore } from '../../ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { createEventBus } from '@n8n/utils/event-bus';
import { useRouter } from 'vue-router';

View File

@ -5,16 +5,16 @@ exports[`InputPanel > should render 1`] = `
<div
class="run-data container runData"
data-test-id="ndv-input-panel"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!--v-if-->
<div
class="header"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<div
class="title"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<div
@ -71,14 +71,14 @@ exports[`InputPanel > should render 1`] = `
<div
class="displayModes"
data-test-id="run-data-pane-header"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!---->
<!--v-if-->
<div
class="n8n-radio-buttons radioGroup"
data-test-id="ndv-run-data-display-mode"
data-v-875f3aec=""
data-v-5b5900d0=""
role="radiogroup"
>
@ -133,13 +133,13 @@ exports[`InputPanel > should render 1`] = `
<!--v-if-->
<div
class="editModeActions"
data-v-875f3aec=""
data-v-5b5900d0=""
style="display: none;"
>
<button
aria-live="polite"
class="button button tertiary medium"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!--v-if-->
<span>
@ -149,7 +149,7 @@ exports[`InputPanel > should render 1`] = `
<button
aria-live="polite"
class="button button primary medium ml-2xs ml-2xs"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!--v-if-->
<span>
@ -162,7 +162,7 @@ exports[`InputPanel > should render 1`] = `
</div>
<div
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!--v-if-->
<!--v-if-->
@ -176,7 +176,7 @@ exports[`InputPanel > should render 1`] = `
<div
class="dataContainer"
data-test-id="ndv-data-container"
data-v-875f3aec=""
data-v-5b5900d0=""
>
<!--v-if-->
<!---->
@ -187,7 +187,7 @@ exports[`InputPanel > should render 1`] = `
class="uiBlocker"
css="true"
data-v-1a77a378=""
data-v-875f3aec=""
data-v-5b5900d0=""
mode="out-in"
name="fade"
persisted="true"

View File

@ -1,6 +1,6 @@
import { ref, type Ref } from 'vue';
import { useNdvLayout } from './useNdvLayout';
import { LOCAL_STORAGE_NDV_PANEL_WIDTH } from '../ndv.constants';
import { LOCAL_STORAGE_NDV_PANEL_WIDTH } from '@/features/ndv/shared/ndv.constants';
import { mock } from 'vitest-mock-extended';
vi.mock('@vueuse/core', () => {

View File

@ -3,8 +3,8 @@ import { jsonParse } from 'n8n-workflow';
import type { MaybeRefOrGetter } from 'vue';
import { computed, ref, toRef, toValue, watch } from 'vue';
import type { ResizeData, XYPosition } from '@/Interface';
import type { MainPanelType } from '../ndv.types';
import { LOCAL_STORAGE_NDV_PANEL_WIDTH } from '../ndv.constants';
import type { MainPanelType } from '@/features/ndv/shared/ndv.types';
import { LOCAL_STORAGE_NDV_PANEL_WIDTH } from '@/features/ndv/shared/ndv.constants';
interface UseNdvLayoutOptions {
container: MaybeRefOrGetter<HTMLElement | null>;

View File

@ -1,12 +1,12 @@
<script setup lang="ts">
import type { IUpdateInformation } from '@/Interface';
import InputTriple from '@/components/InputTriple/InputTriple.vue';
import ParameterInputFull from '@/components/ParameterInputFull.vue';
import ParameterInputHint from '@/components/ParameterInputHint.vue';
import ParameterIssues from '@/components/ParameterIssues.vue';
import InputTriple from '../InputTriple/InputTriple.vue';
import ParameterInputFull from '../ParameterInputFull.vue';
import ParameterInputHint from '../ParameterInputHint.vue';
import ParameterIssues from '../ParameterIssues.vue';
import { useResolvedExpression } from '@/composables/useResolvedExpression';
import useEnvironmentsStore from '@/features/settings/environments.ee/environments.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import type { AssignmentValue, INodeProperties } from 'n8n-workflow';
import { computed, ref } from 'vue';
import TypeSelect from './TypeSelect.vue';

View File

@ -1,5 +1,5 @@
import { createComponentRenderer, type RenderOptions } from '@/__tests__/render';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { createTestingPinia } from '@pinia/testing';
import userEvent from '@testing-library/user-event';
import { fireEvent, within } from '@testing-library/vue';

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { useDebounce } from '@/composables/useDebounce';
import { useI18n } from '@n8n/i18n';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import type {
AssignmentCollectionValue,
AssignmentValue,
@ -10,10 +10,10 @@ import type {
INodeProperties,
} from 'n8n-workflow';
import { computed, inject, reactive, useTemplateRef, watch } from 'vue';
import DropArea from '../DropArea/DropArea.vue';
import DropArea from '@/components/DropArea/DropArea.vue';
import ParameterOptions from '../ParameterOptions.vue';
import Assignment from './Assignment.vue';
import { inputDataToAssignments, typeFromExpression } from './utils';
import { inputDataToAssignments, typeFromExpression } from '../../utils/assignmentCollection.utils';
import { propertyNameFromExpression } from '@/utils/mappingUtils';
import Draggable from 'vuedraggable';
import ExperimentalEmbeddedNdvMapper from '@/features/workflows/canvas/experimental/components/ExperimentalEmbeddedNdvMapper.vue';

View File

@ -2,15 +2,15 @@
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { mount } from '@vue/test-utils';
import { createTestingPinia } from '@pinia/testing';
import ButtonParameter, { type Props } from '@/components/ButtonParameter/ButtonParameter.vue';
import { useNDVStore } from '@/features/ndv/ndv.store';
import ButtonParameter, { type Props } from './ButtonParameter.vue';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { usePostHog } from '@/stores/posthog.store';
import { useRootStore } from '@n8n/stores/useRootStore';
import { useToast } from '@/composables/useToast';
import type { INodeProperties } from 'n8n-workflow';
vi.mock('@/features/ndv/ndv.store');
vi.mock('@/features/ndv/shared/ndv.store');
vi.mock('@/stores/workflows.store');
vi.mock('@/stores/posthog.store');
vi.mock('@n8n/stores/useRootStore');

View File

@ -5,18 +5,18 @@ import { ref, computed, onMounted } from 'vue';
import { N8nButton, N8nInput, N8nInputLabel, N8nTooltip } from '@n8n/design-system';
import { useI18n } from '@n8n/i18n';
import { useToast } from '@/composables/useToast';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import {
getParentNodes,
generateCodeForAiTransform,
type TextareaRowData,
getUpdatedTextareaValue,
getTextareaCursorPosition,
} from './utils';
} from '../../utils/buttonParameter.utils';
import { useTelemetry } from '@/composables/useTelemetry';
import DraggableTarget from '@/components/DraggableTarget.vue';
import { propertyNameFromExpression } from '../../utils/mappingUtils';
import { propertyNameFromExpression } from '@/utils/mappingUtils';
const AI_TRANSFORM_CODE_GENERATED_FOR_PROMPT = 'codeGeneratedForPrompt';
const emit = defineEmits<{

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { ref, computed } from 'vue';
import ParameterInputList from '@/components/ParameterInputList.vue';
import ParameterInputList from './ParameterInputList.vue';
import type { IUpdateInformation } from '@/Interface';
import type {
@ -13,7 +13,7 @@ import { deepCopy } from 'n8n-workflow';
import get from 'lodash/get';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useI18n } from '@n8n/i18n';
import { storeToRefs } from 'pinia';

View File

@ -1,10 +1,10 @@
import { createComponentRenderer } from '@/__tests__/render';
import ExpressionEditModal from '@/components/ExpressionEditModal.vue';
import ExpressionEditModal from './ExpressionEditModal.vue';
import { createTestingPinia } from '@pinia/testing';
import { waitFor, within } from '@testing-library/vue';
import { setActivePinia, type Pinia } from 'pinia';
import { defaultSettings } from '../__tests__/defaults';
import { useSettingsStore } from '../stores/settings.store';
import { defaultSettings } from '@/__tests__/defaults';
import { useSettingsStore } from '@/stores/settings.store';
import { createTestNodeProperties } from '@/__tests__/mocks';
vi.mock('vue-router', () => {

View File

@ -1,10 +1,10 @@
<script setup lang="ts">
import ExpressionEditorModalInput from '@/components/ExpressionEditorModal/ExpressionEditorModalInput.vue';
import ExpressionEditorModalInput from './ExpressionEditorModal/ExpressionEditorModalInput.vue';
import { computed, ref, toRaw, watch } from 'vue';
import Close from 'virtual:icons/mdi/close';
import { useExternalHooks } from '@/composables/useExternalHooks';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { createExpressionTelemetryPayload } from '@/utils/telemetryUtils';
@ -14,11 +14,11 @@ import type { INodeProperties } from 'n8n-workflow';
import { NodeConnectionTypes } from 'n8n-workflow';
import { outputTheme } from './ExpressionEditorModal/theme';
import ExpressionOutput from '@/features/shared/editors/components/InlineExpressionEditor/ExpressionOutput.vue';
import VirtualSchema from '@/features/ndv/components/runData/VirtualSchema.vue';
import VirtualSchema from '@/features/ndv/runData/components/VirtualSchema.vue';
import OutputItemSelect from '@/features/shared/editors/components/InlineExpressionEditor/OutputItemSelect.vue';
import { useI18n } from '@n8n/i18n';
import { useDebounce } from '@/composables/useDebounce';
import DraggableTarget from './DraggableTarget.vue';
import DraggableTarget from '@/components/DraggableTarget.vue';
import { dropInExpressionEditor } from '@/features/shared/editors/plugins/codemirror/dragAndDrop';
import { APP_MODALS_ELEMENT_ID } from '@/constants';

View File

@ -1,6 +1,6 @@
import userEvent from '@testing-library/user-event';
import { createComponentRenderer } from '@/__tests__/render';
import ExpressionEditorModalInput from '@/components/ExpressionEditorModal/ExpressionEditorModalInput.vue';
import ExpressionEditorModalInput from './ExpressionEditorModalInput.vue';
import { type TestingPinia, createTestingPinia } from '@pinia/testing';
import { setActivePinia } from 'pinia';
import { waitFor } from '@testing-library/vue';

View File

@ -1,5 +1,5 @@
import { createComponentRenderer } from '@/__tests__/render';
import ExpressionParameterInput from '@/components/ExpressionParameterInput.vue';
import ExpressionParameterInput from './ExpressionParameterInput.vue';
import { type TestingPinia, createTestingPinia } from '@pinia/testing';
import userEvent from '@testing-library/user-event';
import { waitFor } from '@testing-library/vue';

View File

@ -3,10 +3,10 @@ import { computed, inject, nextTick, onBeforeUnmount, onMounted, ref, toRaw, wat
import { onClickOutside } from '@vueuse/core';
import DraggableTarget from '@/components/DraggableTarget.vue';
import ExpressionFunctionIcon from '@/components/ExpressionFunctionIcon.vue';
import ExpressionFunctionIcon from './ExpressionFunctionIcon.vue';
import InlineExpressionEditorInput from '@/features/shared/editors/components/InlineExpressionEditor/InlineExpressionEditorInput.vue';
import InlineExpressionEditorOutput from '@/features/shared/editors/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { createExpressionTelemetryPayload } from '@/utils/telemetryUtils';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import type { IUpdateInformation } from '@/Interface';
import InputTriple from '@/components/InputTriple/InputTriple.vue';
import ParameterInputFull from '@/components/ParameterInputFull.vue';
import ParameterIssues from '@/components/ParameterIssues.vue';
import InputTriple from '../InputTriple/InputTriple.vue';
import ParameterInputFull from '../ParameterInputFull.vue';
import ParameterIssues from '../ParameterIssues.vue';
import { useI18n } from '@n8n/i18n';
import { DateTime } from 'luxon';
import type {

View File

@ -1,8 +1,8 @@
import { createComponentRenderer, type RenderOptions } from '@/__tests__/render';
import { SETTINGS_STORE_DEFAULT_STATE } from '@/__tests__/utils';
import FilterConditions from '@/components/FilterConditions/FilterConditions.vue';
import FilterConditions from './FilterConditions.vue';
import { STORES } from '@n8n/stores';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { createTestingPinia } from '@pinia/testing';
import userEvent from '@testing-library/user-event';
import { within, waitFor } from '@testing-library/vue';

View File

@ -12,7 +12,7 @@ import {
type FilterOptionsValue,
} from 'n8n-workflow';
import { computed, reactive, watch } from 'vue';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import {
DEFAULT_FILTER_OPTIONS,
DEFAULT_MAX_CONDITIONS,

View File

@ -1,6 +1,6 @@
import { createComponentRenderer } from '@/__tests__/render';
import { SETTINGS_STORE_DEFAULT_STATE } from '@/__tests__/utils';
import FixedCollectionParameter, { type Props } from '@/components/FixedCollectionParameter.vue';
import FixedCollectionParameter, { type Props } from './FixedCollectionParameter.vue';
import { STORES } from '@n8n/stores';
import { createTestingPinia } from '@pinia/testing';
import userEvent from '@testing-library/user-event';

View File

@ -16,7 +16,7 @@ import { useI18n } from '@n8n/i18n';
import ParameterInputList from './ParameterInputList.vue';
import Draggable from 'vuedraggable';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { telemetry } from '@/plugins/telemetry';
import { storeToRefs } from 'pinia';

View File

@ -5,7 +5,7 @@ import { IMPORT_CURL_MODAL_KEY } from '@/constants';
import { mockedStore } from '@/__tests__/utils';
import { nextTick } from 'vue';
import { useUIStore } from '@/stores/ui.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import userEvent from '@testing-library/user-event';
const mockTelemetryTrack = vi.fn();

View File

@ -6,7 +6,7 @@ import { useUIStore } from '@/stores/ui.store';
import { createEventBus } from '@n8n/utils/event-bus';
import { useTelemetry } from '@/composables/useTelemetry';
import { useI18n } from '@n8n/i18n';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { useNDVStore } from '@/features/ndv/shared/ndv.store';
import { N8nButton, N8nInput, N8nInputLabel, N8nNotice } from '@n8n/design-system';
const telemetry = useTelemetry();

Some files were not shown because too many files have changed in this diff Show More