n8n-editor-ui 1.45.0 → 1.45.1

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 (146) hide show
  1. package/.turbo/turbo-build.log +75 -75
  2. package/dist/assets/{AuthView-sBgr4ab5.js → AuthView-Bpw90ooz.js} +2 -2
  3. package/dist/assets/{AuthView-sBgr4ab5.js.map → AuthView-Bpw90ooz.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-WQFq3IW7.js → CanvasControls-CQPytmej.js} +2 -2
  5. package/dist/assets/{CanvasControls-WQFq3IW7.js.map → CanvasControls-CQPytmej.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-RoWelfJE.js → ChangePasswordView-tMFb4WIn.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-RoWelfJE.js.map → ChangePasswordView-tMFb4WIn.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-o9-pyF-D.js → CollectionParameter-CwgJAh2M.js} +2 -2
  9. package/dist/assets/CollectionParameter-CwgJAh2M.js.map +1 -0
  10. package/dist/assets/{CredentialsView-loSi714I.js → CredentialsView-lvIyWvdA.js} +2 -2
  11. package/dist/assets/{CredentialsView-loSi714I.js.map → CredentialsView-lvIyWvdA.js.map} +1 -1
  12. package/dist/assets/{ExecutionsFilter-BwFUjELc.js → ExecutionsFilter-BSWo4-vK.js} +2 -2
  13. package/dist/assets/{ExecutionsFilter-BwFUjELc.js.map → ExecutionsFilter-BSWo4-vK.js.map} +1 -1
  14. package/dist/assets/{ExecutionsView-ClvBwy6K.js → ExecutionsView-Bztejjur.js} +2 -2
  15. package/dist/assets/{ExecutionsView-ClvBwy6K.js.map → ExecutionsView-Bztejjur.js.map} +1 -1
  16. package/dist/assets/{ForgotMyPasswordView-Da9ejE05.js → ForgotMyPasswordView-n_x-L3AV.js} +2 -2
  17. package/dist/assets/{ForgotMyPasswordView-Da9ejE05.js.map → ForgotMyPasswordView-n_x-L3AV.js.map} +1 -1
  18. package/dist/assets/{MainHeader-DCqd1GFf.js → MainHeader-P2afzgJI.js} +2 -2
  19. package/dist/assets/{MainHeader-DCqd1GFf.js.map → MainHeader-P2afzgJI.js.map} +1 -1
  20. package/dist/assets/{MainSidebar-D0hPq1hI.js → MainSidebar-CAwsaKp9.js} +2 -2
  21. package/dist/assets/{MainSidebar-D0hPq1hI.js.map → MainSidebar-CAwsaKp9.js.map} +1 -1
  22. package/dist/assets/{NodeCreation-Dv1vHhp7.js → NodeCreation-DHuCOx3T.js} +3 -3
  23. package/dist/assets/{NodeCreation-Dv1vHhp7.js.map → NodeCreation-DHuCOx3T.js.map} +1 -1
  24. package/dist/assets/{NodeCreator-CTyp0oWz.js → NodeCreator-CRVECYnB.js} +2 -2
  25. package/dist/assets/{NodeCreator-CTyp0oWz.js.map → NodeCreator-CRVECYnB.js.map} +1 -1
  26. package/dist/assets/{NodeView-D7js-jl0.js → NodeView-_cMwqhWw.js} +4 -4
  27. package/dist/assets/{NodeView-D7js-jl0.js.map → NodeView-_cMwqhWw.js.map} +1 -1
  28. package/dist/assets/{NodeView.v2-Db0N2ZpD.js → NodeView.v2-B5Hn0oJ1.js} +3 -3
  29. package/dist/assets/{NodeView.v2-Db0N2ZpD.js.map → NodeView.v2-B5Hn0oJ1.js.map} +1 -1
  30. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-kI8CSFPH.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-BzALVLd6.js} +2 -2
  31. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-kI8CSFPH.js.map → ProjectCardBadge.vue_vue_type_script_setup_true_lang-BzALVLd6.js.map} +1 -1
  32. package/dist/assets/{ProjectSettings-DV97_QgF.js → ProjectSettings-D3HQdHi6.js} +2 -2
  33. package/dist/assets/{ProjectSettings-DV97_QgF.js.map → ProjectSettings-D3HQdHi6.js.map} +1 -1
  34. package/dist/assets/{ProjectTabs-BiGImjZC.js → ProjectTabs-BjpVZIIc.js} +2 -2
  35. package/dist/assets/{ProjectTabs-BiGImjZC.js.map → ProjectTabs-BjpVZIIc.js.map} +1 -1
  36. package/dist/assets/{PushConnectionTracker-DzVbTLAw.js → PushConnectionTracker-Dt9-l7zj.js} +2 -2
  37. package/dist/assets/{PushConnectionTracker-DzVbTLAw.js.map → PushConnectionTracker-Dt9-l7zj.js.map} +1 -1
  38. package/dist/assets/{ResourcesListLayout-__5Cg0A9.js → ResourcesListLayout-CjzGJ-eS.js} +2 -2
  39. package/dist/assets/{ResourcesListLayout-__5Cg0A9.js.map → ResourcesListLayout-CjzGJ-eS.js.map} +1 -1
  40. package/dist/assets/{RunDataAi-BbEWhRis.js → RunDataAi-D3971Kwm.js} +2 -2
  41. package/dist/assets/{RunDataAi-BbEWhRis.js.map → RunDataAi-D3971Kwm.js.map} +1 -1
  42. package/dist/assets/{RunDataJson-7eRqOET2.js → RunDataJson-BLrjtyKU.js} +3 -3
  43. package/dist/assets/{RunDataJson-7eRqOET2.js.map → RunDataJson-BLrjtyKU.js.map} +1 -1
  44. package/dist/assets/{RunDataJsonActions-MHoSLGDw.js → RunDataJsonActions-CucOcrrR.js} +2 -2
  45. package/dist/assets/{RunDataJsonActions-MHoSLGDw.js.map → RunDataJsonActions-CucOcrrR.js.map} +1 -1
  46. package/dist/assets/{RunDataSchema-C2mrihIi.js → RunDataSchema-B-52gDNr.js} +2 -2
  47. package/dist/assets/{RunDataSchema-C2mrihIi.js.map → RunDataSchema-B-52gDNr.js.map} +1 -1
  48. package/dist/assets/{RunDataSearch-CzdgZA0H.js → RunDataSearch-ZA9rLECQ.js} +2 -2
  49. package/dist/assets/{RunDataSearch-CzdgZA0H.js.map → RunDataSearch-ZA9rLECQ.js.map} +1 -1
  50. package/dist/assets/{RunDataTable-DmxJXvGM.js → RunDataTable-DQx4IB1X.js} +2 -2
  51. package/dist/assets/{RunDataTable-DmxJXvGM.js.map → RunDataTable-DQx4IB1X.js.map} +1 -1
  52. package/dist/assets/{SamlOnboarding-c0vvdXcj.js → SamlOnboarding-DS2hMTul.js} +2 -2
  53. package/dist/assets/{SamlOnboarding-c0vvdXcj.js.map → SamlOnboarding-DS2hMTul.js.map} +1 -1
  54. package/dist/assets/{SettingsApiView-BSPOTc-1.js → SettingsApiView-BEBQwqa4.js} +2 -2
  55. package/dist/assets/{SettingsApiView-BSPOTc-1.js.map → SettingsApiView-BEBQwqa4.js.map} +1 -1
  56. package/dist/assets/{SettingsCommunityNodesView-3uiMscEF.js → SettingsCommunityNodesView-Zb5NN5TR.js} +2 -2
  57. package/dist/assets/{SettingsCommunityNodesView-3uiMscEF.js.map → SettingsCommunityNodesView-Zb5NN5TR.js.map} +1 -1
  58. package/dist/assets/{SettingsExternalSecrets-C5fphQOi.js → SettingsExternalSecrets-BrQz9Rn5.js} +2 -2
  59. package/dist/assets/{SettingsExternalSecrets-C5fphQOi.js.map → SettingsExternalSecrets-BrQz9Rn5.js.map} +1 -1
  60. package/dist/assets/{SettingsFakeDoorView-Df4Rs6o0.js → SettingsFakeDoorView-BEtA0RJZ.js} +2 -2
  61. package/dist/assets/{SettingsFakeDoorView-Df4Rs6o0.js.map → SettingsFakeDoorView-BEtA0RJZ.js.map} +1 -1
  62. package/dist/assets/{SettingsLdapView-C4lLeRwF.js → SettingsLdapView-BCqjlrE9.js} +2 -2
  63. package/dist/assets/{SettingsLdapView-C4lLeRwF.js.map → SettingsLdapView-BCqjlrE9.js.map} +1 -1
  64. package/dist/assets/{SettingsLogStreamingView-bLlhacNh.js → SettingsLogStreamingView-B3vDd25l.js} +2 -2
  65. package/dist/assets/{SettingsLogStreamingView-bLlhacNh.js.map → SettingsLogStreamingView-B3vDd25l.js.map} +1 -1
  66. package/dist/assets/{SettingsPersonalView-BgQQgYy0.js → SettingsPersonalView-BxS-VIeh.js} +2 -2
  67. package/dist/assets/{SettingsPersonalView-BgQQgYy0.js.map → SettingsPersonalView-BxS-VIeh.js.map} +1 -1
  68. package/dist/assets/{SettingsSourceControl-C2BP11mH.js → SettingsSourceControl-BBk56DIZ.js} +2 -2
  69. package/dist/assets/{SettingsSourceControl-C2BP11mH.js.map → SettingsSourceControl-BBk56DIZ.js.map} +1 -1
  70. package/dist/assets/{SettingsSso-CK7JB3Vy.js → SettingsSso-c-njHRi9.js} +2 -2
  71. package/dist/assets/{SettingsSso-CK7JB3Vy.js.map → SettingsSso-c-njHRi9.js.map} +1 -1
  72. package/dist/assets/{SettingsUsageAndPlan-Cwa-TbVs.js → SettingsUsageAndPlan-DEnejDAt.js} +2 -2
  73. package/dist/assets/{SettingsUsageAndPlan-Cwa-TbVs.js.map → SettingsUsageAndPlan-DEnejDAt.js.map} +1 -1
  74. package/dist/assets/{SettingsUsersView-CbWtmro6.js → SettingsUsersView-CGkw80Ef.js} +2 -2
  75. package/dist/assets/{SettingsUsersView-CbWtmro6.js.map → SettingsUsersView-CGkw80Ef.js.map} +1 -1
  76. package/dist/assets/{SettingsView-Big9eFwZ.js → SettingsView-DGukO3mQ.js} +2 -2
  77. package/dist/assets/{SettingsView-Big9eFwZ.js.map → SettingsView-DGukO3mQ.js.map} +1 -1
  78. package/dist/assets/{SetupView-fjlw9brZ.js → SetupView-kY1bAskX.js} +2 -2
  79. package/dist/assets/{SetupView-fjlw9brZ.js.map → SetupView-kY1bAskX.js.map} +1 -1
  80. package/dist/assets/{SetupWorkflowCredentialsButton-Q123cR2R.js → SetupWorkflowCredentialsButton-DkvMQv2u.js} +2 -2
  81. package/dist/assets/{SetupWorkflowCredentialsButton-Q123cR2R.js.map → SetupWorkflowCredentialsButton-DkvMQv2u.js.map} +1 -1
  82. package/dist/assets/{SetupWorkflowFromTemplateView-BcaIdEbq.js → SetupWorkflowFromTemplateView-M7-z0Ko5.js} +2 -2
  83. package/dist/assets/{SetupWorkflowFromTemplateView-BcaIdEbq.js.map → SetupWorkflowFromTemplateView-M7-z0Ko5.js.map} +1 -1
  84. package/dist/assets/{SigninView-BqRZRDIW.js → SigninView-CsK0r98m.js} +2 -2
  85. package/dist/assets/{SigninView-BqRZRDIW.js.map → SigninView-CsK0r98m.js.map} +1 -1
  86. package/dist/assets/{SignoutView-Ds-XMHbB.js → SignoutView-BST1uR2G.js} +2 -2
  87. package/dist/assets/{SignoutView-Ds-XMHbB.js.map → SignoutView-BST1uR2G.js.map} +1 -1
  88. package/dist/assets/{SignupView-Du4cZWtz.js → SignupView-BKYxxBni.js} +2 -2
  89. package/dist/assets/{SignupView-Du4cZWtz.js.map → SignupView-BKYxxBni.js.map} +1 -1
  90. package/dist/assets/{TemplateDetails-DYa2o-Sg.js → TemplateDetails-D0r_U1xF.js} +2 -2
  91. package/dist/assets/{TemplateDetails-DYa2o-Sg.js.map → TemplateDetails-D0r_U1xF.js.map} +1 -1
  92. package/dist/assets/{TemplateList-BMaBMl6x.js → TemplateList-CDA5KNLL.js} +2 -2
  93. package/dist/assets/{TemplateList-BMaBMl6x.js.map → TemplateList-CDA5KNLL.js.map} +1 -1
  94. package/dist/assets/{TemplatesCollectionView-g5_48W2g.js → TemplatesCollectionView-Sd-VkM2v.js} +2 -2
  95. package/dist/assets/{TemplatesCollectionView-g5_48W2g.js.map → TemplatesCollectionView-Sd-VkM2v.js.map} +1 -1
  96. package/dist/assets/{TemplatesSearchView-CUEpPGLS.js → TemplatesSearchView-H6B_YHdj.js} +2 -2
  97. package/dist/assets/{TemplatesSearchView-CUEpPGLS.js.map → TemplatesSearchView-H6B_YHdj.js.map} +1 -1
  98. package/dist/assets/{TemplatesView-Dt7Yj05N.js → TemplatesView-C1e1VOA1.js} +2 -2
  99. package/dist/assets/{TemplatesView-Dt7Yj05N.js.map → TemplatesView-C1e1VOA1.js.map} +1 -1
  100. package/dist/assets/{TemplatesWorkflowView-NUQng_ec.js → TemplatesWorkflowView-EDlr8NNs.js} +2 -2
  101. package/dist/assets/{TemplatesWorkflowView-NUQng_ec.js.map → TemplatesWorkflowView-EDlr8NNs.js.map} +1 -1
  102. package/dist/assets/{VariablesView-CNbX7qiw.js → VariablesView-uUyY5gqA.js} +2 -2
  103. package/dist/assets/{VariablesView-CNbX7qiw.js.map → VariablesView-uUyY5gqA.js.map} +1 -1
  104. package/dist/assets/{WorkerView-6sYjvVRB.js → WorkerView-f9W1Yivk.js} +2 -2
  105. package/dist/assets/{WorkerView-6sYjvVRB.js.map → WorkerView-f9W1Yivk.js.map} +1 -1
  106. package/dist/assets/{WorkflowActivator-BofJdorM.js → WorkflowActivator-Bh0oXchL.js} +2 -2
  107. package/dist/assets/{WorkflowActivator-BofJdorM.js.map → WorkflowActivator-Bh0oXchL.js.map} +1 -1
  108. package/dist/assets/{WorkflowExecutionsInfoAccordion-QgKEaHPH.js → WorkflowExecutionsInfoAccordion-DvgpWxaO.js} +2 -2
  109. package/dist/assets/{WorkflowExecutionsInfoAccordion-QgKEaHPH.js.map → WorkflowExecutionsInfoAccordion-DvgpWxaO.js.map} +1 -1
  110. package/dist/assets/{WorkflowExecutionsLandingPage-C8PoBPw1.js → WorkflowExecutionsLandingPage-DiqNejyi.js} +2 -2
  111. package/dist/assets/{WorkflowExecutionsLandingPage-C8PoBPw1.js.map → WorkflowExecutionsLandingPage-DiqNejyi.js.map} +1 -1
  112. package/dist/assets/{WorkflowExecutionsPreview-DXRMfRl4.js → WorkflowExecutionsPreview-BJqdf9CJ.js} +2 -2
  113. package/dist/assets/{WorkflowExecutionsPreview-DXRMfRl4.js.map → WorkflowExecutionsPreview-BJqdf9CJ.js.map} +1 -1
  114. package/dist/assets/{WorkflowExecutionsView-BFIJLItj.js → WorkflowExecutionsView-CY5alI5S.js} +2 -2
  115. package/dist/assets/{WorkflowExecutionsView-BFIJLItj.js.map → WorkflowExecutionsView-CY5alI5S.js.map} +1 -1
  116. package/dist/assets/{WorkflowHistory-DrJO6HE6.js → WorkflowHistory-BCAvzdJ2.js} +2 -2
  117. package/dist/assets/{WorkflowHistory-DrJO6HE6.js.map → WorkflowHistory-BCAvzdJ2.js.map} +1 -1
  118. package/dist/assets/{WorkflowOnboardingView-CWudc9OX.js → WorkflowOnboardingView-CZaNfPmP.js} +2 -2
  119. package/dist/assets/{WorkflowOnboardingView-CWudc9OX.js.map → WorkflowOnboardingView-CZaNfPmP.js.map} +1 -1
  120. package/dist/assets/{WorkflowPreview-CP6H-zD6.js → WorkflowPreview-CLfcNQ-Q.js} +2 -2
  121. package/dist/assets/{WorkflowPreview-CP6H-zD6.js.map → WorkflowPreview-CLfcNQ-Q.js.map} +1 -1
  122. package/dist/assets/{WorkflowsView-B8hr4JdS.js → WorkflowsView-BMDRVCFf.js} +2 -2
  123. package/dist/assets/{WorkflowsView-B8hr4JdS.js.map → WorkflowsView-BMDRVCFf.js.map} +1 -1
  124. package/dist/assets/{cloud-Nipuweza.js → cloud-D1wkxTEm.js} +2 -2
  125. package/dist/assets/{cloud-Nipuweza.js.map → cloud-D1wkxTEm.js.map} +1 -1
  126. package/dist/assets/{collaboration.store-CeJXF3gO.js → collaboration.store-zz8xH0zY.js} +2 -2
  127. package/dist/assets/{collaboration.store-CeJXF3gO.js.map → collaboration.store-zz8xH0zY.js.map} +1 -1
  128. package/dist/assets/{index-DeNtBxiT.js → index-DEwaaDne.js} +4 -4
  129. package/dist/assets/{index-DeNtBxiT.js.map → index-DEwaaDne.js.map} +1 -1
  130. package/dist/assets/{nodeCreator.store-D1MAzn2w.js → nodeCreator.store-DR3dfsvW.js} +2 -2
  131. package/dist/assets/{nodeCreator.store-D1MAzn2w.js.map → nodeCreator.store-DR3dfsvW.js.map} +1 -1
  132. package/dist/assets/{templateActions-DLB6SLyS.js → templateActions-DTyOnhvj.js} +2 -2
  133. package/dist/assets/{templateActions-DLB6SLyS.js.map → templateActions-DTyOnhvj.js.map} +1 -1
  134. package/dist/assets/{useExecutionDebugging-B_eoI-oc.js → useExecutionDebugging-vMuoV-iO.js} +2 -2
  135. package/dist/assets/{useExecutionDebugging-B_eoI-oc.js.map → useExecutionDebugging-vMuoV-iO.js.map} +1 -1
  136. package/dist/assets/{useExecutionHelpers-BAwOWjv8.js → useExecutionHelpers-C0lzavRV.js} +2 -2
  137. package/dist/assets/{useExecutionHelpers-BAwOWjv8.js.map → useExecutionHelpers-C0lzavRV.js.map} +1 -1
  138. package/dist/assets/{usePushConnection-1-1myIro.js → usePushConnection-3xfZ5wSJ.js} +2 -2
  139. package/dist/assets/{usePushConnection-1-1myIro.js.map → usePushConnection-3xfZ5wSJ.js.map} +1 -1
  140. package/dist/assets/{useViewStacks-D8rg90P0.js → useViewStacks-BSagsijV.js} +2 -2
  141. package/dist/assets/{useViewStacks-D8rg90P0.js.map → useViewStacks-BSagsijV.js.map} +1 -1
  142. package/dist/assets/{useWorkflowActivate-DrsL0BLR.js → useWorkflowActivate-BLjS7M0I.js} +2 -2
  143. package/dist/assets/{useWorkflowActivate-DrsL0BLR.js.map → useWorkflowActivate-BLjS7M0I.js.map} +1 -1
  144. package/dist/index.html +1 -1
  145. package/package.json +1 -1
  146. package/dist/assets/CollectionParameter-o9-pyF-D.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{a4 as Y,$ as Se,cb as B,dg as V,dh as Z,di as z,dj as Q,dk as J,dl as ee,dm as te,dn as oe,cu as m,dp as Pe,dq as he,dr as re,ds as se,dt as ae,bD as K,am as ie,cv as F,an as G,du as ke,dv as ne,ah as ce,dw as le,bv as de,dx as pe,cm as xe,dy as we,dz as Ye,dA as ue,dB as Ge,dC as ge,dD as Le,dE as ye,dF as He,dG as Me,dH as Ue,dI as Be,dJ as Ve,dK as Te,aF as Ke,dL as Fe,dM as We,dN as $e,dO as Xe,dP as je,dQ as qe,dR as Ze,dS as Ee,dT as ze,dU as Qe,dV as _e,dW as Je,cw as R,w as h,dX as et,cx as tt,m as ot,dY as fe,dZ as rt}from"./index-DeNtBxiT.js";import{d as ve}from"./pinia-BAhPp3pQ.js";import{C as me}from"./lodash-es-BxV-E8rt.js";import{u as st,f as Ne,s as Ae,t as U,a as at,i as it,g as be,b as nt}from"./nodeCreator.store-D1MAzn2w.js";import{N as b}from"./n8n-B6cfQsVX.js";import{r as L,e as v,n as ct}from"./vendor-Dv5OeN6t.js";import{v as Ie}from"./uuid-SoommWqA.js";function Oe(a,s){return a.filter(o=>{var l,y,g;return!o.hidden&&((g=(y=(l=o.codex)==null?void 0:l.subcategories)==null?void 0:y[R])==null?void 0:g.includes(s))}).map(o=>({key:o.name,type:"node",properties:{group:[],name:o.name,displayName:o.displayName,title:o.displayName,description:o.description,icon:o.icon,iconData:o.name.toLowerCase().includes("openai")?{type:"file",icon:"openai",fileBuffer:"/static/open-ai.svg"}:void 0}})).sort((o,l)=>o.properties.displayName.localeCompare(l.properties.displayName))}function mt(a){const s=h(),o=Y(),l=Se(),y=Oe(o.allLatestNodeTypes,et),g=Oe(o.allLatestNodeTypes,tt);return{value:B,title:s.baseText("nodeCreator.aiPanel.aiNodes"),subtitle:s.baseText("nodeCreator.aiPanel.selectAiNode"),items:[{key:"ai_templates_root",type:"link",properties:{title:s.baseText("nodeCreator.aiPanel.linkItem.title"),icon:"box-open",description:s.baseText("nodeCreator.aiPanel.linkItem.description"),name:"ai_templates_root",url:l.getWebsiteCategoryURL(void 0,"AdvancedAI"),tag:{type:"info",text:s.baseText("nodeCreator.triggerHelperPanel.manualTriggerTag")}}},...g,...y,{key:V,type:"view",properties:{title:s.baseText("nodeCreator.aiPanel.aiOtherNodes"),icon:"robot",description:s.baseText("nodeCreator.aiPanel.aiOtherNodesDescription")}}]}}function lt(a){const s=h();function o(l){return{connectionType:l,iconProps:{color:`var(--node-type-${l}-color)`},panelClass:`nodes-list-panel-${l}`}}return{value:V,title:s.baseText("nodeCreator.aiPanel.aiOtherNodes"),subtitle:s.baseText("nodeCreator.aiPanel.selectAiNode"),items:[{key:Z,type:"subcategory",properties:{title:Z,icon:"file-import",...o(b.AiDocument)}},{key:z,type:"subcategory",properties:{title:z,icon:"language",...o(b.AiLanguageModel)}},{key:Q,type:"subcategory",properties:{title:Q,icon:"brain",...o(b.AiMemory)}},{key:J,type:"subcategory",properties:{title:J,icon:"list",...o(b.AiOutputParser)}},{key:ee,type:"subcategory",properties:{title:ee,icon:"search",...o(b.AiRetriever)}},{key:te,type:"subcategory",properties:{title:te,icon:"grip-lines-vertical",...o(b.AiTextSplitter)}},{type:"subcategory",key:oe,category:m,properties:{title:oe,icon:"tools",...o(b.AiTool),sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Pe,he]}]}},{key:re,type:"subcategory",properties:{title:re,icon:"vector-square",...o(b.AiEmbedding)}},{key:se,type:"subcategory",properties:{title:se,icon:"project-diagram",...o(b.AiVectorStore)}},{key:ae,type:"subcategory",properties:{title:ae,icon:"code"}}]}}function Nt(){const a=h();return{value:K,title:a.baseText("nodeCreator.triggerHelperPanel.selectATrigger"),subtitle:a.baseText("nodeCreator.triggerHelperPanel.selectATriggerDescription"),items:[{key:ie,type:"node",category:[m],properties:{group:[],name:ie,displayName:a.baseText("nodeCreator.triggerHelperPanel.manualTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.manualTriggerDescription"),icon:"fa:mouse-pointer"}},{key:F,type:"subcategory",properties:{forceIncludeNodes:[G,ke],title:"App Trigger Nodes",icon:"satellite-dish"}},{key:ne,type:"node",category:[m],properties:{group:[],name:ne,displayName:a.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDescription"),icon:"fa:clock"}},{key:G,type:"node",category:[m],properties:{group:[],name:G,displayName:a.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDescription"),iconData:{type:"file",icon:"webhook",fileBuffer:"/static/webhook-icon.svg"}}},{key:ce,type:"node",category:[m],properties:{group:[],name:ce,displayName:a.baseText("nodeCreator.triggerHelperPanel.formTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.formTriggerDescription"),iconData:{type:"file",icon:"form",fileBuffer:"/static/form-grey.svg"}}},{key:le,type:"node",category:[m],properties:{group:[],name:le,displayName:a.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDescription"),icon:"fa:sign-out-alt"}},{key:de,type:"node",category:[m],properties:{group:[],name:de,displayName:a.baseText("nodeCreator.triggerHelperPanel.manualChatTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.manualChatTriggerDescription"),icon:"fa:comments"}},{type:"subcategory",key:pe,category:m,properties:{title:pe,icon:"folder-open"}}]}}function At(a){const s=h(),o={value:xe,title:s.baseText("nodeCreator.triggerHelperPanel.whatHappensNext"),items:[{key:F,type:"subcategory",properties:{title:"App Regular Nodes",icon:"globe",forceIncludeNodes:[we,Ye]}},{type:"subcategory",key:ue,category:m,properties:{title:ue,icon:"pen",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Ge,ge,Le]},{key:"addOrRemove",title:s.baseText("nodeCreator.sectionNames.transform.addOrRemove"),items:[ye,He,Me,Ue]},{key:"combine",title:s.baseText("nodeCreator.sectionNames.transform.combine"),items:[Be,Ve,Te]},{key:"convert",title:s.baseText("nodeCreator.sectionNames.transform.convert"),items:[Ke,Fe,We,$e,Xe,je,qe,Ze]}]}},{type:"subcategory",key:Ee,category:m,properties:{title:Ee,icon:"code-branch",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[ye,ze,Qe,Te]}]}},{type:"subcategory",key:_e,category:m,properties:{title:_e,icon:"toolbox",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Je,G,ge]}]}}]};return(a??[]).some(y=>{var g,O;return(O=(g=y.codex)==null?void 0:g.categories)==null?void 0:O.includes(R)})&&o.items.push({key:B,type:"view",properties:{title:s.baseText("nodeCreator.aiPanel.langchainAiNodes"),icon:"robot",description:s.baseText("nodeCreator.aiPanel.nodesForAi"),tag:{type:"success",text:s.baseText("nodeCreator.aiPanel.newTag")},borderless:!0}}),o.items.push({key:K,type:"view",properties:{title:s.baseText("nodeCreator.triggerHelperPanel.addAnotherTrigger"),icon:"bolt",description:s.baseText("nodeCreator.triggerHelperPanel.addAnotherTriggerDescription")}}),o}const dt="data-keyboard-nav-id",Ce=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Escape","Tab"],pt=ve("nodeCreatorKeyboardNavigation",()=>{const a=L([]),s=L(null),o=L({});function l(r){return r==null?void 0:r.getAttribute("data-keyboard-nav-type")}function y(r){return(r==null?void 0:r.getAttribute(dt))||void 0}async function g(){return await new Promise(r=>{x(),setTimeout(()=>{a.value=Array.from(document.querySelectorAll("[data-keyboard-nav-type]")).map(p=>new WeakRef(p)),r()},0)})}function O(r,p){Object.values(o.value).filter(A=>A.keyboardKeys.includes(r)).forEach(A=>{if(!s.value)return;(A.condition===void 0||A.condition(l(p)||"",s.value))&&s.value&&A.handler(s.value,r)})}async function C(r){var i,c,n;const p=r.key;if(!Ce.includes(p))return;r.preventDefault(),r.stopPropagation(),await g();const f=a.value.findIndex(t=>y(t==null?void 0:t.deref())===s.value),I=(i=a.value[f])==null?void 0:i.deref(),A=p==="ArrowDown",e=p==="ArrowUp";if(I){if(A){const t=f<a.value.length-1?f+1:0;D((c=a.value[t])==null?void 0:c.deref())}if(e){const t=f>0?f-1:a.value.length-1;D((n=a.value[t])==null?void 0:n.deref())}O(p,I)}}function N(r){s.value=r}function D(r){const p=y(r);p&&(N(p),r!=null&&r.scrollIntoView&&(r==null||r.scrollIntoView({block:"center"})))}async function H(r){var p;await g(),D((p=a.value[r])==null?void 0:p.deref())}function S(){document.addEventListener("keydown",C,{capture:!0})}function P(){x(),document.removeEventListener("keydown",C,{capture:!0})}function k(r,p){p.keyboardKeys.forEach(f=>{if(Ce.includes(f))o.value={...o.value,[r]:p};else throw new Error(`Key ${f} is not supported`)})}function x(){a.value=[]}function M(){return a.value.findIndex(r=>y(r==null?void 0:r.deref())===s.value)}return{activeItemId:s,attachKeydownEvent:S,refreshSelectableItems:g,detachKeydownEvent:P,registerKeyHook:k,getActiveItemIndex:M,setActiveItemId:N,setActiveItemIndex:H}}),bt=ve("nodeCreatorViewStacks",()=>{const a=st(),{getActiveItemIndex:s}=pt(),o=h(),l=L([]),y=v(()=>{const e=N();if(!(e!=null&&e.baselineItems))return e.items?r(e.items):[];if(e.search&&C.value){const i=C.value.length>0?C.value:Ne(e.baselineItems??[]),c=ot().aiNodes.length>0,n=S(e)||c?i:k(i),t=r(Ae(e.search||"",n)),E=P(t,!1)??t;return e.activeIndex=E.some(d=>d.type==="section")?1:0,E}return r(P(e.baselineItems,!0))}),g=v(()=>{const e=N();if(!e)return{};const i=Ne(e.baselineItems??[]);return{...e,items:y.value,hasSearch:i.length>8||(e==null?void 0:e.hasSearch)}}),O=v(()=>g.value.mode||K),C=v(()=>{const e=N();return e!=null&&e.searchItems?e.searchItems.map(i=>U(i,e.subcategory)):[]});function N(){return l.value[l.value.length-1]}const D=v(()=>{const e=N();if(!(e!=null&&e.search))return[];const i=a.mergedNodes.map(d=>U(d)),c=S(e)?i:k(i);let n=r(Ae(e.search||"",c));return S(e)&&(n=P(n)),n.filter(d=>!y.value.find(_=>_.type==="section"?_.children.some(T=>T.key===d.key):_.key===d.key)).filter(d=>d.type==="section"?d.children.some(u=>y.value.some(T=>T.key===u.key)):!0)}),H=v(()=>at(a.mergedNodes));function S(e){return e.rootView===B}function P(e,i=!0){const c=e.filter(n=>it(n));if(c.length>0){const n=new Map;c.forEach(u=>{var w,W,$,X,j,q;const T=($=(W=(w=u.properties.codex)==null?void 0:w.subcategories)==null?void 0:W[R])==null?void 0:$[0];if(T){const Re=((X=n.get(T))==null?void 0:X.items)??[],De=!((q=(j=u.properties.codex)==null?void 0:j.subcategories)!=null&&q[R].includes(fe));n.set(T,{key:T,title:De?`${T} (${o.baseText("nodeCreator.subnodes")})`:T,items:[...Re,u.key]})}});const t=me(e,c),E=t.filter(u=>u.type==="node"&&Y().isTriggerNode(u.properties.name)),d=me(t,E);if(t.length>0){let u="";d.length&&E.length?u=o.baseText("nodeCreator.actionsCategory.regularAndTriggers"):u=d.length?o.baseText("nodeCreator.actionsCategory.regularNodes"):o.baseText("nodeCreator.actionsCategory.triggerNodes");const T=t.map(w=>w.key);n.set(u,{key:u,title:u,items:[...T]})}const _=Array.from(n.values());return be(e,_,i)}return e}function k(e){return e.filter(c=>{var n,t,E,d,_;return c.type==="node"&&((t=(n=c.properties.codex)==null?void 0:n.categories)==null?void 0:t.includes(R))===!0?(_=(d=(E=c.properties.codex)==null?void 0:E.subcategories)==null?void 0:d[R])==null?void 0:_.includes(fe):!0})}async function x(e,i,c){var E;let n,t;i===!0?(n=Y().visibleNodeTypesByInputConnectionTypeNames,t={properties:{title:o.baseText("nodeCreator.aiPanel.aiNodes"),icon:"robot"}}):(n=Y().visibleNodeTypesByOutputConnectionTypeNames,t=lt().items.find(d=>d.properties.connectionType===e)),await ct(),p({title:t==null?void 0:t.properties.title,rootView:V,mode:"nodes",items:a.allNodeCreatorNodes,nodeIcon:{iconType:"icon",icon:t==null?void 0:t.properties.icon,color:(E=t==null?void 0:t.properties.iconProps)==null?void 0:E.color},panelClass:t==null?void 0:t.properties.panelClass,baseFilter:d=>{var u;if(d.key===rt)return!1;const _=n[e].includes(d.key);return _&&((u=c==null?void 0:c.nodes)!=null&&u.length)?c.nodes.includes(d.key):_},itemsMapper(d){return{...d,subcategory:e}},preventBack:!0})}function M(){const e=N();if(!e||!g.value.uuid)return;let i=(e==null?void 0:e.items)??[];if(!(e!=null&&e.items)){const c=(e==null?void 0:e.subcategory)??F,n=H.value[c],t=e.sections;t?i=be(n,t):i=n}if((e.forceIncludeNodes??[]).length>0){const c=a.mergedNodes.filter(n=>{var t;return(t=e.forceIncludeNodes)==null?void 0:t.includes(n.name)}).map(n=>U(n,e.subcategory));i.push(...c)}e.baseFilter&&(i=i.filter(e.baseFilter)),e.itemsMapper&&(i=i.map(e.itemsMapper)),e.items||(i=nt(i)),I({baselineItems:i})}function r(e){return e.map(i=>({...i,uuid:`${i.key}-${Ie()}`}))}function p(e){g.value.uuid&&I({activeIndex:s()});const i=Ie();l.value.push({...e,uuid:i,transitionDirection:"in",activeIndex:0}),M()}function f(){g.value.uuid&&(l.value.pop(),I({transitionDirection:"out"}))}function I(e){const i=N(),c=l.value.findIndex(n=>n.uuid===i.uuid);i&&Object.keys(e).forEach(n=>{const t=n;l.value[c]={...l.value[c],[n]:e[t]}})}function A(){l.value=[]}return{viewStacks:l,activeViewStack:g,activeViewStackMode:O,globalSearchItemsDiff:D,gotoCompatibleConnectionView:x,resetViewStacks:A,updateCurrentViewStack:I,pushViewStack:p,popViewStack:f}});export{mt as A,At as R,Nt as T,pt as a,lt as b,bt as u};
2
- //# sourceMappingURL=useViewStacks-D8rg90P0.js.map
1
+ import{a4 as Y,$ as Se,cb as B,dg as V,dh as Z,di as z,dj as Q,dk as J,dl as ee,dm as te,dn as oe,cu as m,dp as Pe,dq as he,dr as re,ds as se,dt as ae,bD as K,am as ie,cv as F,an as G,du as ke,dv as ne,ah as ce,dw as le,bv as de,dx as pe,cm as xe,dy as we,dz as Ye,dA as ue,dB as Ge,dC as ge,dD as Le,dE as ye,dF as He,dG as Me,dH as Ue,dI as Be,dJ as Ve,dK as Te,aF as Ke,dL as Fe,dM as We,dN as $e,dO as Xe,dP as je,dQ as qe,dR as Ze,dS as Ee,dT as ze,dU as Qe,dV as _e,dW as Je,cw as R,w as h,dX as et,cx as tt,m as ot,dY as fe,dZ as rt}from"./index-DEwaaDne.js";import{d as ve}from"./pinia-BAhPp3pQ.js";import{C as me}from"./lodash-es-BxV-E8rt.js";import{u as st,f as Ne,s as Ae,t as U,a as at,i as it,g as be,b as nt}from"./nodeCreator.store-DR3dfsvW.js";import{N as b}from"./n8n-B6cfQsVX.js";import{r as L,e as v,n as ct}from"./vendor-Dv5OeN6t.js";import{v as Ie}from"./uuid-SoommWqA.js";function Oe(a,s){return a.filter(o=>{var l,y,g;return!o.hidden&&((g=(y=(l=o.codex)==null?void 0:l.subcategories)==null?void 0:y[R])==null?void 0:g.includes(s))}).map(o=>({key:o.name,type:"node",properties:{group:[],name:o.name,displayName:o.displayName,title:o.displayName,description:o.description,icon:o.icon,iconData:o.name.toLowerCase().includes("openai")?{type:"file",icon:"openai",fileBuffer:"/static/open-ai.svg"}:void 0}})).sort((o,l)=>o.properties.displayName.localeCompare(l.properties.displayName))}function mt(a){const s=h(),o=Y(),l=Se(),y=Oe(o.allLatestNodeTypes,et),g=Oe(o.allLatestNodeTypes,tt);return{value:B,title:s.baseText("nodeCreator.aiPanel.aiNodes"),subtitle:s.baseText("nodeCreator.aiPanel.selectAiNode"),items:[{key:"ai_templates_root",type:"link",properties:{title:s.baseText("nodeCreator.aiPanel.linkItem.title"),icon:"box-open",description:s.baseText("nodeCreator.aiPanel.linkItem.description"),name:"ai_templates_root",url:l.getWebsiteCategoryURL(void 0,"AdvancedAI"),tag:{type:"info",text:s.baseText("nodeCreator.triggerHelperPanel.manualTriggerTag")}}},...g,...y,{key:V,type:"view",properties:{title:s.baseText("nodeCreator.aiPanel.aiOtherNodes"),icon:"robot",description:s.baseText("nodeCreator.aiPanel.aiOtherNodesDescription")}}]}}function lt(a){const s=h();function o(l){return{connectionType:l,iconProps:{color:`var(--node-type-${l}-color)`},panelClass:`nodes-list-panel-${l}`}}return{value:V,title:s.baseText("nodeCreator.aiPanel.aiOtherNodes"),subtitle:s.baseText("nodeCreator.aiPanel.selectAiNode"),items:[{key:Z,type:"subcategory",properties:{title:Z,icon:"file-import",...o(b.AiDocument)}},{key:z,type:"subcategory",properties:{title:z,icon:"language",...o(b.AiLanguageModel)}},{key:Q,type:"subcategory",properties:{title:Q,icon:"brain",...o(b.AiMemory)}},{key:J,type:"subcategory",properties:{title:J,icon:"list",...o(b.AiOutputParser)}},{key:ee,type:"subcategory",properties:{title:ee,icon:"search",...o(b.AiRetriever)}},{key:te,type:"subcategory",properties:{title:te,icon:"grip-lines-vertical",...o(b.AiTextSplitter)}},{type:"subcategory",key:oe,category:m,properties:{title:oe,icon:"tools",...o(b.AiTool),sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Pe,he]}]}},{key:re,type:"subcategory",properties:{title:re,icon:"vector-square",...o(b.AiEmbedding)}},{key:se,type:"subcategory",properties:{title:se,icon:"project-diagram",...o(b.AiVectorStore)}},{key:ae,type:"subcategory",properties:{title:ae,icon:"code"}}]}}function Nt(){const a=h();return{value:K,title:a.baseText("nodeCreator.triggerHelperPanel.selectATrigger"),subtitle:a.baseText("nodeCreator.triggerHelperPanel.selectATriggerDescription"),items:[{key:ie,type:"node",category:[m],properties:{group:[],name:ie,displayName:a.baseText("nodeCreator.triggerHelperPanel.manualTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.manualTriggerDescription"),icon:"fa:mouse-pointer"}},{key:F,type:"subcategory",properties:{forceIncludeNodes:[G,ke],title:"App Trigger Nodes",icon:"satellite-dish"}},{key:ne,type:"node",category:[m],properties:{group:[],name:ne,displayName:a.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.scheduleTriggerDescription"),icon:"fa:clock"}},{key:G,type:"node",category:[m],properties:{group:[],name:G,displayName:a.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.webhookTriggerDescription"),iconData:{type:"file",icon:"webhook",fileBuffer:"/static/webhook-icon.svg"}}},{key:ce,type:"node",category:[m],properties:{group:[],name:ce,displayName:a.baseText("nodeCreator.triggerHelperPanel.formTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.formTriggerDescription"),iconData:{type:"file",icon:"form",fileBuffer:"/static/form-grey.svg"}}},{key:le,type:"node",category:[m],properties:{group:[],name:le,displayName:a.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.workflowTriggerDescription"),icon:"fa:sign-out-alt"}},{key:de,type:"node",category:[m],properties:{group:[],name:de,displayName:a.baseText("nodeCreator.triggerHelperPanel.manualChatTriggerDisplayName"),description:a.baseText("nodeCreator.triggerHelperPanel.manualChatTriggerDescription"),icon:"fa:comments"}},{type:"subcategory",key:pe,category:m,properties:{title:pe,icon:"folder-open"}}]}}function At(a){const s=h(),o={value:xe,title:s.baseText("nodeCreator.triggerHelperPanel.whatHappensNext"),items:[{key:F,type:"subcategory",properties:{title:"App Regular Nodes",icon:"globe",forceIncludeNodes:[we,Ye]}},{type:"subcategory",key:ue,category:m,properties:{title:ue,icon:"pen",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Ge,ge,Le]},{key:"addOrRemove",title:s.baseText("nodeCreator.sectionNames.transform.addOrRemove"),items:[ye,He,Me,Ue]},{key:"combine",title:s.baseText("nodeCreator.sectionNames.transform.combine"),items:[Be,Ve,Te]},{key:"convert",title:s.baseText("nodeCreator.sectionNames.transform.convert"),items:[Ke,Fe,We,$e,Xe,je,qe,Ze]}]}},{type:"subcategory",key:Ee,category:m,properties:{title:Ee,icon:"code-branch",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[ye,ze,Qe,Te]}]}},{type:"subcategory",key:_e,category:m,properties:{title:_e,icon:"toolbox",sections:[{key:"popular",title:s.baseText("nodeCreator.sectionNames.popular"),items:[Je,G,ge]}]}}]};return(a??[]).some(y=>{var g,O;return(O=(g=y.codex)==null?void 0:g.categories)==null?void 0:O.includes(R)})&&o.items.push({key:B,type:"view",properties:{title:s.baseText("nodeCreator.aiPanel.langchainAiNodes"),icon:"robot",description:s.baseText("nodeCreator.aiPanel.nodesForAi"),tag:{type:"success",text:s.baseText("nodeCreator.aiPanel.newTag")},borderless:!0}}),o.items.push({key:K,type:"view",properties:{title:s.baseText("nodeCreator.triggerHelperPanel.addAnotherTrigger"),icon:"bolt",description:s.baseText("nodeCreator.triggerHelperPanel.addAnotherTriggerDescription")}}),o}const dt="data-keyboard-nav-id",Ce=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Escape","Tab"],pt=ve("nodeCreatorKeyboardNavigation",()=>{const a=L([]),s=L(null),o=L({});function l(r){return r==null?void 0:r.getAttribute("data-keyboard-nav-type")}function y(r){return(r==null?void 0:r.getAttribute(dt))||void 0}async function g(){return await new Promise(r=>{x(),setTimeout(()=>{a.value=Array.from(document.querySelectorAll("[data-keyboard-nav-type]")).map(p=>new WeakRef(p)),r()},0)})}function O(r,p){Object.values(o.value).filter(A=>A.keyboardKeys.includes(r)).forEach(A=>{if(!s.value)return;(A.condition===void 0||A.condition(l(p)||"",s.value))&&s.value&&A.handler(s.value,r)})}async function C(r){var i,c,n;const p=r.key;if(!Ce.includes(p))return;r.preventDefault(),r.stopPropagation(),await g();const f=a.value.findIndex(t=>y(t==null?void 0:t.deref())===s.value),I=(i=a.value[f])==null?void 0:i.deref(),A=p==="ArrowDown",e=p==="ArrowUp";if(I){if(A){const t=f<a.value.length-1?f+1:0;D((c=a.value[t])==null?void 0:c.deref())}if(e){const t=f>0?f-1:a.value.length-1;D((n=a.value[t])==null?void 0:n.deref())}O(p,I)}}function N(r){s.value=r}function D(r){const p=y(r);p&&(N(p),r!=null&&r.scrollIntoView&&(r==null||r.scrollIntoView({block:"center"})))}async function H(r){var p;await g(),D((p=a.value[r])==null?void 0:p.deref())}function S(){document.addEventListener("keydown",C,{capture:!0})}function P(){x(),document.removeEventListener("keydown",C,{capture:!0})}function k(r,p){p.keyboardKeys.forEach(f=>{if(Ce.includes(f))o.value={...o.value,[r]:p};else throw new Error(`Key ${f} is not supported`)})}function x(){a.value=[]}function M(){return a.value.findIndex(r=>y(r==null?void 0:r.deref())===s.value)}return{activeItemId:s,attachKeydownEvent:S,refreshSelectableItems:g,detachKeydownEvent:P,registerKeyHook:k,getActiveItemIndex:M,setActiveItemId:N,setActiveItemIndex:H}}),bt=ve("nodeCreatorViewStacks",()=>{const a=st(),{getActiveItemIndex:s}=pt(),o=h(),l=L([]),y=v(()=>{const e=N();if(!(e!=null&&e.baselineItems))return e.items?r(e.items):[];if(e.search&&C.value){const i=C.value.length>0?C.value:Ne(e.baselineItems??[]),c=ot().aiNodes.length>0,n=S(e)||c?i:k(i),t=r(Ae(e.search||"",n)),E=P(t,!1)??t;return e.activeIndex=E.some(d=>d.type==="section")?1:0,E}return r(P(e.baselineItems,!0))}),g=v(()=>{const e=N();if(!e)return{};const i=Ne(e.baselineItems??[]);return{...e,items:y.value,hasSearch:i.length>8||(e==null?void 0:e.hasSearch)}}),O=v(()=>g.value.mode||K),C=v(()=>{const e=N();return e!=null&&e.searchItems?e.searchItems.map(i=>U(i,e.subcategory)):[]});function N(){return l.value[l.value.length-1]}const D=v(()=>{const e=N();if(!(e!=null&&e.search))return[];const i=a.mergedNodes.map(d=>U(d)),c=S(e)?i:k(i);let n=r(Ae(e.search||"",c));return S(e)&&(n=P(n)),n.filter(d=>!y.value.find(_=>_.type==="section"?_.children.some(T=>T.key===d.key):_.key===d.key)).filter(d=>d.type==="section"?d.children.some(u=>y.value.some(T=>T.key===u.key)):!0)}),H=v(()=>at(a.mergedNodes));function S(e){return e.rootView===B}function P(e,i=!0){const c=e.filter(n=>it(n));if(c.length>0){const n=new Map;c.forEach(u=>{var w,W,$,X,j,q;const T=($=(W=(w=u.properties.codex)==null?void 0:w.subcategories)==null?void 0:W[R])==null?void 0:$[0];if(T){const Re=((X=n.get(T))==null?void 0:X.items)??[],De=!((q=(j=u.properties.codex)==null?void 0:j.subcategories)!=null&&q[R].includes(fe));n.set(T,{key:T,title:De?`${T} (${o.baseText("nodeCreator.subnodes")})`:T,items:[...Re,u.key]})}});const t=me(e,c),E=t.filter(u=>u.type==="node"&&Y().isTriggerNode(u.properties.name)),d=me(t,E);if(t.length>0){let u="";d.length&&E.length?u=o.baseText("nodeCreator.actionsCategory.regularAndTriggers"):u=d.length?o.baseText("nodeCreator.actionsCategory.regularNodes"):o.baseText("nodeCreator.actionsCategory.triggerNodes");const T=t.map(w=>w.key);n.set(u,{key:u,title:u,items:[...T]})}const _=Array.from(n.values());return be(e,_,i)}return e}function k(e){return e.filter(c=>{var n,t,E,d,_;return c.type==="node"&&((t=(n=c.properties.codex)==null?void 0:n.categories)==null?void 0:t.includes(R))===!0?(_=(d=(E=c.properties.codex)==null?void 0:E.subcategories)==null?void 0:d[R])==null?void 0:_.includes(fe):!0})}async function x(e,i,c){var E;let n,t;i===!0?(n=Y().visibleNodeTypesByInputConnectionTypeNames,t={properties:{title:o.baseText("nodeCreator.aiPanel.aiNodes"),icon:"robot"}}):(n=Y().visibleNodeTypesByOutputConnectionTypeNames,t=lt().items.find(d=>d.properties.connectionType===e)),await ct(),p({title:t==null?void 0:t.properties.title,rootView:V,mode:"nodes",items:a.allNodeCreatorNodes,nodeIcon:{iconType:"icon",icon:t==null?void 0:t.properties.icon,color:(E=t==null?void 0:t.properties.iconProps)==null?void 0:E.color},panelClass:t==null?void 0:t.properties.panelClass,baseFilter:d=>{var u;if(d.key===rt)return!1;const _=n[e].includes(d.key);return _&&((u=c==null?void 0:c.nodes)!=null&&u.length)?c.nodes.includes(d.key):_},itemsMapper(d){return{...d,subcategory:e}},preventBack:!0})}function M(){const e=N();if(!e||!g.value.uuid)return;let i=(e==null?void 0:e.items)??[];if(!(e!=null&&e.items)){const c=(e==null?void 0:e.subcategory)??F,n=H.value[c],t=e.sections;t?i=be(n,t):i=n}if((e.forceIncludeNodes??[]).length>0){const c=a.mergedNodes.filter(n=>{var t;return(t=e.forceIncludeNodes)==null?void 0:t.includes(n.name)}).map(n=>U(n,e.subcategory));i.push(...c)}e.baseFilter&&(i=i.filter(e.baseFilter)),e.itemsMapper&&(i=i.map(e.itemsMapper)),e.items||(i=nt(i)),I({baselineItems:i})}function r(e){return e.map(i=>({...i,uuid:`${i.key}-${Ie()}`}))}function p(e){g.value.uuid&&I({activeIndex:s()});const i=Ie();l.value.push({...e,uuid:i,transitionDirection:"in",activeIndex:0}),M()}function f(){g.value.uuid&&(l.value.pop(),I({transitionDirection:"out"}))}function I(e){const i=N(),c=l.value.findIndex(n=>n.uuid===i.uuid);i&&Object.keys(e).forEach(n=>{const t=n;l.value[c]={...l.value[c],[n]:e[t]}})}function A(){l.value=[]}return{viewStacks:l,activeViewStack:g,activeViewStackMode:O,globalSearchItemsDiff:D,gotoCompatibleConnectionView:x,resetViewStacks:A,updateCurrentViewStack:I,pushViewStack:p,popViewStack:f}});export{mt as A,At as R,Nt as T,pt as a,lt as b,bt as u};
2
+ //# sourceMappingURL=useViewStacks-BSagsijV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewStacks-D8rg90P0.js","sources":["../../src/components/Node/NodeCreator/viewsData.ts","../../src/components/Node/NodeCreator/composables/useKeyboardNavigation.ts","../../src/components/Node/NodeCreator/composables/useViewStacks.ts"],"sourcesContent":["import {\n\tCORE_NODES_CATEGORY,\n\tWEBHOOK_NODE_TYPE,\n\tOTHER_TRIGGER_NODES_SUBCATEGORY,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\tFORM_TRIGGER_NODE_TYPE,\n\tMANUAL_TRIGGER_NODE_TYPE,\n\tMANUAL_CHAT_TRIGGER_NODE_TYPE,\n\tSCHEDULE_TRIGGER_NODE_TYPE,\n\tREGULAR_NODE_CREATOR_VIEW,\n\tTRANSFORM_DATA_SUBCATEGORY,\n\tFLOWS_CONTROL_SUBCATEGORY,\n\tTRIGGER_NODE_CREATOR_VIEW,\n\tEMAIL_IMAP_NODE_TYPE,\n\tDEFAULT_SUBCATEGORY,\n\tAI_NODE_CREATOR_VIEW,\n\tAI_CATEGORY_AGENTS,\n\tAI_CATEGORY_CHAINS,\n\tAI_CATEGORY_DOCUMENT_LOADERS,\n\tAI_CATEGORY_LANGUAGE_MODELS,\n\tAI_CATEGORY_MEMORY,\n\tAI_CATEGORY_OUTPUTPARSER,\n\tAI_CATEGORY_RETRIEVERS,\n\tAI_CATEGORY_TEXT_SPLITTERS,\n\tAI_CATEGORY_TOOLS,\n\tAI_CATEGORY_VECTOR_STORES,\n\tAI_SUBCATEGORY,\n\tAI_CATEGORY_EMBEDDING,\n\tAI_OTHERS_NODE_CREATOR_VIEW,\n\tAI_UNCATEGORIZED_CATEGORY,\n\tCONVERT_TO_FILE_NODE_TYPE,\n\tEXTRACT_FROM_FILE_NODE_TYPE,\n\tSET_NODE_TYPE,\n\tCODE_NODE_TYPE,\n\tDATETIME_NODE_TYPE,\n\tFILTER_NODE_TYPE,\n\tREMOVE_DUPLICATES_NODE_TYPE,\n\tSPLIT_OUT_NODE_TYPE,\n\tLIMIT_NODE_TYPE,\n\tSUMMARIZE_NODE_TYPE,\n\tAGGREGATE_NODE_TYPE,\n\tMERGE_NODE_TYPE,\n\tHTML_NODE_TYPE,\n\tMARKDOWN_NODE_TYPE,\n\tXML_NODE_TYPE,\n\tCRYPTO_NODE_TYPE,\n\tIF_NODE_TYPE,\n\tSPLIT_IN_BATCHES_NODE_TYPE,\n\tHTTP_REQUEST_NODE_TYPE,\n\tHELPERS_SUBCATEGORY,\n\tRSS_READ_NODE_TYPE,\n\tEMAIL_SEND_NODE_TYPE,\n\tEDIT_IMAGE_NODE_TYPE,\n\tCOMPRESSION_NODE_TYPE,\n\tAI_CODE_TOOL_LANGCHAIN_NODE_TYPE,\n\tAI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE,\n} from '@/constants';\nimport { useI18n } from '@/composables/useI18n';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport type { SimplifiedNodeType } from '@/Interface';\nimport type { INodeTypeDescription } from 'n8n-workflow';\nimport { NodeConnectionType } from 'n8n-workflow';\nimport { useTemplatesStore } from '@/stores/templates.store';\n\nexport interface NodeViewItemSection {\n\tkey: string;\n\ttitle: string;\n\titems: string[];\n}\n\nexport interface NodeViewItem {\n\tkey: string;\n\ttype: string;\n\tproperties: {\n\t\tname?: string;\n\t\ttitle?: string;\n\t\ticon?: string;\n\t\ticonProps?: {\n\t\t\tcolor?: string;\n\t\t};\n\t\turl?: string;\n\t\tconnectionType?: NodeConnectionType;\n\t\tpanelClass?: string;\n\t\tgroup?: string[];\n\t\tsections?: NodeViewItemSection[];\n\t\tdescription?: string;\n\t\tdisplayName?: string;\n\t\ttag?: {\n\t\t\ttype: string;\n\t\t\ttext: string;\n\t\t};\n\t\tforceIncludeNodes?: string[];\n\t\ticonData?: {\n\t\t\ttype: string;\n\t\t\ticon?: string;\n\t\t\tfileBuffer?: string;\n\t\t};\n\t};\n\tcategory?: string | string[];\n}\n\ninterface NodeView {\n\tvalue: string;\n\ttitle: string;\n\tinfo?: string;\n\tsubtitle?: string;\n\titems: NodeViewItem[];\n}\n\nfunction getAiNodesBySubcategory(nodes: INodeTypeDescription[], subcategory: string) {\n\treturn nodes\n\t\t.filter(\n\t\t\t(node) => !node.hidden && node.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(subcategory),\n\t\t)\n\t\t.map((node) => ({\n\t\t\tkey: node.name,\n\t\t\ttype: 'node',\n\t\t\tproperties: {\n\t\t\t\tgroup: [],\n\t\t\t\tname: node.name,\n\t\t\t\tdisplayName: node.displayName,\n\t\t\t\ttitle: node.displayName,\n\t\t\t\tdescription: node.description,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\ticon: node.icon!,\n\t\t\t\ticonData: node.name.toLowerCase().includes('openai')\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\t\ticon: 'openai',\n\t\t\t\t\t\t\tfileBuffer: '/static/open-ai.svg',\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t}))\n\t\t.sort((a, b) => a.properties.displayName.localeCompare(b.properties.displayName));\n}\n\nexport function AIView(_nodes: SimplifiedNodeType[]): NodeView {\n\tconst i18n = useI18n();\n\tconst nodeTypesStore = useNodeTypesStore();\n\tconst templatesStore = useTemplatesStore();\n\n\tconst chainNodes = getAiNodesBySubcategory(nodeTypesStore.allLatestNodeTypes, AI_CATEGORY_CHAINS);\n\tconst agentNodes = getAiNodesBySubcategory(nodeTypesStore.allLatestNodeTypes, AI_CATEGORY_AGENTS);\n\n\treturn {\n\t\tvalue: AI_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiNodes'),\n\t\tsubtitle: i18n.baseText('nodeCreator.aiPanel.selectAiNode'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: 'ai_templates_root',\n\t\t\t\ttype: 'link',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.linkItem.title'),\n\t\t\t\t\ticon: 'box-open',\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.linkItem.description'),\n\t\t\t\t\tname: 'ai_templates_root',\n\t\t\t\t\turl: templatesStore.getWebsiteCategoryURL(undefined, 'AdvancedAI'),\n\t\t\t\t\ttag: {\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttext: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerTag'),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t...agentNodes,\n\t\t\t...chainNodes,\n\t\t\t{\n\t\t\t\tkey: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\t\t\ttype: 'view',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiOtherNodes'),\n\t\t\t\t\ticon: 'robot',\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.aiOtherNodesDescription'),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport function AINodesView(_nodes: SimplifiedNodeType[]): NodeView {\n\tconst i18n = useI18n();\n\n\tfunction getAISubcategoryProperties(nodeConnectionType: NodeConnectionType) {\n\t\treturn {\n\t\t\tconnectionType: nodeConnectionType,\n\t\t\ticonProps: {\n\t\t\t\tcolor: `var(--node-type-${nodeConnectionType}-color)`,\n\t\t\t},\n\t\t\tpanelClass: `nodes-list-panel-${nodeConnectionType}`,\n\t\t};\n\t}\n\n\treturn {\n\t\tvalue: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiOtherNodes'),\n\t\tsubtitle: i18n.baseText('nodeCreator.aiPanel.selectAiNode'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_DOCUMENT_LOADERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_DOCUMENT_LOADERS,\n\t\t\t\t\ticon: 'file-import',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiDocument),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_LANGUAGE_MODELS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_LANGUAGE_MODELS,\n\t\t\t\t\ticon: 'language',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiLanguageModel),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_MEMORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_MEMORY,\n\t\t\t\t\ticon: 'brain',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiMemory),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_OUTPUTPARSER,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_OUTPUTPARSER,\n\t\t\t\t\ticon: 'list',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiOutputParser),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_RETRIEVERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_RETRIEVERS,\n\t\t\t\t\ticon: 'search',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiRetriever),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_TEXT_SPLITTERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_TEXT_SPLITTERS,\n\t\t\t\t\ticon: 'grip-lines-vertical',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiTextSplitter),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: AI_CATEGORY_TOOLS,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_TOOLS,\n\t\t\t\t\ticon: 'tools',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiTool),\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, AI_CODE_TOOL_LANGCHAIN_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_EMBEDDING,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_EMBEDDING,\n\t\t\t\t\ticon: 'vector-square',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiEmbedding),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_VECTOR_STORES,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_VECTOR_STORES,\n\t\t\t\t\ticon: 'project-diagram',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiVectorStore),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_UNCATEGORIZED_CATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_UNCATEGORIZED_CATEGORY,\n\t\t\t\t\ticon: 'code',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport function TriggerView() {\n\tconst i18n = useI18n();\n\n\tconst view: NodeView = {\n\t\tvalue: TRIGGER_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.selectATrigger'),\n\t\tsubtitle: i18n.baseText('nodeCreator.triggerHelperPanel.selectATriggerDescription'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: MANUAL_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: MANUAL_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerDescription'),\n\t\t\t\t\ticon: 'fa:mouse-pointer',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: DEFAULT_SUBCATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\tforceIncludeNodes: [WEBHOOK_NODE_TYPE, EMAIL_IMAP_NODE_TYPE],\n\t\t\t\t\ttitle: 'App Trigger Nodes',\n\t\t\t\t\ticon: 'satellite-dish',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: SCHEDULE_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: SCHEDULE_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.scheduleTriggerDescription'),\n\t\t\t\t\ticon: 'fa:clock',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: WEBHOOK_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: WEBHOOK_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.webhookTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.webhookTriggerDescription'),\n\t\t\t\t\ticonData: {\n\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\ticon: 'webhook',\n\t\t\t\t\t\tfileBuffer: '/static/webhook-icon.svg',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: FORM_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: FORM_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.formTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.formTriggerDescription'),\n\t\t\t\t\ticonData: {\n\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\ticon: 'form',\n\t\t\t\t\t\tfileBuffer: '/static/form-grey.svg',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.workflowTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.workflowTriggerDescription'),\n\t\t\t\t\ticon: 'fa:sign-out-alt',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: MANUAL_CHAT_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: MANUAL_CHAT_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.manualChatTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.manualChatTriggerDescription'),\n\t\t\t\t\ticon: 'fa:comments',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: OTHER_TRIGGER_NODES_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: OTHER_TRIGGER_NODES_SUBCATEGORY,\n\t\t\t\t\ticon: 'folder-open',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\treturn view;\n}\n\nexport function RegularView(nodes: SimplifiedNodeType[]) {\n\tconst i18n = useI18n();\n\n\tconst view: NodeView = {\n\t\tvalue: REGULAR_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.whatHappensNext'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: DEFAULT_SUBCATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: 'App Regular Nodes',\n\t\t\t\t\ticon: 'globe',\n\t\t\t\t\tforceIncludeNodes: [RSS_READ_NODE_TYPE, EMAIL_SEND_NODE_TYPE],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: TRANSFORM_DATA_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: TRANSFORM_DATA_SUBCATEGORY,\n\t\t\t\t\ticon: 'pen',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [SET_NODE_TYPE, CODE_NODE_TYPE, DATETIME_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'addOrRemove',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.addOrRemove'),\n\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\tFILTER_NODE_TYPE,\n\t\t\t\t\t\t\t\tREMOVE_DUPLICATES_NODE_TYPE,\n\t\t\t\t\t\t\t\tSPLIT_OUT_NODE_TYPE,\n\t\t\t\t\t\t\t\tLIMIT_NODE_TYPE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'combine',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.combine'),\n\t\t\t\t\t\t\titems: [SUMMARIZE_NODE_TYPE, AGGREGATE_NODE_TYPE, MERGE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'convert',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.convert'),\n\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\tHTML_NODE_TYPE,\n\t\t\t\t\t\t\t\tMARKDOWN_NODE_TYPE,\n\t\t\t\t\t\t\t\tXML_NODE_TYPE,\n\t\t\t\t\t\t\t\tCRYPTO_NODE_TYPE,\n\t\t\t\t\t\t\t\tEXTRACT_FROM_FILE_NODE_TYPE,\n\t\t\t\t\t\t\t\tCONVERT_TO_FILE_NODE_TYPE,\n\t\t\t\t\t\t\t\tCOMPRESSION_NODE_TYPE,\n\t\t\t\t\t\t\t\tEDIT_IMAGE_NODE_TYPE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: FLOWS_CONTROL_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: FLOWS_CONTROL_SUBCATEGORY,\n\t\t\t\t\ticon: 'code-branch',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [FILTER_NODE_TYPE, IF_NODE_TYPE, SPLIT_IN_BATCHES_NODE_TYPE, MERGE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: HELPERS_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: HELPERS_SUBCATEGORY,\n\t\t\t\t\ticon: 'toolbox',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [HTTP_REQUEST_NODE_TYPE, WEBHOOK_NODE_TYPE, CODE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\tconst hasAINodes = (nodes ?? []).some((node) => node.codex?.categories?.includes(AI_SUBCATEGORY));\n\tif (hasAINodes)\n\t\tview.items.push({\n\t\t\tkey: AI_NODE_CREATOR_VIEW,\n\t\t\ttype: 'view',\n\t\t\tproperties: {\n\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.langchainAiNodes'),\n\t\t\t\ticon: 'robot',\n\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.nodesForAi'),\n\t\t\t\ttag: {\n\t\t\t\t\ttype: 'success',\n\t\t\t\t\ttext: i18n.baseText('nodeCreator.aiPanel.newTag'),\n\t\t\t\t},\n\t\t\t\tborderless: true,\n\t\t\t},\n\t\t} as NodeViewItem);\n\n\tview.items.push({\n\t\tkey: TRIGGER_NODE_CREATOR_VIEW,\n\t\ttype: 'view',\n\t\tproperties: {\n\t\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.addAnotherTrigger'),\n\t\t\ticon: 'bolt',\n\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.addAnotherTriggerDescription'),\n\t\t},\n\t});\n\n\treturn view;\n}\n","import { ref } from 'vue';\nimport { defineStore } from 'pinia';\n\nexport type KeyboardKey = (typeof WATCHED_KEYS)[number];\ninterface KeyHook {\n\tkeyboardKeys: KeyboardKey[];\n\tcondition?: (type: string, activeItemId: string) => boolean;\n\thandler: (activeItemId: string, keyboardKey: KeyboardKey) => void;\n}\n\nexport const KEYBOARD_ID_ATTR = 'data-keyboard-nav-id';\nexport const WATCHED_KEYS = [\n\t'ArrowUp',\n\t'ArrowDown',\n\t'ArrowLeft',\n\t'ArrowRight',\n\t'Enter',\n\t'Escape',\n\t'Tab',\n];\n\nexport const useKeyboardNavigation = defineStore('nodeCreatorKeyboardNavigation', () => {\n\tconst selectableItems = ref<Array<WeakRef<Element>>>([]);\n\tconst activeItemId = ref<string | null>(null);\n\t// Array of objects that contains key code and handler\n\tconst keysHooks = ref<Record<string, KeyHook>>({});\n\n\tfunction getItemType(element?: Element) {\n\t\treturn element?.getAttribute('data-keyboard-nav-type');\n\t}\n\tfunction getElementId(element?: Element) {\n\t\treturn element?.getAttribute(KEYBOARD_ID_ATTR) || undefined;\n\t}\n\tasync function refreshSelectableItems(): Promise<void> {\n\t\treturn await new Promise((resolve) => {\n\t\t\t// Wait for DOM to update\n\t\t\tcleanupSelectableItems();\n\t\t\tsetTimeout(() => {\n\t\t\t\tselectableItems.value = Array.from(\n\t\t\t\t\tdocument.querySelectorAll('[data-keyboard-nav-type]'),\n\t\t\t\t).map((el) => new WeakRef(el));\n\t\t\t\tresolve();\n\t\t\t}, 0);\n\t\t});\n\t}\n\n\tfunction executeKeyHooks(keyboardKey: KeyboardKey, activeItem: Element) {\n\t\tconst flatHooks = Object.values(keysHooks.value);\n\t\tconst hooks = flatHooks.filter((hook) => hook.keyboardKeys.includes(keyboardKey));\n\n\t\thooks.forEach((hook) => {\n\t\t\tif (!activeItemId.value) return;\n\n\t\t\tconst conditionPassed =\n\t\t\t\thook.condition === undefined ||\n\t\t\t\thook.condition(getItemType(activeItem) || '', activeItemId.value);\n\n\t\t\tif (conditionPassed && activeItemId.value) {\n\t\t\t\thook.handler(activeItemId.value, keyboardKey);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync function onKeyDown(e: KeyboardEvent) {\n\t\tconst pressedKey = e.key;\n\t\tif (!WATCHED_KEYS.includes(pressedKey)) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tawait refreshSelectableItems();\n\t\tconst activeItemIndex = selectableItems.value.findIndex(\n\t\t\t(item) => getElementId(item?.deref()) === activeItemId.value,\n\t\t);\n\t\tconst activeItem = selectableItems.value[activeItemIndex]?.deref();\n\n\t\tconst isArrowDown = pressedKey === 'ArrowDown';\n\t\tconst isArrowUp = pressedKey === 'ArrowUp';\n\n\t\tif (!activeItem) return;\n\n\t\tif (isArrowDown) {\n\t\t\tconst nextItemIndex =\n\t\t\t\tactiveItemIndex < selectableItems.value.length - 1 ? activeItemIndex + 1 : 0;\n\n\t\t\tsetActiveItem(selectableItems.value[nextItemIndex]?.deref());\n\t\t}\n\t\tif (isArrowUp) {\n\t\t\tconst previousIndex =\n\t\t\t\tactiveItemIndex > 0 ? activeItemIndex - 1 : selectableItems.value.length - 1;\n\n\t\t\tsetActiveItem(selectableItems.value[previousIndex]?.deref());\n\t\t}\n\t\texecuteKeyHooks(pressedKey, activeItem);\n\t}\n\n\tfunction setActiveItemId(id: string) {\n\t\tactiveItemId.value = id;\n\t}\n\n\tfunction setActiveItem(item?: Element) {\n\t\tconst itemId = getElementId(item);\n\t\tif (!itemId) return;\n\n\t\tsetActiveItemId(itemId);\n\t\tif (item?.scrollIntoView) {\n\t\t\titem?.scrollIntoView({ block: 'center' });\n\t\t}\n\t}\n\n\tasync function setActiveItemIndex(index: number) {\n\t\tawait refreshSelectableItems();\n\n\t\tsetActiveItem(selectableItems.value[index]?.deref());\n\t}\n\n\tfunction attachKeydownEvent() {\n\t\tdocument.addEventListener('keydown', onKeyDown, { capture: true });\n\t}\n\n\tfunction detachKeydownEvent() {\n\t\tcleanupSelectableItems();\n\t\tdocument.removeEventListener('keydown', onKeyDown, { capture: true });\n\t}\n\n\tfunction registerKeyHook(name: string, hook: KeyHook) {\n\t\thook.keyboardKeys.forEach((keyboardKey) => {\n\t\t\tif (WATCHED_KEYS.includes(keyboardKey)) {\n\t\t\t\tkeysHooks.value = { ...keysHooks.value, [name]: hook };\n\t\t\t} else {\n\t\t\t\tthrow new Error(`Key ${keyboardKey} is not supported`);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction cleanupSelectableItems() {\n\t\t// Cleanup to make sure DOM elements get garbage collected\n\t\tselectableItems.value = [];\n\t}\n\n\tfunction getActiveItemIndex() {\n\t\treturn selectableItems.value.findIndex(\n\t\t\t(item) => getElementId(item?.deref()) === activeItemId.value,\n\t\t);\n\t}\n\n\treturn {\n\t\tactiveItemId,\n\t\tattachKeydownEvent,\n\t\trefreshSelectableItems,\n\t\tdetachKeydownEvent,\n\t\tregisterKeyHook,\n\t\tgetActiveItemIndex,\n\t\tsetActiveItemId,\n\t\tsetActiveItemIndex,\n\t};\n});\n","import type {\n\tINodeCreateElement,\n\tNodeCreateElement,\n\tNodeFilterType,\n\tSimplifiedNodeType,\n} from '@/Interface';\nimport {\n\tAI_CATEGORY_ROOT_NODES,\n\tAI_CODE_NODE_TYPE,\n\tAI_NODE_CREATOR_VIEW,\n\tAI_OTHERS_NODE_CREATOR_VIEW,\n\tAI_SUBCATEGORY,\n\tDEFAULT_SUBCATEGORY,\n\tTRIGGER_NODE_CREATOR_VIEW,\n} from '@/constants';\nimport { defineStore } from 'pinia';\nimport { v4 as uuid } from 'uuid';\nimport { computed, nextTick, ref } from 'vue';\nimport difference from 'lodash-es/difference';\n\nimport { useNodeCreatorStore } from '@/stores/nodeCreator.store';\n\nimport {\n\tflattenCreateElements,\n\tgroupItemsInSections,\n\tisAINode,\n\tsearchNodes,\n\tsortNodeCreateElements,\n\tsubcategorizeItems,\n\ttransformNodeType,\n} from '../utils';\n\nimport type { NodeViewItem, NodeViewItemSection } from '@/components/Node/NodeCreator/viewsData';\nimport { AINodesView } from '@/components/Node/NodeCreator/viewsData';\nimport { useI18n } from '@/composables/useI18n';\nimport { useKeyboardNavigation } from './useKeyboardNavigation';\n\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport type { INodeInputFilter, NodeConnectionType } from 'n8n-workflow';\nimport { useCanvasStore } from '@/stores/canvas.store';\n\ninterface ViewStack {\n\tuuid?: string;\n\ttitle?: string;\n\tsubtitle?: string;\n\tsearch?: string;\n\tsubcategory?: string;\n\tinfo?: string;\n\tnodeIcon?: {\n\t\ticonType?: string;\n\t\ticon?: string;\n\t\tcolor?: string;\n\t};\n\ticonUrl?: string;\n\trootView?: NodeFilterType;\n\tactiveIndex?: number;\n\ttransitionDirection?: 'in' | 'out';\n\thasSearch?: boolean;\n\tpreventBack?: boolean;\n\titems?: INodeCreateElement[];\n\tbaselineItems?: INodeCreateElement[];\n\tsearchItems?: SimplifiedNodeType[];\n\tforceIncludeNodes?: string[];\n\tmode?: 'actions' | 'nodes';\n\tbaseFilter?: (item: INodeCreateElement) => boolean;\n\titemsMapper?: (item: INodeCreateElement) => INodeCreateElement;\n\tpanelClass?: string;\n\tsections?: string[] | NodeViewItemSection[];\n}\n\nexport const useViewStacks = defineStore('nodeCreatorViewStacks', () => {\n\tconst nodeCreatorStore = useNodeCreatorStore();\n\tconst { getActiveItemIndex } = useKeyboardNavigation();\n\tconst i18n = useI18n();\n\n\tconst viewStacks = ref<ViewStack[]>([]);\n\n\tconst activeStackItems = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\n\t\tif (!stack?.baselineItems) {\n\t\t\treturn stack.items ? extendItemsWithUUID(stack.items) : [];\n\t\t}\n\n\t\tif (stack.search && searchBaseItems.value) {\n\t\t\tconst searchBase =\n\t\t\t\tsearchBaseItems.value.length > 0\n\t\t\t\t\t? searchBaseItems.value\n\t\t\t\t\t: flattenCreateElements(stack.baselineItems ?? []);\n\n\t\t\tconst canvasHasAINodes = useCanvasStore().aiNodes.length > 0;\n\t\t\tconst filteredNodes =\n\t\t\t\tisAiRootView(stack) || canvasHasAINodes ? searchBase : filterOutAiNodes(searchBase);\n\n\t\t\tconst searchResults = extendItemsWithUUID(searchNodes(stack.search || '', filteredNodes));\n\n\t\t\tconst groupedNodes = groupIfAiNodes(searchResults, false) ?? searchResults;\n\t\t\t// Set the active index to the second item if there's a section\n\t\t\t// as the first item is collapsable\n\t\t\tstack.activeIndex = groupedNodes.some((node) => node.type === 'section') ? 1 : 0;\n\n\t\t\treturn groupedNodes;\n\t\t}\n\t\treturn extendItemsWithUUID(groupIfAiNodes(stack.baselineItems, true));\n\t});\n\n\tconst activeViewStack = computed<ViewStack>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack) return {};\n\n\t\tconst flatBaselineItems = flattenCreateElements(stack.baselineItems ?? []);\n\n\t\treturn {\n\t\t\t...stack,\n\t\t\titems: activeStackItems.value,\n\t\t\thasSearch: flatBaselineItems.length > 8 || stack?.hasSearch,\n\t\t};\n\t});\n\n\tconst activeViewStackMode = computed(\n\t\t() => activeViewStack.value.mode || TRIGGER_NODE_CREATOR_VIEW,\n\t);\n\n\tconst searchBaseItems = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack?.searchItems) return [];\n\n\t\treturn stack.searchItems.map((item) => transformNodeType(item, stack.subcategory));\n\t});\n\n\tfunction getLastActiveStack() {\n\t\treturn viewStacks.value[viewStacks.value.length - 1];\n\t}\n\n\t// Generate a delta between the global search results(all nodes) and the stack search results\n\tconst globalSearchItemsDiff = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack?.search) return [];\n\n\t\tconst allNodes = nodeCreatorStore.mergedNodes.map((item) => transformNodeType(item));\n\t\t// Apply filtering for AI nodes if the current view is not the AI root view\n\t\tconst filteredNodes = isAiRootView(stack) ? allNodes : filterOutAiNodes(allNodes);\n\n\t\tlet globalSearchResult: INodeCreateElement[] = extendItemsWithUUID(\n\t\t\tsearchNodes(stack.search || '', filteredNodes),\n\t\t);\n\t\tif (isAiRootView(stack)) {\n\t\t\tglobalSearchResult = groupIfAiNodes(globalSearchResult);\n\t\t}\n\n\t\tconst filteredItems = globalSearchResult.filter((item) => {\n\t\t\treturn !activeStackItems.value.find((activeItem) => {\n\t\t\t\tif (activeItem.type === 'section') {\n\t\t\t\t\tconst matchingSectionItem = activeItem.children.some(\n\t\t\t\t\t\t(sectionItem) => sectionItem.key === item.key,\n\t\t\t\t\t);\n\t\t\t\t\treturn matchingSectionItem;\n\t\t\t\t}\n\n\t\t\t\treturn activeItem.key === item.key;\n\t\t\t});\n\t\t});\n\n\t\t// Filter out empty sections if all of their children are filtered out\n\t\tconst filteredSections = filteredItems.filter((item) => {\n\t\t\tif (item.type === 'section') {\n\t\t\t\tconst hasVisibleChildren = item.children.some((child) =>\n\t\t\t\t\tactiveStackItems.value.some((filteredItem) => filteredItem.key === child.key),\n\t\t\t\t);\n\n\t\t\t\treturn hasVisibleChildren;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\n\t\treturn filteredSections;\n\t});\n\n\tconst itemsBySubcategory = computed(() => subcategorizeItems(nodeCreatorStore.mergedNodes));\n\n\tfunction isAiRootView(stack: ViewStack) {\n\t\treturn stack.rootView === AI_NODE_CREATOR_VIEW;\n\t}\n\n\tfunction groupIfAiNodes(items: INodeCreateElement[], sortAlphabetically = true) {\n\t\tconst aiNodes = items.filter((node): node is NodeCreateElement => isAINode(node));\n\n\t\tif (aiNodes.length > 0) {\n\t\t\tconst sectionsMap = new Map<string, NodeViewItemSection>();\n\t\t\taiNodes.forEach((node) => {\n\t\t\t\tconst section = node.properties.codex?.subcategories?.[AI_SUBCATEGORY]?.[0];\n\n\t\t\t\tif (section) {\n\t\t\t\t\tconst currentItems = sectionsMap.get(section)?.items ?? [];\n\t\t\t\t\tconst isSubnodesSection =\n\t\t\t\t\t\t!node.properties.codex?.subcategories?.[AI_SUBCATEGORY].includes(\n\t\t\t\t\t\t\tAI_CATEGORY_ROOT_NODES,\n\t\t\t\t\t\t);\n\n\t\t\t\t\tsectionsMap.set(section, {\n\t\t\t\t\t\tkey: section,\n\t\t\t\t\t\ttitle: isSubnodesSection\n\t\t\t\t\t\t\t? `${section} (${i18n.baseText('nodeCreator.subnodes')})`\n\t\t\t\t\t\t\t: section,\n\t\t\t\t\t\titems: [...currentItems, node.key],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst nonAiNodes = difference(items, aiNodes);\n\t\t\tconst nonAiTriggerNodes = nonAiNodes.filter(\n\t\t\t\t(item) => item.type === 'node' && useNodeTypesStore().isTriggerNode(item.properties.name),\n\t\t\t);\n\n\t\t\tconst nonAiRegularNodes = difference(nonAiNodes, nonAiTriggerNodes);\n\n\t\t\tif (nonAiNodes.length > 0) {\n\t\t\t\tlet sectionKey = '';\n\t\t\t\tif (nonAiRegularNodes.length && nonAiTriggerNodes.length) {\n\t\t\t\t\tsectionKey = i18n.baseText('nodeCreator.actionsCategory.regularAndTriggers');\n\t\t\t\t} else {\n\t\t\t\t\tsectionKey = nonAiRegularNodes.length\n\t\t\t\t\t\t? i18n.baseText('nodeCreator.actionsCategory.regularNodes')\n\t\t\t\t\t\t: i18n.baseText('nodeCreator.actionsCategory.triggerNodes');\n\t\t\t\t}\n\n\t\t\t\tconst nodesKeys = nonAiNodes.map((node) => node.key);\n\n\t\t\t\tsectionsMap.set(sectionKey, {\n\t\t\t\t\tkey: sectionKey,\n\t\t\t\t\ttitle: sectionKey,\n\t\t\t\t\titems: [...nodesKeys],\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Convert sectionsMap to array of sections\n\t\t\tconst sections = Array.from(sectionsMap.values());\n\n\t\t\treturn groupItemsInSections(items, sections, sortAlphabetically);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tfunction filterOutAiNodes(items: INodeCreateElement[]) {\n\t\tconst filteredSearchBase = items.filter((item) => {\n\t\t\tif (item.type === 'node') {\n\t\t\t\tconst isAICategory = item.properties.codex?.categories?.includes(AI_SUBCATEGORY) === true;\n\n\t\t\t\tif (!isAICategory) return true;\n\n\t\t\t\tconst isRootNodeSubcategory =\n\t\t\t\t\titem.properties.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(AI_CATEGORY_ROOT_NODES);\n\n\t\t\t\treturn isRootNodeSubcategory;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn filteredSearchBase;\n\t}\n\n\tasync function gotoCompatibleConnectionView(\n\t\tconnectionType: NodeConnectionType,\n\t\tisOutput?: boolean,\n\t\tfilter?: INodeInputFilter,\n\t) {\n\t\tlet nodesByConnectionType: { [key: string]: string[] };\n\t\tlet relatedAIView: { properties: NodeViewItem['properties'] } | undefined;\n\n\t\tif (isOutput === true) {\n\t\t\tnodesByConnectionType = useNodeTypesStore().visibleNodeTypesByInputConnectionTypeNames;\n\t\t\trelatedAIView = {\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiNodes'),\n\t\t\t\t\ticon: 'robot',\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\tnodesByConnectionType = useNodeTypesStore().visibleNodeTypesByOutputConnectionTypeNames;\n\n\t\t\trelatedAIView = AINodesView([]).items.find(\n\t\t\t\t(item) => item.properties.connectionType === connectionType,\n\t\t\t);\n\t\t}\n\n\t\tawait nextTick();\n\t\tpushViewStack({\n\t\t\ttitle: relatedAIView?.properties.title,\n\t\t\trootView: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\t\tmode: 'nodes',\n\t\t\titems: nodeCreatorStore.allNodeCreatorNodes,\n\t\t\tnodeIcon: {\n\t\t\t\ticonType: 'icon',\n\t\t\t\ticon: relatedAIView?.properties.icon,\n\t\t\t\tcolor: relatedAIView?.properties.iconProps?.color,\n\t\t\t},\n\t\t\tpanelClass: relatedAIView?.properties.panelClass,\n\t\t\tbaseFilter: (i: INodeCreateElement) => {\n\t\t\t\t// AI Code node could have any connection type so we don't want to display it\n\t\t\t\t// in the compatible connection view as it would be displayed in all of them\n\t\t\t\tif (i.key === AI_CODE_NODE_TYPE) return false;\n\t\t\t\tconst displayNode = nodesByConnectionType[connectionType].includes(i.key);\n\n\t\t\t\t// TODO: Filtering works currently fine for displaying compatible node when dropping\n\t\t\t\t// input connections. However, it does not work for output connections.\n\t\t\t\t// For that reason does it currently display nodes that are maybe not compatible\n\t\t\t\t// but then errors once it got selected by the user.\n\t\t\t\tif (displayNode && filter?.nodes?.length) {\n\t\t\t\t\treturn filter.nodes.includes(i.key);\n\t\t\t\t}\n\n\t\t\t\treturn displayNode;\n\t\t\t},\n\t\t\titemsMapper(item) {\n\t\t\t\treturn {\n\t\t\t\t\t...item,\n\t\t\t\t\tsubcategory: connectionType,\n\t\t\t\t};\n\t\t\t},\n\t\t\tpreventBack: true,\n\t\t});\n\t}\n\n\tfunction setStackBaselineItems() {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack || !activeViewStack.value.uuid) return;\n\n\t\tlet stackItems = stack?.items ?? [];\n\n\t\tif (!stack?.items) {\n\t\t\tconst subcategory = stack?.subcategory ?? DEFAULT_SUBCATEGORY;\n\t\t\tconst itemsInSubcategory = itemsBySubcategory.value[subcategory];\n\t\t\tconst sections = stack.sections;\n\n\t\t\tif (sections) {\n\t\t\t\tstackItems = groupItemsInSections(itemsInSubcategory, sections);\n\t\t\t} else {\n\t\t\t\tstackItems = itemsInSubcategory;\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that the nodes specified in `stack.forceIncludeNodes` are always included,\n\t\t// regardless of whether the subcategory is matched\n\t\tif ((stack.forceIncludeNodes ?? []).length > 0) {\n\t\t\tconst matchedNodes = nodeCreatorStore.mergedNodes\n\t\t\t\t.filter((item) => stack.forceIncludeNodes?.includes(item.name))\n\t\t\t\t.map((item) => transformNodeType(item, stack.subcategory));\n\n\t\t\tstackItems.push(...matchedNodes);\n\t\t}\n\n\t\tif (stack.baseFilter) {\n\t\t\tstackItems = stackItems.filter(stack.baseFilter);\n\t\t}\n\n\t\tif (stack.itemsMapper) {\n\t\t\tstackItems = stackItems.map(stack.itemsMapper);\n\t\t}\n\n\t\t// Sort only if non-root view\n\t\tif (!stack.items) {\n\t\t\tstackItems = sortNodeCreateElements(stackItems);\n\t\t}\n\n\t\tupdateCurrentViewStack({ baselineItems: stackItems });\n\t}\n\n\tfunction extendItemsWithUUID(items: INodeCreateElement[]) {\n\t\treturn items.map((item) => ({\n\t\t\t...item,\n\t\t\tuuid: `${item.key}-${uuid()}`,\n\t\t}));\n\t}\n\n\tfunction pushViewStack(stack: ViewStack) {\n\t\tif (activeViewStack.value.uuid) {\n\t\t\tupdateCurrentViewStack({ activeIndex: getActiveItemIndex() });\n\t\t}\n\n\t\tconst newStackUuid = uuid();\n\t\tviewStacks.value.push({\n\t\t\t...stack,\n\t\t\tuuid: newStackUuid,\n\t\t\ttransitionDirection: 'in',\n\t\t\tactiveIndex: 0,\n\t\t});\n\t\tsetStackBaselineItems();\n\t}\n\n\tfunction popViewStack() {\n\t\tif (activeViewStack.value.uuid) {\n\t\t\tviewStacks.value.pop();\n\t\t\tupdateCurrentViewStack({ transitionDirection: 'out' });\n\t\t}\n\t}\n\n\tfunction updateCurrentViewStack(stack: Partial<ViewStack>) {\n\t\tconst currentStack = getLastActiveStack();\n\t\tconst matchedIndex = viewStacks.value.findIndex((s) => s.uuid === currentStack.uuid);\n\t\tif (!currentStack) return;\n\n\t\t// For each key in the stack, update the matched stack\n\t\tObject.keys(stack).forEach((key) => {\n\t\t\tconst typedKey = key as keyof ViewStack;\n\t\t\tviewStacks.value[matchedIndex] = {\n\t\t\t\t...viewStacks.value[matchedIndex],\n\t\t\t\t[key]: stack[typedKey],\n\t\t\t};\n\t\t});\n\t}\n\n\tfunction resetViewStacks() {\n\t\tviewStacks.value = [];\n\t}\n\n\treturn {\n\t\tviewStacks,\n\t\tactiveViewStack,\n\t\tactiveViewStackMode,\n\t\tglobalSearchItemsDiff,\n\t\tgotoCompatibleConnectionView,\n\t\tresetViewStacks,\n\t\tupdateCurrentViewStack,\n\t\tpushViewStack,\n\t\tpopViewStack,\n\t};\n});\n"],"names":["getAiNodesBySubcategory","nodes","subcategory","node","_c","_b","_a","AI_SUBCATEGORY","a","b","AIView","_nodes","i18n","useI18n","nodeTypesStore","useNodeTypesStore","templatesStore","useTemplatesStore","chainNodes","AI_CATEGORY_CHAINS","agentNodes","AI_CATEGORY_AGENTS","AI_NODE_CREATOR_VIEW","AI_OTHERS_NODE_CREATOR_VIEW","AINodesView","getAISubcategoryProperties","nodeConnectionType","AI_CATEGORY_DOCUMENT_LOADERS","NodeConnectionType","AI_CATEGORY_LANGUAGE_MODELS","AI_CATEGORY_MEMORY","AI_CATEGORY_OUTPUTPARSER","AI_CATEGORY_RETRIEVERS","AI_CATEGORY_TEXT_SPLITTERS","AI_CATEGORY_TOOLS","CORE_NODES_CATEGORY","AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE","AI_CODE_TOOL_LANGCHAIN_NODE_TYPE","AI_CATEGORY_EMBEDDING","AI_CATEGORY_VECTOR_STORES","AI_UNCATEGORIZED_CATEGORY","TriggerView","TRIGGER_NODE_CREATOR_VIEW","MANUAL_TRIGGER_NODE_TYPE","DEFAULT_SUBCATEGORY","WEBHOOK_NODE_TYPE","EMAIL_IMAP_NODE_TYPE","SCHEDULE_TRIGGER_NODE_TYPE","FORM_TRIGGER_NODE_TYPE","EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE","MANUAL_CHAT_TRIGGER_NODE_TYPE","OTHER_TRIGGER_NODES_SUBCATEGORY","RegularView","view","REGULAR_NODE_CREATOR_VIEW","RSS_READ_NODE_TYPE","EMAIL_SEND_NODE_TYPE","TRANSFORM_DATA_SUBCATEGORY","SET_NODE_TYPE","CODE_NODE_TYPE","DATETIME_NODE_TYPE","FILTER_NODE_TYPE","REMOVE_DUPLICATES_NODE_TYPE","SPLIT_OUT_NODE_TYPE","LIMIT_NODE_TYPE","SUMMARIZE_NODE_TYPE","AGGREGATE_NODE_TYPE","MERGE_NODE_TYPE","HTML_NODE_TYPE","MARKDOWN_NODE_TYPE","XML_NODE_TYPE","CRYPTO_NODE_TYPE","EXTRACT_FROM_FILE_NODE_TYPE","CONVERT_TO_FILE_NODE_TYPE","COMPRESSION_NODE_TYPE","EDIT_IMAGE_NODE_TYPE","FLOWS_CONTROL_SUBCATEGORY","IF_NODE_TYPE","SPLIT_IN_BATCHES_NODE_TYPE","HELPERS_SUBCATEGORY","HTTP_REQUEST_NODE_TYPE","KEYBOARD_ID_ATTR","WATCHED_KEYS","useKeyboardNavigation","defineStore","selectableItems","ref","activeItemId","keysHooks","getItemType","element","getElementId","refreshSelectableItems","resolve","cleanupSelectableItems","el","executeKeyHooks","keyboardKey","activeItem","hook","onKeyDown","e","pressedKey","activeItemIndex","item","isArrowDown","isArrowUp","nextItemIndex","setActiveItem","previousIndex","setActiveItemId","id","itemId","setActiveItemIndex","index","attachKeydownEvent","detachKeydownEvent","registerKeyHook","name","getActiveItemIndex","useViewStacks","nodeCreatorStore","useNodeCreatorStore","viewStacks","activeStackItems","computed","stack","getLastActiveStack","extendItemsWithUUID","searchBaseItems","searchBase","flattenCreateElements","canvasHasAINodes","useCanvasStore","filteredNodes","isAiRootView","filterOutAiNodes","searchResults","searchNodes","groupedNodes","groupIfAiNodes","activeViewStack","flatBaselineItems","activeViewStackMode","transformNodeType","globalSearchItemsDiff","allNodes","globalSearchResult","sectionItem","child","filteredItem","itemsBySubcategory","subcategorizeItems","items","sortAlphabetically","aiNodes","isAINode","sectionsMap","section","currentItems","_d","isSubnodesSection","_f","_e","AI_CATEGORY_ROOT_NODES","nonAiNodes","difference","nonAiTriggerNodes","nonAiRegularNodes","sectionKey","nodesKeys","sections","groupItemsInSections","gotoCompatibleConnectionView","connectionType","isOutput","filter","nodesByConnectionType","relatedAIView","nextTick","pushViewStack","i","AI_CODE_NODE_TYPE","displayNode","setStackBaselineItems","stackItems","itemsInSubcategory","matchedNodes","sortNodeCreateElements","updateCurrentViewStack","uuid","newStackUuid","popViewStack","currentStack","matchedIndex","s","key","typedKey","resetViewStacks"],"mappings":"83BA6GA,SAASA,GAAwBC,EAA+BC,EAAqB,CACpF,OAAOD,EACL,OACCE,GAAS,WAAA,OAACA,EAAK,UAAUC,GAAAC,GAAAC,EAAAH,EAAK,QAAL,YAAAG,EAAY,gBAAZ,YAAAD,EAA4BE,KAA5B,YAAAH,EAA6C,SAASF,IAAW,EAE3F,IAAKC,IAAU,CACf,IAAKA,EAAK,KACV,KAAM,OACN,WAAY,CACX,MAAO,CAAC,EACR,KAAMA,EAAK,KACX,YAAaA,EAAK,YAClB,MAAOA,EAAK,YACZ,YAAaA,EAAK,YAElB,KAAMA,EAAK,KACX,SAAUA,EAAK,KAAK,cAAc,SAAS,QAAQ,EAChD,CACA,KAAM,OACN,KAAM,SACN,WAAY,qBAEZ,EAAA,MACJ,CACC,EAAA,EACD,KAAK,CAACK,EAAGC,IAAMD,EAAE,WAAW,YAAY,cAAcC,EAAE,WAAW,WAAW,CAAC,CAClF,CAEO,SAASC,GAAOC,EAAwC,CAC9D,MAAMC,EAAOC,IACPC,EAAiBC,IACjBC,EAAiBC,KAEjBC,EAAalB,GAAwBc,EAAe,mBAAoBK,EAAkB,EAC1FC,EAAapB,GAAwBc,EAAe,mBAAoBO,EAAkB,EAEzF,MAAA,CACN,MAAOC,EACP,MAAOV,EAAK,SAAS,6BAA6B,EAClD,SAAUA,EAAK,SAAS,kCAAkC,EAC1D,MAAO,CACN,CACC,IAAK,oBACL,KAAM,OACN,WAAY,CACX,MAAOA,EAAK,SAAS,oCAAoC,EACzD,KAAM,WACN,YAAaA,EAAK,SAAS,0CAA0C,EACrE,KAAM,oBACN,IAAKI,EAAe,sBAAsB,OAAW,YAAY,EACjE,IAAK,CACJ,KAAM,OACN,KAAMJ,EAAK,SAAS,iDAAiD,CACtE,CACD,CACD,EACA,GAAGQ,EACH,GAAGF,EACH,CACC,IAAKK,EACL,KAAM,OACN,WAAY,CACX,MAAOX,EAAK,SAAS,kCAAkC,EACvD,KAAM,QACN,YAAaA,EAAK,SAAS,6CAA6C,CACzE,CACD,CACD,CAAA,CAEF,CAEO,SAASY,GAAYb,EAAwC,CACnE,MAAMC,EAAOC,IAEb,SAASY,EAA2BC,EAAwC,CACpE,MAAA,CACN,eAAgBA,EAChB,UAAW,CACV,MAAO,mBAAmBA,CAAkB,SAC7C,EACA,WAAY,oBAAoBA,CAAkB,EAAA,CAEpD,CAEO,MAAA,CACN,MAAOH,EACP,MAAOX,EAAK,SAAS,kCAAkC,EACvD,SAAUA,EAAK,SAAS,kCAAkC,EAC1D,MAAO,CACN,CACC,IAAKe,EACL,KAAM,cACN,WAAY,CACX,MAAOA,EACP,KAAM,cACN,GAAGF,EAA2BG,EAAmB,UAAU,CAC5D,CACD,EACA,CACC,IAAKC,EACL,KAAM,cACN,WAAY,CACX,MAAOA,EACP,KAAM,WACN,GAAGJ,EAA2BG,EAAmB,eAAe,CACjE,CACD,EACA,CACC,IAAKE,EACL,KAAM,cACN,WAAY,CACX,MAAOA,EACP,KAAM,QACN,GAAGL,EAA2BG,EAAmB,QAAQ,CAC1D,CACD,EACA,CACC,IAAKG,EACL,KAAM,cACN,WAAY,CACX,MAAOA,EACP,KAAM,OACN,GAAGN,EAA2BG,EAAmB,cAAc,CAChE,CACD,EACA,CACC,IAAKI,GACL,KAAM,cACN,WAAY,CACX,MAAOA,GACP,KAAM,SACN,GAAGP,EAA2BG,EAAmB,WAAW,CAC7D,CACD,EACA,CACC,IAAKK,GACL,KAAM,cACN,WAAY,CACX,MAAOA,GACP,KAAM,sBACN,GAAGR,EAA2BG,EAAmB,cAAc,CAChE,CACD,EACA,CACC,KAAM,cACN,IAAKM,GACL,SAAUC,EACV,WAAY,CACX,MAAOD,GACP,KAAM,QACN,GAAGT,EAA2BG,EAAmB,MAAM,EACvD,SAAU,CACT,CACC,IAAK,UACL,MAAOhB,EAAK,SAAS,kCAAkC,EACvD,MAAO,CAACwB,GAAsCC,EAAgC,CAC/E,CACD,CACD,CACD,EACA,CACC,IAAKC,GACL,KAAM,cACN,WAAY,CACX,MAAOA,GACP,KAAM,gBACN,GAAGb,EAA2BG,EAAmB,WAAW,CAC7D,CACD,EACA,CACC,IAAKW,GACL,KAAM,cACN,WAAY,CACX,MAAOA,GACP,KAAM,kBACN,GAAGd,EAA2BG,EAAmB,aAAa,CAC/D,CACD,EACA,CACC,IAAKY,GACL,KAAM,cACN,WAAY,CACX,MAAOA,GACP,KAAM,MACP,CACD,CACD,CAAA,CAEF,CAEO,SAASC,IAAc,CAC7B,MAAM7B,EAAOC,IA4GN,MA1GgB,CACtB,MAAO6B,EACP,MAAO9B,EAAK,SAAS,+CAA+C,EACpE,SAAUA,EAAK,SAAS,0DAA0D,EAClF,MAAO,CACN,CACC,IAAK+B,GACL,KAAM,OACN,SAAU,CAACR,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMQ,GACN,YAAa/B,EAAK,SAAS,yDAAyD,EACpF,YAAaA,EAAK,SAAS,yDAAyD,EACpF,KAAM,kBACP,CACD,EACA,CACC,IAAKgC,EACL,KAAM,cACN,WAAY,CACX,kBAAmB,CAACC,EAAmBC,EAAoB,EAC3D,MAAO,oBACP,KAAM,gBACP,CACD,EACA,CACC,IAAKC,GACL,KAAM,OACN,SAAU,CAACZ,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMY,GACN,YAAanC,EAAK,SAAS,2DAA2D,EACtF,YAAaA,EAAK,SAAS,2DAA2D,EACtF,KAAM,UACP,CACD,EACA,CACC,IAAKiC,EACL,KAAM,OACN,SAAU,CAACV,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMU,EACN,YAAajC,EAAK,SAAS,0DAA0D,EACrF,YAAaA,EAAK,SAAS,0DAA0D,EACrF,SAAU,CACT,KAAM,OACN,KAAM,UACN,WAAY,0BACb,CACD,CACD,EACA,CACC,IAAKoC,GACL,KAAM,OACN,SAAU,CAACb,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMa,GACN,YAAapC,EAAK,SAAS,uDAAuD,EAClF,YAAaA,EAAK,SAAS,uDAAuD,EAClF,SAAU,CACT,KAAM,OACN,KAAM,OACN,WAAY,uBACb,CACD,CACD,EACA,CACC,IAAKqC,GACL,KAAM,OACN,SAAU,CAACd,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMc,GACN,YAAarC,EAAK,SAAS,2DAA2D,EACtF,YAAaA,EAAK,SAAS,2DAA2D,EACtF,KAAM,iBACP,CACD,EACA,CACC,IAAKsC,GACL,KAAM,OACN,SAAU,CAACf,CAAmB,EAC9B,WAAY,CACX,MAAO,CAAC,EACR,KAAMe,GACN,YAAatC,EAAK,SAAS,6DAA6D,EACxF,YAAaA,EAAK,SAAS,6DAA6D,EACxF,KAAM,aACP,CACD,EACA,CACC,KAAM,cACN,IAAKuC,GACL,SAAUhB,EACV,WAAY,CACX,MAAOgB,GACP,KAAM,aACP,CACD,CACD,CAAA,CAIF,CAEO,SAASC,GAAYnD,EAA6B,CACxD,MAAMW,EAAOC,IAEPwC,EAAiB,CACtB,MAAOC,GACP,MAAO1C,EAAK,SAAS,gDAAgD,EACrE,MAAO,CACN,CACC,IAAKgC,EACL,KAAM,cACN,WAAY,CACX,MAAO,oBACP,KAAM,QACN,kBAAmB,CAACW,GAAoBC,EAAoB,CAC7D,CACD,EACA,CACC,KAAM,cACN,IAAKC,GACL,SAAUtB,EACV,WAAY,CACX,MAAOsB,GACP,KAAM,MACN,SAAU,CACT,CACC,IAAK,UACL,MAAO7C,EAAK,SAAS,kCAAkC,EACvD,MAAO,CAAC8C,GAAeC,GAAgBC,EAAkB,CAC1D,EACA,CACC,IAAK,cACL,MAAOhD,EAAK,SAAS,gDAAgD,EACrE,MAAO,CACNiD,GACAC,GACAC,GACAC,EACD,CACD,EACA,CACC,IAAK,UACL,MAAOpD,EAAK,SAAS,4CAA4C,EACjE,MAAO,CAACqD,GAAqBC,GAAqBC,EAAe,CAClE,EACA,CACC,IAAK,UACL,MAAOvD,EAAK,SAAS,4CAA4C,EACjE,MAAO,CACNwD,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,CACD,CACD,CACD,CACD,EACA,CACC,KAAM,cACN,IAAKC,GACL,SAAUzC,EACV,WAAY,CACX,MAAOyC,GACP,KAAM,cACN,SAAU,CACT,CACC,IAAK,UACL,MAAOhE,EAAK,SAAS,kCAAkC,EACvD,MAAO,CAACiD,GAAkBgB,GAAcC,GAA4BX,EAAe,CACpF,CACD,CACD,CACD,EACA,CACC,KAAM,cACN,IAAKY,GACL,SAAU5C,EACV,WAAY,CACX,MAAO4C,GACP,KAAM,UACN,SAAU,CACT,CACC,IAAK,UACL,MAAOnE,EAAK,SAAS,kCAAkC,EACvD,MAAO,CAACoE,GAAwBnC,EAAmBc,EAAc,CAClE,CACD,CACD,CACD,CACD,CAAA,EAIG,OADgB1D,GAAS,CAAC,GAAG,KAAME,YAAS,OAAAE,GAAAC,EAAAH,EAAK,QAAL,YAAAG,EAAY,aAAZ,YAAAD,EAAwB,SAASE,GAAe,GAE/F8C,EAAK,MAAM,KAAK,CACf,IAAK/B,EACL,KAAM,OACN,WAAY,CACX,MAAOV,EAAK,SAAS,sCAAsC,EAC3D,KAAM,QACN,YAAaA,EAAK,SAAS,gCAAgC,EAC3D,IAAK,CACJ,KAAM,UACN,KAAMA,EAAK,SAAS,4BAA4B,CACjD,EACA,WAAY,EACb,CAAA,CACgB,EAElByC,EAAK,MAAM,KAAK,CACf,IAAKX,EACL,KAAM,OACN,WAAY,CACX,MAAO9B,EAAK,SAAS,kDAAkD,EACvE,KAAM,OACN,YAAaA,EAAK,SAAS,6DAA6D,CACzF,CAAA,CACA,EAEMyC,CACR,CC7gBO,MAAM4B,GAAmB,uBACnBC,GAAe,CAC3B,UACA,YACA,YACA,aACA,QACA,SACA,KACD,EAEaC,GAAwBC,GAAY,gCAAiC,IAAM,CACjF,MAAAC,EAAkBC,EAA6B,CAAA,CAAE,EACjDC,EAAeD,EAAmB,IAAI,EAEtCE,EAAYF,EAA6B,CAAA,CAAE,EAEjD,SAASG,EAAYC,EAAmB,CAChC,OAAAA,GAAA,YAAAA,EAAS,aAAa,yBAC9B,CACA,SAASC,EAAaD,EAAmB,CACjC,OAAAA,GAAA,YAAAA,EAAS,aAAaT,MAAqB,MACnD,CACA,eAAeW,GAAwC,CACtD,OAAO,MAAM,IAAI,QAASC,GAAY,CAEdC,IACvB,WAAW,IAAM,CAChBT,EAAgB,MAAQ,MAAM,KAC7B,SAAS,iBAAiB,0BAA0B,CAAA,EACnD,IAAKU,GAAO,IAAI,QAAQA,CAAE,CAAC,EACrBF,KACN,CAAC,CAAA,CACJ,CACF,CAES,SAAAG,EAAgBC,EAA0BC,EAAqB,CACrD,OAAO,OAAOV,EAAU,KAAK,EACvB,OAAQW,GAASA,EAAK,aAAa,SAASF,CAAW,CAAC,EAE1E,QAASE,GAAS,CACvB,GAAI,CAACZ,EAAa,MAAO,QAGxBY,EAAK,YAAc,QACnBA,EAAK,UAAUV,EAAYS,CAAU,GAAK,GAAIX,EAAa,KAAK,IAE1CA,EAAa,OAC9BY,EAAA,QAAQZ,EAAa,MAAOU,CAAW,CAC7C,CACA,CACF,CAEA,eAAeG,EAAUC,EAAkB,WAC1C,MAAMC,EAAaD,EAAE,IACjB,GAAA,CAACnB,GAAa,SAASoB,CAAU,EAAG,OACxCD,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EAElB,MAAMT,EAAuB,EACvB,MAAAW,EAAkBlB,EAAgB,MAAM,UAC5CmB,GAASb,EAAaa,GAAA,YAAAA,EAAM,OAAO,IAAMjB,EAAa,KAAA,EAElDW,GAAa5F,EAAA+E,EAAgB,MAAMkB,CAAe,IAArC,YAAAjG,EAAwC,QAErDmG,EAAcH,IAAe,YAC7BI,EAAYJ,IAAe,UAEjC,GAAKJ,EAEL,IAAIO,EAAa,CAChB,MAAME,EACLJ,EAAkBlB,EAAgB,MAAM,OAAS,EAAIkB,EAAkB,EAAI,EAE5EK,GAAcvG,EAAAgF,EAAgB,MAAMsB,CAAa,IAAnC,YAAAtG,EAAsC,OAAO,CAC5D,CACA,GAAIqG,EAAW,CACd,MAAMG,EACLN,EAAkB,EAAIA,EAAkB,EAAIlB,EAAgB,MAAM,OAAS,EAE5EuB,GAAcxG,EAAAiF,EAAgB,MAAMwB,CAAa,IAAnC,YAAAzG,EAAsC,OAAO,CAC5D,CACA4F,EAAgBM,EAAYJ,CAAU,EACvC,CAEA,SAASY,EAAgBC,EAAY,CACpCxB,EAAa,MAAQwB,CACtB,CAEA,SAASH,EAAcJ,EAAgB,CAChC,MAAAQ,EAASrB,EAAaa,CAAI,EAC3BQ,IAELF,EAAgBE,CAAM,EAClBR,GAAA,MAAAA,EAAM,iBACTA,GAAA,MAAAA,EAAM,eAAe,CAAE,MAAO,QAAU,IAE1C,CAEA,eAAeS,EAAmBC,EAAe,OAChD,MAAMtB,EAAuB,EAE7BgB,GAActG,EAAA+E,EAAgB,MAAM6B,CAAK,IAA3B,YAAA5G,EAA8B,OAAO,CACpD,CAEA,SAAS6G,GAAqB,CAC7B,SAAS,iBAAiB,UAAWf,EAAW,CAAE,QAAS,GAAM,CAClE,CAEA,SAASgB,GAAqB,CACNtB,IACvB,SAAS,oBAAoB,UAAWM,EAAW,CAAE,QAAS,GAAM,CACrE,CAES,SAAAiB,EAAgBC,EAAcnB,EAAe,CAChDA,EAAA,aAAa,QAASF,GAAgB,CACtC,GAAAf,GAAa,SAASe,CAAW,EAC1BT,EAAA,MAAQ,CAAE,GAAGA,EAAU,MAAO,CAAC8B,CAAI,EAAGnB,OAEhD,OAAM,IAAI,MAAM,OAAOF,CAAW,mBAAmB,CACtD,CACA,CACF,CAEA,SAASH,GAAyB,CAEjCT,EAAgB,MAAQ,EACzB,CAEA,SAASkC,GAAqB,CAC7B,OAAOlC,EAAgB,MAAM,UAC3BmB,GAASb,EAAaa,GAAA,YAAAA,EAAM,OAAO,IAAMjB,EAAa,KAAA,CAEzD,CAEO,MAAA,CACN,aAAAA,EACA,mBAAA4B,EACA,uBAAAvB,EACA,mBAAAwB,EACA,gBAAAC,EACA,mBAAAE,EACA,gBAAAT,EACA,mBAAAG,CAAA,CAEF,CAAC,ECrFYO,GAAgBpC,GAAY,wBAAyB,IAAM,CACvE,MAAMqC,EAAmBC,KACnB,CAAE,mBAAAH,GAAuBpC,KACzBvE,EAAOC,IAEP8G,EAAarC,EAAiB,CAAA,CAAE,EAEhCsC,EAAmBC,EAA+B,IAAM,CAC7D,MAAMC,EAAQC,IAEV,GAAA,EAACD,GAAA,MAAAA,EAAO,eACX,OAAOA,EAAM,MAAQE,EAAoBF,EAAM,KAAK,EAAI,GAGrD,GAAAA,EAAM,QAAUG,EAAgB,MAAO,CACpC,MAAAC,EACLD,EAAgB,MAAM,OAAS,EAC5BA,EAAgB,MAChBE,GAAsBL,EAAM,eAAiB,CAAE,CAAA,EAE7CM,EAAmBC,GAAA,EAAiB,QAAQ,OAAS,EACrDC,EACLC,EAAaT,CAAK,GAAKM,EAAmBF,EAAaM,EAAiBN,CAAU,EAE7EO,EAAgBT,EAAoBU,GAAYZ,EAAM,QAAU,GAAIQ,CAAa,CAAC,EAElFK,EAAeC,EAAeH,EAAe,EAAK,GAAKA,EAGvD,OAAAX,EAAA,YAAca,EAAa,KAAMxI,GAASA,EAAK,OAAS,SAAS,EAAI,EAAI,EAExEwI,CACR,CACA,OAAOX,EAAoBY,EAAed,EAAM,cAAe,EAAI,CAAC,CAAA,CACpE,EAEKe,EAAkBhB,EAAoB,IAAM,CACjD,MAAMC,EAAQC,IACd,GAAI,CAACD,EAAO,MAAO,GAEnB,MAAMgB,EAAoBX,GAAsBL,EAAM,eAAiB,CAAE,CAAA,EAElE,MAAA,CACN,GAAGA,EACH,MAAOF,EAAiB,MACxB,UAAWkB,EAAkB,OAAS,IAAKhB,GAAA,YAAAA,EAAO,UAAA,CACnD,CACA,EAEKiB,EAAsBlB,EAC3B,IAAMgB,EAAgB,MAAM,MAAQnG,CAAA,EAG/BuF,EAAkBJ,EAA+B,IAAM,CAC5D,MAAMC,EAAQC,IACd,OAAKD,GAAA,MAAAA,EAAO,YAELA,EAAM,YAAY,IAAKtB,GAASwC,EAAkBxC,EAAMsB,EAAM,WAAW,CAAC,EAFjD,EAEiD,CACjF,EAED,SAASC,GAAqB,CAC7B,OAAOJ,EAAW,MAAMA,EAAW,MAAM,OAAS,CAAC,CACpD,CAGM,MAAAsB,EAAwBpB,EAA+B,IAAM,CAClE,MAAMC,EAAQC,IACd,GAAI,EAACD,GAAA,MAAAA,EAAO,QAAQ,MAAO,GAErB,MAAAoB,EAAWzB,EAAiB,YAAY,IAAKjB,GAASwC,EAAkBxC,CAAI,CAAC,EAE7E8B,EAAgBC,EAAaT,CAAK,EAAIoB,EAAWV,EAAiBU,CAAQ,EAEhF,IAAIC,EAA2CnB,EAC9CU,GAAYZ,EAAM,QAAU,GAAIQ,CAAa,CAAA,EAE1C,OAAAC,EAAaT,CAAK,IACrBqB,EAAqBP,EAAeO,CAAkB,GAGjCA,EAAmB,OAAQ3C,GACzC,CAACoB,EAAiB,MAAM,KAAM1B,GAChCA,EAAW,OAAS,UACKA,EAAW,SAAS,KAC9CkD,GAAgBA,EAAY,MAAQ5C,EAAK,GAAA,EAKrCN,EAAW,MAAQM,EAAK,GAC/B,CACD,EAGsC,OAAQA,GAC1CA,EAAK,OAAS,UACUA,EAAK,SAAS,KAAM6C,GAC9CzB,EAAiB,MAAM,KAAM0B,GAAiBA,EAAa,MAAQD,EAAM,GAAG,CAAA,EAMvE,EACP,CAEM,CACP,EAEKE,EAAqB1B,EAAS,IAAM2B,GAAmB/B,EAAiB,WAAW,CAAC,EAE1F,SAASc,EAAaT,EAAkB,CACvC,OAAOA,EAAM,WAAaxG,CAC3B,CAES,SAAAsH,EAAea,EAA6BC,EAAqB,GAAM,CAC/E,MAAMC,EAAUF,EAAM,OAAQtJ,GAAoCyJ,GAASzJ,CAAI,CAAC,EAE5E,GAAAwJ,EAAQ,OAAS,EAAG,CACjB,MAAAE,MAAkB,IAChBF,EAAA,QAASxJ,GAAS,iBACzB,MAAM2J,GAAU1J,GAAAC,GAAAC,EAAAH,EAAK,WAAW,QAAhB,YAAAG,EAAuB,gBAAvB,YAAAD,EAAuCE,KAAvC,YAAAH,EAAyD,GAEzE,GAAI0J,EAAS,CACZ,MAAMC,KAAeC,EAAAH,EAAY,IAAIC,CAAO,IAAvB,YAAAE,EAA0B,QAAS,GAClDC,GACL,GAACC,GAAAC,EAAAhK,EAAK,WAAW,QAAhB,YAAAgK,EAAuB,gBAAvB,MAAAD,EAAuC3J,GAAgB,SACvD6J,KAGFP,EAAY,IAAIC,EAAS,CACxB,IAAKA,EACL,MAAOG,GACJ,GAAGH,CAAO,KAAKlJ,EAAK,SAAS,sBAAsB,CAAC,IACpDkJ,EACH,MAAO,CAAC,GAAGC,GAAc5J,EAAK,GAAG,CAAA,CACjC,CACF,CAAA,CACA,EAEK,MAAAkK,EAAaC,GAAWb,EAAOE,CAAO,EACtCY,EAAoBF,EAAW,OACnC7D,GAASA,EAAK,OAAS,QAAUzF,EAAoB,EAAA,cAAcyF,EAAK,WAAW,IAAI,CAAA,EAGnFgE,EAAoBF,GAAWD,EAAYE,CAAiB,EAE9D,GAAAF,EAAW,OAAS,EAAG,CAC1B,IAAII,EAAa,GACbD,EAAkB,QAAUD,EAAkB,OACpCE,EAAA7J,EAAK,SAAS,gDAAgD,EAE9D6J,EAAAD,EAAkB,OAC5B5J,EAAK,SAAS,0CAA0C,EACxDA,EAAK,SAAS,0CAA0C,EAG5D,MAAM8J,EAAYL,EAAW,IAAKlK,GAASA,EAAK,GAAG,EAEnD0J,EAAY,IAAIY,EAAY,CAC3B,IAAKA,EACL,MAAOA,EACP,MAAO,CAAC,GAAGC,CAAS,CAAA,CACpB,CACF,CAEA,MAAMC,EAAW,MAAM,KAAKd,EAAY,OAAQ,CAAA,EAEzC,OAAAe,GAAqBnB,EAAOkB,EAAUjB,CAAkB,CAChE,CAEO,OAAAD,CACR,CAEA,SAASjB,EAAiBiB,EAA6B,CAc/C,OAboBA,EAAM,OAAQjD,GAAS,eAC7C,OAAAA,EAAK,OAAS,UACInG,GAAAC,EAAAkG,EAAK,WAAW,QAAhB,YAAAlG,EAAuB,aAAvB,YAAAD,EAAmC,SAASE,MAAoB,IAKpF4J,GAAAH,GAAA5J,EAAAoG,EAAK,WAAW,QAAhB,YAAApG,EAAuB,gBAAvB,YAAA4J,EAAuCzJ,KAAvC,YAAA4J,EAAwD,SAASC,IAI5D,EAAA,CACP,CAEF,CAEe,eAAAS,EACdC,EACAC,EACAC,EACC,OACG,IAAAC,EACAC,EAEAH,IAAa,IAChBE,EAAwBlK,EAAoB,EAAA,2CAC5BmK,EAAA,CACf,WAAY,CACX,MAAOtK,EAAK,SAAS,6BAA6B,EAClD,KAAM,OACP,CAAA,IAGDqK,EAAwBlK,EAAoB,EAAA,4CAE5CmK,EAAgB1J,GAAc,EAAE,MAAM,KACpCgF,GAASA,EAAK,WAAW,iBAAmBsE,CAAA,GAI/C,MAAMK,GAAS,EACDC,EAAA,CACb,MAAOF,GAAA,YAAAA,EAAe,WAAW,MACjC,SAAU3J,EACV,KAAM,QACN,MAAOkG,EAAiB,oBACxB,SAAU,CACT,SAAU,OACV,KAAMyD,GAAA,YAAAA,EAAe,WAAW,KAChC,OAAO5K,EAAA4K,GAAA,YAAAA,EAAe,WAAW,YAA1B,YAAA5K,EAAqC,KAC7C,EACA,WAAY4K,GAAA,YAAAA,EAAe,WAAW,WACtC,WAAaG,GAA0B,OAGtC,GAAIA,EAAE,MAAQC,GAA0B,MAAA,GACxC,MAAMC,EAAcN,EAAsBH,CAAc,EAAE,SAASO,EAAE,GAAG,EAMpE,OAAAE,KAAejL,EAAA0K,GAAA,YAAAA,EAAQ,QAAR,MAAA1K,EAAe,QAC1B0K,EAAO,MAAM,SAASK,EAAE,GAAG,EAG5BE,CACR,EACA,YAAY/E,EAAM,CACV,MAAA,CACN,GAAGA,EACH,YAAasE,CAAA,CAEf,EACA,YAAa,EAAA,CACb,CACF,CAEA,SAASU,GAAwB,CAChC,MAAM1D,EAAQC,IACd,GAAI,CAACD,GAAS,CAACe,EAAgB,MAAM,KAAM,OAEvC,IAAA4C,GAAa3D,GAAA,YAAAA,EAAO,QAAS,GAE7B,GAAA,EAACA,GAAA,MAAAA,EAAO,OAAO,CACZ,MAAA5H,GAAc4H,GAAA,YAAAA,EAAO,cAAelF,EACpC8I,EAAqBnC,EAAmB,MAAMrJ,CAAW,EACzDyK,EAAW7C,EAAM,SAEnB6C,EACUc,EAAAb,GAAqBc,EAAoBf,CAAQ,EAEjDc,EAAAC,CAEf,CAIA,IAAK5D,EAAM,mBAAqB,CAAA,GAAI,OAAS,EAAG,CACzC,MAAA6D,EAAelE,EAAiB,YACpC,OAAQjB,GAAS,OAAA,OAAAlG,EAAAwH,EAAM,oBAAN,YAAAxH,EAAyB,SAASkG,EAAK,MAAK,EAC7D,IAAKA,GAASwC,EAAkBxC,EAAMsB,EAAM,WAAW,CAAC,EAE/C2D,EAAA,KAAK,GAAGE,CAAY,CAChC,CAEI7D,EAAM,aACI2D,EAAAA,EAAW,OAAO3D,EAAM,UAAU,GAG5CA,EAAM,cACI2D,EAAAA,EAAW,IAAI3D,EAAM,WAAW,GAIzCA,EAAM,QACV2D,EAAaG,GAAuBH,CAAU,GAGxBI,EAAA,CAAE,cAAeJ,CAAA,CAAY,CACrD,CAEA,SAASzD,EAAoByB,EAA6B,CAClD,OAAAA,EAAM,IAAKjD,IAAU,CAC3B,GAAGA,EACH,KAAM,GAAGA,EAAK,GAAG,IAAIsF,IAAM,EAC1B,EAAA,CACH,CAEA,SAASV,EAActD,EAAkB,CACpCe,EAAgB,MAAM,MACzBgD,EAAuB,CAAE,YAAatE,EAAmB,CAAG,CAAA,EAG7D,MAAMwE,EAAeD,KACrBnE,EAAW,MAAM,KAAK,CACrB,GAAGG,EACH,KAAMiE,EACN,oBAAqB,KACrB,YAAa,CAAA,CACb,EACqBP,GACvB,CAEA,SAASQ,GAAe,CACnBnD,EAAgB,MAAM,OACzBlB,EAAW,MAAM,MACMkE,EAAA,CAAE,oBAAqB,KAAA,CAAO,EAEvD,CAEA,SAASA,EAAuB/D,EAA2B,CAC1D,MAAMmE,EAAelE,IACfmE,EAAevE,EAAW,MAAM,UAAWwE,GAAMA,EAAE,OAASF,EAAa,IAAI,EAC9EA,GAGL,OAAO,KAAKnE,CAAK,EAAE,QAASsE,GAAQ,CACnC,MAAMC,EAAWD,EACNzE,EAAA,MAAMuE,CAAY,EAAI,CAChC,GAAGvE,EAAW,MAAMuE,CAAY,EAChC,CAACE,CAAG,EAAGtE,EAAMuE,CAAQ,CAAA,CACtB,CACA,CACF,CAEA,SAASC,GAAkB,CAC1B3E,EAAW,MAAQ,EACpB,CAEO,MAAA,CACN,WAAAA,EACA,gBAAAkB,EACA,oBAAAE,EACA,sBAAAE,EACA,6BAAA4B,EACA,gBAAAyB,EACA,uBAAAT,EACA,cAAAT,EACA,aAAAY,CAAA,CAEF,CAAC"}
1
+ {"version":3,"file":"useViewStacks-BSagsijV.js","sources":["../../src/components/Node/NodeCreator/viewsData.ts","../../src/components/Node/NodeCreator/composables/useKeyboardNavigation.ts","../../src/components/Node/NodeCreator/composables/useViewStacks.ts"],"sourcesContent":["import {\n\tCORE_NODES_CATEGORY,\n\tWEBHOOK_NODE_TYPE,\n\tOTHER_TRIGGER_NODES_SUBCATEGORY,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\tFORM_TRIGGER_NODE_TYPE,\n\tMANUAL_TRIGGER_NODE_TYPE,\n\tMANUAL_CHAT_TRIGGER_NODE_TYPE,\n\tSCHEDULE_TRIGGER_NODE_TYPE,\n\tREGULAR_NODE_CREATOR_VIEW,\n\tTRANSFORM_DATA_SUBCATEGORY,\n\tFLOWS_CONTROL_SUBCATEGORY,\n\tTRIGGER_NODE_CREATOR_VIEW,\n\tEMAIL_IMAP_NODE_TYPE,\n\tDEFAULT_SUBCATEGORY,\n\tAI_NODE_CREATOR_VIEW,\n\tAI_CATEGORY_AGENTS,\n\tAI_CATEGORY_CHAINS,\n\tAI_CATEGORY_DOCUMENT_LOADERS,\n\tAI_CATEGORY_LANGUAGE_MODELS,\n\tAI_CATEGORY_MEMORY,\n\tAI_CATEGORY_OUTPUTPARSER,\n\tAI_CATEGORY_RETRIEVERS,\n\tAI_CATEGORY_TEXT_SPLITTERS,\n\tAI_CATEGORY_TOOLS,\n\tAI_CATEGORY_VECTOR_STORES,\n\tAI_SUBCATEGORY,\n\tAI_CATEGORY_EMBEDDING,\n\tAI_OTHERS_NODE_CREATOR_VIEW,\n\tAI_UNCATEGORIZED_CATEGORY,\n\tCONVERT_TO_FILE_NODE_TYPE,\n\tEXTRACT_FROM_FILE_NODE_TYPE,\n\tSET_NODE_TYPE,\n\tCODE_NODE_TYPE,\n\tDATETIME_NODE_TYPE,\n\tFILTER_NODE_TYPE,\n\tREMOVE_DUPLICATES_NODE_TYPE,\n\tSPLIT_OUT_NODE_TYPE,\n\tLIMIT_NODE_TYPE,\n\tSUMMARIZE_NODE_TYPE,\n\tAGGREGATE_NODE_TYPE,\n\tMERGE_NODE_TYPE,\n\tHTML_NODE_TYPE,\n\tMARKDOWN_NODE_TYPE,\n\tXML_NODE_TYPE,\n\tCRYPTO_NODE_TYPE,\n\tIF_NODE_TYPE,\n\tSPLIT_IN_BATCHES_NODE_TYPE,\n\tHTTP_REQUEST_NODE_TYPE,\n\tHELPERS_SUBCATEGORY,\n\tRSS_READ_NODE_TYPE,\n\tEMAIL_SEND_NODE_TYPE,\n\tEDIT_IMAGE_NODE_TYPE,\n\tCOMPRESSION_NODE_TYPE,\n\tAI_CODE_TOOL_LANGCHAIN_NODE_TYPE,\n\tAI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE,\n} from '@/constants';\nimport { useI18n } from '@/composables/useI18n';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport type { SimplifiedNodeType } from '@/Interface';\nimport type { INodeTypeDescription } from 'n8n-workflow';\nimport { NodeConnectionType } from 'n8n-workflow';\nimport { useTemplatesStore } from '@/stores/templates.store';\n\nexport interface NodeViewItemSection {\n\tkey: string;\n\ttitle: string;\n\titems: string[];\n}\n\nexport interface NodeViewItem {\n\tkey: string;\n\ttype: string;\n\tproperties: {\n\t\tname?: string;\n\t\ttitle?: string;\n\t\ticon?: string;\n\t\ticonProps?: {\n\t\t\tcolor?: string;\n\t\t};\n\t\turl?: string;\n\t\tconnectionType?: NodeConnectionType;\n\t\tpanelClass?: string;\n\t\tgroup?: string[];\n\t\tsections?: NodeViewItemSection[];\n\t\tdescription?: string;\n\t\tdisplayName?: string;\n\t\ttag?: {\n\t\t\ttype: string;\n\t\t\ttext: string;\n\t\t};\n\t\tforceIncludeNodes?: string[];\n\t\ticonData?: {\n\t\t\ttype: string;\n\t\t\ticon?: string;\n\t\t\tfileBuffer?: string;\n\t\t};\n\t};\n\tcategory?: string | string[];\n}\n\ninterface NodeView {\n\tvalue: string;\n\ttitle: string;\n\tinfo?: string;\n\tsubtitle?: string;\n\titems: NodeViewItem[];\n}\n\nfunction getAiNodesBySubcategory(nodes: INodeTypeDescription[], subcategory: string) {\n\treturn nodes\n\t\t.filter(\n\t\t\t(node) => !node.hidden && node.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(subcategory),\n\t\t)\n\t\t.map((node) => ({\n\t\t\tkey: node.name,\n\t\t\ttype: 'node',\n\t\t\tproperties: {\n\t\t\t\tgroup: [],\n\t\t\t\tname: node.name,\n\t\t\t\tdisplayName: node.displayName,\n\t\t\t\ttitle: node.displayName,\n\t\t\t\tdescription: node.description,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\ticon: node.icon!,\n\t\t\t\ticonData: node.name.toLowerCase().includes('openai')\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\t\ticon: 'openai',\n\t\t\t\t\t\t\tfileBuffer: '/static/open-ai.svg',\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t}))\n\t\t.sort((a, b) => a.properties.displayName.localeCompare(b.properties.displayName));\n}\n\nexport function AIView(_nodes: SimplifiedNodeType[]): NodeView {\n\tconst i18n = useI18n();\n\tconst nodeTypesStore = useNodeTypesStore();\n\tconst templatesStore = useTemplatesStore();\n\n\tconst chainNodes = getAiNodesBySubcategory(nodeTypesStore.allLatestNodeTypes, AI_CATEGORY_CHAINS);\n\tconst agentNodes = getAiNodesBySubcategory(nodeTypesStore.allLatestNodeTypes, AI_CATEGORY_AGENTS);\n\n\treturn {\n\t\tvalue: AI_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiNodes'),\n\t\tsubtitle: i18n.baseText('nodeCreator.aiPanel.selectAiNode'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: 'ai_templates_root',\n\t\t\t\ttype: 'link',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.linkItem.title'),\n\t\t\t\t\ticon: 'box-open',\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.linkItem.description'),\n\t\t\t\t\tname: 'ai_templates_root',\n\t\t\t\t\turl: templatesStore.getWebsiteCategoryURL(undefined, 'AdvancedAI'),\n\t\t\t\t\ttag: {\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttext: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerTag'),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t...agentNodes,\n\t\t\t...chainNodes,\n\t\t\t{\n\t\t\t\tkey: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\t\t\ttype: 'view',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiOtherNodes'),\n\t\t\t\t\ticon: 'robot',\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.aiOtherNodesDescription'),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport function AINodesView(_nodes: SimplifiedNodeType[]): NodeView {\n\tconst i18n = useI18n();\n\n\tfunction getAISubcategoryProperties(nodeConnectionType: NodeConnectionType) {\n\t\treturn {\n\t\t\tconnectionType: nodeConnectionType,\n\t\t\ticonProps: {\n\t\t\t\tcolor: `var(--node-type-${nodeConnectionType}-color)`,\n\t\t\t},\n\t\t\tpanelClass: `nodes-list-panel-${nodeConnectionType}`,\n\t\t};\n\t}\n\n\treturn {\n\t\tvalue: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiOtherNodes'),\n\t\tsubtitle: i18n.baseText('nodeCreator.aiPanel.selectAiNode'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_DOCUMENT_LOADERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_DOCUMENT_LOADERS,\n\t\t\t\t\ticon: 'file-import',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiDocument),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_LANGUAGE_MODELS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_LANGUAGE_MODELS,\n\t\t\t\t\ticon: 'language',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiLanguageModel),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_MEMORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_MEMORY,\n\t\t\t\t\ticon: 'brain',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiMemory),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_OUTPUTPARSER,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_OUTPUTPARSER,\n\t\t\t\t\ticon: 'list',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiOutputParser),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_RETRIEVERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_RETRIEVERS,\n\t\t\t\t\ticon: 'search',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiRetriever),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_TEXT_SPLITTERS,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_TEXT_SPLITTERS,\n\t\t\t\t\ticon: 'grip-lines-vertical',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiTextSplitter),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: AI_CATEGORY_TOOLS,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_TOOLS,\n\t\t\t\t\ticon: 'tools',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiTool),\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, AI_CODE_TOOL_LANGCHAIN_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_EMBEDDING,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_EMBEDDING,\n\t\t\t\t\ticon: 'vector-square',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiEmbedding),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_CATEGORY_VECTOR_STORES,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_CATEGORY_VECTOR_STORES,\n\t\t\t\t\ticon: 'project-diagram',\n\t\t\t\t\t...getAISubcategoryProperties(NodeConnectionType.AiVectorStore),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: AI_UNCATEGORIZED_CATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: AI_UNCATEGORIZED_CATEGORY,\n\t\t\t\t\ticon: 'code',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport function TriggerView() {\n\tconst i18n = useI18n();\n\n\tconst view: NodeView = {\n\t\tvalue: TRIGGER_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.selectATrigger'),\n\t\tsubtitle: i18n.baseText('nodeCreator.triggerHelperPanel.selectATriggerDescription'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: MANUAL_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: MANUAL_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.manualTriggerDescription'),\n\t\t\t\t\ticon: 'fa:mouse-pointer',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: DEFAULT_SUBCATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\tforceIncludeNodes: [WEBHOOK_NODE_TYPE, EMAIL_IMAP_NODE_TYPE],\n\t\t\t\t\ttitle: 'App Trigger Nodes',\n\t\t\t\t\ticon: 'satellite-dish',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: SCHEDULE_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: SCHEDULE_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.scheduleTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.scheduleTriggerDescription'),\n\t\t\t\t\ticon: 'fa:clock',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: WEBHOOK_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: WEBHOOK_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.webhookTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.webhookTriggerDescription'),\n\t\t\t\t\ticonData: {\n\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\ticon: 'webhook',\n\t\t\t\t\t\tfileBuffer: '/static/webhook-icon.svg',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: FORM_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: FORM_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.formTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.formTriggerDescription'),\n\t\t\t\t\ticonData: {\n\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\ticon: 'form',\n\t\t\t\t\t\tfileBuffer: '/static/form-grey.svg',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.workflowTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.workflowTriggerDescription'),\n\t\t\t\t\ticon: 'fa:sign-out-alt',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tkey: MANUAL_CHAT_TRIGGER_NODE_TYPE,\n\t\t\t\ttype: 'node',\n\t\t\t\tcategory: [CORE_NODES_CATEGORY],\n\t\t\t\tproperties: {\n\t\t\t\t\tgroup: [],\n\t\t\t\t\tname: MANUAL_CHAT_TRIGGER_NODE_TYPE,\n\t\t\t\t\tdisplayName: i18n.baseText('nodeCreator.triggerHelperPanel.manualChatTriggerDisplayName'),\n\t\t\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.manualChatTriggerDescription'),\n\t\t\t\t\ticon: 'fa:comments',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: OTHER_TRIGGER_NODES_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: OTHER_TRIGGER_NODES_SUBCATEGORY,\n\t\t\t\t\ticon: 'folder-open',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\treturn view;\n}\n\nexport function RegularView(nodes: SimplifiedNodeType[]) {\n\tconst i18n = useI18n();\n\n\tconst view: NodeView = {\n\t\tvalue: REGULAR_NODE_CREATOR_VIEW,\n\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.whatHappensNext'),\n\t\titems: [\n\t\t\t{\n\t\t\t\tkey: DEFAULT_SUBCATEGORY,\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: 'App Regular Nodes',\n\t\t\t\t\ticon: 'globe',\n\t\t\t\t\tforceIncludeNodes: [RSS_READ_NODE_TYPE, EMAIL_SEND_NODE_TYPE],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: TRANSFORM_DATA_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: TRANSFORM_DATA_SUBCATEGORY,\n\t\t\t\t\ticon: 'pen',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [SET_NODE_TYPE, CODE_NODE_TYPE, DATETIME_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'addOrRemove',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.addOrRemove'),\n\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\tFILTER_NODE_TYPE,\n\t\t\t\t\t\t\t\tREMOVE_DUPLICATES_NODE_TYPE,\n\t\t\t\t\t\t\t\tSPLIT_OUT_NODE_TYPE,\n\t\t\t\t\t\t\t\tLIMIT_NODE_TYPE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'combine',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.combine'),\n\t\t\t\t\t\t\titems: [SUMMARIZE_NODE_TYPE, AGGREGATE_NODE_TYPE, MERGE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'convert',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.transform.convert'),\n\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\tHTML_NODE_TYPE,\n\t\t\t\t\t\t\t\tMARKDOWN_NODE_TYPE,\n\t\t\t\t\t\t\t\tXML_NODE_TYPE,\n\t\t\t\t\t\t\t\tCRYPTO_NODE_TYPE,\n\t\t\t\t\t\t\t\tEXTRACT_FROM_FILE_NODE_TYPE,\n\t\t\t\t\t\t\t\tCONVERT_TO_FILE_NODE_TYPE,\n\t\t\t\t\t\t\t\tCOMPRESSION_NODE_TYPE,\n\t\t\t\t\t\t\t\tEDIT_IMAGE_NODE_TYPE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: FLOWS_CONTROL_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: FLOWS_CONTROL_SUBCATEGORY,\n\t\t\t\t\ticon: 'code-branch',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [FILTER_NODE_TYPE, IF_NODE_TYPE, SPLIT_IN_BATCHES_NODE_TYPE, MERGE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'subcategory',\n\t\t\t\tkey: HELPERS_SUBCATEGORY,\n\t\t\t\tcategory: CORE_NODES_CATEGORY,\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: HELPERS_SUBCATEGORY,\n\t\t\t\t\ticon: 'toolbox',\n\t\t\t\t\tsections: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'popular',\n\t\t\t\t\t\t\ttitle: i18n.baseText('nodeCreator.sectionNames.popular'),\n\t\t\t\t\t\t\titems: [HTTP_REQUEST_NODE_TYPE, WEBHOOK_NODE_TYPE, CODE_NODE_TYPE],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\tconst hasAINodes = (nodes ?? []).some((node) => node.codex?.categories?.includes(AI_SUBCATEGORY));\n\tif (hasAINodes)\n\t\tview.items.push({\n\t\t\tkey: AI_NODE_CREATOR_VIEW,\n\t\t\ttype: 'view',\n\t\t\tproperties: {\n\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.langchainAiNodes'),\n\t\t\t\ticon: 'robot',\n\t\t\t\tdescription: i18n.baseText('nodeCreator.aiPanel.nodesForAi'),\n\t\t\t\ttag: {\n\t\t\t\t\ttype: 'success',\n\t\t\t\t\ttext: i18n.baseText('nodeCreator.aiPanel.newTag'),\n\t\t\t\t},\n\t\t\t\tborderless: true,\n\t\t\t},\n\t\t} as NodeViewItem);\n\n\tview.items.push({\n\t\tkey: TRIGGER_NODE_CREATOR_VIEW,\n\t\ttype: 'view',\n\t\tproperties: {\n\t\t\ttitle: i18n.baseText('nodeCreator.triggerHelperPanel.addAnotherTrigger'),\n\t\t\ticon: 'bolt',\n\t\t\tdescription: i18n.baseText('nodeCreator.triggerHelperPanel.addAnotherTriggerDescription'),\n\t\t},\n\t});\n\n\treturn view;\n}\n","import { ref } from 'vue';\nimport { defineStore } from 'pinia';\n\nexport type KeyboardKey = (typeof WATCHED_KEYS)[number];\ninterface KeyHook {\n\tkeyboardKeys: KeyboardKey[];\n\tcondition?: (type: string, activeItemId: string) => boolean;\n\thandler: (activeItemId: string, keyboardKey: KeyboardKey) => void;\n}\n\nexport const KEYBOARD_ID_ATTR = 'data-keyboard-nav-id';\nexport const WATCHED_KEYS = [\n\t'ArrowUp',\n\t'ArrowDown',\n\t'ArrowLeft',\n\t'ArrowRight',\n\t'Enter',\n\t'Escape',\n\t'Tab',\n];\n\nexport const useKeyboardNavigation = defineStore('nodeCreatorKeyboardNavigation', () => {\n\tconst selectableItems = ref<Array<WeakRef<Element>>>([]);\n\tconst activeItemId = ref<string | null>(null);\n\t// Array of objects that contains key code and handler\n\tconst keysHooks = ref<Record<string, KeyHook>>({});\n\n\tfunction getItemType(element?: Element) {\n\t\treturn element?.getAttribute('data-keyboard-nav-type');\n\t}\n\tfunction getElementId(element?: Element) {\n\t\treturn element?.getAttribute(KEYBOARD_ID_ATTR) || undefined;\n\t}\n\tasync function refreshSelectableItems(): Promise<void> {\n\t\treturn await new Promise((resolve) => {\n\t\t\t// Wait for DOM to update\n\t\t\tcleanupSelectableItems();\n\t\t\tsetTimeout(() => {\n\t\t\t\tselectableItems.value = Array.from(\n\t\t\t\t\tdocument.querySelectorAll('[data-keyboard-nav-type]'),\n\t\t\t\t).map((el) => new WeakRef(el));\n\t\t\t\tresolve();\n\t\t\t}, 0);\n\t\t});\n\t}\n\n\tfunction executeKeyHooks(keyboardKey: KeyboardKey, activeItem: Element) {\n\t\tconst flatHooks = Object.values(keysHooks.value);\n\t\tconst hooks = flatHooks.filter((hook) => hook.keyboardKeys.includes(keyboardKey));\n\n\t\thooks.forEach((hook) => {\n\t\t\tif (!activeItemId.value) return;\n\n\t\t\tconst conditionPassed =\n\t\t\t\thook.condition === undefined ||\n\t\t\t\thook.condition(getItemType(activeItem) || '', activeItemId.value);\n\n\t\t\tif (conditionPassed && activeItemId.value) {\n\t\t\t\thook.handler(activeItemId.value, keyboardKey);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync function onKeyDown(e: KeyboardEvent) {\n\t\tconst pressedKey = e.key;\n\t\tif (!WATCHED_KEYS.includes(pressedKey)) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tawait refreshSelectableItems();\n\t\tconst activeItemIndex = selectableItems.value.findIndex(\n\t\t\t(item) => getElementId(item?.deref()) === activeItemId.value,\n\t\t);\n\t\tconst activeItem = selectableItems.value[activeItemIndex]?.deref();\n\n\t\tconst isArrowDown = pressedKey === 'ArrowDown';\n\t\tconst isArrowUp = pressedKey === 'ArrowUp';\n\n\t\tif (!activeItem) return;\n\n\t\tif (isArrowDown) {\n\t\t\tconst nextItemIndex =\n\t\t\t\tactiveItemIndex < selectableItems.value.length - 1 ? activeItemIndex + 1 : 0;\n\n\t\t\tsetActiveItem(selectableItems.value[nextItemIndex]?.deref());\n\t\t}\n\t\tif (isArrowUp) {\n\t\t\tconst previousIndex =\n\t\t\t\tactiveItemIndex > 0 ? activeItemIndex - 1 : selectableItems.value.length - 1;\n\n\t\t\tsetActiveItem(selectableItems.value[previousIndex]?.deref());\n\t\t}\n\t\texecuteKeyHooks(pressedKey, activeItem);\n\t}\n\n\tfunction setActiveItemId(id: string) {\n\t\tactiveItemId.value = id;\n\t}\n\n\tfunction setActiveItem(item?: Element) {\n\t\tconst itemId = getElementId(item);\n\t\tif (!itemId) return;\n\n\t\tsetActiveItemId(itemId);\n\t\tif (item?.scrollIntoView) {\n\t\t\titem?.scrollIntoView({ block: 'center' });\n\t\t}\n\t}\n\n\tasync function setActiveItemIndex(index: number) {\n\t\tawait refreshSelectableItems();\n\n\t\tsetActiveItem(selectableItems.value[index]?.deref());\n\t}\n\n\tfunction attachKeydownEvent() {\n\t\tdocument.addEventListener('keydown', onKeyDown, { capture: true });\n\t}\n\n\tfunction detachKeydownEvent() {\n\t\tcleanupSelectableItems();\n\t\tdocument.removeEventListener('keydown', onKeyDown, { capture: true });\n\t}\n\n\tfunction registerKeyHook(name: string, hook: KeyHook) {\n\t\thook.keyboardKeys.forEach((keyboardKey) => {\n\t\t\tif (WATCHED_KEYS.includes(keyboardKey)) {\n\t\t\t\tkeysHooks.value = { ...keysHooks.value, [name]: hook };\n\t\t\t} else {\n\t\t\t\tthrow new Error(`Key ${keyboardKey} is not supported`);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction cleanupSelectableItems() {\n\t\t// Cleanup to make sure DOM elements get garbage collected\n\t\tselectableItems.value = [];\n\t}\n\n\tfunction getActiveItemIndex() {\n\t\treturn selectableItems.value.findIndex(\n\t\t\t(item) => getElementId(item?.deref()) === activeItemId.value,\n\t\t);\n\t}\n\n\treturn {\n\t\tactiveItemId,\n\t\tattachKeydownEvent,\n\t\trefreshSelectableItems,\n\t\tdetachKeydownEvent,\n\t\tregisterKeyHook,\n\t\tgetActiveItemIndex,\n\t\tsetActiveItemId,\n\t\tsetActiveItemIndex,\n\t};\n});\n","import type {\n\tINodeCreateElement,\n\tNodeCreateElement,\n\tNodeFilterType,\n\tSimplifiedNodeType,\n} from '@/Interface';\nimport {\n\tAI_CATEGORY_ROOT_NODES,\n\tAI_CODE_NODE_TYPE,\n\tAI_NODE_CREATOR_VIEW,\n\tAI_OTHERS_NODE_CREATOR_VIEW,\n\tAI_SUBCATEGORY,\n\tDEFAULT_SUBCATEGORY,\n\tTRIGGER_NODE_CREATOR_VIEW,\n} from '@/constants';\nimport { defineStore } from 'pinia';\nimport { v4 as uuid } from 'uuid';\nimport { computed, nextTick, ref } from 'vue';\nimport difference from 'lodash-es/difference';\n\nimport { useNodeCreatorStore } from '@/stores/nodeCreator.store';\n\nimport {\n\tflattenCreateElements,\n\tgroupItemsInSections,\n\tisAINode,\n\tsearchNodes,\n\tsortNodeCreateElements,\n\tsubcategorizeItems,\n\ttransformNodeType,\n} from '../utils';\n\nimport type { NodeViewItem, NodeViewItemSection } from '@/components/Node/NodeCreator/viewsData';\nimport { AINodesView } from '@/components/Node/NodeCreator/viewsData';\nimport { useI18n } from '@/composables/useI18n';\nimport { useKeyboardNavigation } from './useKeyboardNavigation';\n\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport type { INodeInputFilter, NodeConnectionType } from 'n8n-workflow';\nimport { useCanvasStore } from '@/stores/canvas.store';\n\ninterface ViewStack {\n\tuuid?: string;\n\ttitle?: string;\n\tsubtitle?: string;\n\tsearch?: string;\n\tsubcategory?: string;\n\tinfo?: string;\n\tnodeIcon?: {\n\t\ticonType?: string;\n\t\ticon?: string;\n\t\tcolor?: string;\n\t};\n\ticonUrl?: string;\n\trootView?: NodeFilterType;\n\tactiveIndex?: number;\n\ttransitionDirection?: 'in' | 'out';\n\thasSearch?: boolean;\n\tpreventBack?: boolean;\n\titems?: INodeCreateElement[];\n\tbaselineItems?: INodeCreateElement[];\n\tsearchItems?: SimplifiedNodeType[];\n\tforceIncludeNodes?: string[];\n\tmode?: 'actions' | 'nodes';\n\tbaseFilter?: (item: INodeCreateElement) => boolean;\n\titemsMapper?: (item: INodeCreateElement) => INodeCreateElement;\n\tpanelClass?: string;\n\tsections?: string[] | NodeViewItemSection[];\n}\n\nexport const useViewStacks = defineStore('nodeCreatorViewStacks', () => {\n\tconst nodeCreatorStore = useNodeCreatorStore();\n\tconst { getActiveItemIndex } = useKeyboardNavigation();\n\tconst i18n = useI18n();\n\n\tconst viewStacks = ref<ViewStack[]>([]);\n\n\tconst activeStackItems = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\n\t\tif (!stack?.baselineItems) {\n\t\t\treturn stack.items ? extendItemsWithUUID(stack.items) : [];\n\t\t}\n\n\t\tif (stack.search && searchBaseItems.value) {\n\t\t\tconst searchBase =\n\t\t\t\tsearchBaseItems.value.length > 0\n\t\t\t\t\t? searchBaseItems.value\n\t\t\t\t\t: flattenCreateElements(stack.baselineItems ?? []);\n\n\t\t\tconst canvasHasAINodes = useCanvasStore().aiNodes.length > 0;\n\t\t\tconst filteredNodes =\n\t\t\t\tisAiRootView(stack) || canvasHasAINodes ? searchBase : filterOutAiNodes(searchBase);\n\n\t\t\tconst searchResults = extendItemsWithUUID(searchNodes(stack.search || '', filteredNodes));\n\n\t\t\tconst groupedNodes = groupIfAiNodes(searchResults, false) ?? searchResults;\n\t\t\t// Set the active index to the second item if there's a section\n\t\t\t// as the first item is collapsable\n\t\t\tstack.activeIndex = groupedNodes.some((node) => node.type === 'section') ? 1 : 0;\n\n\t\t\treturn groupedNodes;\n\t\t}\n\t\treturn extendItemsWithUUID(groupIfAiNodes(stack.baselineItems, true));\n\t});\n\n\tconst activeViewStack = computed<ViewStack>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack) return {};\n\n\t\tconst flatBaselineItems = flattenCreateElements(stack.baselineItems ?? []);\n\n\t\treturn {\n\t\t\t...stack,\n\t\t\titems: activeStackItems.value,\n\t\t\thasSearch: flatBaselineItems.length > 8 || stack?.hasSearch,\n\t\t};\n\t});\n\n\tconst activeViewStackMode = computed(\n\t\t() => activeViewStack.value.mode || TRIGGER_NODE_CREATOR_VIEW,\n\t);\n\n\tconst searchBaseItems = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack?.searchItems) return [];\n\n\t\treturn stack.searchItems.map((item) => transformNodeType(item, stack.subcategory));\n\t});\n\n\tfunction getLastActiveStack() {\n\t\treturn viewStacks.value[viewStacks.value.length - 1];\n\t}\n\n\t// Generate a delta between the global search results(all nodes) and the stack search results\n\tconst globalSearchItemsDiff = computed<INodeCreateElement[]>(() => {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack?.search) return [];\n\n\t\tconst allNodes = nodeCreatorStore.mergedNodes.map((item) => transformNodeType(item));\n\t\t// Apply filtering for AI nodes if the current view is not the AI root view\n\t\tconst filteredNodes = isAiRootView(stack) ? allNodes : filterOutAiNodes(allNodes);\n\n\t\tlet globalSearchResult: INodeCreateElement[] = extendItemsWithUUID(\n\t\t\tsearchNodes(stack.search || '', filteredNodes),\n\t\t);\n\t\tif (isAiRootView(stack)) {\n\t\t\tglobalSearchResult = groupIfAiNodes(globalSearchResult);\n\t\t}\n\n\t\tconst filteredItems = globalSearchResult.filter((item) => {\n\t\t\treturn !activeStackItems.value.find((activeItem) => {\n\t\t\t\tif (activeItem.type === 'section') {\n\t\t\t\t\tconst matchingSectionItem = activeItem.children.some(\n\t\t\t\t\t\t(sectionItem) => sectionItem.key === item.key,\n\t\t\t\t\t);\n\t\t\t\t\treturn matchingSectionItem;\n\t\t\t\t}\n\n\t\t\t\treturn activeItem.key === item.key;\n\t\t\t});\n\t\t});\n\n\t\t// Filter out empty sections if all of their children are filtered out\n\t\tconst filteredSections = filteredItems.filter((item) => {\n\t\t\tif (item.type === 'section') {\n\t\t\t\tconst hasVisibleChildren = item.children.some((child) =>\n\t\t\t\t\tactiveStackItems.value.some((filteredItem) => filteredItem.key === child.key),\n\t\t\t\t);\n\n\t\t\t\treturn hasVisibleChildren;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\n\t\treturn filteredSections;\n\t});\n\n\tconst itemsBySubcategory = computed(() => subcategorizeItems(nodeCreatorStore.mergedNodes));\n\n\tfunction isAiRootView(stack: ViewStack) {\n\t\treturn stack.rootView === AI_NODE_CREATOR_VIEW;\n\t}\n\n\tfunction groupIfAiNodes(items: INodeCreateElement[], sortAlphabetically = true) {\n\t\tconst aiNodes = items.filter((node): node is NodeCreateElement => isAINode(node));\n\n\t\tif (aiNodes.length > 0) {\n\t\t\tconst sectionsMap = new Map<string, NodeViewItemSection>();\n\t\t\taiNodes.forEach((node) => {\n\t\t\t\tconst section = node.properties.codex?.subcategories?.[AI_SUBCATEGORY]?.[0];\n\n\t\t\t\tif (section) {\n\t\t\t\t\tconst currentItems = sectionsMap.get(section)?.items ?? [];\n\t\t\t\t\tconst isSubnodesSection =\n\t\t\t\t\t\t!node.properties.codex?.subcategories?.[AI_SUBCATEGORY].includes(\n\t\t\t\t\t\t\tAI_CATEGORY_ROOT_NODES,\n\t\t\t\t\t\t);\n\n\t\t\t\t\tsectionsMap.set(section, {\n\t\t\t\t\t\tkey: section,\n\t\t\t\t\t\ttitle: isSubnodesSection\n\t\t\t\t\t\t\t? `${section} (${i18n.baseText('nodeCreator.subnodes')})`\n\t\t\t\t\t\t\t: section,\n\t\t\t\t\t\titems: [...currentItems, node.key],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst nonAiNodes = difference(items, aiNodes);\n\t\t\tconst nonAiTriggerNodes = nonAiNodes.filter(\n\t\t\t\t(item) => item.type === 'node' && useNodeTypesStore().isTriggerNode(item.properties.name),\n\t\t\t);\n\n\t\t\tconst nonAiRegularNodes = difference(nonAiNodes, nonAiTriggerNodes);\n\n\t\t\tif (nonAiNodes.length > 0) {\n\t\t\t\tlet sectionKey = '';\n\t\t\t\tif (nonAiRegularNodes.length && nonAiTriggerNodes.length) {\n\t\t\t\t\tsectionKey = i18n.baseText('nodeCreator.actionsCategory.regularAndTriggers');\n\t\t\t\t} else {\n\t\t\t\t\tsectionKey = nonAiRegularNodes.length\n\t\t\t\t\t\t? i18n.baseText('nodeCreator.actionsCategory.regularNodes')\n\t\t\t\t\t\t: i18n.baseText('nodeCreator.actionsCategory.triggerNodes');\n\t\t\t\t}\n\n\t\t\t\tconst nodesKeys = nonAiNodes.map((node) => node.key);\n\n\t\t\t\tsectionsMap.set(sectionKey, {\n\t\t\t\t\tkey: sectionKey,\n\t\t\t\t\ttitle: sectionKey,\n\t\t\t\t\titems: [...nodesKeys],\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Convert sectionsMap to array of sections\n\t\t\tconst sections = Array.from(sectionsMap.values());\n\n\t\t\treturn groupItemsInSections(items, sections, sortAlphabetically);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tfunction filterOutAiNodes(items: INodeCreateElement[]) {\n\t\tconst filteredSearchBase = items.filter((item) => {\n\t\t\tif (item.type === 'node') {\n\t\t\t\tconst isAICategory = item.properties.codex?.categories?.includes(AI_SUBCATEGORY) === true;\n\n\t\t\t\tif (!isAICategory) return true;\n\n\t\t\t\tconst isRootNodeSubcategory =\n\t\t\t\t\titem.properties.codex?.subcategories?.[AI_SUBCATEGORY]?.includes(AI_CATEGORY_ROOT_NODES);\n\n\t\t\t\treturn isRootNodeSubcategory;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn filteredSearchBase;\n\t}\n\n\tasync function gotoCompatibleConnectionView(\n\t\tconnectionType: NodeConnectionType,\n\t\tisOutput?: boolean,\n\t\tfilter?: INodeInputFilter,\n\t) {\n\t\tlet nodesByConnectionType: { [key: string]: string[] };\n\t\tlet relatedAIView: { properties: NodeViewItem['properties'] } | undefined;\n\n\t\tif (isOutput === true) {\n\t\t\tnodesByConnectionType = useNodeTypesStore().visibleNodeTypesByInputConnectionTypeNames;\n\t\t\trelatedAIView = {\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: i18n.baseText('nodeCreator.aiPanel.aiNodes'),\n\t\t\t\t\ticon: 'robot',\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\tnodesByConnectionType = useNodeTypesStore().visibleNodeTypesByOutputConnectionTypeNames;\n\n\t\t\trelatedAIView = AINodesView([]).items.find(\n\t\t\t\t(item) => item.properties.connectionType === connectionType,\n\t\t\t);\n\t\t}\n\n\t\tawait nextTick();\n\t\tpushViewStack({\n\t\t\ttitle: relatedAIView?.properties.title,\n\t\t\trootView: AI_OTHERS_NODE_CREATOR_VIEW,\n\t\t\tmode: 'nodes',\n\t\t\titems: nodeCreatorStore.allNodeCreatorNodes,\n\t\t\tnodeIcon: {\n\t\t\t\ticonType: 'icon',\n\t\t\t\ticon: relatedAIView?.properties.icon,\n\t\t\t\tcolor: relatedAIView?.properties.iconProps?.color,\n\t\t\t},\n\t\t\tpanelClass: relatedAIView?.properties.panelClass,\n\t\t\tbaseFilter: (i: INodeCreateElement) => {\n\t\t\t\t// AI Code node could have any connection type so we don't want to display it\n\t\t\t\t// in the compatible connection view as it would be displayed in all of them\n\t\t\t\tif (i.key === AI_CODE_NODE_TYPE) return false;\n\t\t\t\tconst displayNode = nodesByConnectionType[connectionType].includes(i.key);\n\n\t\t\t\t// TODO: Filtering works currently fine for displaying compatible node when dropping\n\t\t\t\t// input connections. However, it does not work for output connections.\n\t\t\t\t// For that reason does it currently display nodes that are maybe not compatible\n\t\t\t\t// but then errors once it got selected by the user.\n\t\t\t\tif (displayNode && filter?.nodes?.length) {\n\t\t\t\t\treturn filter.nodes.includes(i.key);\n\t\t\t\t}\n\n\t\t\t\treturn displayNode;\n\t\t\t},\n\t\t\titemsMapper(item) {\n\t\t\t\treturn {\n\t\t\t\t\t...item,\n\t\t\t\t\tsubcategory: connectionType,\n\t\t\t\t};\n\t\t\t},\n\t\t\tpreventBack: true,\n\t\t});\n\t}\n\n\tfunction setStackBaselineItems() {\n\t\tconst stack = getLastActiveStack();\n\t\tif (!stack || !activeViewStack.value.uuid) return;\n\n\t\tlet stackItems = stack?.items ?? [];\n\n\t\tif (!stack?.items) {\n\t\t\tconst subcategory = stack?.subcategory ?? DEFAULT_SUBCATEGORY;\n\t\t\tconst itemsInSubcategory = itemsBySubcategory.value[subcategory];\n\t\t\tconst sections = stack.sections;\n\n\t\t\tif (sections) {\n\t\t\t\tstackItems = groupItemsInSections(itemsInSubcategory, sections);\n\t\t\t} else {\n\t\t\t\tstackItems = itemsInSubcategory;\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that the nodes specified in `stack.forceIncludeNodes` are always included,\n\t\t// regardless of whether the subcategory is matched\n\t\tif ((stack.forceIncludeNodes ?? []).length > 0) {\n\t\t\tconst matchedNodes = nodeCreatorStore.mergedNodes\n\t\t\t\t.filter((item) => stack.forceIncludeNodes?.includes(item.name))\n\t\t\t\t.map((item) => transformNodeType(item, stack.subcategory));\n\n\t\t\tstackItems.push(...matchedNodes);\n\t\t}\n\n\t\tif (stack.baseFilter) {\n\t\t\tstackItems = stackItems.filter(stack.baseFilter);\n\t\t}\n\n\t\tif (stack.itemsMapper) {\n\t\t\tstackItems = stackItems.map(stack.itemsMapper);\n\t\t}\n\n\t\t// Sort only if non-root view\n\t\tif (!stack.items) {\n\t\t\tstackItems = sortNodeCreateElements(stackItems);\n\t\t}\n\n\t\tupdateCurrentViewStack({ baselineItems: stackItems });\n\t}\n\n\tfunction extendItemsWithUUID(items: INodeCreateElement[]) {\n\t\treturn items.map((item) => ({\n\t\t\t...item,\n\t\t\tuuid: `${item.key}-${uuid()}`,\n\t\t}));\n\t}\n\n\tfunction pushViewStack(stack: ViewStack) {\n\t\tif (activeViewStack.value.uuid) {\n\t\t\tupdateCurrentViewStack({ activeIndex: getActiveItemIndex() });\n\t\t}\n\n\t\tconst newStackUuid = uuid();\n\t\tviewStacks.value.push({\n\t\t\t...stack,\n\t\t\tuuid: newStackUuid,\n\t\t\ttransitionDirection: 'in',\n\t\t\tactiveIndex: 0,\n\t\t});\n\t\tsetStackBaselineItems();\n\t}\n\n\tfunction popViewStack() {\n\t\tif (activeViewStack.value.uuid) {\n\t\t\tviewStacks.value.pop();\n\t\t\tupdateCurrentViewStack({ transitionDirection: 'out' });\n\t\t}\n\t}\n\n\tfunction updateCurrentViewStack(stack: Partial<ViewStack>) {\n\t\tconst currentStack = getLastActiveStack();\n\t\tconst matchedIndex = viewStacks.value.findIndex((s) => s.uuid === currentStack.uuid);\n\t\tif (!currentStack) return;\n\n\t\t// For each key in the stack, update the matched stack\n\t\tObject.keys(stack).forEach((key) => {\n\t\t\tconst typedKey = key as keyof ViewStack;\n\t\t\tviewStacks.value[matchedIndex] = {\n\t\t\t\t...viewStacks.value[matchedIndex],\n\t\t\t\t[key]: stack[typedKey],\n\t\t\t};\n\t\t});\n\t}\n\n\tfunction resetViewStacks() {\n\t\tviewStacks.value = [];\n\t}\n\n\treturn {\n\t\tviewStacks,\n\t\tactiveViewStack,\n\t\tactiveViewStackMode,\n\t\tglobalSearchItemsDiff,\n\t\tgotoCompatibleConnectionView,\n\t\tresetViewStacks,\n\t\tupdateCurrentViewStack,\n\t\tpushViewStack,\n\t\tpopViewStack,\n\t};\n});\n"],"names":["getAiNodesBySubcategory","nodes","subcategory","node","_c","_b","_a","AI_SUBCATEGORY","a","b","AIView","_nodes","i18n","useI18n","nodeTypesStore","useNodeTypesStore","templatesStore","useTemplatesStore","chainNodes","AI_CATEGORY_CHAINS","agentNodes","AI_CATEGORY_AGENTS","AI_NODE_CREATOR_VIEW","AI_OTHERS_NODE_CREATOR_VIEW","AINodesView","getAISubcategoryProperties","nodeConnectionType","AI_CATEGORY_DOCUMENT_LOADERS","NodeConnectionType","AI_CATEGORY_LANGUAGE_MODELS","AI_CATEGORY_MEMORY","AI_CATEGORY_OUTPUTPARSER","AI_CATEGORY_RETRIEVERS","AI_CATEGORY_TEXT_SPLITTERS","AI_CATEGORY_TOOLS","CORE_NODES_CATEGORY","AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE","AI_CODE_TOOL_LANGCHAIN_NODE_TYPE","AI_CATEGORY_EMBEDDING","AI_CATEGORY_VECTOR_STORES","AI_UNCATEGORIZED_CATEGORY","TriggerView","TRIGGER_NODE_CREATOR_VIEW","MANUAL_TRIGGER_NODE_TYPE","DEFAULT_SUBCATEGORY","WEBHOOK_NODE_TYPE","EMAIL_IMAP_NODE_TYPE","SCHEDULE_TRIGGER_NODE_TYPE","FORM_TRIGGER_NODE_TYPE","EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE","MANUAL_CHAT_TRIGGER_NODE_TYPE","OTHER_TRIGGER_NODES_SUBCATEGORY","RegularView","view","REGULAR_NODE_CREATOR_VIEW","RSS_READ_NODE_TYPE","EMAIL_SEND_NODE_TYPE","TRANSFORM_DATA_SUBCATEGORY","SET_NODE_TYPE","CODE_NODE_TYPE","DATETIME_NODE_TYPE","FILTER_NODE_TYPE","REMOVE_DUPLICATES_NODE_TYPE","SPLIT_OUT_NODE_TYPE","LIMIT_NODE_TYPE","SUMMARIZE_NODE_TYPE","AGGREGATE_NODE_TYPE","MERGE_NODE_TYPE","HTML_NODE_TYPE","MARKDOWN_NODE_TYPE","XML_NODE_TYPE","CRYPTO_NODE_TYPE","EXTRACT_FROM_FILE_NODE_TYPE","CONVERT_TO_FILE_NODE_TYPE","COMPRESSION_NODE_TYPE","EDIT_IMAGE_NODE_TYPE","FLOWS_CONTROL_SUBCATEGORY","IF_NODE_TYPE","SPLIT_IN_BATCHES_NODE_TYPE","HELPERS_SUBCATEGORY","HTTP_REQUEST_NODE_TYPE","KEYBOARD_ID_ATTR","WATCHED_KEYS","useKeyboardNavigation","defineStore","selectableItems","ref","activeItemId","keysHooks","getItemType","element","getElementId","refreshSelectableItems","resolve","cleanupSelectableItems","el","executeKeyHooks","keyboardKey","activeItem","hook","onKeyDown","e","pressedKey","activeItemIndex","item","isArrowDown","isArrowUp","nextItemIndex","setActiveItem","previousIndex","setActiveItemId","id","itemId","setActiveItemIndex","index","attachKeydownEvent","detachKeydownEvent","registerKeyHook","name","getActiveItemIndex","useViewStacks","nodeCreatorStore","useNodeCreatorStore","viewStacks","activeStackItems","computed","stack","getLastActiveStack","extendItemsWithUUID","searchBaseItems","searchBase","flattenCreateElements","canvasHasAINodes","useCanvasStore","filteredNodes","isAiRootView","filterOutAiNodes","searchResults","searchNodes","groupedNodes","groupIfAiNodes","activeViewStack","flatBaselineItems","activeViewStackMode","transformNodeType","globalSearchItemsDiff","allNodes","globalSearchResult","sectionItem","child","filteredItem","itemsBySubcategory","subcategorizeItems","items","sortAlphabetically","aiNodes","isAINode","sectionsMap","section","currentItems","_d","isSubnodesSection","_f","_e","AI_CATEGORY_ROOT_NODES","nonAiNodes","difference","nonAiTriggerNodes","nonAiRegularNodes","sectionKey","nodesKeys","sections","groupItemsInSections","gotoCompatibleConnectionView","connectionType","isOutput","filter","nodesByConnectionType","relatedAIView","nextTick","pushViewStack","i","AI_CODE_NODE_TYPE","displayNode","setStackBaselineItems","stackItems","itemsInSubcategory","matchedNodes","sortNodeCreateElements","updateCurrentViewStack","uuid","newStackUuid","popViewStack","currentStack","matchedIndex","s","key","typedKey","resetViewStacks"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{p as C,j as T,b as _,i as h,u as m,P as x,a3 as k,U as y,de as O,df as L,F as M,w as b}from"./index-DeNtBxiT.js";import{r as D,aH as H}from"./vendor-Dv5OeN6t.js";function S(){const s=D(!1),d=H(),w=C({router:d}),t=T(),W=_(),u=h(),I=M(),a=m(),r=b(),n=async(i,o,p)=>{s.value=!0;const g=t.nodesIssuesExist;let e=i;if(!e||e===x){if(!await w.saveCurrentWorkflow()){s.value=!1;return}e=t.workflowId}const l=e===t.workflowId,c=t.activeWorkflows.includes(e),f={workflow_id:e,is_active:o,previous_status:c,ndv_input:p==="ndv"};I.track("User set workflow active status",f),k().run("workflowActivate.updateWorkflowActivation",f);try{if(c&&o){a.showMessage({title:r.baseText("workflowActivator.workflowIsActive"),type:"success"}),s.value=!1;return}if(l&&g&&o){a.showMessage({title:r.baseText("workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title"),message:r.baseText("workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.message"),type:"error"}),s.value=!1;return}await w.updateWorkflow({workflowId:e,active:o},!u.stateIsDirty)}catch(v){const A=o?"activated":"deactivated";a.showError(v,r.baseText("workflowActivator.showError.title",{interpolate:{newStateName:A}})+":"),s.value=!1;return}const E=l?"workflow.activeChangeCurrent":"workflow.activeChange";k().run(E,{workflowId:e,active:o}),s.value=!1,l&&(o&&y(O).value!=="true"?u.openModal(L):await W.fetchPromptsData())};return{activateCurrentWorkflow:async i=>{const o=t.workflowId;return await n(o,!0,i)},updateWorkflowActivation:n,updatingWorkflowActivation:s}}export{S as u};
2
- //# sourceMappingURL=useWorkflowActivate-DrsL0BLR.js.map
1
+ import{p as C,j as T,b as _,i as h,u as m,P as x,a3 as k,U as y,de as O,df as L,F as M,w as b}from"./index-DEwaaDne.js";import{r as D,aH as H}from"./vendor-Dv5OeN6t.js";function S(){const s=D(!1),d=H(),w=C({router:d}),t=T(),W=_(),u=h(),I=M(),a=m(),r=b(),n=async(i,o,p)=>{s.value=!0;const g=t.nodesIssuesExist;let e=i;if(!e||e===x){if(!await w.saveCurrentWorkflow()){s.value=!1;return}e=t.workflowId}const l=e===t.workflowId,c=t.activeWorkflows.includes(e),f={workflow_id:e,is_active:o,previous_status:c,ndv_input:p==="ndv"};I.track("User set workflow active status",f),k().run("workflowActivate.updateWorkflowActivation",f);try{if(c&&o){a.showMessage({title:r.baseText("workflowActivator.workflowIsActive"),type:"success"}),s.value=!1;return}if(l&&g&&o){a.showMessage({title:r.baseText("workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title"),message:r.baseText("workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.message"),type:"error"}),s.value=!1;return}await w.updateWorkflow({workflowId:e,active:o},!u.stateIsDirty)}catch(v){const A=o?"activated":"deactivated";a.showError(v,r.baseText("workflowActivator.showError.title",{interpolate:{newStateName:A}})+":"),s.value=!1;return}const E=l?"workflow.activeChangeCurrent":"workflow.activeChange";k().run(E,{workflowId:e,active:o}),s.value=!1,l&&(o&&y(O).value!=="true"?u.openModal(L):await W.fetchPromptsData())};return{activateCurrentWorkflow:async i=>{const o=t.workflowId;return await n(o,!0,i)},updateWorkflowActivation:n,updatingWorkflowActivation:s}}export{S as u};
2
+ //# sourceMappingURL=useWorkflowActivate-BLjS7M0I.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkflowActivate-DrsL0BLR.js","sources":["../../src/composables/useWorkflowActivate.ts"],"sourcesContent":["import { useStorage } from '@/composables/useStorage';\n\nimport {\n\tLOCAL_STORAGE_ACTIVATION_FLAG,\n\tPLACEHOLDER_EMPTY_WORKFLOW_ID,\n\tWORKFLOW_ACTIVE_MODAL_KEY,\n} from '@/constants';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useRouter } from 'vue-router';\nimport { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport { useToast } from '@/composables/useToast';\nimport { useI18n } from '@/composables/useI18n';\nimport { ref } from 'vue';\n\nexport function useWorkflowActivate() {\n\tconst updatingWorkflowActivation = ref(false);\n\n\tconst router = useRouter();\n\tconst workflowHelpers = useWorkflowHelpers({ router });\n\tconst workflowsStore = useWorkflowsStore();\n\tconst settingsStore = useSettingsStore();\n\tconst uiStore = useUIStore();\n\tconst telemetry = useTelemetry();\n\tconst toast = useToast();\n\tconst i18n = useI18n();\n\n\t//methods\n\n\tconst updateWorkflowActivation = async (\n\t\tworkflowId: string | undefined,\n\t\tnewActiveState: boolean,\n\t\ttelemetrySource?: string,\n\t) => {\n\t\tupdatingWorkflowActivation.value = true;\n\t\tconst nodesIssuesExist = workflowsStore.nodesIssuesExist;\n\n\t\tlet currWorkflowId: string | undefined = workflowId;\n\t\tif (!currWorkflowId || currWorkflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\tconst saved = await workflowHelpers.saveCurrentWorkflow();\n\t\t\tif (!saved) {\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcurrWorkflowId = workflowsStore.workflowId;\n\t\t}\n\t\tconst isCurrentWorkflow = currWorkflowId === workflowsStore.workflowId;\n\n\t\tconst activeWorkflows = workflowsStore.activeWorkflows;\n\t\tconst isWorkflowActive = activeWorkflows.includes(currWorkflowId);\n\n\t\tconst telemetryPayload = {\n\t\t\tworkflow_id: currWorkflowId,\n\t\t\tis_active: newActiveState,\n\t\t\tprevious_status: isWorkflowActive,\n\t\t\tndv_input: telemetrySource === 'ndv',\n\t\t};\n\t\ttelemetry.track('User set workflow active status', telemetryPayload);\n\t\tvoid useExternalHooks().run('workflowActivate.updateWorkflowActivation', telemetryPayload);\n\n\t\ttry {\n\t\t\tif (isWorkflowActive && newActiveState) {\n\t\t\t\ttoast.showMessage({\n\t\t\t\t\ttitle: i18n.baseText('workflowActivator.workflowIsActive'),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isCurrentWorkflow && nodesIssuesExist && newActiveState) {\n\t\t\t\ttoast.showMessage({\n\t\t\t\t\ttitle: i18n.baseText(\n\t\t\t\t\t\t'workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title',\n\t\t\t\t\t),\n\t\t\t\t\tmessage: i18n.baseText(\n\t\t\t\t\t\t'workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.message',\n\t\t\t\t\t),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t});\n\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait workflowHelpers.updateWorkflow(\n\t\t\t\t{ workflowId: currWorkflowId, active: newActiveState },\n\t\t\t\t!uiStore.stateIsDirty,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tconst newStateName = newActiveState ? 'activated' : 'deactivated';\n\t\t\ttoast.showError(\n\t\t\t\terror,\n\t\t\t\ti18n.baseText('workflowActivator.showError.title', {\n\t\t\t\t\tinterpolate: { newStateName },\n\t\t\t\t}) + ':',\n\t\t\t);\n\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst activationEventName = isCurrentWorkflow\n\t\t\t? 'workflow.activeChangeCurrent'\n\t\t\t: 'workflow.activeChange';\n\t\tvoid useExternalHooks().run(activationEventName, {\n\t\t\tworkflowId: currWorkflowId,\n\t\t\tactive: newActiveState,\n\t\t});\n\n\t\tupdatingWorkflowActivation.value = false;\n\n\t\tif (isCurrentWorkflow) {\n\t\t\tif (newActiveState && useStorage(LOCAL_STORAGE_ACTIVATION_FLAG).value !== 'true') {\n\t\t\t\tuiStore.openModal(WORKFLOW_ACTIVE_MODAL_KEY);\n\t\t\t} else {\n\t\t\t\tawait settingsStore.fetchPromptsData();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst activateCurrentWorkflow = async (telemetrySource?: string) => {\n\t\tconst workflowId = workflowsStore.workflowId;\n\t\treturn await updateWorkflowActivation(workflowId, true, telemetrySource);\n\t};\n\n\treturn {\n\t\tactivateCurrentWorkflow,\n\t\tupdateWorkflowActivation,\n\t\tupdatingWorkflowActivation,\n\t};\n}\n"],"names":["useWorkflowActivate","updatingWorkflowActivation","ref","router","useRouter","workflowHelpers","useWorkflowHelpers","workflowsStore","useWorkflowsStore","settingsStore","useSettingsStore","uiStore","useUIStore","telemetry","useTelemetry","toast","useToast","i18n","useI18n","updateWorkflowActivation","workflowId","newActiveState","telemetrySource","nodesIssuesExist","currWorkflowId","PLACEHOLDER_EMPTY_WORKFLOW_ID","isCurrentWorkflow","isWorkflowActive","telemetryPayload","useExternalHooks","error","newStateName","activationEventName","useStorage","LOCAL_STORAGE_ACTIVATION_FLAG","WORKFLOW_ACTIVE_MODAL_KEY"],"mappings":"yKAkBO,SAASA,GAAsB,CAC/B,MAAAC,EAA6BC,EAAI,EAAK,EAEtCC,EAASC,IACTC,EAAkBC,EAAmB,CAAE,OAAAH,CAAQ,CAAA,EAC/CI,EAAiBC,IACjBC,EAAgBC,IAChBC,EAAUC,IACVC,EAAYC,IACZC,EAAQC,IACRC,EAAOC,IAIPC,EAA2B,MAChCC,EACAC,EACAC,IACI,CACJrB,EAA2B,MAAQ,GACnC,MAAMsB,EAAmBhB,EAAe,iBAExC,IAAIiB,EAAqCJ,EACrC,GAAA,CAACI,GAAkBA,IAAmBC,EAA+B,CAExE,GAAI,CADU,MAAMpB,EAAgB,sBACxB,CACXJ,EAA2B,MAAQ,GACnC,MACD,CACAuB,EAAiBjB,EAAe,UACjC,CACM,MAAAmB,EAAoBF,IAAmBjB,EAAe,WAGtDoB,EADkBpB,EAAe,gBACE,SAASiB,CAAc,EAE1DI,EAAmB,CACxB,YAAaJ,EACb,UAAWH,EACX,gBAAiBM,EACjB,UAAWL,IAAoB,KAAA,EAEtBT,EAAA,MAAM,kCAAmCe,CAAgB,EAC9DC,EAAiB,EAAE,IAAI,4CAA6CD,CAAgB,EAErF,GAAA,CACH,GAAID,GAAoBN,EAAgB,CACvCN,EAAM,YAAY,CACjB,MAAOE,EAAK,SAAS,oCAAoC,EACzD,KAAM,SAAA,CACN,EACDhB,EAA2B,MAAQ,GAEnC,MACD,CAEI,GAAAyB,GAAqBH,GAAoBF,EAAgB,CAC5DN,EAAM,YAAY,CACjB,MAAOE,EAAK,SACX,uEACD,EACA,QAASA,EAAK,SACb,yEACD,EACA,KAAM,OAAA,CACN,EAEDhB,EAA2B,MAAQ,GACnC,MACD,CAEA,MAAMI,EAAgB,eACrB,CAAE,WAAYmB,EAAgB,OAAQH,CAAe,EACrD,CAACV,EAAQ,YAAA,QAEFmB,EAAO,CACT,MAAAC,EAAeV,EAAiB,YAAc,cAC9CN,EAAA,UACLe,EACAb,EAAK,SAAS,oCAAqC,CAClD,YAAa,CAAE,aAAAc,CAAa,CAC5B,CAAA,EAAI,GAAA,EAEN9B,EAA2B,MAAQ,GACnC,MACD,CAEM,MAAA+B,EAAsBN,EACzB,+BACA,wBACEG,EAAA,EAAmB,IAAIG,EAAqB,CAChD,WAAYR,EACZ,OAAQH,CAAA,CACR,EAEDpB,EAA2B,MAAQ,GAE/ByB,IACCL,GAAkBY,EAAWC,CAA6B,EAAE,QAAU,OACzEvB,EAAQ,UAAUwB,CAAyB,EAE3C,MAAM1B,EAAc,mBAEtB,EAQM,MAAA,CACN,wBAN+B,MAAOa,GAA6B,CACnE,MAAMF,EAAab,EAAe,WAClC,OAAO,MAAMY,EAAyBC,EAAY,GAAME,CAAe,CAAA,EAKvE,yBAAAH,EACA,2BAAAlB,CAAA,CAEF"}
1
+ {"version":3,"file":"useWorkflowActivate-BLjS7M0I.js","sources":["../../src/composables/useWorkflowActivate.ts"],"sourcesContent":["import { useStorage } from '@/composables/useStorage';\n\nimport {\n\tLOCAL_STORAGE_ACTIVATION_FLAG,\n\tPLACEHOLDER_EMPTY_WORKFLOW_ID,\n\tWORKFLOW_ACTIVE_MODAL_KEY,\n} from '@/constants';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useRouter } from 'vue-router';\nimport { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport { useToast } from '@/composables/useToast';\nimport { useI18n } from '@/composables/useI18n';\nimport { ref } from 'vue';\n\nexport function useWorkflowActivate() {\n\tconst updatingWorkflowActivation = ref(false);\n\n\tconst router = useRouter();\n\tconst workflowHelpers = useWorkflowHelpers({ router });\n\tconst workflowsStore = useWorkflowsStore();\n\tconst settingsStore = useSettingsStore();\n\tconst uiStore = useUIStore();\n\tconst telemetry = useTelemetry();\n\tconst toast = useToast();\n\tconst i18n = useI18n();\n\n\t//methods\n\n\tconst updateWorkflowActivation = async (\n\t\tworkflowId: string | undefined,\n\t\tnewActiveState: boolean,\n\t\ttelemetrySource?: string,\n\t) => {\n\t\tupdatingWorkflowActivation.value = true;\n\t\tconst nodesIssuesExist = workflowsStore.nodesIssuesExist;\n\n\t\tlet currWorkflowId: string | undefined = workflowId;\n\t\tif (!currWorkflowId || currWorkflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\tconst saved = await workflowHelpers.saveCurrentWorkflow();\n\t\t\tif (!saved) {\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcurrWorkflowId = workflowsStore.workflowId;\n\t\t}\n\t\tconst isCurrentWorkflow = currWorkflowId === workflowsStore.workflowId;\n\n\t\tconst activeWorkflows = workflowsStore.activeWorkflows;\n\t\tconst isWorkflowActive = activeWorkflows.includes(currWorkflowId);\n\n\t\tconst telemetryPayload = {\n\t\t\tworkflow_id: currWorkflowId,\n\t\t\tis_active: newActiveState,\n\t\t\tprevious_status: isWorkflowActive,\n\t\t\tndv_input: telemetrySource === 'ndv',\n\t\t};\n\t\ttelemetry.track('User set workflow active status', telemetryPayload);\n\t\tvoid useExternalHooks().run('workflowActivate.updateWorkflowActivation', telemetryPayload);\n\n\t\ttry {\n\t\t\tif (isWorkflowActive && newActiveState) {\n\t\t\t\ttoast.showMessage({\n\t\t\t\t\ttitle: i18n.baseText('workflowActivator.workflowIsActive'),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isCurrentWorkflow && nodesIssuesExist && newActiveState) {\n\t\t\t\ttoast.showMessage({\n\t\t\t\t\ttitle: i18n.baseText(\n\t\t\t\t\t\t'workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.title',\n\t\t\t\t\t),\n\t\t\t\t\tmessage: i18n.baseText(\n\t\t\t\t\t\t'workflowActivator.showMessage.activeChangedNodesIssuesExistTrue.message',\n\t\t\t\t\t),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t});\n\n\t\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait workflowHelpers.updateWorkflow(\n\t\t\t\t{ workflowId: currWorkflowId, active: newActiveState },\n\t\t\t\t!uiStore.stateIsDirty,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tconst newStateName = newActiveState ? 'activated' : 'deactivated';\n\t\t\ttoast.showError(\n\t\t\t\terror,\n\t\t\t\ti18n.baseText('workflowActivator.showError.title', {\n\t\t\t\t\tinterpolate: { newStateName },\n\t\t\t\t}) + ':',\n\t\t\t);\n\t\t\tupdatingWorkflowActivation.value = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst activationEventName = isCurrentWorkflow\n\t\t\t? 'workflow.activeChangeCurrent'\n\t\t\t: 'workflow.activeChange';\n\t\tvoid useExternalHooks().run(activationEventName, {\n\t\t\tworkflowId: currWorkflowId,\n\t\t\tactive: newActiveState,\n\t\t});\n\n\t\tupdatingWorkflowActivation.value = false;\n\n\t\tif (isCurrentWorkflow) {\n\t\t\tif (newActiveState && useStorage(LOCAL_STORAGE_ACTIVATION_FLAG).value !== 'true') {\n\t\t\t\tuiStore.openModal(WORKFLOW_ACTIVE_MODAL_KEY);\n\t\t\t} else {\n\t\t\t\tawait settingsStore.fetchPromptsData();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst activateCurrentWorkflow = async (telemetrySource?: string) => {\n\t\tconst workflowId = workflowsStore.workflowId;\n\t\treturn await updateWorkflowActivation(workflowId, true, telemetrySource);\n\t};\n\n\treturn {\n\t\tactivateCurrentWorkflow,\n\t\tupdateWorkflowActivation,\n\t\tupdatingWorkflowActivation,\n\t};\n}\n"],"names":["useWorkflowActivate","updatingWorkflowActivation","ref","router","useRouter","workflowHelpers","useWorkflowHelpers","workflowsStore","useWorkflowsStore","settingsStore","useSettingsStore","uiStore","useUIStore","telemetry","useTelemetry","toast","useToast","i18n","useI18n","updateWorkflowActivation","workflowId","newActiveState","telemetrySource","nodesIssuesExist","currWorkflowId","PLACEHOLDER_EMPTY_WORKFLOW_ID","isCurrentWorkflow","isWorkflowActive","telemetryPayload","useExternalHooks","error","newStateName","activationEventName","useStorage","LOCAL_STORAGE_ACTIVATION_FLAG","WORKFLOW_ACTIVE_MODAL_KEY"],"mappings":"yKAkBO,SAASA,GAAsB,CAC/B,MAAAC,EAA6BC,EAAI,EAAK,EAEtCC,EAASC,IACTC,EAAkBC,EAAmB,CAAE,OAAAH,CAAQ,CAAA,EAC/CI,EAAiBC,IACjBC,EAAgBC,IAChBC,EAAUC,IACVC,EAAYC,IACZC,EAAQC,IACRC,EAAOC,IAIPC,EAA2B,MAChCC,EACAC,EACAC,IACI,CACJrB,EAA2B,MAAQ,GACnC,MAAMsB,EAAmBhB,EAAe,iBAExC,IAAIiB,EAAqCJ,EACrC,GAAA,CAACI,GAAkBA,IAAmBC,EAA+B,CAExE,GAAI,CADU,MAAMpB,EAAgB,sBACxB,CACXJ,EAA2B,MAAQ,GACnC,MACD,CACAuB,EAAiBjB,EAAe,UACjC,CACM,MAAAmB,EAAoBF,IAAmBjB,EAAe,WAGtDoB,EADkBpB,EAAe,gBACE,SAASiB,CAAc,EAE1DI,EAAmB,CACxB,YAAaJ,EACb,UAAWH,EACX,gBAAiBM,EACjB,UAAWL,IAAoB,KAAA,EAEtBT,EAAA,MAAM,kCAAmCe,CAAgB,EAC9DC,EAAiB,EAAE,IAAI,4CAA6CD,CAAgB,EAErF,GAAA,CACH,GAAID,GAAoBN,EAAgB,CACvCN,EAAM,YAAY,CACjB,MAAOE,EAAK,SAAS,oCAAoC,EACzD,KAAM,SAAA,CACN,EACDhB,EAA2B,MAAQ,GAEnC,MACD,CAEI,GAAAyB,GAAqBH,GAAoBF,EAAgB,CAC5DN,EAAM,YAAY,CACjB,MAAOE,EAAK,SACX,uEACD,EACA,QAASA,EAAK,SACb,yEACD,EACA,KAAM,OAAA,CACN,EAEDhB,EAA2B,MAAQ,GACnC,MACD,CAEA,MAAMI,EAAgB,eACrB,CAAE,WAAYmB,EAAgB,OAAQH,CAAe,EACrD,CAACV,EAAQ,YAAA,QAEFmB,EAAO,CACT,MAAAC,EAAeV,EAAiB,YAAc,cAC9CN,EAAA,UACLe,EACAb,EAAK,SAAS,oCAAqC,CAClD,YAAa,CAAE,aAAAc,CAAa,CAC5B,CAAA,EAAI,GAAA,EAEN9B,EAA2B,MAAQ,GACnC,MACD,CAEM,MAAA+B,EAAsBN,EACzB,+BACA,wBACEG,EAAA,EAAmB,IAAIG,EAAqB,CAChD,WAAYR,EACZ,OAAQH,CAAA,CACR,EAEDpB,EAA2B,MAAQ,GAE/ByB,IACCL,GAAkBY,EAAWC,CAA6B,EAAE,QAAU,OACzEvB,EAAQ,UAAUwB,CAAyB,EAE3C,MAAM1B,EAAc,mBAEtB,EAQM,MAAA,CACN,wBAN+B,MAAOa,GAA6B,CACnE,MAAMF,EAAab,EAAe,WAClC,OAAO,MAAMY,EAAyBC,EAAY,GAAME,CAAe,CAAA,EAKvE,yBAAAH,EACA,2BAAAlB,CAAA,CAEF"}
package/dist/index.html CHANGED
@@ -12,7 +12,7 @@
12
12
  <script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[])</script>
13
13
 
14
14
  <title>n8n.io - Workflow Automation</title>
15
- <script type="module" crossorigin src="/%7B%7BBASE_PATH%7D%7D/assets/index-DeNtBxiT.js"></script>
15
+ <script type="module" crossorigin src="/%7B%7BBASE_PATH%7D%7D/assets/index-DEwaaDne.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="/%7B%7BBASE_PATH%7D%7D/assets/vendor-Dv5OeN6t.js">
17
17
  <link rel="modulepreload" crossorigin href="/%7B%7BBASE_PATH%7D%7D/assets/axios-Mm4CS0gO.js">
18
18
  <link rel="modulepreload" crossorigin href="/%7B%7BBASE_PATH%7D%7D/assets/esprima-next-nhoSXAeq.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-editor-ui",
3
- "version": "1.45.0",
3
+ "version": "1.45.1",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://n8n.io",
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectionParameter-o9-pyF-D.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}