mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-12 16:10:30 +02:00
refactor(editor): Extract parameters code into features/ndv (no-changelog) (#21235)
This commit is contained in:
parent
663814459b
commit
cc5ee16df1
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
});
|
||||
});
|
||||
|
|
@ -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>;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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: {},
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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<{
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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"
|
||||
|
|
@ -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', () => {
|
||||
|
|
@ -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>;
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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');
|
||||
|
|
@ -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<{
|
||||
|
|
@ -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';
|
||||
|
|
@ -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', () => {
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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';
|
||||
|
|
@ -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,
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
||||
|
|
@ -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();
|
||||
|
|
@ -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
Loading…
Reference in New Issue
Block a user