n8n-editor-ui 1.91.1 → 1.93.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AnimatedSpinner-BrkRvAXQ.js → AnimatedSpinner-hbTZDd93.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DRamY8Fo.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CYzc5StE.js} +1 -1
- package/dist/assets/{AuthView-ehh7NFh5.js → AuthView-8SLMP0H_.js} +2 -2
- package/dist/assets/{CanvasChatSwitch-DUBgoMXw.js → CanvasChatSwitch-Dt8TgNJg.js} +22 -10
- package/dist/assets/{ChangePasswordView-BLFb7_-o.js → ChangePasswordView-DIRyDp89.js} +3 -3
- package/dist/assets/CollectionParameter-Cj4t6-hd.js +4 -0
- package/dist/assets/{CredentialsView-1uYUpp0G.js → CredentialsView-B6-VxAJ6.js} +26 -11
- package/dist/assets/{DemoFooter-CNfkqkRC.js → DemoFooter-CIHwH5PG.js} +8 -8
- package/dist/assets/{ErrorView-CmYweWFA.js → ErrorView-C7i0TZwT.js} +1 -1
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DAWTDTON.js → ExecutionsTime.vue_vue_type_script_setup_true_lang--2G21NNR.js} +2 -2
- package/dist/assets/{ExecutionsView-fotg1R4V.js → ExecutionsView-C_YtciAr.js} +10 -9
- package/dist/assets/{FileSaver.min-CcnqpaV-.js → FileSaver.min-bgn7Q9Gt.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-BYR4RzWw.js → FixedCollectionParameter-BPCJ5aaq.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-CQMKtpr-.js → ForgotMyPasswordView-DyUaGd6Z.js} +3 -3
- package/dist/assets/{InsightsChartAverageRuntime-B-9BU5qw.js → InsightsChartAverageRuntime-BB2I2vpV.js} +4 -4
- package/dist/assets/{InsightsChartFailed-Bd1BlFEm.js → InsightsChartFailed-CN_Rl3Bl.js} +4 -4
- package/dist/assets/{InsightsChartFailureRate-DPTCueAp.js → InsightsChartFailureRate-CHKlg6tg.js} +4 -4
- package/dist/assets/{InsightsChartTimeSaved-CSVKB08W.js → InsightsChartTimeSaved-Cd05cM8q.js} +4 -4
- package/dist/assets/{InsightsChartTotal-Bxjmisao.js → InsightsChartTotal-ChAO7myf.js} +4 -4
- package/dist/assets/{InsightsDashboard-5cOORj5z.js → InsightsDashboard-BeCfBVUz.js} +10 -10
- package/dist/assets/{InsightsPaywall-Bdo_3Ic_.js → InsightsPaywall-Chz8CDc3.js} +1 -1
- package/dist/assets/{InsightsSummary-DB62HhNM.js → InsightsSummary-MECenLJQ.js} +1 -1
- package/dist/assets/{InsightsTableWorkflows-BEC5Yh0b.js → InsightsTableWorkflows-5rpYY7YT.js} +2 -2
- package/dist/assets/{Logo-CK8euEWT.js → Logo-DUDCllkm.js} +1 -1
- package/dist/assets/{LogsPanel-CrGEYFLo.js → LogsPanel-D9r5AcQH.js} +75 -106
- package/dist/assets/{LogsPanel-DLC2TAqh.css → LogsPanel-mTaFEGk_.css} +38 -34
- package/dist/assets/{MainHeader-CEPLiR-5.css → MainHeader-CEMGASqv.css} +18 -11
- package/dist/assets/{MainHeader-C7XOaZKu.js → MainHeader-DkKOOZ_D.js} +145 -79
- package/dist/assets/{MainSidebar-CKMiDGvH.css → MainSidebar-D1_1YFQZ.css} +13 -12
- package/dist/assets/{MainSidebar-DD_ugRL3.js → MainSidebar-ZUBIWeXm.js} +36 -19
- package/dist/assets/{NodeCreation-S2FoBcnW.js → NodeCreation-DCfAFuL5.js} +10 -5
- package/dist/assets/{NodeCreator-D9fmPdS2.css → NodeCreator-D18StsVZ.css} +1021 -174
- package/dist/assets/{NodeCreator-D6TKVgLu.js → NodeCreator-a0YVv1IE.js} +863 -418
- package/dist/assets/{NodeDetailsView-DtvMtBqp.js → NodeDetailsView-C5_hVJzj.js} +60 -47
- package/dist/assets/{NodeDetailsView-CGgV4Pn_.css → NodeDetailsView-pYP-34nS.css} +20 -20
- package/dist/assets/{NodeView-BPhaaoWK.js → NodeView-Bk9h8GYy.js} +49 -25
- package/dist/assets/{ProjectCardBadge-C_L_pqWA.js → ProjectCardBadge-DRlDZx3d.js} +38 -2
- package/dist/assets/{ProjectHeader-C0FZTxjm.js → ProjectHeader-DNm605Kk.js} +106 -64
- package/dist/assets/{ProjectSettings-DlggJ6Ti.js → ProjectSettings-Dge_6KaR.js} +3 -2
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BNtCDFSj.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CUf0LkWR.js} +1 -1
- package/dist/assets/{ResourcesListLayout-HzoSFUaj.js → ResourcesListLayout-Bbl-1i4l.js} +156 -53
- package/dist/assets/{ResourcesListLayout-CtGME7aU.css → ResourcesListLayout-DuNjbsMn.css} +8 -8
- package/dist/assets/{RunData-C9dtm1M2.css → RunData-DQeENuzG.css} +12 -2
- package/dist/assets/{RunData-D8Eax0cQ.js → RunData-b0RE2JWc.js} +418 -207
- package/dist/assets/{RunDataAi-BF2gZZGr.css → RunDataAi-D9VLFXIf.css} +10 -51
- package/dist/assets/{RunDataAi-BUnCQIRN.js → RunDataAi-DnWcCR_0.js} +27 -310
- package/dist/assets/{RunDataJson-DXd3nZxI.js → RunDataJson-CptVuHuA.js} +7 -7
- package/dist/assets/{RunDataJsonActions-aivOaol2.js → RunDataJsonActions-3jjDztw7.js} +1 -1
- package/dist/assets/RunDataParsedAiContent-9EEUzCKp.css +176 -0
- package/dist/assets/RunDataParsedAiContent-BbXv-NPD.js +148 -0
- package/dist/assets/{RunDataSearch-DJ9BZGTu.js → RunDataSearch-B90wjsDA.js} +1 -1
- package/dist/assets/{RunDataTable-vEPCwbcC.js → RunDataTable-CpS78GlT.js} +3 -3
- package/dist/assets/{SamlOnboarding--OTxMEws.js → SamlOnboarding-Ch9K5rRW.js} +3 -3
- package/dist/assets/{SettingsApiView-BulxWyyY.js → SettingsApiView-9GU5n_rm.js} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-4wwPXFO2.js → SettingsCommunityNodesView-CPnVRzNX.js} +24 -11
- package/dist/assets/{SettingsExternalSecrets-zt7dxBKK.js → SettingsExternalSecrets-D7xTMV9h.js} +1 -1
- package/dist/assets/{SettingsLdapView-xneO6UIv.js → SettingsLdapView-OfrjGKkt.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-_h8wUzum.js → SettingsLogStreamingView-C_VnOaeX.js} +1 -1
- package/dist/assets/{SettingsPersonalView-CwYMP4sk.js → SettingsPersonalView-Dm24akPV.js} +14 -13
- package/dist/assets/{SettingsSourceControl-B9Tg93u3.js → SettingsSourceControl-DDCmL82j.js} +1 -1
- package/dist/assets/{SettingsSso-XaL1PzfW.js → SettingsSso-BGGQ0Cpg.js} +14 -1
- package/dist/assets/{SettingsUsageAndPlan-Ci15FW81.js → SettingsUsageAndPlan-BzO_zdkH.js} +1 -1
- package/dist/assets/{SettingsUsersView-DBJV4vSK.js → SettingsUsersView-DHQUqhqB.js} +1 -1
- package/dist/assets/{SettingsView-DMzdPF-1.js → SettingsView-CbtAqjOX.js} +1 -1
- package/dist/assets/{SetupView-BqWgdvDq.js → SetupView-BME1OE6U.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-B2wnuUnF.js → SetupWorkflowCredentialsButton-DZr4TCPC.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-BwC_wFSc.js → SetupWorkflowFromTemplateView-CPkKEY04.js} +3 -3
- package/dist/assets/{SigninView-DpTLJJwD.js → SigninView-DUeRvOiY.js} +3 -3
- package/dist/assets/{SignoutView-dkTtOCo1.js → SignoutView-BC7SBunZ.js} +1 -1
- package/dist/assets/{SignupView-CJFJJO3L.js → SignupView-B5ecYJ2q.js} +3 -3
- package/dist/assets/{TemplateDetails-84YElIBA.js → TemplateDetails-DjanZgC1.js} +1 -1
- package/dist/assets/{TemplateList-CGsfKuVA.js → TemplateList-8TyNGxY-.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-2y8KZk0I.js → TemplatesCollectionView-BkH4pJCv.js} +5 -5
- package/dist/assets/{TemplatesSearchView-DgosiOzl.js → TemplatesSearchView-Bcdhi1SL.js} +3 -3
- package/dist/assets/{TemplatesView-CgQSZO4a.js → TemplatesView-De2XB6We.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-2pSUmAbX.js → TemplatesWorkflowView-BVnwtrMa.js} +5 -5
- package/dist/assets/{TestDefinitionEditView-C26sWE7p.js → TestDefinitionEditView-DjmPnrTk.js} +7 -7
- package/dist/assets/{TestDefinitionListView-Cyl6bsLP.js → TestDefinitionListView-BL2s_qBZ.js} +1 -1
- package/dist/assets/{TestDefinitionNewView-CfIZ0atk.js → TestDefinitionNewView-B9BqJZST.js} +2 -2
- package/dist/assets/{TestDefinitionRootView-CYg7HBL-.js → TestDefinitionRootView-AlWyxbc0.js} +1 -1
- package/dist/assets/{VariablesView-BFE9B0_b.js → VariablesView-BZCvPfan.js} +4 -3
- package/dist/assets/{WorkerView-BUMCMS_B.js → WorkerView-CigxqnWi.js} +6 -6
- package/dist/assets/{WorkflowActivator-BDLto9c0.js → WorkflowActivator-B7jRy4L1.js} +8 -4
- package/dist/assets/{WorkflowActivator-DAyH7N29.css → WorkflowActivator-DrMTmuTZ.css} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-manN-WIj.js → WorkflowExecutionsInfoAccordion-C_ZycbsF.js} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-BzGmpGvf.js → WorkflowExecutionsLandingPage-DOqrfKlC.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-CNEV2lom.js → WorkflowExecutionsPreview-B4Cj2gXW.js} +6 -6
- package/dist/assets/{WorkflowExecutionsView-WiNvtAmD.js → WorkflowExecutionsView-RXfP7zkJ.js} +11 -9
- package/dist/assets/{WorkflowHistory-6uJJqB4x.js → WorkflowHistory-DrXrRwIS.js} +37 -19
- package/dist/assets/{WorkflowOnboardingView-CPt_AUR-.js → WorkflowOnboardingView-CXH1vCW2.js} +1 -1
- package/dist/assets/{WorkflowPreview-CHUEX6H6.js → WorkflowPreview-B_MuFEV8.js} +1 -1
- package/dist/assets/{WorkflowsView-B2_HJCJ5.css → WorkflowsView-CQvTAWQ0.css} +24 -13
- package/dist/assets/{WorkflowsView-DbGBRbfc.js → WorkflowsView-D90hfJ35.js} +300 -158
- package/dist/assets/{chartjs.utils-C--HONKb.js → chartjs.utils-DalQn9bk.js} +2 -2
- package/dist/assets/{dateFormatter-DbKqmK4w.js → dateFormatter-BPfJSa6q.js} +1 -1
- package/dist/assets/{easyAiWorkflowUtils-BWgfZ0am.js → easyAiWorkflowUtils-kgtpBx2h.js} +1 -1
- package/dist/assets/{global-link-actions-COf-9vBh.js → global-link-actions-CnWOMvqA.js} +1 -1
- package/dist/assets/{import-curl-BiXaU2jk.js → import-curl-BvX_O56D.js} +1 -1
- package/dist/assets/{index-B6xE9gZ1.js → index-Bb2NNknG.js} +1 -1
- package/dist/assets/{index-BLAboPd2.js → index-DZ6VpjNj.js} +4635 -2824
- package/dist/assets/{index-sq5ggyEC.css → index-yNaoC3fo.css} +363 -97
- package/dist/assets/{pickBy-gZHb6vZ2.js → pickBy-B_HGYyxS.js} +1 -1
- package/dist/assets/{templateActions-DCx74tPa.js → templateActions-DQfZ3ni5.js} +1 -1
- package/dist/assets/{useBeforeUnload-DbfysOS-.js → useBeforeUnload-Cu0LPVWe.js} +1 -1
- package/dist/assets/{useCanvasMapping-CSuq_dYj.js → useCanvasMapping-CTTq6x8X.js} +62 -40
- package/dist/assets/{useCanvasMapping-cuXLM-h-.css → useCanvasMapping-VtpW_QZA.css} +6 -5
- package/dist/assets/{useCanvasOperations-C0pQBHW3.js → useCanvasOperations-u8oSDa_u.js} +96 -445
- package/dist/assets/{useClearExecutionButtonVisible-Cvfxw8xC.js → useClearExecutionButtonVisible-Dwc1_eG9.js} +2 -2
- package/dist/assets/{useExecutionDebugging-D2H5O6fT.js → useExecutionDebugging-rc72wLIp.js} +1 -1
- package/dist/assets/{useExecutionHelpers-C--m0pTQ.js → useExecutionHelpers-DqwMonFW.js} +2 -2
- package/dist/assets/{useImportCurlCommand-XFn6Ezp2.js → useImportCurlCommand-D_onuFvo.js} +19 -10
- package/dist/assets/useProjectPages-e8b03-5_.js +17 -0
- package/dist/assets/usePushConnection-wm-7Id6Q.js +629 -0
- package/dist/assets/{useTestDefinitionForm-2YP-8pAN.js → useTestDefinitionForm-DlUOnNC0.js} +1 -1
- package/dist/assets/{useWorkflowActivate-CvmIpy5T.js → useWorkflowActivate-65xML23U.js} +1 -1
- package/dist/assets/useWorkflowSaving-CUel20JA.js +66 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-BaH_a73u.js +0 -4
- package/dist/assets/usePushConnection-x0iF1Axz.js +0 -537
|
@@ -1,38 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function castSlice(array, start, end) {
|
|
3
|
-
var length = array.length;
|
|
4
|
-
end = end === void 0 ? length : end;
|
|
5
|
-
return false ? array : baseSlice(array, start, end);
|
|
6
|
-
}
|
|
7
|
-
var rsAstralRange$1 = "\\ud800-\\udfff", rsComboMarksRange$1 = "\\u0300-\\u036f", reComboHalfMarksRange$1 = "\\ufe20-\\ufe2f", rsComboSymbolsRange$1 = "\\u20d0-\\u20ff", rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1, rsVarRange$1 = "\\ufe0e\\ufe0f";
|
|
8
|
-
var rsZWJ$1 = "\\u200d";
|
|
9
|
-
var reHasUnicode = RegExp("[" + rsZWJ$1 + rsAstralRange$1 + rsComboRange$1 + rsVarRange$1 + "]");
|
|
10
|
-
function hasUnicode(string) {
|
|
11
|
-
return reHasUnicode.test(string);
|
|
12
|
-
}
|
|
13
|
-
function asciiToArray(string) {
|
|
14
|
-
return string.split("");
|
|
15
|
-
}
|
|
16
|
-
var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = "\\ufe0e\\ufe0f";
|
|
17
|
-
var rsAstral = "[" + rsAstralRange + "]", rsCombo = "[" + rsComboRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsZWJ = "\\u200d";
|
|
18
|
-
var reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
|
|
19
|
-
var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
|
|
20
|
-
function unicodeToArray(string) {
|
|
21
|
-
return string.match(reUnicode) || [];
|
|
22
|
-
}
|
|
23
|
-
function stringToArray(string) {
|
|
24
|
-
return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);
|
|
25
|
-
}
|
|
26
|
-
function createCaseFirst(methodName) {
|
|
27
|
-
return function(string) {
|
|
28
|
-
string = toString(string);
|
|
29
|
-
var strSymbols = hasUnicode(string) ? stringToArray(string) : void 0;
|
|
30
|
-
var chr = strSymbols ? strSymbols[0] : string.charAt(0);
|
|
31
|
-
var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1);
|
|
32
|
-
return chr[methodName]() + trailing;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
var upperFirst = createCaseFirst("toUpperCase");
|
|
1
|
+
import { bF as upperFirst, et as toString, eu as createCompounder, ev as SetCache, ew as arrayIncludes, ex as cacheHas, ey as baseRest, ez as isArrayLikeObject, eA as baseFlatten, eB as AI_CATEGORY_DOCUMENT_LOADERS, eC as AI_CATEGORY_LANGUAGE_MODELS, eD as AI_CATEGORY_MEMORY, eE as AI_CATEGORY_OUTPUTPARSER, eF as AI_CATEGORY_RETRIEVERS, eG as AI_CATEGORY_TEXT_SPLITTERS, eH as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, eI as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, c as useI18n, eJ as AI_CATEGORY_TOOLS, e4 as CORE_NODES_CATEGORY, eK as AI_CATEGORY_EMBEDDING, eL as AI_CATEGORY_VECTOR_STORES, eM as AI_UNCATEGORIZED_CATEGORY, eN as AI_OTHERS_NODE_CREATOR_VIEW, bm as NodeConnectionTypes, bz as useNodeTypesStore, aN as useTemplatesStore, p as useSettingsStore, eO as AI_TRANSFORM_NODE_TYPE, eP as AI_NODE_CREATOR_VIEW, eQ as RSS_READ_NODE_TYPE, eR as EMAIL_SEND_NODE_TYPE, eS as DEFAULT_SUBCATEGORY, eT as SET_NODE_TYPE, eU as CODE_NODE_TYPE, eV as DATETIME_NODE_TYPE, eW as FILTER_NODE_TYPE, eX as REMOVE_DUPLICATES_NODE_TYPE, eY as SPLIT_OUT_NODE_TYPE, eZ as LIMIT_NODE_TYPE, e_ as SUMMARIZE_NODE_TYPE, e$ as AGGREGATE_NODE_TYPE, f0 as MERGE_NODE_TYPE, ec as HTML_NODE_TYPE, f1 as MARKDOWN_NODE_TYPE, f2 as XML_NODE_TYPE, f3 as CRYPTO_NODE_TYPE, f4 as EXTRACT_FROM_FILE_NODE_TYPE, f5 as CONVERT_TO_FILE_NODE_TYPE, f6 as COMPRESSION_NODE_TYPE, f7 as EDIT_IMAGE_NODE_TYPE, f8 as TRANSFORM_DATA_SUBCATEGORY, f9 as IF_NODE_TYPE, fa as SPLIT_IN_BATCHES_NODE_TYPE, fb as FLOWS_CONTROL_SUBCATEGORY, fc as HTTP_REQUEST_NODE_TYPE, fd as WEBHOOK_NODE_TYPE, fe as HELPERS_SUBCATEGORY, ff as HITL_SUBCATEGORY, fg as HUMAN_IN_THE_LOOP_CATEGORY, bs as AI_SUBCATEGORY, fh as TRIGGER_NODE_CREATOR_VIEW, fi as REGULAR_NODE_CREATOR_VIEW, fj as MANUAL_TRIGGER_NODE_TYPE, fk as EMAIL_IMAP_NODE_TYPE, fl as SCHEDULE_TRIGGER_NODE_TYPE, fm as FORM_TRIGGER_NODE_TYPE, dK as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bk as CHAT_TRIGGER_NODE_TYPE, fn as OTHER_TRIGGER_NODES_SUBCATEGORY, bt as AI_CATEGORY_AGENTS, bu as AI_CATEGORY_CHAINS, O as defineStore, r as ref, q as computed, fo as extendItemsWithUUID, $ as useCanvasStore, fp as flattenCreateElements, fq as searchNodes, fr as transformNodeType, fs as subcategorizeItems, ft as isAINode, fu as AI_CATEGORY_ROOT_NODES, fv as AI_CATEGORY_MCP_NODES, fw as groupItemsInSections, z as nextTick, fx as getThemedValue, H as useUIStore, bn as v4, bv as AI_CODE_NODE_TYPE, fy as AI_TRANSFORM_NODE_TYPE$1, fz as sortNodeCreateElements, fA as isValidCanvasConnectionMode, c9 as CanvasConnectionMode, c8 as isValidNodeConnectionType, Q as useWorkflowsStore, as as useNDVStore, aP as useExternalHooks, fB as isVueFlowConnection, bw as getNodeInputs, fC as CUSTOM_API_CALL_KEY, T as STORES, cc as NODE_CREATOR_OPEN_SOURCES, ag as useTelemetry, Z as useRootStore, bS as useCredentialsStore, bV as useHistoryStore, E as useTagsStore, at as useExecutionsStore, a1 as useProjectsStore, a as useToast, a5 as useWorkflowHelpers, bA as useNodeHelpers, bf as useClipboard, fD as getSubworkflowId, fE as MCP_TRIGGER_NODE_TYPE, fF as UPDATE_WEBHOOK_ID_NODE_TYPES, dA as generateNodesGraph, fG as getNewNodePosition, fH as AddConnectionCommand, ay as STICKY_NODE_TYPE, by as getNodeOutputs, fI as RemoveConnectionCommand, aa as EnterpriseEditionFeature, cn as deepCopy, el as isPresent, fJ as RemoveNodeCommand, fK as RenameNodeCommand, bq as usePinnedData, fL as useDataSchema, fM as MoveNodeCommand, fN as DEFAULT_NODE_SIZE, fO as CONFIGURATION_NODE_SIZE, bx as getConnectionTypes, fP as generateOffsets, fQ as CONFIGURABLE_NODE_SIZE, fR as PUSH_NODES_OFFSET, fS as AddNodeCommand, fT as NODE_SIZE, fU as GRID_SIZE, fV as getNodeParameters } from "./index-DZ6VpjNj.js";
|
|
36
2
|
function capitalize(string) {
|
|
37
3
|
return upperFirst(toString(string).toLowerCase());
|
|
38
4
|
}
|
|
@@ -72,330 +38,6 @@ function baseDifference(array, values, iteratee, comparator) {
|
|
|
72
38
|
var difference = baseRest(function(array, values) {
|
|
73
39
|
return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];
|
|
74
40
|
});
|
|
75
|
-
const SEQUENTIAL_BONUS = 60;
|
|
76
|
-
const SEPARATOR_BONUS = 30;
|
|
77
|
-
const CAMEL_BONUS = 30;
|
|
78
|
-
const FIRST_LETTER_BONUS = 15;
|
|
79
|
-
const LEADING_LETTER_PENALTY = -20;
|
|
80
|
-
const MAX_LEADING_LETTER_PENALTY = -200;
|
|
81
|
-
const UNMATCHED_LETTER_PENALTY = -5;
|
|
82
|
-
const DEFAULT_KEYS = [
|
|
83
|
-
{ key: "properties.displayName", weight: 1.3 },
|
|
84
|
-
{ key: "properties.codex.alias", weight: 1 }
|
|
85
|
-
];
|
|
86
|
-
function fuzzyMatchSimple(pattern, target) {
|
|
87
|
-
let patternIdx = 0;
|
|
88
|
-
let strIdx = 0;
|
|
89
|
-
while (patternIdx < pattern.length && strIdx < target.length) {
|
|
90
|
-
const patternChar = pattern.charAt(patternIdx).toLowerCase();
|
|
91
|
-
const targetChar = target.charAt(strIdx).toLowerCase();
|
|
92
|
-
if (patternChar === targetChar) {
|
|
93
|
-
patternIdx++;
|
|
94
|
-
}
|
|
95
|
-
++strIdx;
|
|
96
|
-
}
|
|
97
|
-
return pattern.length !== 0 && target.length !== 0 && patternIdx === pattern.length;
|
|
98
|
-
}
|
|
99
|
-
function fuzzyMatchRecursive(pattern, target, patternCurIndex, targetCurrIndex, targetMatches, matches, maxMatches, nextMatch, recursionCount, recursionLimit) {
|
|
100
|
-
let outScore = 0;
|
|
101
|
-
if (++recursionCount >= recursionLimit) {
|
|
102
|
-
return { matched: false, outScore };
|
|
103
|
-
}
|
|
104
|
-
if (patternCurIndex === pattern.length || targetCurrIndex === target.length) {
|
|
105
|
-
return { matched: false, outScore };
|
|
106
|
-
}
|
|
107
|
-
let recursiveMatch = false;
|
|
108
|
-
let bestRecursiveMatches = [];
|
|
109
|
-
let bestRecursiveScore = 0;
|
|
110
|
-
let firstMatch = true;
|
|
111
|
-
while (patternCurIndex < pattern.length && targetCurrIndex < target.length) {
|
|
112
|
-
if (pattern[patternCurIndex].toLowerCase() === target[targetCurrIndex].toLowerCase()) {
|
|
113
|
-
if (nextMatch >= maxMatches) {
|
|
114
|
-
return { matched: false, outScore };
|
|
115
|
-
}
|
|
116
|
-
if (firstMatch && targetMatches) {
|
|
117
|
-
matches = [...targetMatches];
|
|
118
|
-
firstMatch = false;
|
|
119
|
-
}
|
|
120
|
-
const recursiveMatches = [];
|
|
121
|
-
const recursiveResult = fuzzyMatchRecursive(
|
|
122
|
-
pattern,
|
|
123
|
-
target,
|
|
124
|
-
patternCurIndex,
|
|
125
|
-
targetCurrIndex + 1,
|
|
126
|
-
matches,
|
|
127
|
-
recursiveMatches,
|
|
128
|
-
maxMatches,
|
|
129
|
-
nextMatch,
|
|
130
|
-
recursionCount,
|
|
131
|
-
recursionLimit
|
|
132
|
-
);
|
|
133
|
-
const recursiveScore = recursiveResult.outScore;
|
|
134
|
-
if (recursiveResult.matched) {
|
|
135
|
-
if (!recursiveMatch || recursiveScore > bestRecursiveScore) {
|
|
136
|
-
bestRecursiveMatches = [...recursiveMatches];
|
|
137
|
-
bestRecursiveScore = recursiveScore;
|
|
138
|
-
}
|
|
139
|
-
recursiveMatch = true;
|
|
140
|
-
}
|
|
141
|
-
matches[nextMatch++] = targetCurrIndex;
|
|
142
|
-
++patternCurIndex;
|
|
143
|
-
}
|
|
144
|
-
++targetCurrIndex;
|
|
145
|
-
}
|
|
146
|
-
const matched = patternCurIndex === pattern.length;
|
|
147
|
-
if (matched) {
|
|
148
|
-
outScore = 100;
|
|
149
|
-
if (!target.toLowerCase().startsWith("n8n")) {
|
|
150
|
-
let penalty = LEADING_LETTER_PENALTY * matches[0];
|
|
151
|
-
penalty = penalty < MAX_LEADING_LETTER_PENALTY ? MAX_LEADING_LETTER_PENALTY : penalty;
|
|
152
|
-
outScore += penalty;
|
|
153
|
-
}
|
|
154
|
-
const unmatched = target.length - nextMatch;
|
|
155
|
-
outScore += UNMATCHED_LETTER_PENALTY * unmatched;
|
|
156
|
-
for (let i = 0; i < nextMatch; i++) {
|
|
157
|
-
const currIdx = matches[i];
|
|
158
|
-
if (i > 0) {
|
|
159
|
-
const prevIdx = matches[i - 1];
|
|
160
|
-
if (currIdx === prevIdx + 1) {
|
|
161
|
-
outScore += SEQUENTIAL_BONUS;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
if (currIdx > 0) {
|
|
165
|
-
const neighbor = target[currIdx - 1];
|
|
166
|
-
const curr = target[currIdx];
|
|
167
|
-
if (neighbor !== neighbor.toUpperCase() && curr !== curr.toLowerCase()) {
|
|
168
|
-
outScore += CAMEL_BONUS;
|
|
169
|
-
}
|
|
170
|
-
const isNeighbourSeparator = neighbor === "_" || neighbor === " ";
|
|
171
|
-
if (isNeighbourSeparator) {
|
|
172
|
-
outScore += SEPARATOR_BONUS;
|
|
173
|
-
}
|
|
174
|
-
} else {
|
|
175
|
-
outScore += FIRST_LETTER_BONUS;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (recursiveMatch && (!matched || bestRecursiveScore > outScore)) {
|
|
179
|
-
matches = [...bestRecursiveMatches];
|
|
180
|
-
outScore = bestRecursiveScore;
|
|
181
|
-
return { matched: true, outScore };
|
|
182
|
-
} else if (matched) {
|
|
183
|
-
return { matched: true, outScore };
|
|
184
|
-
} else {
|
|
185
|
-
return { matched: false, outScore };
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return { matched: false, outScore };
|
|
189
|
-
}
|
|
190
|
-
function fuzzyMatch(pattern, target) {
|
|
191
|
-
const recursionCount = 0;
|
|
192
|
-
const recursionLimit = 5;
|
|
193
|
-
const matches = [];
|
|
194
|
-
const maxMatches = 256;
|
|
195
|
-
return fuzzyMatchRecursive(
|
|
196
|
-
pattern,
|
|
197
|
-
target,
|
|
198
|
-
0,
|
|
199
|
-
0,
|
|
200
|
-
null,
|
|
201
|
-
matches,
|
|
202
|
-
maxMatches,
|
|
203
|
-
0,
|
|
204
|
-
recursionCount,
|
|
205
|
-
recursionLimit
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
function getValue(obj, prop) {
|
|
209
|
-
if (obj.hasOwnProperty(prop)) {
|
|
210
|
-
return obj[prop];
|
|
211
|
-
}
|
|
212
|
-
const segments = prop.split(".");
|
|
213
|
-
let result = obj;
|
|
214
|
-
let i = 0;
|
|
215
|
-
while (result && i < segments.length) {
|
|
216
|
-
const key = segments[i];
|
|
217
|
-
result = result[key];
|
|
218
|
-
i++;
|
|
219
|
-
}
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
function sublimeSearch(filter, data, keys = DEFAULT_KEYS) {
|
|
223
|
-
const results = data.reduce((accu, item) => {
|
|
224
|
-
let values = [];
|
|
225
|
-
keys.forEach(({ key, weight }) => {
|
|
226
|
-
const value = getValue(item, key);
|
|
227
|
-
if (Array.isArray(value)) {
|
|
228
|
-
values = values.concat(value.map((v) => ({ value: v, weight })));
|
|
229
|
-
} else if (typeof value === "string") {
|
|
230
|
-
values.push({
|
|
231
|
-
value,
|
|
232
|
-
weight
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
const itemMatch = values.reduce(
|
|
237
|
-
(result, { value, weight }) => {
|
|
238
|
-
if (!fuzzyMatchSimple(filter, value)) {
|
|
239
|
-
return result;
|
|
240
|
-
}
|
|
241
|
-
const match = fuzzyMatch(filter, value);
|
|
242
|
-
match.outScore *= weight;
|
|
243
|
-
const { matched, outScore } = match;
|
|
244
|
-
if (!result && matched) {
|
|
245
|
-
return match;
|
|
246
|
-
}
|
|
247
|
-
if (matched && result && outScore > result.outScore) {
|
|
248
|
-
return match;
|
|
249
|
-
}
|
|
250
|
-
return result;
|
|
251
|
-
},
|
|
252
|
-
null
|
|
253
|
-
);
|
|
254
|
-
if (itemMatch) {
|
|
255
|
-
accu.push({
|
|
256
|
-
score: itemMatch.outScore,
|
|
257
|
-
item
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
return accu;
|
|
261
|
-
}, []);
|
|
262
|
-
results.sort((a, b) => {
|
|
263
|
-
return b.score - a.score;
|
|
264
|
-
});
|
|
265
|
-
return results;
|
|
266
|
-
}
|
|
267
|
-
function transformNodeType(node, subcategory, type = "node") {
|
|
268
|
-
const createElement = {
|
|
269
|
-
uuid: v4(),
|
|
270
|
-
key: node.name,
|
|
271
|
-
subcategory: subcategory ?? node.codex?.subcategories?.[CORE_NODES_CATEGORY]?.[0] ?? DEFAULT_SUBCATEGORY,
|
|
272
|
-
properties: {
|
|
273
|
-
...node
|
|
274
|
-
},
|
|
275
|
-
type
|
|
276
|
-
};
|
|
277
|
-
return type === "action" ? createElement : createElement;
|
|
278
|
-
}
|
|
279
|
-
function subcategorizeItems(items) {
|
|
280
|
-
const WHITE_LISTED_SUBCATEGORIES = [
|
|
281
|
-
CORE_NODES_CATEGORY,
|
|
282
|
-
AI_SUBCATEGORY,
|
|
283
|
-
HUMAN_IN_THE_LOOP_CATEGORY
|
|
284
|
-
];
|
|
285
|
-
return items.reduce((acc, item) => {
|
|
286
|
-
let subcategories = [DEFAULT_SUBCATEGORY];
|
|
287
|
-
const matchedSubcategories = WHITE_LISTED_SUBCATEGORIES.flatMap((category) => {
|
|
288
|
-
if (item.codex?.categories?.includes(category)) {
|
|
289
|
-
return item.codex?.subcategories?.[category] ?? [];
|
|
290
|
-
}
|
|
291
|
-
return [];
|
|
292
|
-
});
|
|
293
|
-
if (matchedSubcategories.length > 0) {
|
|
294
|
-
subcategories = matchedSubcategories;
|
|
295
|
-
}
|
|
296
|
-
subcategories.forEach((subcategory) => {
|
|
297
|
-
if (!acc[subcategory]) {
|
|
298
|
-
acc[subcategory] = [];
|
|
299
|
-
}
|
|
300
|
-
acc[subcategory].push(transformNodeType(item, subcategory));
|
|
301
|
-
});
|
|
302
|
-
return acc;
|
|
303
|
-
}, {});
|
|
304
|
-
}
|
|
305
|
-
function sortNodeCreateElements(nodes) {
|
|
306
|
-
return nodes.sort((a, b) => {
|
|
307
|
-
if (a.type !== "node" || b.type !== "node") return 0;
|
|
308
|
-
const displayNameA = a.properties?.displayName?.toLowerCase() || a.key;
|
|
309
|
-
const displayNameB = b.properties?.displayName?.toLowerCase() || b.key;
|
|
310
|
-
return displayNameA.localeCompare(displayNameB, void 0, { sensitivity: "base" });
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
function removeTrailingTrigger(searchFilter) {
|
|
314
|
-
const parts = searchFilter.split(" ");
|
|
315
|
-
if (parts.length > 1 && "trigger".startsWith(parts.slice(-1)[0].toLowerCase())) {
|
|
316
|
-
return parts.slice(0, -1).filter((x) => x).join(" ").trimEnd();
|
|
317
|
-
}
|
|
318
|
-
return searchFilter;
|
|
319
|
-
}
|
|
320
|
-
function searchNodes(searchFilter, items) {
|
|
321
|
-
const askAiEnabled = useSettingsStore().isAskAiEnabled;
|
|
322
|
-
if (!askAiEnabled) {
|
|
323
|
-
items = items.filter((item) => item.key !== AI_TRANSFORM_NODE_TYPE);
|
|
324
|
-
}
|
|
325
|
-
const trimmedFilter = removeTrailingTrigger(searchFilter).toLowerCase();
|
|
326
|
-
const result = (sublimeSearch(trimmedFilter, items) || []).map(
|
|
327
|
-
({ item }) => item
|
|
328
|
-
);
|
|
329
|
-
return result;
|
|
330
|
-
}
|
|
331
|
-
function flattenCreateElements(items) {
|
|
332
|
-
return items.map((item) => item.type === "section" ? item.children : item).flat();
|
|
333
|
-
}
|
|
334
|
-
function isAINode(node) {
|
|
335
|
-
const isNode = node.type === "node";
|
|
336
|
-
if (!isNode) return false;
|
|
337
|
-
if (node.properties.codex?.categories?.includes(AI_SUBCATEGORY)) {
|
|
338
|
-
const isAgentSubcategory = node.properties.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(AI_CATEGORY_AGENTS);
|
|
339
|
-
return !isAgentSubcategory;
|
|
340
|
-
}
|
|
341
|
-
return false;
|
|
342
|
-
}
|
|
343
|
-
function groupItemsInSections(items, sections, sortAlphabetically = true) {
|
|
344
|
-
const filteredSections = sections.filter(
|
|
345
|
-
(section) => typeof section === "object"
|
|
346
|
-
);
|
|
347
|
-
const itemsBySection = (items2) => items2.reduce((acc, item) => {
|
|
348
|
-
const section = filteredSections.find((s) => s.items.includes(item.key));
|
|
349
|
-
const key = section?.key ?? "other";
|
|
350
|
-
if (key) {
|
|
351
|
-
acc[key] = [...acc[key] ?? [], item];
|
|
352
|
-
}
|
|
353
|
-
return acc;
|
|
354
|
-
}, {});
|
|
355
|
-
const mapNewSections = (newSections, children) => newSections.map(
|
|
356
|
-
(section) => ({
|
|
357
|
-
type: "section",
|
|
358
|
-
key: section.key,
|
|
359
|
-
title: section.title,
|
|
360
|
-
children: sortAlphabetically ? sortNodeCreateElements(children[section.key] ?? []) : children[section.key] ?? []
|
|
361
|
-
})
|
|
362
|
-
);
|
|
363
|
-
const nonAINodes = items.filter((item) => !isAINode(item));
|
|
364
|
-
const AINodes = items.filter((item) => isAINode(item));
|
|
365
|
-
const nonAINodesBySection = itemsBySection(nonAINodes);
|
|
366
|
-
const nonAINodesSections = mapNewSections(filteredSections, nonAINodesBySection);
|
|
367
|
-
const AINodesBySection = itemsBySection(AINodes);
|
|
368
|
-
const AINodesSections = mapNewSections(sortBy(filteredSections, ["title"]), AINodesBySection);
|
|
369
|
-
const result = [...nonAINodesSections, ...AINodesSections].concat({
|
|
370
|
-
type: "section",
|
|
371
|
-
key: "other",
|
|
372
|
-
title: i18n.baseText("nodeCreator.sectionNames.other"),
|
|
373
|
-
children: sortNodeCreateElements(nonAINodesBySection.other ?? [])
|
|
374
|
-
}).filter((section) => section.type !== "section" || section.children.length > 0);
|
|
375
|
-
result.sort((a, b) => {
|
|
376
|
-
if (a.key.toLowerCase().includes("recommended")) return -1;
|
|
377
|
-
if (b.key.toLowerCase().includes("recommended")) return 1;
|
|
378
|
-
if (b.key === AI_CATEGORY_OTHER_TOOLS) return -1;
|
|
379
|
-
return 0;
|
|
380
|
-
});
|
|
381
|
-
if (!shouldRenderSectionSubtitle(result)) {
|
|
382
|
-
return items;
|
|
383
|
-
}
|
|
384
|
-
return result;
|
|
385
|
-
}
|
|
386
|
-
const shouldRenderSectionSubtitle = (sections) => {
|
|
387
|
-
if (!sections.length) return false;
|
|
388
|
-
if (sections.length > 1) return true;
|
|
389
|
-
if (sections[0].key === SEND_AND_WAIT_OPERATION) return true;
|
|
390
|
-
return false;
|
|
391
|
-
};
|
|
392
|
-
const formatTriggerActionName = (actionPropertyName) => {
|
|
393
|
-
let name = actionPropertyName;
|
|
394
|
-
if (actionPropertyName.includes(".")) {
|
|
395
|
-
name = actionPropertyName.split(".").join(" ");
|
|
396
|
-
}
|
|
397
|
-
return noCase(name);
|
|
398
|
-
};
|
|
399
41
|
function getNodeView(node) {
|
|
400
42
|
return {
|
|
401
43
|
key: node.name,
|
|
@@ -418,7 +60,7 @@ function getAiNodesBySubcategory(nodes, subcategory) {
|
|
|
418
60
|
).map(getNodeView).sort((a, b) => a.properties.displayName.localeCompare(b.properties.displayName));
|
|
419
61
|
}
|
|
420
62
|
function AIView(_nodes) {
|
|
421
|
-
const
|
|
63
|
+
const i18n = useI18n();
|
|
422
64
|
const nodeTypesStore = useNodeTypesStore();
|
|
423
65
|
const templatesStore = useTemplatesStore();
|
|
424
66
|
const chainNodes = getAiNodesBySubcategory(nodeTypesStore.allLatestNodeTypes, AI_CATEGORY_CHAINS);
|
|
@@ -431,21 +73,21 @@ function AIView(_nodes) {
|
|
|
431
73
|
const transformNode = askAiEnabled && aiTransformNode ? [getNodeView(aiTransformNode)] : [];
|
|
432
74
|
return {
|
|
433
75
|
value: AI_NODE_CREATOR_VIEW,
|
|
434
|
-
title:
|
|
435
|
-
subtitle:
|
|
76
|
+
title: i18n.baseText("nodeCreator.aiPanel.aiNodes"),
|
|
77
|
+
subtitle: i18n.baseText("nodeCreator.aiPanel.selectAiNode"),
|
|
436
78
|
items: [
|
|
437
79
|
{
|
|
438
80
|
key: "ai_templates_root",
|
|
439
81
|
type: "link",
|
|
440
82
|
properties: {
|
|
441
|
-
title:
|
|
83
|
+
title: i18n.baseText("nodeCreator.aiPanel.linkItem.title"),
|
|
442
84
|
icon: "box-open",
|
|
443
|
-
description:
|
|
85
|
+
description: i18n.baseText("nodeCreator.aiPanel.linkItem.description"),
|
|
444
86
|
name: "ai_templates_root",
|
|
445
87
|
url: websiteCategoryURL,
|
|
446
88
|
tag: {
|
|
447
89
|
type: "info",
|
|
448
|
-
text:
|
|
90
|
+
text: i18n.baseText("nodeCreator.triggerHelperPanel.manualTriggerTag")
|
|
449
91
|
}
|
|
450
92
|
}
|
|
451
93
|
},
|
|
@@ -456,16 +98,16 @@ function AIView(_nodes) {
|
|
|
456
98
|
key: AI_OTHERS_NODE_CREATOR_VIEW,
|
|
457
99
|
type: "view",
|
|
458
100
|
properties: {
|
|
459
|
-
title:
|
|
101
|
+
title: i18n.baseText("nodeCreator.aiPanel.aiOtherNodes"),
|
|
460
102
|
icon: "robot",
|
|
461
|
-
description:
|
|
103
|
+
description: i18n.baseText("nodeCreator.aiPanel.aiOtherNodesDescription")
|
|
462
104
|
}
|
|
463
105
|
}
|
|
464
106
|
]
|
|
465
107
|
};
|
|
466
108
|
}
|
|
467
109
|
function AINodesView(_nodes) {
|
|
468
|
-
const
|
|
110
|
+
const i18n = useI18n();
|
|
469
111
|
function getAISubcategoryProperties(nodeConnectionType) {
|
|
470
112
|
return {
|
|
471
113
|
connectionType: nodeConnectionType,
|
|
@@ -477,14 +119,14 @@ function AINodesView(_nodes) {
|
|
|
477
119
|
}
|
|
478
120
|
function getSubcategoryInfo(subcategory) {
|
|
479
121
|
const localeKey = `nodeCreator.subcategoryInfos.${camelCase(subcategory)}`;
|
|
480
|
-
const info =
|
|
122
|
+
const info = i18n.baseText(localeKey);
|
|
481
123
|
if (info === localeKey) return void 0;
|
|
482
124
|
return info;
|
|
483
125
|
}
|
|
484
126
|
return {
|
|
485
127
|
value: AI_OTHERS_NODE_CREATOR_VIEW,
|
|
486
|
-
title:
|
|
487
|
-
subtitle:
|
|
128
|
+
title: i18n.baseText("nodeCreator.aiPanel.aiOtherNodes"),
|
|
129
|
+
subtitle: i18n.baseText("nodeCreator.aiPanel.selectAiNode"),
|
|
488
130
|
items: [
|
|
489
131
|
{
|
|
490
132
|
key: AI_CATEGORY_DOCUMENT_LOADERS,
|
|
@@ -558,7 +200,7 @@ function AINodesView(_nodes) {
|
|
|
558
200
|
sections: [
|
|
559
201
|
{
|
|
560
202
|
key: "popular",
|
|
561
|
-
title:
|
|
203
|
+
title: i18n.baseText("nodeCreator.sectionNames.popular"),
|
|
562
204
|
items: [AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, AI_CODE_TOOL_LANGCHAIN_NODE_TYPE]
|
|
563
205
|
}
|
|
564
206
|
]
|
|
@@ -596,11 +238,11 @@ function AINodesView(_nodes) {
|
|
|
596
238
|
};
|
|
597
239
|
}
|
|
598
240
|
function TriggerView() {
|
|
599
|
-
const
|
|
241
|
+
const i18n = useI18n();
|
|
600
242
|
const view = {
|
|
601
243
|
value: TRIGGER_NODE_CREATOR_VIEW,
|
|
602
|
-
title:
|
|
603
|
-
subtitle:
|
|
244
|
+
title: i18n.baseText("nodeCreator.triggerHelperPanel.selectATrigger"),
|
|
245
|
+
subtitle: i18n.baseText("nodeCreator.triggerHelperPanel.selectATriggerDescription"),
|
|
604
246
|
items: [
|
|
605
247
|
{
|
|
606
248
|
key: MANUAL_TRIGGER_NODE_TYPE,
|
|
@@ -609,8 +251,8 @@ function TriggerView() {
|
|
|
609
251
|
properties: {
|
|
610
252
|
group: [],
|
|
611
253
|
name: MANUAL_TRIGGER_NODE_TYPE,
|
|
612
|
-
displayName:
|
|
613
|
-
description:
|
|
254
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.manualTriggerDisplayName"),
|
|
255
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.manualTriggerDescription"),
|
|
614
256
|
icon: "fa:mouse-pointer"
|
|
615
257
|
}
|
|
616
258
|
},
|
|
@@ -630,8 +272,8 @@ function TriggerView() {
|
|
|
630
272
|
properties: {
|
|
631
273
|
group: [],
|
|
632
274
|
name: SCHEDULE_TRIGGER_NODE_TYPE,
|
|
633
|
-
displayName:
|
|
634
|
-
description:
|
|
275
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName"),
|
|
276
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDescription"),
|
|
635
277
|
icon: "fa:clock"
|
|
636
278
|
}
|
|
637
279
|
},
|
|
@@ -642,8 +284,8 @@ function TriggerView() {
|
|
|
642
284
|
properties: {
|
|
643
285
|
group: [],
|
|
644
286
|
name: WEBHOOK_NODE_TYPE,
|
|
645
|
-
displayName:
|
|
646
|
-
description:
|
|
287
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDisplayName"),
|
|
288
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDescription"),
|
|
647
289
|
iconData: {
|
|
648
290
|
type: "file",
|
|
649
291
|
fileBuffer: "/static/webhook-icon.svg"
|
|
@@ -657,8 +299,8 @@ function TriggerView() {
|
|
|
657
299
|
properties: {
|
|
658
300
|
group: [],
|
|
659
301
|
name: FORM_TRIGGER_NODE_TYPE,
|
|
660
|
-
displayName:
|
|
661
|
-
description:
|
|
302
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.formTriggerDisplayName"),
|
|
303
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.formTriggerDescription"),
|
|
662
304
|
iconData: {
|
|
663
305
|
type: "file",
|
|
664
306
|
fileBuffer: "/static/form-grey.svg"
|
|
@@ -672,8 +314,8 @@ function TriggerView() {
|
|
|
672
314
|
properties: {
|
|
673
315
|
group: [],
|
|
674
316
|
name: EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,
|
|
675
|
-
displayName:
|
|
676
|
-
description:
|
|
317
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDisplayName"),
|
|
318
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDescription"),
|
|
677
319
|
icon: "fa:sign-out-alt"
|
|
678
320
|
}
|
|
679
321
|
},
|
|
@@ -684,8 +326,8 @@ function TriggerView() {
|
|
|
684
326
|
properties: {
|
|
685
327
|
group: [],
|
|
686
328
|
name: CHAT_TRIGGER_NODE_TYPE,
|
|
687
|
-
displayName:
|
|
688
|
-
description:
|
|
329
|
+
displayName: i18n.baseText("nodeCreator.triggerHelperPanel.chatTriggerDisplayName"),
|
|
330
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.chatTriggerDescription"),
|
|
689
331
|
icon: "fa:comments"
|
|
690
332
|
}
|
|
691
333
|
},
|
|
@@ -703,7 +345,7 @@ function TriggerView() {
|
|
|
703
345
|
return view;
|
|
704
346
|
}
|
|
705
347
|
function RegularView(nodes) {
|
|
706
|
-
const
|
|
348
|
+
const i18n = useI18n();
|
|
707
349
|
const popularItemsSubcategory = [
|
|
708
350
|
SET_NODE_TYPE,
|
|
709
351
|
CODE_NODE_TYPE,
|
|
@@ -715,7 +357,7 @@ function RegularView(nodes) {
|
|
|
715
357
|
};
|
|
716
358
|
const view = {
|
|
717
359
|
value: REGULAR_NODE_CREATOR_VIEW,
|
|
718
|
-
title:
|
|
360
|
+
title: i18n.baseText("nodeCreator.triggerHelperPanel.whatHappensNext"),
|
|
719
361
|
items: [
|
|
720
362
|
{
|
|
721
363
|
key: DEFAULT_SUBCATEGORY,
|
|
@@ -736,12 +378,12 @@ function RegularView(nodes) {
|
|
|
736
378
|
sections: [
|
|
737
379
|
{
|
|
738
380
|
key: "popular",
|
|
739
|
-
title:
|
|
381
|
+
title: i18n.baseText("nodeCreator.sectionNames.popular"),
|
|
740
382
|
items: popularItemsSubcategory
|
|
741
383
|
},
|
|
742
384
|
{
|
|
743
385
|
key: "addOrRemove",
|
|
744
|
-
title:
|
|
386
|
+
title: i18n.baseText("nodeCreator.sectionNames.transform.addOrRemove"),
|
|
745
387
|
items: [
|
|
746
388
|
FILTER_NODE_TYPE,
|
|
747
389
|
REMOVE_DUPLICATES_NODE_TYPE,
|
|
@@ -751,12 +393,12 @@ function RegularView(nodes) {
|
|
|
751
393
|
},
|
|
752
394
|
{
|
|
753
395
|
key: "combine",
|
|
754
|
-
title:
|
|
396
|
+
title: i18n.baseText("nodeCreator.sectionNames.transform.combine"),
|
|
755
397
|
items: [SUMMARIZE_NODE_TYPE, AGGREGATE_NODE_TYPE, MERGE_NODE_TYPE]
|
|
756
398
|
},
|
|
757
399
|
{
|
|
758
400
|
key: "convert",
|
|
759
|
-
title:
|
|
401
|
+
title: i18n.baseText("nodeCreator.sectionNames.transform.convert"),
|
|
760
402
|
items: [
|
|
761
403
|
HTML_NODE_TYPE,
|
|
762
404
|
MARKDOWN_NODE_TYPE,
|
|
@@ -781,7 +423,7 @@ function RegularView(nodes) {
|
|
|
781
423
|
sections: [
|
|
782
424
|
{
|
|
783
425
|
key: "popular",
|
|
784
|
-
title:
|
|
426
|
+
title: i18n.baseText("nodeCreator.sectionNames.popular"),
|
|
785
427
|
items: [FILTER_NODE_TYPE, IF_NODE_TYPE, SPLIT_IN_BATCHES_NODE_TYPE, MERGE_NODE_TYPE]
|
|
786
428
|
}
|
|
787
429
|
]
|
|
@@ -797,7 +439,7 @@ function RegularView(nodes) {
|
|
|
797
439
|
sections: [
|
|
798
440
|
{
|
|
799
441
|
key: "popular",
|
|
800
|
-
title:
|
|
442
|
+
title: i18n.baseText("nodeCreator.sectionNames.popular"),
|
|
801
443
|
items: [HTTP_REQUEST_NODE_TYPE, WEBHOOK_NODE_TYPE, CODE_NODE_TYPE]
|
|
802
444
|
}
|
|
803
445
|
]
|
|
@@ -818,7 +460,7 @@ function RegularView(nodes) {
|
|
|
818
460
|
sections: [
|
|
819
461
|
{
|
|
820
462
|
key: "sendAndWait",
|
|
821
|
-
title:
|
|
463
|
+
title: i18n.baseText("nodeCreator.sectionNames.sendAndWait"),
|
|
822
464
|
items: getSendAndWaitNodes(nodes)
|
|
823
465
|
}
|
|
824
466
|
]
|
|
@@ -832,9 +474,9 @@ function RegularView(nodes) {
|
|
|
832
474
|
key: AI_NODE_CREATOR_VIEW,
|
|
833
475
|
type: "view",
|
|
834
476
|
properties: {
|
|
835
|
-
title:
|
|
477
|
+
title: i18n.baseText("nodeCreator.aiPanel.langchainAiNodes"),
|
|
836
478
|
icon: "robot",
|
|
837
|
-
description:
|
|
479
|
+
description: i18n.baseText("nodeCreator.aiPanel.nodesForAi"),
|
|
838
480
|
borderless: true
|
|
839
481
|
}
|
|
840
482
|
});
|
|
@@ -842,9 +484,9 @@ function RegularView(nodes) {
|
|
|
842
484
|
key: TRIGGER_NODE_CREATOR_VIEW,
|
|
843
485
|
type: "view",
|
|
844
486
|
properties: {
|
|
845
|
-
title:
|
|
487
|
+
title: i18n.baseText("nodeCreator.triggerHelperPanel.addAnotherTrigger"),
|
|
846
488
|
icon: "bolt",
|
|
847
|
-
description:
|
|
489
|
+
description: i18n.baseText("nodeCreator.triggerHelperPanel.addAnotherTriggerDescription")
|
|
848
490
|
}
|
|
849
491
|
});
|
|
850
492
|
return view;
|
|
@@ -970,7 +612,7 @@ const useKeyboardNavigation = defineStore("nodeCreatorKeyboardNavigation", () =>
|
|
|
970
612
|
const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
971
613
|
const nodeCreatorStore = useNodeCreatorStore();
|
|
972
614
|
const { getActiveItemIndex } = useKeyboardNavigation();
|
|
973
|
-
const
|
|
615
|
+
const i18n = useI18n();
|
|
974
616
|
const settingsStore = useSettingsStore();
|
|
975
617
|
const viewStacks = ref([]);
|
|
976
618
|
const activeStackItems = computed(() => {
|
|
@@ -1022,10 +664,15 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1022
664
|
function getLastActiveStack() {
|
|
1023
665
|
return viewStacks.value[viewStacks.value.length - 1];
|
|
1024
666
|
}
|
|
667
|
+
function getAllNodeCreateElements() {
|
|
668
|
+
return nodeCreatorStore.mergedNodes.map(
|
|
669
|
+
(item) => transformNodeType(item)
|
|
670
|
+
);
|
|
671
|
+
}
|
|
1025
672
|
const globalSearchItemsDiff = computed(() => {
|
|
1026
673
|
const stack = getLastActiveStack();
|
|
1027
674
|
if (!stack?.search || isAiSubcategoryView(stack)) return [];
|
|
1028
|
-
const allNodes =
|
|
675
|
+
const allNodes = getAllNodeCreateElements();
|
|
1029
676
|
const filteredNodes = isAiRootView(stack) ? allNodes : filterOutAiNodes(allNodes);
|
|
1030
677
|
let globalSearchResult = extendItemsWithUUID(
|
|
1031
678
|
searchNodes(stack.search || "", filteredNodes)
|
|
@@ -1083,7 +730,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1083
730
|
const isSubnodesSection = !(subcategories[AI_SUBCATEGORY].includes(AI_CATEGORY_ROOT_NODES) || subcategories[AI_SUBCATEGORY].includes(AI_CATEGORY_MCP_NODES));
|
|
1084
731
|
let title = section;
|
|
1085
732
|
if (isSubnodesSection) {
|
|
1086
|
-
title = `${section} (${
|
|
733
|
+
title = `${section} (${i18n.baseText("nodeCreator.subnodes")})`;
|
|
1087
734
|
}
|
|
1088
735
|
if (subSection) {
|
|
1089
736
|
title = subSection;
|
|
@@ -1124,7 +771,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1124
771
|
nodesByConnectionType = useNodeTypesStore().visibleNodeTypesByInputConnectionTypeNames;
|
|
1125
772
|
relatedAIView = {
|
|
1126
773
|
properties: {
|
|
1127
|
-
title:
|
|
774
|
+
title: i18n.baseText("nodeCreator.aiPanel.aiNodes"),
|
|
1128
775
|
icon: "robot"
|
|
1129
776
|
}
|
|
1130
777
|
};
|
|
@@ -1214,12 +861,6 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1214
861
|
}
|
|
1215
862
|
updateCurrentViewStack({ baselineItems: stackItems });
|
|
1216
863
|
}
|
|
1217
|
-
function extendItemsWithUUID(items) {
|
|
1218
|
-
return items.map((item) => ({
|
|
1219
|
-
...item,
|
|
1220
|
-
uuid: `${item.key}-${v4()}`
|
|
1221
|
-
}));
|
|
1222
|
-
}
|
|
1223
864
|
function pushViewStack(stack, options = {}) {
|
|
1224
865
|
if (options.resetStacks) {
|
|
1225
866
|
resetViewStacks();
|
|
@@ -1231,7 +872,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1231
872
|
viewStacks.value.push({
|
|
1232
873
|
...stack,
|
|
1233
874
|
uuid: newStackUuid,
|
|
1234
|
-
transitionDirection: "in",
|
|
875
|
+
transitionDirection: options.transitionDirection ?? "in",
|
|
1235
876
|
activeIndex: 0
|
|
1236
877
|
});
|
|
1237
878
|
setStackBaselineItems();
|
|
@@ -1267,7 +908,8 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
|
|
|
1267
908
|
resetViewStacks,
|
|
1268
909
|
updateCurrentViewStack,
|
|
1269
910
|
pushViewStack,
|
|
1270
|
-
popViewStack
|
|
911
|
+
popViewStack,
|
|
912
|
+
getAllNodeCreateElements
|
|
1271
913
|
};
|
|
1272
914
|
});
|
|
1273
915
|
function mapLegacyConnectionsToCanvasConnections(legacyConnections, nodes) {
|
|
@@ -1453,6 +1095,9 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
|
|
|
1453
1095
|
function setMergeNodes(nodes) {
|
|
1454
1096
|
mergedNodes.value = nodes;
|
|
1455
1097
|
}
|
|
1098
|
+
function removeNodeFromMergedNodes(nodeName) {
|
|
1099
|
+
mergedNodes.value = mergedNodes.value.filter((n) => n.name !== nodeName);
|
|
1100
|
+
}
|
|
1456
1101
|
function setActions(nodes) {
|
|
1457
1102
|
actions.value = nodes;
|
|
1458
1103
|
}
|
|
@@ -1686,16 +1331,17 @@ const useNodeCreatorStore = defineStore(STORES.NODE_CREATOR, () => {
|
|
|
1686
1331
|
showScrim,
|
|
1687
1332
|
mergedNodes,
|
|
1688
1333
|
actions,
|
|
1334
|
+
allNodeCreatorNodes,
|
|
1689
1335
|
setShowScrim,
|
|
1690
1336
|
setSelectedView,
|
|
1691
1337
|
setOpenSource,
|
|
1692
1338
|
setActions,
|
|
1693
1339
|
setMergeNodes,
|
|
1340
|
+
removeNodeFromMergedNodes,
|
|
1694
1341
|
setNodeCreatorState,
|
|
1695
1342
|
openSelectiveNodeCreator,
|
|
1696
1343
|
openNodeCreatorForConnectingNode,
|
|
1697
1344
|
openNodeCreatorForTriggerNodes,
|
|
1698
|
-
allNodeCreatorNodes,
|
|
1699
1345
|
onCreatorOpened,
|
|
1700
1346
|
onNodeFilterChanged,
|
|
1701
1347
|
onCategoryExpanded,
|
|
@@ -1783,7 +1429,7 @@ function useCanvasOperations({ router }) {
|
|
|
1783
1429
|
const nodeCreatorStore = useNodeCreatorStore();
|
|
1784
1430
|
const executionsStore = useExecutionsStore();
|
|
1785
1431
|
const projectsStore = useProjectsStore();
|
|
1786
|
-
const
|
|
1432
|
+
const i18n = useI18n();
|
|
1787
1433
|
const toast = useToast();
|
|
1788
1434
|
const workflowHelpers = useWorkflowHelpers({ router });
|
|
1789
1435
|
const nodeHelpers = useNodeHelpers();
|
|
@@ -2105,7 +1751,7 @@ function useCanvasOperations({ router }) {
|
|
|
2105
1751
|
lastAddedNode = newNode;
|
|
2106
1752
|
addedNodes.push(newNode);
|
|
2107
1753
|
} catch (error) {
|
|
2108
|
-
toast.showError(error,
|
|
1754
|
+
toast.showError(error, i18n.baseText("error"));
|
|
2109
1755
|
console.error(error);
|
|
2110
1756
|
continue;
|
|
2111
1757
|
}
|
|
@@ -2141,7 +1787,7 @@ function useCanvasOperations({ router }) {
|
|
|
2141
1787
|
function checkMaxNodesOfTypeReached(nodeTypeDescription) {
|
|
2142
1788
|
if (nodeTypeDescription.maxNodes !== void 0 && workflowHelpers.getNodeTypeCount(nodeTypeDescription.name) >= nodeTypeDescription.maxNodes) {
|
|
2143
1789
|
throw new Error(
|
|
2144
|
-
|
|
1790
|
+
i18n.baseText("nodeView.showMessage.showMaxNodeTypeError.message", {
|
|
2145
1791
|
adjustToNumber: nodeTypeDescription.maxNodes,
|
|
2146
1792
|
interpolate: { nodeTypeDataDisplayName: nodeTypeDescription.displayName }
|
|
2147
1793
|
})
|
|
@@ -2152,7 +1798,7 @@ function useCanvasOperations({ router }) {
|
|
|
2152
1798
|
checkMaxNodesOfTypeReached(nodeTypeDescription);
|
|
2153
1799
|
const nodeData = resolveNodeData(node, nodeTypeDescription);
|
|
2154
1800
|
if (!nodeData) {
|
|
2155
|
-
throw new Error(
|
|
1801
|
+
throw new Error(i18n.baseText("nodeViewV2.showError.failedToCreateNode"));
|
|
2156
1802
|
}
|
|
2157
1803
|
workflowsStore.addNode(nodeData);
|
|
2158
1804
|
if (options.trackHistory) {
|
|
@@ -2446,7 +2092,7 @@ function useCanvasOperations({ router }) {
|
|
|
2446
2092
|
return getNewNodePosition(workflowsStore.allNodes, position, pushOffsets);
|
|
2447
2093
|
}
|
|
2448
2094
|
function resolveNodeName(node) {
|
|
2449
|
-
const localizedName =
|
|
2095
|
+
const localizedName = i18n.localizeNodeName(node.name, node.type);
|
|
2450
2096
|
node.name = uniqueNodeName(localizedName);
|
|
2451
2097
|
}
|
|
2452
2098
|
function resolveNodeWebhook(node, nodeTypeDescription) {
|
|
@@ -2690,8 +2336,8 @@ function useCanvasOperations({ router }) {
|
|
|
2690
2336
|
const filter = typeof input === "object" && "filter" in input ? input.filter : void 0;
|
|
2691
2337
|
if (filter?.nodes.length && !filter.nodes.includes(sourceNode.type)) {
|
|
2692
2338
|
toast.showToast({
|
|
2693
|
-
title:
|
|
2694
|
-
message:
|
|
2339
|
+
title: i18n.baseText("nodeView.showError.nodeNodeCompatible.title"),
|
|
2340
|
+
message: i18n.baseText("nodeView.showError.nodeNodeCompatible.message", {
|
|
2695
2341
|
interpolate: { sourceNodeName: sourceNode.name, targetNodeName: targetNode.name }
|
|
2696
2342
|
}),
|
|
2697
2343
|
type: "error",
|
|
@@ -2731,8 +2377,8 @@ function useCanvasOperations({ router }) {
|
|
|
2731
2377
|
workflowsStore.resetWorkflow();
|
|
2732
2378
|
workflowsStore.resetState();
|
|
2733
2379
|
workflowsStore.currentWorkflowExecutions = [];
|
|
2380
|
+
workflowsStore.setActiveExecutionId(void 0);
|
|
2734
2381
|
uiStore.resetLastInteractedWith();
|
|
2735
|
-
uiStore.removeActiveAction("workflowRunning");
|
|
2736
2382
|
uiStore.stateIsDirty = false;
|
|
2737
2383
|
executionsStore.activeExecution = null;
|
|
2738
2384
|
nodeHelpers.credentialsUpdated.value = false;
|
|
@@ -2762,9 +2408,9 @@ function useCanvasOperations({ router }) {
|
|
|
2762
2408
|
}
|
|
2763
2409
|
async function addImportedNodesToWorkflow(data, { trackBulk = true, trackHistory = false } = {}) {
|
|
2764
2410
|
const nodeNameTable = {};
|
|
2765
|
-
const newNodeNames =
|
|
2411
|
+
const newNodeNames = new Set((data.nodes ?? []).map((node) => node.name));
|
|
2766
2412
|
if (!data.nodes) {
|
|
2767
|
-
throw new Error(
|
|
2413
|
+
throw new Error(i18n.baseText("nodeView.noNodesGivenToAdd"));
|
|
2768
2414
|
}
|
|
2769
2415
|
const nodeTypesCount = workflowHelpers.getNodeTypesMaxCount();
|
|
2770
2416
|
let oldName;
|
|
@@ -2783,7 +2429,8 @@ function useCanvasOperations({ router }) {
|
|
|
2783
2429
|
}
|
|
2784
2430
|
}
|
|
2785
2431
|
oldName = node.name;
|
|
2786
|
-
const localized =
|
|
2432
|
+
const localized = i18n.localizeNodeName(node.name, node.type);
|
|
2433
|
+
newNodeNames.delete(oldName);
|
|
2787
2434
|
newName = uniqueNodeName(localized, Array.from(newNodeNames));
|
|
2788
2435
|
newNodeNames.add(newName);
|
|
2789
2436
|
nodeNameTable[oldName] = newName;
|
|
@@ -2829,8 +2476,8 @@ function useCanvasOperations({ router }) {
|
|
|
2829
2476
|
for (const nodeName of Object.keys(data.pinData)) {
|
|
2830
2477
|
if (!pinDataSuccess) {
|
|
2831
2478
|
toast.showError(
|
|
2832
|
-
new Error(
|
|
2833
|
-
|
|
2479
|
+
new Error(i18n.baseText("ndv.pinData.error.tooLarge.description")),
|
|
2480
|
+
i18n.baseText("ndv.pinData.error.tooLarge.title")
|
|
2834
2481
|
);
|
|
2835
2482
|
continue;
|
|
2836
2483
|
}
|
|
@@ -2945,7 +2592,7 @@ function useCanvasOperations({ router }) {
|
|
|
2945
2592
|
}
|
|
2946
2593
|
return workflowData;
|
|
2947
2594
|
} catch (error) {
|
|
2948
|
-
toast.showError(error,
|
|
2595
|
+
toast.showError(error, i18n.baseText("nodeView.showError.importWorkflowData.title"));
|
|
2949
2596
|
return {};
|
|
2950
2597
|
}
|
|
2951
2598
|
}
|
|
@@ -2978,7 +2625,7 @@ function useCanvasOperations({ router }) {
|
|
|
2978
2625
|
try {
|
|
2979
2626
|
workflowData = await workflowsStore.getWorkflowFromUrl(url);
|
|
2980
2627
|
} catch (error) {
|
|
2981
|
-
toast.showError(error,
|
|
2628
|
+
toast.showError(error, i18n.baseText("nodeView.showError.getWorkflowDataFromUrl.title"));
|
|
2982
2629
|
return;
|
|
2983
2630
|
} finally {
|
|
2984
2631
|
canvasStore.stopLoading();
|
|
@@ -3069,7 +2716,7 @@ function useCanvasOperations({ router }) {
|
|
|
3069
2716
|
try {
|
|
3070
2717
|
data = await workflowsStore.getExecution(executionId);
|
|
3071
2718
|
} catch (error) {
|
|
3072
|
-
toast.showError(error,
|
|
2719
|
+
toast.showError(error, i18n.baseText("nodeView.showError.openExecution.title"));
|
|
3073
2720
|
return;
|
|
3074
2721
|
}
|
|
3075
2722
|
if (data === void 0) {
|
|
@@ -3103,9 +2750,17 @@ function useCanvasOperations({ router }) {
|
|
|
3103
2750
|
workflowsStore.setConnections(workflow.connections);
|
|
3104
2751
|
}
|
|
3105
2752
|
await addNodes(convertedNodes ?? []);
|
|
3106
|
-
await workflowsStore.
|
|
2753
|
+
await workflowsStore.getNewWorkflowDataAndMakeShareable(name, projectsStore.currentProjectId);
|
|
3107
2754
|
workflowsStore.addToWorkflowMetadata({ templateId: `${id}` });
|
|
3108
2755
|
}
|
|
2756
|
+
function tryToOpenSubworkflowInNewTab(nodeId) {
|
|
2757
|
+
const node = workflowsStore.getNodeById(nodeId);
|
|
2758
|
+
if (!node) return false;
|
|
2759
|
+
const subWorkflowId = getSubworkflowId(node);
|
|
2760
|
+
if (!subWorkflowId) return false;
|
|
2761
|
+
window.open(`${rootStore.baseUrl}workflow/${subWorkflowId}`, "_blank");
|
|
2762
|
+
return true;
|
|
2763
|
+
}
|
|
3109
2764
|
return {
|
|
3110
2765
|
lastClickPosition,
|
|
3111
2766
|
editableWorkflow,
|
|
@@ -3155,29 +2810,25 @@ function useCanvasOperations({ router }) {
|
|
|
3155
2810
|
resolveNodeWebhook,
|
|
3156
2811
|
openExecution,
|
|
3157
2812
|
toggleChatOpen,
|
|
3158
|
-
importTemplate
|
|
2813
|
+
importTemplate,
|
|
2814
|
+
tryToOpenSubworkflowInNewTab
|
|
3159
2815
|
};
|
|
3160
2816
|
}
|
|
3161
2817
|
export {
|
|
3162
2818
|
AINodesView as A,
|
|
3163
2819
|
RegularView as R,
|
|
3164
2820
|
TriggerView as T,
|
|
3165
|
-
|
|
3166
|
-
|
|
2821
|
+
useCanvasOperations as a,
|
|
2822
|
+
capitalize as b,
|
|
3167
2823
|
createCanvasConnectionHandleString as c,
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
2824
|
+
checkOverlap as d,
|
|
2825
|
+
mapLegacyConnectionsToCanvasConnections as e,
|
|
2826
|
+
useViewStacks as f,
|
|
2827
|
+
camelCase as g,
|
|
2828
|
+
useKeyboardNavigation as h,
|
|
3173
2829
|
insertSpacersBetweenEndpoints as i,
|
|
3174
|
-
|
|
3175
|
-
useKeyboardNavigation as k,
|
|
3176
|
-
AIView as l,
|
|
2830
|
+
AIView as j,
|
|
3177
2831
|
mapLegacyEndpointsToCanvasConnectionPort as m,
|
|
3178
|
-
flattenCreateElements as n,
|
|
3179
2832
|
parseCanvasConnectionHandleString as p,
|
|
3180
|
-
|
|
3181
|
-
transformNodeType as t,
|
|
3182
|
-
upperFirst as u
|
|
2833
|
+
useNodeCreatorStore as u
|
|
3183
2834
|
};
|