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.
Files changed (120) hide show
  1. package/dist/assets/{AnimatedSpinner-BrkRvAXQ.js → AnimatedSpinner-hbTZDd93.js} +1 -1
  2. 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
  3. package/dist/assets/{AuthView-ehh7NFh5.js → AuthView-8SLMP0H_.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-DUBgoMXw.js → CanvasChatSwitch-Dt8TgNJg.js} +22 -10
  5. package/dist/assets/{ChangePasswordView-BLFb7_-o.js → ChangePasswordView-DIRyDp89.js} +3 -3
  6. package/dist/assets/CollectionParameter-Cj4t6-hd.js +4 -0
  7. package/dist/assets/{CredentialsView-1uYUpp0G.js → CredentialsView-B6-VxAJ6.js} +26 -11
  8. package/dist/assets/{DemoFooter-CNfkqkRC.js → DemoFooter-CIHwH5PG.js} +8 -8
  9. package/dist/assets/{ErrorView-CmYweWFA.js → ErrorView-C7i0TZwT.js} +1 -1
  10. 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
  11. package/dist/assets/{ExecutionsView-fotg1R4V.js → ExecutionsView-C_YtciAr.js} +10 -9
  12. package/dist/assets/{FileSaver.min-CcnqpaV-.js → FileSaver.min-bgn7Q9Gt.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BYR4RzWw.js → FixedCollectionParameter-BPCJ5aaq.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-CQMKtpr-.js → ForgotMyPasswordView-DyUaGd6Z.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-B-9BU5qw.js → InsightsChartAverageRuntime-BB2I2vpV.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-Bd1BlFEm.js → InsightsChartFailed-CN_Rl3Bl.js} +4 -4
  17. package/dist/assets/{InsightsChartFailureRate-DPTCueAp.js → InsightsChartFailureRate-CHKlg6tg.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-CSVKB08W.js → InsightsChartTimeSaved-Cd05cM8q.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-Bxjmisao.js → InsightsChartTotal-ChAO7myf.js} +4 -4
  20. package/dist/assets/{InsightsDashboard-5cOORj5z.js → InsightsDashboard-BeCfBVUz.js} +10 -10
  21. package/dist/assets/{InsightsPaywall-Bdo_3Ic_.js → InsightsPaywall-Chz8CDc3.js} +1 -1
  22. package/dist/assets/{InsightsSummary-DB62HhNM.js → InsightsSummary-MECenLJQ.js} +1 -1
  23. package/dist/assets/{InsightsTableWorkflows-BEC5Yh0b.js → InsightsTableWorkflows-5rpYY7YT.js} +2 -2
  24. package/dist/assets/{Logo-CK8euEWT.js → Logo-DUDCllkm.js} +1 -1
  25. package/dist/assets/{LogsPanel-CrGEYFLo.js → LogsPanel-D9r5AcQH.js} +75 -106
  26. package/dist/assets/{LogsPanel-DLC2TAqh.css → LogsPanel-mTaFEGk_.css} +38 -34
  27. package/dist/assets/{MainHeader-CEPLiR-5.css → MainHeader-CEMGASqv.css} +18 -11
  28. package/dist/assets/{MainHeader-C7XOaZKu.js → MainHeader-DkKOOZ_D.js} +145 -79
  29. package/dist/assets/{MainSidebar-CKMiDGvH.css → MainSidebar-D1_1YFQZ.css} +13 -12
  30. package/dist/assets/{MainSidebar-DD_ugRL3.js → MainSidebar-ZUBIWeXm.js} +36 -19
  31. package/dist/assets/{NodeCreation-S2FoBcnW.js → NodeCreation-DCfAFuL5.js} +10 -5
  32. package/dist/assets/{NodeCreator-D9fmPdS2.css → NodeCreator-D18StsVZ.css} +1021 -174
  33. package/dist/assets/{NodeCreator-D6TKVgLu.js → NodeCreator-a0YVv1IE.js} +863 -418
  34. package/dist/assets/{NodeDetailsView-DtvMtBqp.js → NodeDetailsView-C5_hVJzj.js} +60 -47
  35. package/dist/assets/{NodeDetailsView-CGgV4Pn_.css → NodeDetailsView-pYP-34nS.css} +20 -20
  36. package/dist/assets/{NodeView-BPhaaoWK.js → NodeView-Bk9h8GYy.js} +49 -25
  37. package/dist/assets/{ProjectCardBadge-C_L_pqWA.js → ProjectCardBadge-DRlDZx3d.js} +38 -2
  38. package/dist/assets/{ProjectHeader-C0FZTxjm.js → ProjectHeader-DNm605Kk.js} +106 -64
  39. package/dist/assets/{ProjectSettings-DlggJ6Ti.js → ProjectSettings-Dge_6KaR.js} +3 -2
  40. 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
  41. package/dist/assets/{ResourcesListLayout-HzoSFUaj.js → ResourcesListLayout-Bbl-1i4l.js} +156 -53
  42. package/dist/assets/{ResourcesListLayout-CtGME7aU.css → ResourcesListLayout-DuNjbsMn.css} +8 -8
  43. package/dist/assets/{RunData-C9dtm1M2.css → RunData-DQeENuzG.css} +12 -2
  44. package/dist/assets/{RunData-D8Eax0cQ.js → RunData-b0RE2JWc.js} +418 -207
  45. package/dist/assets/{RunDataAi-BF2gZZGr.css → RunDataAi-D9VLFXIf.css} +10 -51
  46. package/dist/assets/{RunDataAi-BUnCQIRN.js → RunDataAi-DnWcCR_0.js} +27 -310
  47. package/dist/assets/{RunDataJson-DXd3nZxI.js → RunDataJson-CptVuHuA.js} +7 -7
  48. package/dist/assets/{RunDataJsonActions-aivOaol2.js → RunDataJsonActions-3jjDztw7.js} +1 -1
  49. package/dist/assets/RunDataParsedAiContent-9EEUzCKp.css +176 -0
  50. package/dist/assets/RunDataParsedAiContent-BbXv-NPD.js +148 -0
  51. package/dist/assets/{RunDataSearch-DJ9BZGTu.js → RunDataSearch-B90wjsDA.js} +1 -1
  52. package/dist/assets/{RunDataTable-vEPCwbcC.js → RunDataTable-CpS78GlT.js} +3 -3
  53. package/dist/assets/{SamlOnboarding--OTxMEws.js → SamlOnboarding-Ch9K5rRW.js} +3 -3
  54. package/dist/assets/{SettingsApiView-BulxWyyY.js → SettingsApiView-9GU5n_rm.js} +1 -1
  55. package/dist/assets/{SettingsCommunityNodesView-4wwPXFO2.js → SettingsCommunityNodesView-CPnVRzNX.js} +24 -11
  56. package/dist/assets/{SettingsExternalSecrets-zt7dxBKK.js → SettingsExternalSecrets-D7xTMV9h.js} +1 -1
  57. package/dist/assets/{SettingsLdapView-xneO6UIv.js → SettingsLdapView-OfrjGKkt.js} +1 -1
  58. package/dist/assets/{SettingsLogStreamingView-_h8wUzum.js → SettingsLogStreamingView-C_VnOaeX.js} +1 -1
  59. package/dist/assets/{SettingsPersonalView-CwYMP4sk.js → SettingsPersonalView-Dm24akPV.js} +14 -13
  60. package/dist/assets/{SettingsSourceControl-B9Tg93u3.js → SettingsSourceControl-DDCmL82j.js} +1 -1
  61. package/dist/assets/{SettingsSso-XaL1PzfW.js → SettingsSso-BGGQ0Cpg.js} +14 -1
  62. package/dist/assets/{SettingsUsageAndPlan-Ci15FW81.js → SettingsUsageAndPlan-BzO_zdkH.js} +1 -1
  63. package/dist/assets/{SettingsUsersView-DBJV4vSK.js → SettingsUsersView-DHQUqhqB.js} +1 -1
  64. package/dist/assets/{SettingsView-DMzdPF-1.js → SettingsView-CbtAqjOX.js} +1 -1
  65. package/dist/assets/{SetupView-BqWgdvDq.js → SetupView-BME1OE6U.js} +3 -3
  66. package/dist/assets/{SetupWorkflowCredentialsButton-B2wnuUnF.js → SetupWorkflowCredentialsButton-DZr4TCPC.js} +1 -1
  67. package/dist/assets/{SetupWorkflowFromTemplateView-BwC_wFSc.js → SetupWorkflowFromTemplateView-CPkKEY04.js} +3 -3
  68. package/dist/assets/{SigninView-DpTLJJwD.js → SigninView-DUeRvOiY.js} +3 -3
  69. package/dist/assets/{SignoutView-dkTtOCo1.js → SignoutView-BC7SBunZ.js} +1 -1
  70. package/dist/assets/{SignupView-CJFJJO3L.js → SignupView-B5ecYJ2q.js} +3 -3
  71. package/dist/assets/{TemplateDetails-84YElIBA.js → TemplateDetails-DjanZgC1.js} +1 -1
  72. package/dist/assets/{TemplateList-CGsfKuVA.js → TemplateList-8TyNGxY-.js} +1 -1
  73. package/dist/assets/{TemplatesCollectionView-2y8KZk0I.js → TemplatesCollectionView-BkH4pJCv.js} +5 -5
  74. package/dist/assets/{TemplatesSearchView-DgosiOzl.js → TemplatesSearchView-Bcdhi1SL.js} +3 -3
  75. package/dist/assets/{TemplatesView-CgQSZO4a.js → TemplatesView-De2XB6We.js} +1 -1
  76. package/dist/assets/{TemplatesWorkflowView-2pSUmAbX.js → TemplatesWorkflowView-BVnwtrMa.js} +5 -5
  77. package/dist/assets/{TestDefinitionEditView-C26sWE7p.js → TestDefinitionEditView-DjmPnrTk.js} +7 -7
  78. package/dist/assets/{TestDefinitionListView-Cyl6bsLP.js → TestDefinitionListView-BL2s_qBZ.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-CfIZ0atk.js → TestDefinitionNewView-B9BqJZST.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-CYg7HBL-.js → TestDefinitionRootView-AlWyxbc0.js} +1 -1
  81. package/dist/assets/{VariablesView-BFE9B0_b.js → VariablesView-BZCvPfan.js} +4 -3
  82. package/dist/assets/{WorkerView-BUMCMS_B.js → WorkerView-CigxqnWi.js} +6 -6
  83. package/dist/assets/{WorkflowActivator-BDLto9c0.js → WorkflowActivator-B7jRy4L1.js} +8 -4
  84. package/dist/assets/{WorkflowActivator-DAyH7N29.css → WorkflowActivator-DrMTmuTZ.css} +2 -2
  85. package/dist/assets/{WorkflowExecutionsInfoAccordion-manN-WIj.js → WorkflowExecutionsInfoAccordion-C_ZycbsF.js} +1 -1
  86. package/dist/assets/{WorkflowExecutionsLandingPage-BzGmpGvf.js → WorkflowExecutionsLandingPage-DOqrfKlC.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsPreview-CNEV2lom.js → WorkflowExecutionsPreview-B4Cj2gXW.js} +6 -6
  88. package/dist/assets/{WorkflowExecutionsView-WiNvtAmD.js → WorkflowExecutionsView-RXfP7zkJ.js} +11 -9
  89. package/dist/assets/{WorkflowHistory-6uJJqB4x.js → WorkflowHistory-DrXrRwIS.js} +37 -19
  90. package/dist/assets/{WorkflowOnboardingView-CPt_AUR-.js → WorkflowOnboardingView-CXH1vCW2.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-CHUEX6H6.js → WorkflowPreview-B_MuFEV8.js} +1 -1
  92. package/dist/assets/{WorkflowsView-B2_HJCJ5.css → WorkflowsView-CQvTAWQ0.css} +24 -13
  93. package/dist/assets/{WorkflowsView-DbGBRbfc.js → WorkflowsView-D90hfJ35.js} +300 -158
  94. package/dist/assets/{chartjs.utils-C--HONKb.js → chartjs.utils-DalQn9bk.js} +2 -2
  95. package/dist/assets/{dateFormatter-DbKqmK4w.js → dateFormatter-BPfJSa6q.js} +1 -1
  96. package/dist/assets/{easyAiWorkflowUtils-BWgfZ0am.js → easyAiWorkflowUtils-kgtpBx2h.js} +1 -1
  97. package/dist/assets/{global-link-actions-COf-9vBh.js → global-link-actions-CnWOMvqA.js} +1 -1
  98. package/dist/assets/{import-curl-BiXaU2jk.js → import-curl-BvX_O56D.js} +1 -1
  99. package/dist/assets/{index-B6xE9gZ1.js → index-Bb2NNknG.js} +1 -1
  100. package/dist/assets/{index-BLAboPd2.js → index-DZ6VpjNj.js} +4635 -2824
  101. package/dist/assets/{index-sq5ggyEC.css → index-yNaoC3fo.css} +363 -97
  102. package/dist/assets/{pickBy-gZHb6vZ2.js → pickBy-B_HGYyxS.js} +1 -1
  103. package/dist/assets/{templateActions-DCx74tPa.js → templateActions-DQfZ3ni5.js} +1 -1
  104. package/dist/assets/{useBeforeUnload-DbfysOS-.js → useBeforeUnload-Cu0LPVWe.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-CSuq_dYj.js → useCanvasMapping-CTTq6x8X.js} +62 -40
  106. package/dist/assets/{useCanvasMapping-cuXLM-h-.css → useCanvasMapping-VtpW_QZA.css} +6 -5
  107. package/dist/assets/{useCanvasOperations-C0pQBHW3.js → useCanvasOperations-u8oSDa_u.js} +96 -445
  108. package/dist/assets/{useClearExecutionButtonVisible-Cvfxw8xC.js → useClearExecutionButtonVisible-Dwc1_eG9.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-D2H5O6fT.js → useExecutionDebugging-rc72wLIp.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-C--m0pTQ.js → useExecutionHelpers-DqwMonFW.js} +2 -2
  111. package/dist/assets/{useImportCurlCommand-XFn6Ezp2.js → useImportCurlCommand-D_onuFvo.js} +19 -10
  112. package/dist/assets/useProjectPages-e8b03-5_.js +17 -0
  113. package/dist/assets/usePushConnection-wm-7Id6Q.js +629 -0
  114. package/dist/assets/{useTestDefinitionForm-2YP-8pAN.js → useTestDefinitionForm-DlUOnNC0.js} +1 -1
  115. package/dist/assets/{useWorkflowActivate-CvmIpy5T.js → useWorkflowActivate-65xML23U.js} +1 -1
  116. package/dist/assets/useWorkflowSaving-CUel20JA.js +66 -0
  117. package/dist/index.html +2 -2
  118. package/package.json +1 -1
  119. package/dist/assets/CollectionParameter-BaH_a73u.js +0 -4
  120. package/dist/assets/usePushConnection-x0iF1Axz.js +0 -537
@@ -1,38 +1,4 @@
1
- import { em as baseSlice, en as toString, eo as createCompounder, ep as SetCache, eq as arrayIncludes, er as cacheHas, es as baseRest, et as isArrayLikeObject, eu as baseFlatten, dY as CORE_NODES_CATEGORY, ev as DEFAULT_SUBCATEGORY, bn as v4, p as useSettingsStore, ew as AI_TRANSFORM_NODE_TYPE, bs as AI_SUBCATEGORY, ex as HUMAN_IN_THE_LOOP_CATEGORY, bt as AI_CATEGORY_AGENTS, ey as sortBy, dj as i18n, ez as AI_CATEGORY_OTHER_TOOLS, eA as SEND_AND_WAIT_OPERATION, eB as noCase, eC as AI_CATEGORY_DOCUMENT_LOADERS, eD as AI_CATEGORY_LANGUAGE_MODELS, eE as AI_CATEGORY_MEMORY, eF as AI_CATEGORY_OUTPUTPARSER, eG as AI_CATEGORY_RETRIEVERS, eH as AI_CATEGORY_TEXT_SPLITTERS, eI as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, eJ as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, c as useI18n, eK as AI_CATEGORY_TOOLS, eL as AI_CATEGORY_EMBEDDING, eM as AI_CATEGORY_VECTOR_STORES, eN as AI_UNCATEGORIZED_CATEGORY, eO as AI_OTHERS_NODE_CREATOR_VIEW, bm as NodeConnectionTypes, bz as useNodeTypesStore, aN as useTemplatesStore, eP as AI_NODE_CREATOR_VIEW, eQ as RSS_READ_NODE_TYPE, eR as EMAIL_SEND_NODE_TYPE, eS as SET_NODE_TYPE, eT as CODE_NODE_TYPE, eU as DATETIME_NODE_TYPE, eV as FILTER_NODE_TYPE, eW as REMOVE_DUPLICATES_NODE_TYPE, eX as SPLIT_OUT_NODE_TYPE, eY as LIMIT_NODE_TYPE, eZ as SUMMARIZE_NODE_TYPE, e_ as AGGREGATE_NODE_TYPE, e$ as MERGE_NODE_TYPE, e5 as HTML_NODE_TYPE, f0 as MARKDOWN_NODE_TYPE, f1 as XML_NODE_TYPE, f2 as CRYPTO_NODE_TYPE, f3 as EXTRACT_FROM_FILE_NODE_TYPE, f4 as CONVERT_TO_FILE_NODE_TYPE, f5 as COMPRESSION_NODE_TYPE, f6 as EDIT_IMAGE_NODE_TYPE, f7 as TRANSFORM_DATA_SUBCATEGORY, f8 as IF_NODE_TYPE, f9 as SPLIT_IN_BATCHES_NODE_TYPE, fa as FLOWS_CONTROL_SUBCATEGORY, fb as HTTP_REQUEST_NODE_TYPE, fc as WEBHOOK_NODE_TYPE, fd as HELPERS_SUBCATEGORY, fe as HITL_SUBCATEGORY, ff as TRIGGER_NODE_CREATOR_VIEW, fg as REGULAR_NODE_CREATOR_VIEW, fh as MANUAL_TRIGGER_NODE_TYPE, fi as EMAIL_IMAP_NODE_TYPE, fj as SCHEDULE_TRIGGER_NODE_TYPE, fk as FORM_TRIGGER_NODE_TYPE, dC as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bk as CHAT_TRIGGER_NODE_TYPE, fl as OTHER_TRIGGER_NODES_SUBCATEGORY, bu as AI_CATEGORY_CHAINS, O as defineStore, r as ref, q as computed, $ as useCanvasStore, fm as AI_CATEGORY_ROOT_NODES, fn as AI_CATEGORY_MCP_NODES, z as nextTick, fo as getThemedValue, H as useUIStore, bv as AI_CODE_NODE_TYPE, fp as AI_TRANSFORM_NODE_TYPE$1, fq as isValidCanvasConnectionMode, c6 as CanvasConnectionMode, c5 as isValidNodeConnectionType, Q as useWorkflowsStore, as as useNDVStore, aP as useExternalHooks, fr as isVueFlowConnection, bw as getNodeInputs, fs as CUSTOM_API_CALL_KEY, T as STORES, c9 as NODE_CREATOR_OPEN_SOURCES, ag as useTelemetry, Z as useRootStore, bR as useCredentialsStore, bU as useHistoryStore, E as useTagsStore, at as useExecutionsStore, a1 as useProjectsStore, a as useToast, a5 as useWorkflowHelpers, bA as useNodeHelpers, bf as useClipboard, ft as MCP_TRIGGER_NODE_TYPE, fu as UPDATE_WEBHOOK_ID_NODE_TYPES, dw as generateNodesGraph, fv as getNewNodePosition, fw as AddConnectionCommand, ay as STICKY_NODE_TYPE, by as getNodeOutputs, fx as RemoveConnectionCommand, aa as EnterpriseEditionFeature, cg as deepCopy, ee as isPresent, fy as RemoveNodeCommand, fz as RenameNodeCommand, bq as usePinnedData, fA as useDataSchema, fB as MoveNodeCommand, fC as DEFAULT_NODE_SIZE, fD as CONFIGURATION_NODE_SIZE, bx as getConnectionTypes, fE as generateOffsets, fF as CONFIGURABLE_NODE_SIZE, fG as PUSH_NODES_OFFSET, fH as AddNodeCommand, fI as NODE_SIZE, fJ as GRID_SIZE, fK as getNodeParameters } from "./index-BLAboPd2.js";
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 i18n2 = useI18n();
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: i18n2.baseText("nodeCreator.aiPanel.aiNodes"),
435
- subtitle: i18n2.baseText("nodeCreator.aiPanel.selectAiNode"),
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: i18n2.baseText("nodeCreator.aiPanel.linkItem.title"),
83
+ title: i18n.baseText("nodeCreator.aiPanel.linkItem.title"),
442
84
  icon: "box-open",
443
- description: i18n2.baseText("nodeCreator.aiPanel.linkItem.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: i18n2.baseText("nodeCreator.triggerHelperPanel.manualTriggerTag")
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: i18n2.baseText("nodeCreator.aiPanel.aiOtherNodes"),
101
+ title: i18n.baseText("nodeCreator.aiPanel.aiOtherNodes"),
460
102
  icon: "robot",
461
- description: i18n2.baseText("nodeCreator.aiPanel.aiOtherNodesDescription")
103
+ description: i18n.baseText("nodeCreator.aiPanel.aiOtherNodesDescription")
462
104
  }
463
105
  }
464
106
  ]
465
107
  };
466
108
  }
467
109
  function AINodesView(_nodes) {
468
- const i18n2 = useI18n();
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 = i18n2.baseText(localeKey);
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: i18n2.baseText("nodeCreator.aiPanel.aiOtherNodes"),
487
- subtitle: i18n2.baseText("nodeCreator.aiPanel.selectAiNode"),
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: i18n2.baseText("nodeCreator.sectionNames.popular"),
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 i18n2 = useI18n();
241
+ const i18n = useI18n();
600
242
  const view = {
601
243
  value: TRIGGER_NODE_CREATOR_VIEW,
602
- title: i18n2.baseText("nodeCreator.triggerHelperPanel.selectATrigger"),
603
- subtitle: i18n2.baseText("nodeCreator.triggerHelperPanel.selectATriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.manualTriggerDisplayName"),
613
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.manualTriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName"),
634
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDisplayName"),
646
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.formTriggerDisplayName"),
661
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.formTriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDisplayName"),
676
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDescription"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.chatTriggerDisplayName"),
688
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.chatTriggerDescription"),
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 i18n2 = useI18n();
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: i18n2.baseText("nodeCreator.triggerHelperPanel.whatHappensNext"),
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: i18n2.baseText("nodeCreator.sectionNames.popular"),
381
+ title: i18n.baseText("nodeCreator.sectionNames.popular"),
740
382
  items: popularItemsSubcategory
741
383
  },
742
384
  {
743
385
  key: "addOrRemove",
744
- title: i18n2.baseText("nodeCreator.sectionNames.transform.addOrRemove"),
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: i18n2.baseText("nodeCreator.sectionNames.transform.combine"),
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: i18n2.baseText("nodeCreator.sectionNames.transform.convert"),
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: i18n2.baseText("nodeCreator.sectionNames.popular"),
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: i18n2.baseText("nodeCreator.sectionNames.popular"),
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: i18n2.baseText("nodeCreator.sectionNames.sendAndWait"),
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: i18n2.baseText("nodeCreator.aiPanel.langchainAiNodes"),
477
+ title: i18n.baseText("nodeCreator.aiPanel.langchainAiNodes"),
836
478
  icon: "robot",
837
- description: i18n2.baseText("nodeCreator.aiPanel.nodesForAi"),
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: i18n2.baseText("nodeCreator.triggerHelperPanel.addAnotherTrigger"),
487
+ title: i18n.baseText("nodeCreator.triggerHelperPanel.addAnotherTrigger"),
846
488
  icon: "bolt",
847
- description: i18n2.baseText("nodeCreator.triggerHelperPanel.addAnotherTriggerDescription")
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 i18n2 = useI18n();
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 = nodeCreatorStore.mergedNodes.map((item) => transformNodeType(item));
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} (${i18n2.baseText("nodeCreator.subnodes")})`;
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: i18n2.baseText("nodeCreator.aiPanel.aiNodes"),
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 i18n2 = useI18n();
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, i18n2.baseText("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
- i18n2.baseText("nodeView.showMessage.showMaxNodeTypeError.message", {
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(i18n2.baseText("nodeViewV2.showError.failedToCreateNode"));
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 = i18n2.localizeNodeName(node.name, node.type);
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: i18n2.baseText("nodeView.showError.nodeNodeCompatible.title"),
2694
- message: i18n2.baseText("nodeView.showError.nodeNodeCompatible.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 = /* @__PURE__ */ new Set();
2411
+ const newNodeNames = new Set((data.nodes ?? []).map((node) => node.name));
2766
2412
  if (!data.nodes) {
2767
- throw new Error(i18n2.baseText("nodeView.noNodesGivenToAdd"));
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 = i18n2.localizeNodeName(node.name, node.type);
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(i18n2.baseText("ndv.pinData.error.tooLarge.description")),
2833
- i18n2.baseText("ndv.pinData.error.tooLarge.title")
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, i18n2.baseText("nodeView.showError.importWorkflowData.title"));
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, i18n2.baseText("nodeView.showError.getWorkflowDataFromUrl.title"));
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, i18n2.baseText("nodeView.showError.openExecution.title"));
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.getNewWorkflowData(name, projectsStore.currentProjectId);
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
- useNodeCreatorStore as a,
3166
- useCanvasOperations as b,
2821
+ useCanvasOperations as a,
2822
+ capitalize as b,
3167
2823
  createCanvasConnectionHandleString as c,
3168
- capitalize as d,
3169
- checkOverlap as e,
3170
- mapLegacyConnectionsToCanvasConnections as f,
3171
- formatTriggerActionName as g,
3172
- useViewStacks as h,
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
- camelCase as j,
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
- sortNodeCreateElements as s,
3181
- transformNodeType as t,
3182
- upperFirst as u
2833
+ useNodeCreatorStore as u
3183
2834
  };