refactor(editor): Refactor utils files and mixins (#4654)

*  Added `utils` module. Moved `canvasHelpers` and old `utils.ts` file to it
*  Moved rest of utils and helpers
*  Fixing sytax errors
* 🔨 Refactoring new utils files
* 🔨 Organizing imports, adding comments and a bit more refactoring
* ✔️ Fixing tests
* 🔨 Moving mixins to `src`
This commit is contained in:
Milorad FIlipović 2022-11-23 13:41:53 +01:00 committed by GitHub
parent 67983e8f94
commit 5059c57f4a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
167 changed files with 748 additions and 674 deletions

View file

@ -33,11 +33,11 @@ import Telemetry from './components/Telemetry.vue';
import { HIRING_BANNER, LOCAL_STORAGE_THEME, VIEWS } from './constants'; import { HIRING_BANNER, LOCAL_STORAGE_THEME, VIEWS } from './constants';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { userHelpers } from './components/mixins/userHelpers'; import { userHelpers } from '@/mixins/userHelpers';
import { loadLanguage } from './plugins/i18n'; import { loadLanguage } from './plugins/i18n';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { globalLinkActions } from '@/components/mixins/globalLinkActions'; import { globalLinkActions } from '@/mixins/globalLinkActions';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from './stores/ui'; import { useUIStore } from './stores/ui';
import { useSettingsStore } from './stores/settings'; import { useSettingsStore } from './stores/settings';

View file

@ -1,5 +1,5 @@
import {IRestApiContext} from "@/Interface"; import {IRestApiContext} from "@/Interface";
import {makeRestApiRequest} from "@/api/helpers"; import {makeRestApiRequest} from "@/utils";
export function getApiKey(context: IRestApiContext): Promise<{ apiKey: string | null }> { export function getApiKey(context: IRestApiContext): Promise<{ apiKey: string | null }> {
return makeRestApiRequest(context, 'GET', '/me/api-key'); return makeRestApiRequest(context, 'GET', '/me/api-key');

View file

@ -1,6 +1,6 @@
import { IRestApiContext } from '@/Interface'; import { IRestApiContext } from '@/Interface';
import { PublicInstalledPackage } from 'n8n-workflow'; import { PublicInstalledPackage } from 'n8n-workflow';
import { get, post, makeRestApiRequest } from './helpers'; import { get, post, makeRestApiRequest } from '@/utils';
export async function getInstalledCommunityNodes(context: IRestApiContext): Promise<PublicInstalledPackage[]> { export async function getInstalledCommunityNodes(context: IRestApiContext): Promise<PublicInstalledPackage[]> {
const response = await get(context.baseUrl, '/nodes'); const response = await get(context.baseUrl, '/nodes');

View file

@ -3,7 +3,7 @@ import {
IRestApiContext, IRestApiContext,
IShareCredentialsPayload, IShareCredentialsPayload,
} from '@/Interface'; } from '@/Interface';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
import { import {
IDataObject, IDataObject,
} from 'n8n-workflow'; } from 'n8n-workflow';

View file

@ -1,5 +1,5 @@
import { ICredentialsDecryptedResponse, ICredentialsResponse, IRestApiContext } from '@/Interface'; import { ICredentialsDecryptedResponse, ICredentialsResponse, IRestApiContext } from '@/Interface';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
import { import {
ICredentialsDecrypted, ICredentialsDecrypted,
ICredentialType, ICredentialType,

View file

@ -1,5 +1,5 @@
import {CurlToJSONResponse, IRestApiContext} from "@/Interface"; import {CurlToJSONResponse, IRestApiContext} from "@/Interface";
import {makeRestApiRequest} from "@/api/helpers"; import {makeRestApiRequest} from "@/utils";
export function getCurlToJson(context: IRestApiContext, curlCommand: string): Promise<CurlToJSONResponse> { export function getCurlToJson(context: IRestApiContext, curlCommand: string): Promise<CurlToJSONResponse> {
return makeRestApiRequest(context, 'POST', '/curl-to-json', { curlCommand }); return makeRestApiRequest(context, 'POST', '/curl-to-json', { curlCommand });

View file

@ -1,4 +1,4 @@
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
import type { import type {
INodeTranslationHeaders, INodeTranslationHeaders,
IResourceLocatorReqParams, IResourceLocatorReqParams,

View file

@ -1,5 +1,5 @@
import { IRestApiContext, IN8nPrompts, IN8nValueSurveyData, IN8nUISettings, IN8nPromptResponse } from '../Interface'; import { IRestApiContext, IN8nPrompts, IN8nValueSurveyData, IN8nUISettings, IN8nPromptResponse } from '../Interface';
import { makeRestApiRequest, get, post } from './helpers'; import { makeRestApiRequest, get, post } from '@/utils';
import { N8N_IO_BASE_URL, NPM_COMMUNITY_NODE_SEARCH_API_URL } from '@/constants'; import { N8N_IO_BASE_URL, NPM_COMMUNITY_NODE_SEARCH_API_URL } from '@/constants';
export function getSettings(context: IRestApiContext): Promise<IN8nUISettings> { export function getSettings(context: IRestApiContext): Promise<IN8nUISettings> {

View file

@ -1,5 +1,5 @@
import { IRestApiContext, ITag } from '@/Interface'; import { IRestApiContext, ITag } from '@/Interface';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
export async function getTags(context: IRestApiContext, withUsageCount = false): Promise<ITag[]> { export async function getTags(context: IRestApiContext, withUsageCount = false): Promise<ITag[]> {
return await makeRestApiRequest(context, 'GET', '/tags', { withUsageCount }); return await makeRestApiRequest(context, 'GET', '/tags', { withUsageCount });

View file

@ -1,6 +1,6 @@
import { ITemplatesCategory, ITemplatesCollection, ITemplatesQuery, ITemplatesWorkflow, ITemplatesCollectionResponse, ITemplatesWorkflowResponse, IWorkflowTemplate } from '@/Interface'; import { ITemplatesCategory, ITemplatesCollection, ITemplatesQuery, ITemplatesWorkflow, ITemplatesCollectionResponse, ITemplatesWorkflowResponse, IWorkflowTemplate } from '@/Interface';
import { IDataObject } from 'n8n-workflow'; import { IDataObject } from 'n8n-workflow';
import { get } from './helpers'; import { get } from '@/utils';
function stringifyArray(arr: number[]) { function stringifyArray(arr: number[]) {
return arr.join(','); return arr.join(',');

View file

@ -1,6 +1,6 @@
import { IInviteResponse, IPersonalizationLatestVersion, IRestApiContext, IUserResponse } from '@/Interface'; import { IInviteResponse, IPersonalizationLatestVersion, IRestApiContext, IUserResponse } from '@/Interface';
import { IDataObject } from 'n8n-workflow'; import { IDataObject } from 'n8n-workflow';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
export function loginCurrentUser(context: IRestApiContext): Promise<IUserResponse | null> { export function loginCurrentUser(context: IRestApiContext): Promise<IUserResponse | null> {
return makeRestApiRequest(context, 'GET', '/login'); return makeRestApiRequest(context, 'GET', '/login');

View file

@ -1,7 +1,6 @@
import { IVersion } from '@/Interface'; import { IVersion } from '@/Interface';
import { INSTANCE_ID_HEADER } from '@/constants'; import { INSTANCE_ID_HEADER } from '@/constants';
import { IDataObject } from 'n8n-workflow'; import { get } from '@/utils';
import { get } from './helpers';
export async function getNextVersions(endpoint: string, version: string, instanceId: string): Promise<IVersion[]> { export async function getNextVersions(endpoint: string, version: string, instanceId: string): Promise<IVersion[]> {
const headers = {[INSTANCE_ID_HEADER as string] : instanceId}; const headers = {[INSTANCE_ID_HEADER as string] : instanceId};

View file

@ -1,5 +1,5 @@
import { IOnboardingCallPrompt, IOnboardingCallPromptResponse, IUser } from "@/Interface"; import { IOnboardingCallPrompt, IOnboardingCallPromptResponse, IUser } from "@/Interface";
import { get, post } from "./helpers"; import { get, post } from "@/utils";
const N8N_API_BASE_URL = 'https://api.n8n.io/api'; const N8N_API_BASE_URL = 'https://api.n8n.io/api';
const ONBOARDING_PROMPTS_ENDPOINT = '/prompts/onboarding'; const ONBOARDING_PROMPTS_ENDPOINT = '/prompts/onboarding';

View file

@ -3,7 +3,7 @@ import {
IShareWorkflowsPayload, IShareWorkflowsPayload,
IWorkflowsShareResponse, IWorkflowsShareResponse,
} from '@/Interface'; } from '@/Interface';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
import { import {
IDataObject, IDataObject,
} from 'n8n-workflow'; } from 'n8n-workflow';

View file

@ -1,6 +1,6 @@
import { IRestApiContext } from '@/Interface'; import { IRestApiContext } from '@/Interface';
import { IDataObject } from 'n8n-workflow'; import { IDataObject } from 'n8n-workflow';
import { makeRestApiRequest } from './helpers'; import { makeRestApiRequest } from '@/utils';
export async function getNewWorkflow(context: IRestApiContext, name?: string) { export async function getNewWorkflow(context: IRestApiContext, name?: string) {
const response = await makeRestApiRequest(context, 'GET', `/workflows/new`, name ? { name } : {}); const response = await makeRestApiRequest(context, 'GET', `/workflows/new`, name ? { name } : {});

View file

@ -38,8 +38,7 @@ import Vue from 'vue';
import Modal from '@/components/Modal.vue'; import Modal from '@/components/Modal.vue';
import { WORKFLOW_ACTIVE_MODAL_KEY, WORKFLOW_SETTINGS_MODAL_KEY, LOCAL_STORAGE_ACTIVATION_FLAG, VIEWS } from '../constants'; import { WORKFLOW_ACTIVE_MODAL_KEY, WORKFLOW_SETTINGS_MODAL_KEY, LOCAL_STORAGE_ACTIVATION_FLAG, VIEWS } from '../constants';
import { getActivatableTriggerNodes, getTriggerNodeServiceName } from './helpers'; import { getActivatableTriggerNodes, getTriggerNodeServiceName } from '@/utils';
import { INodeTypeDescription } from 'n8n-workflow';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -23,15 +23,14 @@
import { import {
IBinaryData, IBinaryData,
IRunData, IRunData,
IRunExecutionData,
} from 'n8n-workflow'; } from 'n8n-workflow';
import BinaryDataDisplayEmbed from '@/components/BinaryDataDisplayEmbed.vue'; import BinaryDataDisplayEmbed from '@/components/BinaryDataDisplayEmbed.vue';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -20,7 +20,7 @@
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
export default mixins( export default mixins(
restApi, restApi,

View file

@ -22,8 +22,8 @@ import {
*/ */
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import { genericHelpers } from "@/components/mixins/genericHelpers"; import { genericHelpers } from "@/mixins/genericHelpers";
import { debounceHelper } from "./mixins/debounce"; import { debounceHelper } from "@/mixins/debounce";
export default mixins(genericHelpers, debounceHelper).extend({ export default mixins(genericHelpers, debounceHelper).extend({
name: "BreakpointsObserver", name: "BreakpointsObserver",

View file

@ -26,7 +26,7 @@
<script lang="ts"> <script lang="ts">
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import Modal from "./Modal.vue"; import Modal from "./Modal.vue";
import Vue from "vue"; import Vue from "vue";
import { IFormInputs } from "@/Interface"; import { IFormInputs } from "@/Interface";

View file

@ -14,8 +14,8 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { IExecutionResponse, INodeUi } from '@/Interface'; import { IExecutionResponse, INodeUi } from '@/Interface';

View file

@ -13,7 +13,7 @@ import { baseExtensions } from './baseExtensions';
import { linterExtension } from './linter'; import { linterExtension } from './linter';
import { completerExtension } from './completer'; import { completerExtension } from './completer';
import { CODE_NODE_EDITOR_THEME } from './theme'; import { CODE_NODE_EDITOR_THEME } from './theme';
import { workflowHelpers } from '../mixins/workflowHelpers'; // for json field completions import { workflowHelpers } from '@/mixins/workflowHelpers'; // for json field completions
import { codeNodeEditorEventBus } from '@/event-bus/code-node-editor-event-bus'; import { codeNodeEditorEventBus } from '@/event-bus/code-node-editor-event-bus';
import { CODE_NODE_TYPE } from '@/constants'; import { CODE_NODE_TYPE } from '@/constants';
import { ALL_ITEMS_PLACEHOLDER, EACH_ITEM_PLACEHOLDER } from './constants'; import { ALL_ITEMS_PLACEHOLDER, EACH_ITEM_PLACEHOLDER } from './constants';

View file

@ -15,7 +15,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import Card from '@/components/CollectionWorkflowCard.vue'; import Card from '@/components/CollectionWorkflowCard.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import NodeList from '@/components/NodeList.vue'; import NodeList from '@/components/NodeList.vue';

View file

@ -43,7 +43,7 @@ import {
INodePropertyOptions, INodePropertyOptions,
} from 'n8n-workflow'; } from 'n8n-workflow';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { get } from 'lodash'; import { get } from 'lodash';

View file

@ -17,7 +17,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
export default mixins(genericHelpers).extend({ export default mixins(genericHelpers).extend({

View file

@ -25,7 +25,7 @@ import Card from '@/components/CollectionWorkflowCard.vue';
import CollectionCard from '@/components/CollectionCard.vue'; import CollectionCard from '@/components/CollectionCard.vue';
import VueAgile from 'vue-agile'; import VueAgile from 'vue-agile';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
export default mixins(genericHelpers).extend({ export default mixins(genericHelpers).extend({

View file

@ -69,7 +69,7 @@ import {
NPM_PACKAGE_DOCS_BASE_URL, NPM_PACKAGE_DOCS_BASE_URL,
COMMUNITY_PACKAGE_MANAGE_ACTIONS, COMMUNITY_PACKAGE_MANAGE_ACTIONS,
} from '../constants'; } from '../constants';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
export default mixins( export default mixins(
showMessage, showMessage,

View file

@ -91,7 +91,7 @@ import {
COMMUNITY_NODES_RISKS_DOCS_URL, COMMUNITY_NODES_RISKS_DOCS_URL,
} from '../constants'; } from '../constants';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useCommunityNodesStore } from '@/stores/communityNodes'; import { useCommunityNodesStore } from '@/stores/communityNodes';

View file

@ -36,7 +36,7 @@ import Vue from 'vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import Modal from './Modal.vue'; import Modal from './Modal.vue';
import { COMMUNITY_PACKAGE_CONFIRM_MODAL_KEY, COMMUNITY_PACKAGE_MANAGE_ACTIONS } from '../constants'; import { COMMUNITY_PACKAGE_CONFIRM_MODAL_KEY, COMMUNITY_PACKAGE_MANAGE_ACTIONS } from '../constants';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useCommunityNodesStore } from '@/stores/communityNodes'; import { useCommunityNodesStore } from '@/stores/communityNodes';

View file

@ -38,7 +38,7 @@ import mixins from 'vue-typed-mixins';
import { IN8nPromptResponse } from '@/Interface'; import { IN8nPromptResponse } from '@/Interface';
import { VALID_EMAIL_REGEX } from '@/constants'; import { VALID_EMAIL_REGEX } from '@/constants';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import Modal from './Modal.vue'; import Modal from './Modal.vue';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useSettingsStore } from '@/stores/settings'; import { useSettingsStore } from '@/stores/settings';

View file

@ -12,8 +12,8 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { copyPaste } from './mixins/copyPaste'; import { copyPaste } from '@/mixins/copyPaste';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
export default mixins(copyPaste, showMessage).extend({ export default mixins(copyPaste, showMessage).extend({
props: { props: {

View file

@ -44,7 +44,7 @@ import mixins from 'vue-typed-mixins';
import {ICredentialsResponse, IUser} from "@/Interface"; import {ICredentialsResponse, IUser} from "@/Interface";
import {ICredentialType} from "n8n-workflow"; import {ICredentialType} from "n8n-workflow";
import {EnterpriseEditionFeature} from '@/constants'; import {EnterpriseEditionFeature} from '@/constants';
import {showMessage} from "@/components/mixins/showMessage"; import {showMessage} from "@/mixins/showMessage";
import CredentialIcon from '@/components/CredentialIcon.vue'; import CredentialIcon from '@/components/CredentialIcon.vue';
import {getCredentialPermissions, IPermissions} from "@/permissions"; import {getCredentialPermissions, IPermissions} from "@/permissions";
import dateformat from "dateformat"; import dateformat from "dateformat";

View file

@ -91,13 +91,13 @@
<script lang="ts"> <script lang="ts">
import { ICredentialType } from 'n8n-workflow'; import { ICredentialType } from 'n8n-workflow';
import { getAppNameFromCredType, isCommunityPackageName } from '../helpers'; import { getAppNameFromCredType, isCommunityPackageName } from '@/utils';
import Banner from '../Banner.vue'; import Banner from '../Banner.vue';
import CopyInput from '../CopyInput.vue'; import CopyInput from '../CopyInput.vue';
import CredentialInputs from './CredentialInputs.vue'; import CredentialInputs from './CredentialInputs.vue';
import OauthButton from './OauthButton.vue'; import OauthButton from './OauthButton.vue';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { addCredentialTranslation } from '@/plugins/i18n'; import { addCredentialTranslation } from '@/plugins/i18n';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { BUILTIN_CREDENTIALS_DOCS_URL, EnterpriseEditionFeature } from '@/constants'; import { BUILTIN_CREDENTIALS_DOCS_URL, EnterpriseEditionFeature } from '@/constants';

View file

@ -130,8 +130,8 @@ import {
import CredentialIcon from '../CredentialIcon.vue'; import CredentialIcon from '../CredentialIcon.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { nodeHelpers } from '../mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { showMessage } from '../mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import CredentialConfig from './CredentialConfig.vue'; import CredentialConfig from './CredentialConfig.vue';
import CredentialInfo from './CredentialInfo.vue'; import CredentialInfo from './CredentialInfo.vue';
@ -152,7 +152,7 @@ import { useUsersStore } from '@/stores/users';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';
import { useCredentialsStore } from '@/stores/credentials'; import { useCredentialsStore } from '@/stores/credentials';
import { isValidCredentialResponse } from '@/typeGuards'; import { isValidCredentialResponse } from '@/utils';
interface NodeAccessMap { interface NodeAccessMap {
[nodeType: string]: ICredentialNodeAccess | null; [nodeType: string]: ICredentialNodeAccess | null;

View file

@ -36,7 +36,7 @@
<script lang="ts"> <script lang="ts">
import {IUser} from "@/Interface"; import {IUser} from "@/Interface";
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import {showMessage} from "@/components/mixins/showMessage"; import {showMessage} from "@/mixins/showMessage";
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUsersStore } from '@/stores/users'; import { useUsersStore } from '@/stores/users';
import { useCredentialsStore } from "@/stores/credentials"; import { useCredentialsStore } from "@/stores/credentials";

View file

@ -59,7 +59,7 @@ import mixins from 'vue-typed-mixins';
import Modal from './Modal.vue'; import Modal from './Modal.vue';
import { CREDENTIAL_SELECT_MODAL_KEY } from '../constants'; import { CREDENTIAL_SELECT_MODAL_KEY } from '../constants';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -49,7 +49,7 @@
<script lang="ts"> <script lang="ts">
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import Modal from "./Modal.vue"; import Modal from "./Modal.vue";
import Vue from "vue"; import Vue from "vue";
import { IUser } from "../Interface"; import { IUser } from "../Interface";

View file

@ -42,11 +42,11 @@ import Vue from "vue";
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import { MAX_WORKFLOW_NAME_LENGTH, PLACEHOLDER_EMPTY_WORKFLOW_ID } from "@/constants"; import { MAX_WORKFLOW_NAME_LENGTH, PLACEHOLDER_EMPTY_WORKFLOW_ID } from "@/constants";
import { workflowHelpers } from "@/components/mixins/workflowHelpers"; import { workflowHelpers } from "@/mixins/workflowHelpers";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import TagsDropdown from "@/components/TagsDropdown.vue"; import TagsDropdown from "@/components/TagsDropdown.vue";
import Modal from "./Modal.vue"; import Modal from "./Modal.vue";
import {restApi} from "@/components/mixins/restApi"; import {restApi} from "@/mixins/restApi";
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useSettingsStore } from "@/stores/settings"; import { useSettingsStore } from "@/stores/settings";
import { useWorkflowsStore } from "@/stores/workflows"; import { useWorkflowsStore } from "@/stores/workflows";

View file

@ -100,8 +100,8 @@
<script lang="ts"> <script lang="ts">
//@ts-ignore //@ts-ignore
import VueJsonPretty from 'vue-json-pretty'; import VueJsonPretty from 'vue-json-pretty';
import { copyPaste } from '@/components/mixins/copyPaste'; import { copyPaste } from '@/mixins/copyPaste';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { import {
MAX_DISPLAY_DATA_SIZE, MAX_DISPLAY_DATA_SIZE,
@ -114,7 +114,6 @@ import {
INodeProperties, INodeProperties,
INodePropertyCollection, INodePropertyCollection,
INodePropertyOptions, INodePropertyOptions,
INodeTypeDescription,
} from 'n8n-workflow'; } from 'n8n-workflow';
import { sanitizeHtml } from '@/utils'; import { sanitizeHtml } from '@/utils';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';

View file

@ -6,7 +6,7 @@
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';

View file

@ -179,12 +179,12 @@ import ExecutionTime from '@/components/ExecutionTime.vue';
import WorkflowActivator from '@/components/WorkflowActivator.vue'; import WorkflowActivator from '@/components/WorkflowActivator.vue';
import Modal from '@/components/Modal.vue'; import Modal from '@/components/Modal.vue';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { WAIT_TIME_UNLIMITED, EXECUTIONS_MODAL_KEY, VIEWS } from '@/constants'; import { WAIT_TIME_UNLIMITED, EXECUTIONS_MODAL_KEY, VIEWS } from '@/constants';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { import {
IExecutionsCurrentSummaryExtended, IExecutionsCurrentSummaryExtended,
IExecutionDeleteFilter, IExecutionDeleteFilter,
@ -196,7 +196,7 @@ import {
import { import {
convertToDisplayDate, convertToDisplayDate,
} from './helpers'; } from '@/utils';
import { import {
IDataObject, IDataObject,

View file

@ -53,10 +53,10 @@
<script lang="ts"> <script lang="ts">
import { IExecutionsSummary } from '@/Interface'; import { IExecutionsSummary } from '@/Interface';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { executionHelpers, IExecutionUIData } from '../mixins/executionsHelpers'; import { executionHelpers, IExecutionUIData } from '@/mixins/executionsHelpers';
import { VIEWS } from '../../constants'; import { VIEWS } from '@/constants';
import { showMessage } from '../mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { restApi } from '../mixins/restApi'; import { restApi } from '@/mixins/restApi';
import ExecutionTime from '@/components/ExecutionTime.vue'; import ExecutionTime from '@/components/ExecutionTime.vue';
export default mixins( export default mixins(

View file

@ -66,11 +66,11 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { showMessage } from '../mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import WorkflowPreview from '@/components/WorkflowPreview.vue'; import WorkflowPreview from '@/components/WorkflowPreview.vue';
import { executionHelpers, IExecutionUIData } from '../mixins/executionsHelpers'; import { executionHelpers, IExecutionUIData } from '@/mixins/executionsHelpers';
import { VIEWS } from '../../constants'; import { VIEWS } from '@/constants';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import ElDropdown from 'element-ui/lib/dropdown'; import ElDropdown from 'element-ui/lib/dropdown';

View file

@ -36,7 +36,7 @@ import { mapStores } from 'pinia';
import { PLACEHOLDER_EMPTY_WORKFLOW_ID, WORKFLOW_SETTINGS_MODAL_KEY } from '@/constants'; import { PLACEHOLDER_EMPTY_WORKFLOW_ID, WORKFLOW_SETTINGS_MODAL_KEY } from '@/constants';
import { deepCopy, IWorkflowSettings } from 'n8n-workflow'; import { deepCopy, IWorkflowSettings } from 'n8n-workflow';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { workflowHelpers } from '../mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
interface IWorkflowSaveSettings { interface IWorkflowSaveSettings {
saveFailedExecutions: boolean, saveFailedExecutions: boolean,

View file

@ -33,15 +33,15 @@ import { MODAL_CANCEL, MODAL_CLOSE, MODAL_CONFIRMED, PLACEHOLDER_EMPTY_WORKFLOW_
import { IExecutionsListResponse, IExecutionsSummary, INodeUi, ITag, IWorkflowDb } from '@/Interface'; import { IExecutionsListResponse, IExecutionsSummary, INodeUi, ITag, IWorkflowDb } from '@/Interface';
import { IConnection, IConnections, IDataObject, INodeTypeDescription, INodeTypeNameVersion, NodeHelpers } from 'n8n-workflow'; import { IConnection, IConnections, IDataObject, INodeTypeDescription, INodeTypeNameVersion, NodeHelpers } from 'n8n-workflow';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { restApi } from '../mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { showMessage } from '../mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import { Route } from 'vue-router'; import { Route } from 'vue-router';
import { executionHelpers } from '../mixins/executionsHelpers'; import { executionHelpers } from '@/mixins/executionsHelpers';
import { range as _range } from 'lodash'; import { range as _range } from 'lodash';
import { debounceHelper } from '../mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import { getNodeViewTab } from '../helpers'; import { getNodeViewTab } from '@/utils';
import { workflowHelpers } from '../mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -48,12 +48,12 @@ import VariableSelector from '@/components/VariableSelector.vue';
import { IVariableItemSelected } from '@/Interface'; import { IVariableItemSelected } from '@/Interface';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { hasExpressionMapping } from './helpers'; import { hasExpressionMapping } from '@/utils';
import { debounceHelper } from './mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';

View file

@ -23,8 +23,8 @@ import {
import { import {
IVariableItemSelected, IVariableItemSelected,
} from '@/Interface'; } from '@/Interface';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';

View file

@ -47,7 +47,7 @@ import {
CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS,
CURL_IMPORT_NODES_PROTOCOLS, CURL_IMPORT_NODES_PROTOCOLS,
} from '../constants'; } from '../constants';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { INodeUi } from '@/Interface'; import { INodeUi } from '@/Interface';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';

View file

@ -15,7 +15,7 @@ import { IMPORT_CURL_MODAL_KEY } from '@/constants';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
export default mixins(showMessage).extend({ export default mixins(showMessage).extend({
name: 'import-parameter', name: 'import-parameter',

View file

@ -36,7 +36,7 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
export default mixins(showMessage).extend({ export default mixins(showMessage).extend({
name: 'InlineNameEdit', name: 'InlineNameEdit',

View file

@ -74,7 +74,7 @@
import { INodeUi } from '@/Interface'; import { INodeUi } from '@/Interface';
import { IConnectedNode, INodeTypeDescription, Workflow } from 'n8n-workflow'; import { IConnectedNode, INodeTypeDescription, Workflow } from 'n8n-workflow';
import RunData from './RunData.vue'; import RunData from './RunData.vue';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import NodeExecuteButton from './NodeExecuteButton.vue'; import NodeExecuteButton from './NodeExecuteButton.vue';
import WireMeUp from './WireMeUp.vue'; import WireMeUp from './WireMeUp.vue';

View file

@ -7,7 +7,7 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import emitter from '@/components/mixins/emitter'; import emitter from '@/mixins/emitter';
export default mixins(emitter).extend({ export default mixins(emitter).extend({
name: 'IntersectionObserved', name: 'IntersectionObserved',

View file

@ -26,12 +26,12 @@
<script lang="ts"> <script lang="ts">
import mixins from "vue-typed-mixins"; import mixins from "vue-typed-mixins";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import Modal from "./Modal.vue"; import Modal from "./Modal.vue";
import Vue from "vue"; import Vue from "vue";
import { IFormInputs, IInviteResponse } from "@/Interface"; import { IFormInputs, IInviteResponse } from "@/Interface";
import { VALID_EMAIL_REGEX, INVITE_USER_MODAL_KEY } from "@/constants"; import { VALID_EMAIL_REGEX, INVITE_USER_MODAL_KEY } from "@/constants";
import { ROLE } from "@/stores/userHelpers"; import { ROLE } from '@/utils';
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useUsersStore } from "@/stores/users"; import { useUsersStore } from "@/stores/users";

View file

@ -45,7 +45,7 @@ import mixins from "vue-typed-mixins";
import { IExecutionResponse, IExecutionsSummary } from "../../../Interface"; import { IExecutionResponse, IExecutionsSummary } from "../../../Interface";
import { titleChange } from "@/components/mixins/titleChange"; import { titleChange } from "@/mixins/titleChange";
import ShortenName from "@/components/ShortenName.vue"; import ShortenName from "@/components/ShortenName.vue";
import ReadOnly from "@/components/MainHeader/ExecutionDetails/ReadOnly.vue"; import ReadOnly from "@/components/MainHeader/ExecutionDetails/ReadOnly.vue";

View file

@ -12,13 +12,13 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { pushConnection } from '@/components/mixins/pushConnection'; import { pushConnection } from '@/mixins/pushConnection';
import WorkflowDetails from '@/components/MainHeader/WorkflowDetails.vue'; import WorkflowDetails from '@/components/MainHeader/WorkflowDetails.vue';
import ExecutionDetails from '@/components/MainHeader/ExecutionDetails/ExecutionDetails.vue'; import ExecutionDetails from '@/components/MainHeader/ExecutionDetails/ExecutionDetails.vue';
import TabBar from '@/components/MainHeader/TabBar.vue'; import TabBar from '@/components/MainHeader/TabBar.vue';
import { MAIN_HEADER_TABS, PLACEHOLDER_EMPTY_WORKFLOW_ID, STICKY_NODE_TYPE, VIEWS } from '@/constants'; import { MAIN_HEADER_TABS, PLACEHOLDER_EMPTY_WORKFLOW_ID, STICKY_NODE_TYPE, VIEWS } from '@/constants';
import { IExecutionsSummary, INodeUi, ITabBarItem } from '@/Interface'; import { IExecutionsSummary, INodeUi, ITabBarItem } from '@/Interface';
import { workflowHelpers } from '../mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { Route } from 'vue-router'; import { Route } from 'vue-router';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -108,7 +108,7 @@ import ShortenName from "@/components/ShortenName.vue";
import TagsContainer from "@/components/TagsContainer.vue"; import TagsContainer from "@/components/TagsContainer.vue";
import PushConnectionTracker from "@/components/PushConnectionTracker.vue"; import PushConnectionTracker from "@/components/PushConnectionTracker.vue";
import WorkflowActivator from "@/components/WorkflowActivator.vue"; import WorkflowActivator from "@/components/WorkflowActivator.vue";
import { workflowHelpers } from "@/components/mixins/workflowHelpers"; import { workflowHelpers } from "@/mixins/workflowHelpers";
import SaveButton from "@/components/SaveButton.vue"; import SaveButton from "@/components/SaveButton.vue";
import TagsDropdown from "@/components/TagsDropdown.vue"; import TagsDropdown from "@/components/TagsDropdown.vue";
import InlineTextEdit from "@/components/InlineTextEdit.vue"; import InlineTextEdit from "@/components/InlineTextEdit.vue";
@ -116,7 +116,7 @@ import BreakpointsObserver from "@/components/BreakpointsObserver.vue";
import {IWorkflowDataUpdate, IWorkflowDb, IWorkflowToShare} from "@/Interface"; import {IWorkflowDataUpdate, IWorkflowDb, IWorkflowToShare} from "@/Interface";
import { saveAs } from 'file-saver'; import { saveAs } from 'file-saver';
import { titleChange } from "../mixins/titleChange"; import { titleChange } from "@/mixins/titleChange";
import type { MessageBoxInputData } from 'element-ui/types/message-box'; import type { MessageBoxInputData } from 'element-ui/types/message-box';
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useUIStore } from "@/stores/ui"; import { useUIStore } from "@/stores/ui";

View file

@ -64,12 +64,12 @@ import ExecutionsList from '@/components/ExecutionsList.vue';
import GiftNotificationIcon from './GiftNotificationIcon.vue'; import GiftNotificationIcon from './GiftNotificationIcon.vue';
import WorkflowSettings from '@/components/WorkflowSettings.vue'; import WorkflowSettings from '@/components/WorkflowSettings.vue';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { titleChange } from '@/components/mixins/titleChange'; import { titleChange } from '@/mixins/titleChange';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { workflowRun } from '@/components/mixins/workflowRun'; import { workflowRun } from '@/mixins/workflowRun';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { import {
@ -82,8 +82,8 @@ import {
VIEWS, VIEWS,
PLACEHOLDER_EMPTY_WORKFLOW_ID, PLACEHOLDER_EMPTY_WORKFLOW_ID,
} from '@/constants'; } from '@/constants';
import { userHelpers } from './mixins/userHelpers'; import { userHelpers } from '@/mixins/userHelpers';
import { debounceHelper } from './mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import Vue from 'vue'; import Vue from 'vue';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -48,7 +48,7 @@ import {
MAIN_NODE_PANEL_WIDTH, MAIN_NODE_PANEL_WIDTH,
} from '@/constants'; } from '@/constants';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { debounceHelper } from './mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';
import { nodePanelType } from '@/Interface'; import { nodePanelType } from '@/Interface';

View file

@ -98,11 +98,11 @@
import Vue from 'vue'; import Vue from 'vue';
import { CUSTOM_API_CALL_KEY, LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, WAIT_TIME_UNLIMITED, MANUAL_TRIGGER_NODE_TYPE } from '@/constants'; import { CUSTOM_API_CALL_KEY, LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, WAIT_TIME_UNLIMITED, MANUAL_TRIGGER_NODE_TYPE } from '@/constants';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { nodeBase } from '@/components/mixins/nodeBase'; import { nodeBase } from '@/mixins/nodeBase';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { pinData } from '@/components/mixins/pinData'; import { pinData } from '@/mixins/pinData';
import { import {
INodeTypeDescription, INodeTypeDescription,
@ -116,9 +116,9 @@ import TitledList from '@/components/TitledList.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { get } from 'lodash'; import { get } from 'lodash';
import { getStyleTokenValue, getTriggerNodeServiceName } from './helpers'; import { getStyleTokenValue, getTriggerNodeServiceName } from '@/utils';
import { IExecutionsSummary, INodeUi, XYPosition } from '@/Interface'; import { IExecutionsSummary, INodeUi, XYPosition } from '@/Interface';
import { debounceHelper } from './mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -18,7 +18,7 @@
<script lang="ts"> <script lang="ts">
import Vue from "vue"; import Vue from "vue";
import * as CanvasHelpers from "@/views/canvasHelpers"; import { getMidCanvasPosition } from '@/utils';
import {DEFAULT_STICKY_HEIGHT, DEFAULT_STICKY_WIDTH, STICKY_NODE_TYPE} from "@/constants"; import {DEFAULT_STICKY_HEIGHT, DEFAULT_STICKY_WIDTH, STICKY_NODE_TYPE} from "@/constants";
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useUIStore } from "@/stores/ui"; import { useUIStore } from "@/stores/ui";
@ -80,7 +80,7 @@ export default Vue.extend({
const offset: [number, number] = [...(this.uiStore.nodeViewOffsetPosition)]; const offset: [number, number] = [...(this.uiStore.nodeViewOffsetPosition)];
const position = CanvasHelpers.getMidCanvasPosition(this.nodeViewScale, offset); const position = getMidCanvasPosition(this.nodeViewScale, offset);
position[0] -= DEFAULT_STICKY_WIDTH / 2; position[0] -= DEFAULT_STICKY_WIDTH / 2;
position[1] -= DEFAULT_STICKY_HEIGHT / 2; position[1] -= DEFAULT_STICKY_HEIGHT / 2;

View file

@ -94,8 +94,8 @@
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import camelcase from 'lodash.camelcase'; import camelcase from 'lodash.camelcase';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { globalLinkActions } from '@/components/mixins/globalLinkActions'; import { globalLinkActions } from '@/mixins/globalLinkActions';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import ItemIterator from './ItemIterator.vue'; import ItemIterator from './ItemIterator.vue';
@ -103,10 +103,8 @@ import NoResults from './NoResults.vue';
import SearchBar from './SearchBar.vue'; import SearchBar from './SearchBar.vue';
import { INodeCreateElement, INodeItemProps, ISubcategoryItemProps, ICategoriesWithNodes, ICategoryItemProps, INodeFilterType } from '@/Interface'; import { INodeCreateElement, INodeItemProps, ISubcategoryItemProps, ICategoriesWithNodes, ICategoryItemProps, INodeFilterType } from '@/Interface';
import { WEBHOOK_NODE_TYPE, HTTP_REQUEST_NODE_TYPE, ALL_NODE_FILTER, TRIGGER_NODE_FILTER, REGULAR_NODE_FILTER, NODE_TYPE_COUNT_MAPPER } from '@/constants'; import { WEBHOOK_NODE_TYPE, HTTP_REQUEST_NODE_TYPE, ALL_NODE_FILTER, TRIGGER_NODE_FILTER, REGULAR_NODE_FILTER, NODE_TYPE_COUNT_MAPPER } from '@/constants';
import { matchesNodeType, matchesSelectType } from './helpers';
import { BaseTextKey } from '@/plugins/i18n'; import { BaseTextKey } from '@/plugins/i18n';
import { intersection } from '@/utils'; import { intersection, sublimeSearch, matchesNodeType, matchesSelectType } from '@/utils';
import { sublimeSearch } from './sortUtils';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useRootStore } from '@/stores/n8nRootStore'; import { useRootStore } from '@/stores/n8nRootStore';

View file

@ -30,7 +30,7 @@
<script lang="ts"> <script lang="ts">
import { PropType } from 'vue'; import { PropType } from 'vue';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import TriggerHelperPanel from './TriggerHelperPanel.vue'; import TriggerHelperPanel from './TriggerHelperPanel.vue';
import { ALL_NODE_FILTER, TRIGGER_NODE_FILTER, OTHER_TRIGGER_NODES_SUBCATEGORY, CORE_NODES_CATEGORY } from '@/constants'; import { ALL_NODE_FILTER, TRIGGER_NODE_FILTER, OTHER_TRIGGER_NODES_SUBCATEGORY, CORE_NODES_CATEGORY } from '@/constants';

View file

@ -58,12 +58,11 @@
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import { INodeTypeDescription } from 'n8n-workflow'; import { INodeTypeDescription } from 'n8n-workflow';
import { getNewNodePosition, NODE_SIZE } from '@/views/canvasHelpers'; import { isCommunityPackageName, getNewNodePosition, NODE_SIZE } from '@/utils';
import { COMMUNITY_NODES_INSTALLATION_DOCS_URL } from '@/constants'; import { COMMUNITY_NODES_INSTALLATION_DOCS_URL } from '@/constants';
import NodeIcon from '@/components/NodeIcon.vue'; import NodeIcon from '@/components/NodeIcon.vue';
import TriggerIcon from '@/components/TriggerIcon.vue'; import TriggerIcon from '@/components/TriggerIcon.vue';
import { isCommunityPackageName } from '@/components/helpers';
Vue.component('node-icon', NodeIcon); Vue.component('node-icon', NodeIcon);
Vue.component('trigger-icon', TriggerIcon); Vue.component('trigger-icon', TriggerIcon);

View file

@ -24,7 +24,7 @@
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
export default mixins(externalHooks).extend({ export default mixins(externalHooks).extend({
name: "SearchBar", name: "SearchBar",

View file

@ -23,7 +23,7 @@
import { PropType } from 'vue'; import { PropType } from 'vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { INodeCreateElement } from '@/Interface'; import { INodeCreateElement } from '@/Interface';
import { CORE_NODES_CATEGORY, WEBHOOK_NODE_TYPE, OTHER_TRIGGER_NODES_SUBCATEGORY, EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, MANUAL_TRIGGER_NODE_TYPE, COMMUNICATION_CATEGORY, SCHEDULE_TRIGGER_NODE_TYPE } from '@/constants'; import { CORE_NODES_CATEGORY, WEBHOOK_NODE_TYPE, OTHER_TRIGGER_NODES_SUBCATEGORY, EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, MANUAL_TRIGGER_NODE_TYPE, COMMUNICATION_CATEGORY, SCHEDULE_TRIGGER_NODE_TYPE } from '@/constants';

View file

@ -1,31 +0,0 @@
import { REGULAR_NODE_FILTER, TRIGGER_NODE_FILTER, ALL_NODE_FILTER } from '@/constants';
import { INodeCreateElement, INodeItemProps } from '@/Interface';
import { INodeTypeDescription } from 'n8n-workflow';
export const matchesSelectType = (el: INodeCreateElement, selectedType: string) => {
if (selectedType === REGULAR_NODE_FILTER && el.includedByRegular) {
return true;
}
if (selectedType === TRIGGER_NODE_FILTER && el.includedByTrigger) {
return true;
}
return selectedType === ALL_NODE_FILTER;
};
const matchesAlias = (nodeType: INodeTypeDescription, filter: string): boolean => {
if (!nodeType.codex || !nodeType.codex.alias) {
return false;
}
return nodeType.codex.alias.reduce((accu: boolean, alias: string) => {
return accu || alias.toLowerCase().indexOf(filter) > -1;
}, false);
};
export const matchesNodeType = (el: INodeCreateElement, filter: string) => {
const nodeType = (el.properties as INodeItemProps).nodeType;
return nodeType.displayName.toLowerCase().indexOf(filter) !== -1 || matchesAlias(nodeType, filter);
};

View file

@ -60,7 +60,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { restApi } from '@/components/mixins/restApi'; import { restApi } from '@/mixins/restApi';
import { import {
ICredentialsResponse, ICredentialsResponse,
INodeUi, INodeUi,
@ -73,9 +73,9 @@ import {
INodeCredentialsDetails, INodeCredentialsDetails,
} from 'n8n-workflow'; } from 'n8n-workflow';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import TitledList from '@/components/TitledList.vue'; import TitledList from '@/components/TitledList.vue';

View file

@ -125,9 +125,9 @@ import {
} from 'n8n-workflow'; } from 'n8n-workflow';
import { IExecutionResponse, INodeUi, IUpdateInformation, TargetItem } from '@/Interface'; import { IExecutionResponse, INodeUi, IUpdateInformation, TargetItem } from '@/Interface';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import NodeSettings from '@/components/NodeSettings.vue'; import NodeSettings from '@/components/NodeSettings.vue';
import NDVDraggablePanels from './NDVDraggablePanels.vue'; import NDVDraggablePanels from './NDVDraggablePanels.vue';
@ -143,8 +143,8 @@ import {
START_NODE_TYPE, START_NODE_TYPE,
STICKY_NODE_TYPE, STICKY_NODE_TYPE,
} from '@/constants'; } from '@/constants';
import { workflowActivate } from './mixins/workflowActivate'; import { workflowActivate } from '@/mixins/workflowActivate';
import { pinData } from "@/components/mixins/pinData"; import { pinData } from "@/mixins/pinData";
import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus'; import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -22,8 +22,8 @@ import { WEBHOOK_NODE_TYPE, MANUAL_TRIGGER_NODE_TYPE } from '@/constants';
import { INodeUi } from '@/Interface'; import { INodeUi } from '@/Interface';
import { INodeTypeDescription } from 'n8n-workflow'; import { INodeTypeDescription } from 'n8n-workflow';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { workflowRun } from './mixins/workflowRun'; import { workflowRun } from '@/mixins/workflowRun';
import { pinData } from './mixins/pinData'; import { pinData } from '@/mixins/pinData';
import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus'; import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -15,10 +15,10 @@
<script lang="ts"> <script lang="ts">
import NodeIcon from '@/components/NodeIcon.vue'; import NodeIcon from '@/components/NodeIcon.vue';
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { ITemplatesNode } from '@/Interface'; import { ITemplatesNode } from '@/Interface';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { filterTemplateNodes } from './helpers'; import { filterTemplateNodes } from '@/utils';
export default mixins(genericHelpers).extend({ export default mixins(genericHelpers).extend({
name: 'NodeList', name: 'NodeList',
props: { props: {

View file

@ -150,12 +150,12 @@ import NodeSettingsTabs from '@/components/NodeSettingsTabs.vue';
import NodeWebhooks from '@/components/NodeWebhooks.vue'; import NodeWebhooks from '@/components/NodeWebhooks.vue';
import { get, set, unset } from 'lodash'; import { get, set, unset } from 'lodash';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import NodeExecuteButton from './NodeExecuteButton.vue'; import NodeExecuteButton from './NodeExecuteButton.vue';
import { isCommunityPackageName } from './helpers'; import { isCommunityPackageName } from '@/utils';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -3,7 +3,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { BUILTIN_NODES_DOCS_URL, COMMUNITY_NODES_INSTALLATION_DOCS_URL, NPM_PACKAGE_DOCS_BASE_URL } from '@/constants'; import { BUILTIN_NODES_DOCS_URL, COMMUNITY_NODES_INSTALLATION_DOCS_URL, NPM_PACKAGE_DOCS_BASE_URL } from '@/constants';
import { INodeUi, ITab } from '@/Interface'; import { INodeUi, ITab } from '@/Interface';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';
@ -12,7 +12,7 @@ import { INodeTypeDescription } from 'n8n-workflow';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { isCommunityPackageName } from './helpers'; import { isCommunityPackageName } from '@/utils';
export default mixins( export default mixins(
externalHooks, externalHooks,

View file

@ -47,9 +47,9 @@ import {
} from 'n8n-workflow'; } from 'n8n-workflow';
import { WEBHOOK_NODE_TYPE } from '@/constants'; import { WEBHOOK_NODE_TYPE } from '@/constants';
import { copyPaste } from '@/components/mixins/copyPaste'; import { copyPaste } from '@/mixins/copyPaste';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';

View file

@ -54,7 +54,7 @@ import {
import Modal from './Modal.vue'; import Modal from './Modal.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -85,7 +85,7 @@ import { INodeTypeDescription, IRunData, IRunExecutionData, ITaskData } from 'n8
import Vue from 'vue'; import Vue from 'vue';
import RunData, { EnterEditModeArgs } from './RunData.vue'; import RunData, { EnterEditModeArgs } from './RunData.vue';
import RunInfo from './RunInfo.vue'; import RunInfo from './RunInfo.vue';
import { pinData } from "@/components/mixins/pinData"; import { pinData } from "@/mixins/pinData";
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -5,7 +5,7 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import type { ElMessageComponent } from 'element-ui/types/message'; import type { ElMessageComponent } from 'element-ui/types/message';
import { sanitizeHtml } from '@/utils'; import { sanitizeHtml } from '@/utils';

View file

@ -328,18 +328,17 @@ import ResourceLocator from '@/components/ResourceLocator/ResourceLocator.vue';
import PrismEditor from 'vue-prism-editor'; import PrismEditor from 'vue-prism-editor';
import TextEdit from '@/components/TextEdit.vue'; import TextEdit from '@/components/TextEdit.vue';
import CodeNodeEditor from '@/components/CodeNodeEditor/CodeNodeEditor.vue'; import CodeNodeEditor from '@/components/CodeNodeEditor/CodeNodeEditor.vue';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { hasExpressionMapping, isValueExpression } from './helpers'; import { hasExpressionMapping, isValueExpression, isResourceLocatorValue } from '@/utils';
import { isResourceLocatorValue } from '@/typeGuards';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { CUSTOM_API_CALL_KEY } from '@/constants'; import { CUSTOM_API_CALL_KEY } from '@/constants';
import { CODE_NODE_TYPE } from '@/constants'; import { CODE_NODE_TYPE } from '@/constants';
import { PropType } from 'vue'; import { PropType } from 'vue';
import { debounceHelper } from './mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';

View file

@ -52,7 +52,7 @@ import { IUpdateInformation } from '@/Interface';
import ParameterOptions from './ParameterOptions.vue'; import ParameterOptions from './ParameterOptions.vue';
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import ParameterInputWrapper from './ParameterInputWrapper.vue'; import ParameterInputWrapper from './ParameterInputWrapper.vue';
import { isValueExpression } from './helpers'; import { isValueExpression } from '@/utils';
import { INodeParameterResourceLocator, INodeProperties } from 'n8n-workflow'; import { INodeParameterResourceLocator, INodeProperties } from 'n8n-workflow';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -73,13 +73,11 @@ import {
import ParameterOptions from '@/components/ParameterOptions.vue'; import ParameterOptions from '@/components/ParameterOptions.vue';
import DraggableTarget from '@/components/DraggableTarget.vue'; import DraggableTarget from '@/components/DraggableTarget.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { LOCAL_STORAGE_MAPPING_FLAG } from '@/constants'; import { LOCAL_STORAGE_MAPPING_FLAG } from '@/constants';
import { hasExpressionMapping } from '@/components/helpers'; import { hasExpressionMapping, isResourceLocatorValue, hasOnlyListMode } from '@/utils';
import ParameterInputWrapper from '@/components/ParameterInputWrapper.vue'; import ParameterInputWrapper from '@/components/ParameterInputWrapper.vue';
import { hasOnlyListMode } from '@/components/ResourceLocator/helpers';
import { INodeParameters, INodeProperties, INodePropertyMode } from 'n8n-workflow'; import { INodeParameters, INodeProperties, INodePropertyMode } from 'n8n-workflow';
import { isResourceLocatorValue } from '@/typeGuards';
import { BaseTextKey } from "@/plugins/i18n"; import { BaseTextKey } from "@/plugins/i18n";
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';

View file

@ -111,7 +111,7 @@ import {
import { INodeUi, IUpdateInformation } from '@/Interface'; import { INodeUi, IUpdateInformation } from '@/Interface';
import MultipleParameter from '@/components/MultipleParameter.vue'; import MultipleParameter from '@/components/MultipleParameter.vue';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import ParameterInputFull from '@/components/ParameterInputFull.vue'; import ParameterInputFull from '@/components/ParameterInputFull.vue';
import ImportParameter from '@/components/ImportParameter.vue'; import ImportParameter from '@/components/ImportParameter.vue';

View file

@ -32,11 +32,11 @@ import Vue, { PropType } from 'vue';
import ParameterInput from '@/components/ParameterInput.vue'; import ParameterInput from '@/components/ParameterInput.vue';
import InputHint from './ParameterInputHint.vue'; import InputHint from './ParameterInputHint.vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { showMessage } from './mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import { INodeProperties, INodePropertyMode, IRunData, isResourceLocatorValue, NodeParameterValue, NodeParameterValueType } from 'n8n-workflow'; import { INodeProperties, INodePropertyMode, IRunData, isResourceLocatorValue, NodeParameterValue, NodeParameterValueType } from 'n8n-workflow';
import { INodeUi, IUiState, IUpdateInformation, TargetItem } from '@/Interface'; import { INodeUi, IUiState, IUpdateInformation, TargetItem } from '@/Interface';
import { workflowHelpers } from './mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { isValueExpression } from './helpers'; import { isValueExpression } from '@/utils';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';

View file

@ -25,10 +25,9 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { isResourceLocatorValue } from '@/typeGuards';
import { NodeParameterValueType } from 'n8n-workflow'; import { NodeParameterValueType } from 'n8n-workflow';
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import { isValueExpression } from './helpers'; import { isValueExpression, isResourceLocatorValue } from '@/utils';
export default Vue.extend({ export default Vue.extend({
name: 'parameter-options', name: 'parameter-options',

View file

@ -113,12 +113,12 @@ import {
USAGE_MODE_BUILD_BE_SERVICES, USAGE_MODE_BUILD_BE_SERVICES,
USAGE_MODE_CONNECT_TO_DB, USAGE_MODE_CONNECT_TO_DB,
} from '../constants'; } from '../constants';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { showMessage } from '@/components/mixins/showMessage'; import { showMessage } from '@/mixins/showMessage';
import Modal from './Modal.vue'; import Modal from './Modal.vue';
import { IFormInputs, IPersonalizationLatestVersion, IPersonalizationSurveyAnswersV3, IUser } from '@/Interface'; import { IFormInputs, IPersonalizationLatestVersion, IPersonalizationSurveyAnswersV3, IUser } from '@/Interface';
import Vue from 'vue'; import Vue from 'vue';
import { getAccountAge } from '@/stores/userHelpers'; import { getAccountAge } from '@/utils';
import { GenericValue } from 'n8n-workflow'; import { GenericValue } from 'n8n-workflow';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';

View file

@ -153,9 +153,6 @@ import {
INodePropertyMode, INodePropertyMode,
NodeParameterValue, NodeParameterValue,
} from 'n8n-workflow'; } from 'n8n-workflow';
import {
hasOnlyListMode,
} from './helpers';
import DraggableTarget from '@/components/DraggableTarget.vue'; import DraggableTarget from '@/components/DraggableTarget.vue';
import ExpressionEdit from '@/components/ExpressionEdit.vue'; import ExpressionEdit from '@/components/ExpressionEdit.vue';
@ -163,12 +160,11 @@ import ParameterIssues from '@/components/ParameterIssues.vue';
import ResourceLocatorDropdown from './ResourceLocatorDropdown.vue'; import ResourceLocatorDropdown from './ResourceLocatorDropdown.vue';
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import { INodeUi, IResourceLocatorReqParams, IResourceLocatorResultExpanded } from '@/Interface'; import { INodeUi, IResourceLocatorReqParams, IResourceLocatorResultExpanded } from '@/Interface';
import { debounceHelper } from '../mixins/debounce'; import { debounceHelper } from '@/mixins/debounce';
import stringify from 'fast-json-stable-stringify'; import stringify from 'fast-json-stable-stringify';
import { workflowHelpers } from '../mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { nodeHelpers } from '../mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { getAppNameFromNodeName } from '../helpers'; import { getAppNameFromNodeName, isResourceLocatorValue, hasOnlyListMode } from '@/utils';
import { isResourceLocatorValue } from '@/typeGuards';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';

View file

@ -1,7 +0,0 @@
import {
INodeProperties,
} from 'n8n-workflow';
export const hasOnlyListMode = (parameter: INodeProperties) : boolean => {
return parameter.modes !== undefined && parameter.modes.length === 1 && parameter.modes[0].name === 'list';
};

View file

@ -363,14 +363,14 @@ import BinaryDataDisplay from '@/components/BinaryDataDisplay.vue';
import WarningTooltip from '@/components/WarningTooltip.vue'; import WarningTooltip from '@/components/WarningTooltip.vue';
import NodeErrorView from '@/components/Error/NodeErrorView.vue'; import NodeErrorView from '@/components/Error/NodeErrorView.vue';
import { copyPaste } from '@/components/mixins/copyPaste'; import { copyPaste } from '@/mixins/copyPaste';
import { externalHooks } from "@/components/mixins/externalHooks"; import { externalHooks } from "@/mixins/externalHooks";
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { pinData } from '@/components/mixins/pinData'; import { pinData } from '@/mixins/pinData';
import { CodeEditor } from "@/components/forms"; import { CodeEditor } from "@/components/forms";
import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus'; import { dataPinningEventBus } from '@/event-bus/data-pinning-event-bus';
import { clearJsonKey, executionDataToJson, stringSizeInBytes } from './helpers'; import { clearJsonKey, executionDataToJson, stringSizeInBytes } from '@/utils';
import { isEmpty } from '@/utils'; import { isEmpty } from '@/utils';
import { useWorkflowsStore } from "@/stores/workflows"; import { useWorkflowsStore } from "@/stores/workflows";
import { mapStores } from "pinia"; import { mapStores } from "pinia";

View file

@ -62,10 +62,9 @@ import VueJsonPretty from 'vue-json-pretty';
import { LOCAL_STORAGE_MAPPING_FLAG } from '@/constants'; import { LOCAL_STORAGE_MAPPING_FLAG } from '@/constants';
import { IDataObject, INodeExecutionData } from "n8n-workflow"; import { IDataObject, INodeExecutionData } from "n8n-workflow";
import Draggable from '@/components/Draggable.vue'; import Draggable from '@/components/Draggable.vue';
import { convertPath, executionDataToJson, isString } from "@/components/helpers"; import { convertPath, executionDataToJson, isString, shorten } from '@/utils';
import { INodeUi } from "@/Interface"; import { INodeUi } from "@/Interface";
import { shorten } from './helpers'; import { externalHooks } from "@/mixins/externalHooks";
import { externalHooks } from "@/components/mixins/externalHooks";
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useNDVStore } from "@/stores/ndv"; import { useNDVStore } from "@/stores/ndv";

View file

@ -32,11 +32,11 @@ import mixins from "vue-typed-mixins";
import jp from "jsonpath"; import jp from "jsonpath";
import { INodeUi } from "@/Interface"; import { INodeUi } from "@/Interface";
import { IDataObject } from "n8n-workflow"; import { IDataObject } from "n8n-workflow";
import { copyPaste } from "@/components/mixins/copyPaste"; import { copyPaste } from "@/mixins/copyPaste";
import { pinData } from "@/components/mixins/pinData"; import { pinData } from "@/mixins/pinData";
import { nodeHelpers } from "@/components/mixins/nodeHelpers"; import { nodeHelpers } from "@/mixins/nodeHelpers";
import { genericHelpers } from "@/components/mixins/genericHelpers"; import { genericHelpers } from "@/mixins/genericHelpers";
import { clearJsonKey, convertPath, executionDataToJson } from "@/components/helpers"; import { clearJsonKey, convertPath, executionDataToJson } from '@/utils';
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useWorkflowsStore } from "@/stores/workflows"; import { useWorkflowsStore } from "@/stores/workflows";
import { useNDVStore } from "@/stores/ndv"; import { useNDVStore } from "@/stores/ndv";

View file

@ -161,13 +161,13 @@
<script lang="ts"> <script lang="ts">
/* eslint-disable prefer-spread */ /* eslint-disable prefer-spread */
import { INodeUi, ITableData, NDVState } from '@/Interface'; import { INodeUi, ITableData, NDVState } from '@/Interface';
import { getPairedItemId } from '@/pairedItemUtils'; import { getPairedItemId } from '@/utils';
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow'; import { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';
import Draggable from './Draggable.vue'; import Draggable from './Draggable.vue';
import { shorten } from './helpers'; import { shorten } from '@/utils';
import { externalHooks } from './mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
import { useNDVStore } from '@/stores/ndv'; import { useNDVStore } from '@/stores/ndv';

View file

@ -23,8 +23,8 @@
<script lang="ts"> <script lang="ts">
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { ABOUT_MODAL_KEY, VERSIONS_MODAL_KEY, VIEWS } from '@/constants'; import { ABOUT_MODAL_KEY, VERSIONS_MODAL_KEY, VIEWS } from '@/constants';
import { userHelpers } from './mixins/userHelpers'; import { userHelpers } from '@/mixins/userHelpers';
import { pushConnection } from "@/components/mixins/pushConnection"; import { pushConnection } from "@/mixins/pushConnection";
import { IFakeDoor } from '@/Interface'; import { IFakeDoor } from '@/Interface';
import { IMenuItem } from 'n8n-design-system'; import { IMenuItem } from 'n8n-design-system';
import { BaseTextKey } from '@/plugins/i18n'; import { BaseTextKey } from '@/plugins/i18n';

View file

@ -6,7 +6,7 @@
<script lang="ts"> <script lang="ts">
import Vue from "vue"; import Vue from "vue";
import { shorten } from "./helpers"; import { shorten } from "@/utils";
const DEFAULT_WORKFLOW_NAME_LIMIT = 25; const DEFAULT_WORKFLOW_NAME_LIMIT = 25;
const WORKFLOW_NAME_END_COUNT_TO_KEEP = 4; const WORKFLOW_NAME_END_COUNT_TO_KEEP = 4;

View file

@ -45,11 +45,11 @@
import Vue from 'vue'; import Vue from 'vue';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { externalHooks } from '@/components/mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
import { nodeBase } from '@/components/mixins/nodeBase'; import { nodeBase } from '@/mixins/nodeBase';
import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { workflowHelpers } from '@/components/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { getStyleTokenValue, isNumber, isString } from './helpers'; import { getStyleTokenValue, isNumber, isString } from '@/utils';
import { INodeUi, INodeUpdatePropertiesInformation, IUpdateInformation, XYPosition } from '@/Interface'; import { INodeUi, INodeUpdatePropertiesInformation, IUpdateInformation, XYPosition } from '@/Interface';
import { import {

View file

@ -58,7 +58,7 @@ import mixins from "vue-typed-mixins";
import { ITag } from "@/Interface"; import { ITag } from "@/Interface";
import { MAX_TAG_NAME_LENGTH, TAGS_MANAGER_MODAL_KEY } from "@/constants"; import { MAX_TAG_NAME_LENGTH, TAGS_MANAGER_MODAL_KEY } from "@/constants";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import { mapStores } from "pinia"; import { mapStores } from "pinia";
import { useUIStore } from "@/stores/ui"; import { useUIStore } from "@/stores/ui";
import { useTagsStore } from "@/stores/tags"; import { useTagsStore } from "@/stores/tags";

View file

@ -36,7 +36,7 @@ import mixins from "vue-typed-mixins";
import { ITag } from "@/Interface"; import { ITag } from "@/Interface";
import { showMessage } from "@/components/mixins/showMessage"; import { showMessage } from "@/mixins/showMessage";
import TagsView from "@/components/TagsManager/TagsView/TagsView.vue"; import TagsView from "@/components/TagsManager/TagsView/TagsView.vue";
import NoTagsView from "@/components/TagsManager/NoTagsView.vue"; import NoTagsView from "@/components/TagsManager/NoTagsView.vue";
import Modal from "@/components/Modal.vue"; import Modal from "@/components/Modal.vue";

View file

@ -9,7 +9,7 @@ import { useUsersStore } from '@/stores/users';
import { ITelemetrySettings } from 'n8n-workflow'; import { ITelemetrySettings } from 'n8n-workflow';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { externalHooks } from './mixins/externalHooks'; import { externalHooks } from '@/mixins/externalHooks';
export default mixins(externalHooks).extend({ export default mixins(externalHooks).extend({
name: 'Telemetry', name: 'Telemetry',

View file

@ -38,9 +38,9 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import { filterTemplateNodes, abbreviateNumber } from './helpers'; import { filterTemplateNodes, abbreviateNumber } from '@/utils';
import NodeList from './NodeList.vue'; import NodeList from './NodeList.vue';
export default mixins(genericHelpers).extend({ export default mixins(genericHelpers).extend({

View file

@ -50,7 +50,7 @@
import Vue, { PropType } from 'vue'; import Vue, { PropType } from 'vue';
import TemplateDetailsBlock from '@/components/TemplateDetailsBlock.vue'; import TemplateDetailsBlock from '@/components/TemplateDetailsBlock.vue';
import NodeIcon from '@/components/NodeIcon.vue'; import NodeIcon from '@/components/NodeIcon.vue';
import { abbreviateNumber, filterTemplateNodes } from '@/components/helpers'; import { abbreviateNumber, filterTemplateNodes } from '@/utils';
import { ITemplatesNode, ITemplatesWorkflow, ITemplatesWorkflowFull } from '@/Interface'; import { ITemplatesNode, ITemplatesWorkflow, ITemplatesWorkflowFull } from '@/Interface';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useTemplatesStore } from '@/stores/templates'; import { useTemplatesStore } from '@/stores/templates';

View file

@ -39,7 +39,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import { ITemplatesCategory } from '@/Interface'; import { ITemplatesCategory } from '@/Interface';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';

View file

@ -32,7 +32,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { genericHelpers } from '@/components/mixins/genericHelpers'; import { genericHelpers } from '@/mixins/genericHelpers';
import mixins from 'vue-typed-mixins'; import mixins from 'vue-typed-mixins';
import TemplateCard from './TemplateCard.vue'; import TemplateCard from './TemplateCard.vue';

View file

@ -6,7 +6,7 @@
<script lang="ts"> <script lang="ts">
import { format, LocaleFunc, register } from 'timeago.js'; import { format, LocaleFunc, register } from 'timeago.js';
import { convertToHumanReadableDate } from './helpers'; import { convertToHumanReadableDate } from '@/utils';
import Vue from 'vue'; import Vue from 'vue';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useRootStore } from '@/stores/n8nRootStore'; import { useRootStore } from '@/stores/n8nRootStore';

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