refactor(editor): Extract NodeSettings code into features/ndv (no-changelog) (#21093)

This commit is contained in:
Alex Grozav
2025-10-24 12:09:54 +03:00
committed by GitHub
parent 9fdd6d30aa
commit b45be8aa4c
21 changed files with 33 additions and 33 deletions
@@ -17,10 +17,10 @@ import {
getParameterTypeOption,
isValidParameterOption,
parseFromExpression,
} from '@/utils/nodeSettingsUtils';
} from '@/features/ndv/ndv.utils';
import { isValueExpression } from '@/utils/nodeTypesUtils';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useNodeSettingsParameters } from '@/composables/useNodeSettingsParameters';
import { useNodeSettingsParameters } from '@/features/ndv/composables/useNodeSettingsParameters';
import { useResolvedExpression } from '@/composables/useResolvedExpression';
import { useDeviceSupport } from '@n8n/composables/useDeviceSupport';
import {
@@ -49,7 +49,7 @@ import {
isValidParameterOption,
parseFromExpression,
shouldSkipParamValidation,
} from '@/utils/nodeSettingsUtils';
} from '@/features/ndv/ndv.utils';
import { hasExpressionMapping, isValueExpression } from '@/utils/nodeTypesUtils';
import {
@@ -68,7 +68,7 @@ import { useI18n } from '@n8n/i18n';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useTelemetry } from '@/composables/useTelemetry';
import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';
import { useNodeSettingsParameters } from '@/composables/useNodeSettingsParameters';
import { useNodeSettingsParameters } from '@/features/ndv/composables/useNodeSettingsParameters';
import { htmlEditorEventBus } from '@/event-bus';
import { useCredentialsStore } from '@/features/credentials/credentials.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
@@ -23,7 +23,7 @@ import MultipleParameter from '@/components/MultipleParameter.vue';
import ParameterInputFull from '@/components/ParameterInputFull.vue';
import ResourceMapper from '@/components/ResourceMapper/ResourceMapper.vue';
import { useI18n } from '@n8n/i18n';
import { useNodeSettingsParameters } from '@/composables/useNodeSettingsParameters';
import { useNodeSettingsParameters } from '@/features/ndv/composables/useNodeSettingsParameters';
import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';
import { useMessage } from '@/composables/useMessage';
import {
@@ -41,7 +41,7 @@ import { computedWithControl } from '@vueuse/core';
import get from 'lodash/get';
import { storeToRefs } from 'pinia';
import { useCalloutHelpers } from '@/composables/useCalloutHelpers';
import { getParameterTypeOption } from '@/utils/nodeSettingsUtils';
import { getParameterTypeOption } from '@/features/ndv/ndv.utils';
import { useWorkflowsStore } from '@/stores/workflows.store';
import type { IconName } from '@n8n/design-system/components/N8nIcon/icons';
@@ -9,7 +9,7 @@ import { isValueExpression } from '@/utils/nodeTypesUtils';
import { computed } from 'vue';
import { useNDVStore } from '@/features/ndv/ndv.store';
import { AI_TRANSFORM_NODE_TYPE } from '@/constants';
import { getParameterTypeOption } from '@/utils/nodeSettingsUtils';
import { getParameterTypeOption } from '@/features/ndv/ndv.utils';
import { useIsInExperimentalNdv } from '@/features/workflows/canvas/experimental/composables/useIsInExperimentalNdv';
import { useExperimentalNdvStore } from '@/features/workflows/canvas/experimental/experimentalNdv.store';
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { useStorage } from '@/composables/useStorage';
import { saveAs } from 'file-saver';
import NodeSettingsHint from '@/components/NodeSettingsHint.vue';
import NodeSettingsHint from '@/features/ndv/components/settings/NodeSettingsHint.vue';
import type {
IBinaryData,
IConnectedNode,
@@ -18,21 +18,21 @@ import { BASE_NODE_SURVEY_URL, VIEWS } from '@/constants';
import NDVSubConnections from '@/features/ndv/components/panel/NDVSubConnections.vue';
import NodeCredentials from '@/features/credentials/components/NodeCredentials.vue';
import NodeSettingsHeader from '@/components/NodeSettingsHeader.vue';
import NodeSettingsTabs from '@/components/NodeSettingsTabs.vue';
import NodeWebhooks from '@/components/NodeWebhooks.vue';
import NodeSettingsHeader from './NodeSettingsHeader.vue';
import NodeSettingsTabs from './NodeSettingsTabs.vue';
import NodeWebhooks from './NodeWebhooks.vue';
import ParameterInputList from '@/components/ParameterInputList.vue';
import get from 'lodash/get';
import ExperimentalEmbeddedNdvHeader from '@/features/workflows/canvas/experimental/components/ExperimentalEmbeddedNdvHeader.vue';
import FreeAiCreditsCallout from '@/components/FreeAiCreditsCallout.vue';
import NodeActionsList from '@/components/NodeActionsList.vue';
import NodeSettingsInvalidNodeWarning from '@/components/NodeSettingsInvalidNodeWarning.vue';
import NodeSettingsInvalidNodeWarning from './NodeSettingsInvalidNodeWarning.vue';
import { useExternalHooks } from '@/composables/useExternalHooks';
import { useInstalledCommunityPackage } from '@/features/settings/communityNodes/composables/useInstalledCommunityPackage';
import { useNodeCredentialOptions } from '@/features/credentials/composables/useNodeCredentialOptions';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useNodeSettingsParameters } from '@/composables/useNodeSettingsParameters';
import { useNodeSettingsParameters } from '@/features/ndv/composables/useNodeSettingsParameters';
import { useTelemetry } from '@/composables/useTelemetry';
import { importCurlEventBus } from '@/event-bus';
import { ndvEventBus } from '@/features/ndv/ndv.eventBus';
@@ -53,13 +53,13 @@ import {
createCommonNodeSettings,
getNodeSettingsInitialValues,
nameIsParameter,
} from '@/utils/nodeSettingsUtils';
} from '../../ndv.utils';
import { useI18n } from '@n8n/i18n';
import type { EventBus } from '@n8n/utils/event-bus';
import { useResizeObserver } from '@vueuse/core';
import CommunityNodeFooter from '@/features/settings/communityNodes/components/nodeCreator/CommunityNodeFooter.vue';
import CommunityNodeUpdateInfo from '@/features/settings/communityNodes/components/nodeCreator/CommunityNodeUpdateInfo.vue';
import NodeExecuteButton from './NodeExecuteButton.vue';
import NodeExecuteButton from '@/components/NodeExecuteButton.vue';
import { N8nBlockUi, N8nIcon, N8nNotice, N8nText } from '@n8n/design-system';
import { useRoute } from 'vue-router';
@@ -2,7 +2,7 @@
import type { IUpdateInformation } from '@/Interface';
import type { INodeTypeDescription } from 'n8n-workflow';
import NodeSettingsTabs from './NodeSettingsTabs.vue';
import NodeExecuteButton from './NodeExecuteButton.vue';
import NodeExecuteButton from '@/components/NodeExecuteButton.vue';
import type { NodeSettingsTab } from '@/types/nodeSettings';
type Props = {
@@ -15,7 +15,7 @@ import { isCommunityPackageName } from 'n8n-workflow';
import { computed, watch } from 'vue';
import { I18nT } from 'vue-i18n';
import ContactAdministratorToInstall from '@/features/settings/communityNodes/components/ContactAdministratorToInstall.vue';
import { removePreviewToken } from './Node/NodeCreator/utils';
import { removePreviewToken } from '@/components/Node/NodeCreator/utils';
const { node, previewMode = false } = defineProps<{ node: INodeUi; previewMode?: boolean }>();
@@ -2,7 +2,7 @@ import { describe, it, expect, vi } from 'vitest';
import { mock } from 'vitest-mock-extended';
import { createComponentRenderer } from '@/__tests__/render';
import { createTestingPinia } from '@pinia/testing';
import NodeSettingsTabs from '@/components/NodeSettingsTabs.vue';
import NodeSettingsTabs from './NodeSettingsTabs.vue';
import { ref } from 'vue';
import type { ExtendedPublicInstalledPackage } from '@/features/settings/communityNodes/communityNodes.utils';
import { useInstalledCommunityPackage } from '@/features/settings/communityNodes/composables/useInstalledCommunityPackage';
@@ -6,7 +6,7 @@ import { useFocusPanelStore } from '@/stores/focusPanel.store';
import { useNodeSettingsParameters } from './useNodeSettingsParameters';
import * as nodeHelpers from '@/composables/useNodeHelpers';
import * as workflowHelpers from '@/composables/useWorkflowHelpers';
import * as nodeSettingsUtils from '@/utils/nodeSettingsUtils';
import * as nodeSettingsUtils from '@/features/ndv/ndv.utils';
import * as nodeTypesUtils from '@/utils/nodeTypesUtils';
import type { INodeProperties, INodeTypeDescription } from 'n8n-workflow';
import type { MockedStore } from '@/__tests__/utils';
@@ -9,18 +9,18 @@ import {
NodeHelpers,
deepCopy,
} from 'n8n-workflow';
import { useTelemetry } from './useTelemetry';
import { useNodeHelpers } from './useNodeHelpers';
import { useWorkflowHelpers } from './useWorkflowHelpers';
import { useCanvasOperations } from './useCanvasOperations';
import { useExternalHooks } from './useExternalHooks';
import { useTelemetry } from '@/composables/useTelemetry';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';
import { useCanvasOperations } from '@/composables/useCanvasOperations';
import { useExternalHooks } from '@/composables/useExternalHooks';
import type { INodeUi, IUpdateInformation } from '@/Interface';
import {
mustHideDuringCustomApiCall,
setValue,
updateDynamicConnections,
updateParameterByPath,
} from '@/utils/nodeSettingsUtils';
} from '@/features/ndv/ndv.utils';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useFocusPanelStore } from '@/stores/focusPanel.store';
import { useNDVStore } from '@/features/ndv/ndv.store';
@@ -31,7 +31,7 @@ import {
getNodeAuthFields,
isAuthRelatedParameter,
} from '@/utils/nodeTypesUtils';
import { injectWorkflowState } from './useWorkflowState';
import { injectWorkflowState } from '@/composables/useWorkflowState';
export function useNodeSettingsParameters() {
const workflowsStore = useWorkflowsStore();
@@ -17,7 +17,7 @@ import {
parseFromExpression,
setValue,
shouldSkipParamValidation,
} from './nodeSettingsUtils';
} from './ndv.utils';
import { CUSTOM_API_CALL_KEY, SWITCH_NODE_TYPE } from '@/constants';
import type { INodeUi, IUpdateInformation } from '@/Interface';
import { type Ref, ref } from 'vue';
@@ -27,9 +27,9 @@ import set from 'lodash/set';
import unset from 'lodash/unset';
import { captureException } from '@sentry/vue';
import { isPresent } from './typesUtils';
import { isPresent } from '@/utils/typesUtils';
import type { Ref } from 'vue';
import { omitKey } from './objectUtils';
import { omitKey } from '@/utils/objectUtils';
import type { BaseTextKey } from '@n8n/i18n';
export function getNodeSettingsInitialValues(): INodeParameters {
@@ -6,7 +6,7 @@ import { jsonParse, NodeHelpers, NodeConnectionTypes } from 'n8n-workflow';
import type { IRunDataDisplayMode, IUpdateInformation, TargetItem } from '@/Interface';
import type { NodePanelType } from '@/features/ndv/ndv.types';
import NodeSettings from '@/components/NodeSettings.vue';
import NodeSettings from '@/features/ndv/components/settings/NodeSettings.vue';
import NDVDraggablePanels from '../components/panel/NDVDraggablePanels.vue';
import OutputPanel from '../components/panel/OutputPanel.vue';
@@ -7,7 +7,7 @@ import { jsonParse, NodeConnectionTypes, NodeHelpers } from 'n8n-workflow';
import { computed, onBeforeUnmount, onMounted, ref, useTemplateRef, watch } from 'vue';
import NDVHeader from '../components/panel/NDVHeader.vue';
import NodeSettings from '@/components/NodeSettings.vue';
import NodeSettings from '@/features/ndv/components/settings/NodeSettings.vue';
import { useExternalHooks } from '@/composables/useExternalHooks';
import { useKeybindings } from '@/composables/useKeybindings';
@@ -1,5 +1,5 @@
<script setup lang="ts">
import NodeSettings from '@/components/NodeSettings.vue';
import NodeSettings from '@/features/ndv/components/settings/NodeSettings.vue';
import { useCanvasOperations } from '@/composables/useCanvasOperations';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { type IUpdateInformation } from '@/Interface';
@@ -1,6 +1,6 @@
<script setup lang="ts">
import NodeIcon from '@/components/NodeIcon.vue';
import NodeSettingsTabs from '@/components/NodeSettingsTabs.vue';
import NodeSettingsTabs from '@/features/ndv/components/settings/NodeSettingsTabs.vue';
import type { INode, INodeTypeDescription } from 'n8n-workflow';
import type { NodeSettingsTab } from '@/types/nodeSettings';