n8n-editor-ui 1.109.2 → 1.110.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 (130) hide show
  1. package/dist/assets/{AddDataStoreModal-uXL5uFdf.js → AddDataStoreModal-BXMe2_Yo.js} +2 -2
  2. package/dist/assets/{AnimatedSpinner-Boagztc5.js → AnimatedSpinner-CxbOZIWM.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-Dwq22y10.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-D-tU5Nsg.js} +1 -1
  4. package/dist/assets/{AuthView-CQFbJe0h.js → AuthView-ty01eojq.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-CBkVzb39.js → ChangePasswordView-nmwMP1GF.js} +3 -3
  6. package/dist/assets/CollectionParameter-CQji5w8u.js +4 -0
  7. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DfVZTSuh.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CSmXlf80.js} +1 -1
  8. package/dist/assets/{CredentialsView-CCg2_s6G.js → CredentialsView-IHneFweR.js} +9 -8
  9. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-DLTdZ7Ze.js → DataStoreActions.vue_vue_type_script_setup_true_lang-Dug6Q9SH.js} +2 -2
  10. package/dist/assets/{DataStoreDetailsView-BzaPADj6.js → DataStoreDetailsView-BZ7cLl6L.js} +1574 -227
  11. package/dist/assets/{DataStoreDetailsView-BxDmY87S.css → DataStoreDetailsView-DSpK3R_L.css} +294 -71
  12. package/dist/assets/{DataStoreView-pwOfUlSA.js → DataStoreView-CzuM5UmJ.js} +26 -39
  13. package/dist/assets/{DataStoreView-bZrewhaR.css → DataStoreView-D0R0E_jH.css} +9 -10
  14. package/dist/assets/{DemoFooter-BGbvJOnc.js → DemoFooter-CTFaju55.js} +6 -6
  15. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CHWBnByP.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DirQeoxa.js} +1 -1
  16. package/dist/assets/{EntityNotFound-usJAYj1D.js → EntityNotFound-SgHEB5Zx.js} +1 -1
  17. package/dist/assets/{EntityUnAuthorised-yPCryEik.js → EntityUnAuthorised-Ba1UjrRW.js} +1 -1
  18. package/dist/assets/{ErrorView-C27mVZu1.js → ErrorView-DR_boVdR.js} +1 -1
  19. package/dist/assets/{EvaluationsRootView-BwLSDGVp.js → EvaluationsRootView-DutxuCnH.js} +1 -1
  20. package/dist/assets/{EvaluationsView-Z8XLaPWl.js → EvaluationsView-ClUUTcAC.js} +3 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Ke2qqrxm.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-_0D6TWFX.js} +2 -2
  22. package/dist/assets/{ExecutionsView-BHBePl1_.css → ExecutionsView-DpVZbkhT.css} +5 -22
  23. package/dist/assets/{ExecutionsView-COI1S8Yf.js → ExecutionsView-gF8JMKIq.js} +19 -37
  24. package/dist/assets/{FixedCollectionParameter-B_SGODND.js → FixedCollectionParameter-D9zye2vX.js} +1 -1
  25. package/dist/assets/{ForgotMyPasswordView-DAd6lpBF.js → ForgotMyPasswordView-EkWEVktJ.js} +3 -3
  26. package/dist/assets/{InfoAccordion-BHvbx6nt.js → InfoAccordion-u7XlbH6a.js} +1 -1
  27. package/dist/assets/{InsightsChartAverageRuntime-L1tp64l4.js → InsightsChartAverageRuntime-CoBgniUR.js} +4 -4
  28. package/dist/assets/{InsightsChartFailed-DDz6H6Hb.js → InsightsChartFailed-Dn6SuM16.js} +4 -4
  29. package/dist/assets/{InsightsChartFailureRate-CYIxGqMo.js → InsightsChartFailureRate-CJl1j0ob.js} +4 -4
  30. package/dist/assets/{InsightsChartTimeSaved-BnXbon7j.js → InsightsChartTimeSaved-B5DjojXI.js} +4 -4
  31. package/dist/assets/{InsightsChartTotal-SpC19AWs.js → InsightsChartTotal-T1SFp7S-.js} +4 -4
  32. package/dist/assets/{InsightsDashboard-BFYQJXlU.js → InsightsDashboard-CCDahAm5.js} +10 -10
  33. package/dist/assets/{InsightsPaywall-D70_tWkc.js → InsightsPaywall-Cp82bMTp.js} +1 -1
  34. package/dist/assets/{InsightsSummary-Bypgyn1_.js → InsightsSummary-I5vKNG0I.js} +1 -1
  35. package/dist/assets/{InsightsTableWorkflows-B8PrM_XF.js → InsightsTableWorkflows-D1U89HJ4.js} +4 -4
  36. package/dist/assets/{Logo-NH0xUQnC.js → Logo-DHG_oEvt.js} +1 -1
  37. package/dist/assets/{LogsPanel-ICU1Y6Hy.js → LogsPanel-CvmnM4bL.js} +32 -20
  38. package/dist/assets/{MainHeader-BgYgvS2s.js → MainHeader-CTxGLJsC.js} +19 -14
  39. package/dist/assets/{MainHeader-BofAi8wS.css → MainHeader-pDg5KXTB.css} +16 -16
  40. package/dist/assets/{MainSidebar-8V8yR1hZ.js → MainSidebar-D_xwIVsL.js} +25 -14
  41. package/dist/assets/{MainSidebar-D74VZmM5.css → MainSidebar-a73tcV9E.css} +2 -2
  42. package/dist/assets/{NodeCreation-CxN6JIS_.css → NodeCreation-C4gQlPqI.css} +6 -3
  43. package/dist/assets/{NodeCreation-BOXv2AR2.js → NodeCreation-iNUuiza-.js} +21 -12
  44. package/dist/assets/NodeCreator-COTYfPaK.css +1637 -0
  45. package/dist/assets/{NodeCreator-CbADkgNL.js → NodeCreator-DMpMHPcz.js} +28 -1227
  46. package/dist/assets/{NodeDetailsView-_1v8ors-.js → NodeDetailsView-BKEGFeZ7.js} +18 -16
  47. package/dist/assets/{NodeDetailsViewV2-BCBKcayW.js → NodeDetailsViewV2-XPdbzrLu.js} +19 -16
  48. package/dist/assets/{NodeView-CiaJbQtZ.css → NodeView-BRa11kAq.css} +177 -50
  49. package/dist/assets/{NodeView-75dKKlK2.js → NodeView-Bj14aKtm.js} +270 -147
  50. package/dist/assets/PageViewLayout--7SkYsc9.js +27 -0
  51. package/dist/assets/PageViewLayout-CJlzbuVj.css +141 -0
  52. package/dist/assets/PrebuiltAgentTemplatesView-B7fK6krA.js +196 -0
  53. package/dist/assets/PrebuiltAgentTemplatesView-COxu7Iih.css +166 -0
  54. package/dist/assets/{ProjectBreadcrumb-CcYMzyYS.js → ProjectBreadcrumb-BxMwihEP.js} +1 -1
  55. package/dist/assets/{ProjectHeader-BGjOBBZs.js → ProjectHeader-CVfPUZNI.js} +39 -5
  56. package/dist/assets/{ProjectSettings-D8_RWwH6.js → ProjectSettings-t9C-Ly49.js} +10 -10
  57. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CX6d3I0M.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-zVio8c2n.js} +1 -1
  58. package/dist/assets/{ResourcesListLayout-C1JgyGhX.css → ResourcesListLayout-B5eMf4SI.css} +27 -164
  59. package/dist/assets/{ResourcesListLayout-CHxMfd0o.js → ResourcesListLayout-O-Z59wTE.js} +25 -45
  60. package/dist/assets/{RunDataJson-C3t3ZjPB.js → RunDataJson-0J6_FxmM.js} +5 -3
  61. package/dist/assets/{RunDataJsonActions-B7XqfLFu.js → RunDataJsonActions-ZbUSwg32.js} +1 -1
  62. package/dist/assets/{RunDataParsedAiContent-C9jVQbY-.js → RunDataParsedAiContent-Byf4f3hM.js} +2 -2
  63. package/dist/assets/{RunDataSearch-BOte45cu.js → RunDataSearch-CyCbN9Nc.js} +1 -1
  64. package/dist/assets/{RunDataTable-n918b-Qv.css → RunDataTable-BZzteeuj.css} +54 -53
  65. package/dist/assets/{RunDataTable-hdfF2k3k.js → RunDataTable-Rj0zhULj.js} +34 -32
  66. package/dist/assets/{SamlOnboarding-Ba_I74m9.js → SamlOnboarding-UDfF4zGH.js} +3 -3
  67. package/dist/assets/SelectedItemsInfo-64VntNmH.js +60 -0
  68. package/dist/assets/SelectedItemsInfo-CfUb0ZrI.css +139 -0
  69. package/dist/assets/{SettingsApiView-DkWdzJZU.js → SettingsApiView-BMYiuOCY.js} +1 -1
  70. package/dist/assets/{SettingsCommunityNodesView-DHJIRIQE.js → SettingsCommunityNodesView-BULfnkhp.js} +4 -4
  71. package/dist/assets/{SettingsExternalSecrets-L_l-1Oj-.js → SettingsExternalSecrets-DgYPNKtM.js} +1 -1
  72. package/dist/assets/{SettingsLdapView-BPUQw21m.js → SettingsLdapView-B64PusRO.js} +1 -1
  73. package/dist/assets/{SettingsLogStreamingView-CXFUdTy7.js → SettingsLogStreamingView-DiDxOEmg.js} +1 -1
  74. package/dist/assets/{SettingsPersonalView-CkOwN5kp.js → SettingsPersonalView-TP__Drcl.js} +1 -1
  75. package/dist/assets/{SettingsSourceControl-Chxs8lyZ.js → SettingsSourceControl-FiqxT6qx.js} +1 -1
  76. package/dist/assets/{SettingsSso-CzgNGbQk.js → SettingsSso-e5ntwax1.js} +1 -1
  77. package/dist/assets/{SettingsUsageAndPlan-CpAkwOo_.js → SettingsUsageAndPlan-BiNhzaI3.js} +1 -1
  78. package/dist/assets/{SettingsUsersView-C-W3bAek.js → SettingsUsersView-g3odVDFj.js} +1 -1
  79. package/dist/assets/{SettingsView-CN8rNrUi.js → SettingsView-5M3uETdg.js} +1 -1
  80. package/dist/assets/{SetupView-DTCdkpy-.js → SetupView-DOX9lfRU.js} +3 -3
  81. package/dist/assets/{SetupWorkflowCredentialsButton-pgSHNct2.js → SetupWorkflowCredentialsButton-DMIEMB5C.js} +1 -1
  82. package/dist/assets/{SetupWorkflowFromTemplateView-C5u6X-e-.js → SetupWorkflowFromTemplateView-DEJsN9PM.js} +3 -3
  83. package/dist/assets/{SigninView-XbODXHI6.js → SigninView-FKXG_00n.js} +26 -9
  84. package/dist/assets/{SignoutView-3SLJrRw6.js → SignoutView-ppJ6lbCU.js} +1 -1
  85. package/dist/assets/{SignupView-B88aZsHB.js → SignupView-CmcH1BYL.js} +3 -3
  86. package/dist/assets/{TableBase-DmNxoh-V.js → TableBase-DBeBHkOY.js} +1 -1
  87. package/dist/assets/{Tag-ZyDcgFEj.js → Tag-BQAJRKFE.js} +1 -1
  88. package/dist/assets/{Tags-DxSdhB5Q.js → Tags-CdXa3Xx9.js} +2 -2
  89. package/dist/assets/{TemplateDetails-CFhSg1pL.js → TemplateDetails-BxvljQA3.js} +2 -2
  90. package/dist/assets/{TemplateList-DgekHTSl.js → TemplateList-CV9csLUI.js} +1 -1
  91. package/dist/assets/{TemplatesCollectionView-p1JacG9j.js → TemplatesCollectionView-4dKgKAQR.js} +7 -7
  92. package/dist/assets/{TemplatesSearchView-DkEwSWgX.js → TemplatesSearchView-taSkU7cY.js} +3 -3
  93. package/dist/assets/{TemplatesView-kwADW1e_.js → TemplatesView-CXSlz1M1.js} +1 -1
  94. package/dist/assets/{TemplatesWorkflowView-BVzxbwUl.js → TemplatesWorkflowView-C-x3Aov1.js} +7 -7
  95. package/dist/assets/{TriggerPanel-DT2Pi3Ln.js → TriggerPanel-C-c5cPsc.js} +7 -7
  96. package/dist/assets/{TriggerPanel-BFPMKijE.css → TriggerPanel-DiD8pi0I.css} +4 -4
  97. package/dist/assets/{VariablesView-Ad8vS5nb.js → VariablesView-C3mX49G9.js} +6 -5
  98. package/dist/assets/{WorkerView-CbfVnz4y.js → WorkerView-DYK4TcTw.js} +6 -6
  99. package/dist/assets/{WorkflowActivator-BxX80zGr.js → WorkflowActivator-DZIgVvgL.js} +3 -3
  100. package/dist/assets/{WorkflowExecutionsInfoAccordion-BZHHQFcf.js → WorkflowExecutionsInfoAccordion-CivRIQhL.js} +2 -2
  101. package/dist/assets/{WorkflowExecutionsLandingPage-zeaUSp7T.js → WorkflowExecutionsLandingPage-kBAMGqy2.js} +3 -3
  102. package/dist/assets/{WorkflowExecutionsPreview-CPQUCKk6.js → WorkflowExecutionsPreview-Bnd5-B-d.js} +4 -4
  103. package/dist/assets/{WorkflowExecutionsView-B7x5IRu_.js → WorkflowExecutionsView-CIfisPDk.js} +7 -7
  104. package/dist/assets/{WorkflowHistory-DoFfKRnt.js → WorkflowHistory-JXOUdJnK.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-D8gjC-Ng.js → WorkflowOnboardingView-Dc1KYhGC.js} +1 -1
  106. package/dist/assets/{WorkflowPreview-BZs8Di_n.js → WorkflowPreview-BF9SI0vn.js} +1 -1
  107. package/dist/assets/{WorkflowsView-QnB5kP-h.js → WorkflowsView-CTnvp65F.js} +113 -30
  108. package/dist/assets/{canvas-X-1icOh2.js → canvas-DbK7UyVG.js} +1 -1
  109. package/dist/assets/{chartjs.utils-DvIjPJm3.js → chartjs.utils-DIRvJRrn.js} +2 -2
  110. package/dist/assets/{core-CZWe7osv.js → core-Br-UFy15.js} +1 -1
  111. package/dist/assets/{dataStore.store-XMarLJy8.js → dataStore.store-HuymAG46.js} +49 -29
  112. package/dist/assets/{en-CLskxc5n.js → en-DdNgUrpa.js} +25 -8
  113. package/dist/assets/{global-link-actions-C5l8bN84.js → global-link-actions--TiC75iP.js} +1 -1
  114. package/dist/assets/{index-CeNA_ukL.js → index--OJ5nhDf.js} +16541 -14421
  115. package/dist/assets/{index-CaZY86md.js → index-D2apwRup.js} +1 -1
  116. package/dist/assets/{index-Am8RmnT4.css → index-DXNU_2Fk.css} +3613 -1439
  117. package/dist/assets/{pickBy-DpEqvEPR.js → pickBy-BljOBsPy.js} +1 -1
  118. package/dist/assets/{readyToRunWorkflows.store-DGBtTmGX.js → readyToRunWorkflows.store-Dhb8bhvk.js} +1 -1
  119. package/dist/assets/{templateActions-D45UELiN.js → templateActions-B4GEcBXU.js} +1 -1
  120. package/dist/assets/{useBeforeUnload-DGets1eb.js → useBeforeUnload-ZtUpNFCu.js} +1 -1
  121. package/dist/assets/{useExecutionDebugging-DDy8bilm.js → useExecutionDebugging-Bve-aaKO.js} +12 -8
  122. package/dist/assets/{useImportCurlCommand-Dl6INy3z.js → useImportCurlCommand-CAuor9Pu.js} +1 -1
  123. package/dist/assets/{useProjectPages-xv6Eq2Y5.js → useProjectPages-CH519D2j.js} +1 -1
  124. package/dist/assets/{usePushConnection-Brn1MCOr.js → usePushConnection-Db77V5LR.js} +8 -3
  125. package/dist/assets/{useWorkflowActivate-CuNKq-WZ.js → useWorkflowActivate-7Rw9KyzM.js} +1 -1
  126. package/dist/index.html +2 -2
  127. package/eslint.config.mjs +1 -0
  128. package/package.json +1 -1
  129. package/dist/assets/CollectionParameter-BluoaZU_.js +0 -4
  130. package/dist/assets/NodeCreator-vQ-Sfr_5.css +0 -3568
@@ -1,114 +1,6 @@
1
- import { d as defineComponent, h as createElementBlock, g as openBlock, K as mergeProps, j as createBaseVNode, X as renderSlot, f as createCommentVNode, n as normalizeClass, e as createBlock, t as toDisplayString, l as unref, hR as ElTag, w as withCtx, k as createTextVNode, N as N8nIcon, D as useI18n, i as createVNode, _ as _export_sfc, d0 as reactive, o as onMounted, bo as useExternalHooks, W as onBeforeUnmount, c0 as toRefs, d2 as useNodeCreatorStore, h8 as useActions, hS as useViewStacks, hs as useNodeType, ad as useNodeTypesStore, r as ref, x as computed, hT as DEFAULT_SUBCATEGORY, hU as CREDENTIAL_ONLY_NODE_PREFIX, c as useI18n$1, hV as shouldShowCommunityNodeDetails, hW as HITL_SUBCATEGORY, fc as isCommunityPackageName, hX as isNodePreviewKey, hY as removePreviewToken, cb as resolveDirective, bq as createSlots, a9 as Tooltip, b2 as withDirectives, ej as COMMUNITY_NODES_INSTALLATION_DOCS_URL, b3 as vShow, ap as normalizeStyle, bW as NodeIcon, B as withModifiers, dA as DRAG_EVENT_DATA_KEY, al as useTelemetry, hZ as camelCase, h_ as N8nNodeIcon, hw as WEBHOOK_NODE_TYPE, h$ as getNewNodePosition, i0 as DEFAULT_NODE_SIZE, u as useUsersStore, p as N8nText, q as N8nButton, i1 as useKeyboardNavigation, a1 as useWorkflowsStore, a7 as watch, c1 as normalizeProps, c2 as guardReactiveProps, F as Fragment, A as renderList, c6 as onUnmounted, dD as N8nLoading, i2 as REGULAR_NODE_CREATOR_VIEW, ei as useCommunityNodesStore, i3 as _sfc_main$o, eV as i18n, i4 as captureException, i5 as useCalloutHelpers, i6 as CUSTOM_API_CALL_KEY, i7 as TRIGGER_NODE_CREATOR_VIEW, i8 as OPEN_AI_NODE_TYPE, i9 as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, ia as getActiveViewCallouts, ib as withMemo, z as N8nCallout, cK as InfoTip, ic as CommunityNodeFooter, id as HTTP_REQUEST_NODE_TYPE, fm as createStaticVNode, C as N8nLink, ie as REQUEST_NODE_FORM_URL, ig as filterAndSearchNodes, ih as getRootSearchCallouts, ii as PRE_BUILT_AGENTS_COLLECTION, ij as prepareCommunityNodeDetailsViewStack, hD as getNodeIconSource, ik as transformNodeType, il as AINodesView, im as AIView, io as RegularView, ip as TriggerView, iq as flattenCreateElements, ir as getHumanInTheLoopActions, is as AI_OTHERS_NODE_CREATOR_VIEW, it as AI_NODE_CREATOR_VIEW, a as useToast, d3 as useCredentialsStore, P as useDebounce, e0 as N8nNotice, hy as Transition, iu as AI_EVALUATION, iv as AI_UNCATEGORIZED_CATEGORY, Q as useUIStore, fa as useAssistantStore, d6 as useBuilderStore, bp as onClickOutside, aa as _sfc_main$p, iw as SlideTransition, ix as useActionsGenerator } from "./index-CeNA_ukL.js";
2
- const _hoisted_1$b = ["textContent"];
3
- const _hoisted_2$4 = ["textContent"];
4
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
5
- __name: "NodeCreatorNode",
6
- props: {
7
- active: { type: Boolean },
8
- isAi: { type: Boolean },
9
- isTrigger: { type: Boolean },
10
- description: {},
11
- tag: {},
12
- title: {},
13
- showActionArrow: { type: Boolean },
14
- isOfficial: { type: Boolean }
15
- },
16
- emits: ["tooltipClick"],
17
- setup(__props) {
18
- const { t } = useI18n();
19
- return (_ctx, _cache) => {
20
- return openBlock(), createElementBlock("div", mergeProps({
21
- class: {
22
- [_ctx.$style.creatorNode]: true,
23
- [_ctx.$style.hasAction]: !_ctx.showActionArrow
24
- }
25
- }, _ctx.$attrs), [
26
- createBaseVNode("div", {
27
- class: normalizeClass(_ctx.$style.nodeIcon)
28
- }, [
29
- renderSlot(_ctx.$slots, "icon", {}, void 0, true)
30
- ], 2),
31
- createBaseVNode("div", null, [
32
- createBaseVNode("div", {
33
- class: normalizeClass(_ctx.$style.details)
34
- }, [
35
- createBaseVNode("span", {
36
- class: normalizeClass(_ctx.$style.name),
37
- "data-test-id": "node-creator-item-name",
38
- textContent: toDisplayString(_ctx.title)
39
- }, null, 10, _hoisted_1$b),
40
- _ctx.tag ? (openBlock(), createBlock(unref(ElTag), {
41
- key: 0,
42
- class: normalizeClass(_ctx.$style.tag),
43
- size: "small",
44
- round: "",
45
- type: _ctx.tag.type ?? "success"
46
- }, {
47
- default: withCtx(() => [
48
- createTextVNode(toDisplayString(_ctx.tag.text), 1)
49
- ]),
50
- _: 1
51
- }, 8, ["class", "type"])) : createCommentVNode("", true),
52
- _ctx.isTrigger ? (openBlock(), createBlock(unref(N8nIcon), {
53
- key: 1,
54
- icon: "bolt-filled",
55
- size: "xsmall",
56
- title: unref(t)("nodeCreator.nodeItem.triggerIconTitle"),
57
- class: normalizeClass(_ctx.$style.triggerIcon)
58
- }, null, 8, ["title", "class"])) : createCommentVNode("", true),
59
- renderSlot(_ctx.$slots, "extraDetails", {}, void 0, true)
60
- ], 2),
61
- _ctx.description ? (openBlock(), createElementBlock("p", {
62
- key: 0,
63
- "data-test-id": "node-creator-item-description",
64
- class: normalizeClass(_ctx.$style.description),
65
- textContent: toDisplayString(_ctx.description)
66
- }, null, 10, _hoisted_2$4)) : createCommentVNode("", true)
67
- ]),
68
- renderSlot(_ctx.$slots, "dragContent", {}, void 0, true),
69
- _ctx.showActionArrow ? (openBlock(), createElementBlock("button", {
70
- key: 0,
71
- class: normalizeClass(_ctx.$style.panelIcon)
72
- }, [
73
- createVNode(unref(N8nIcon), {
74
- icon: "arrow-right",
75
- size: "large"
76
- })
77
- ], 2)) : createCommentVNode("", true)
78
- ], 16);
79
- };
80
- }
81
- });
82
- const creatorNode = "_creatorNode_190ig_123";
83
- const hasAction = "_hasAction_190ig_130";
84
- const panelIcon = "_panelIcon_190ig_134";
85
- const tag = "_tag_190ig_138";
86
- const tooltipIcon$1 = "_tooltipIcon_190ig_161";
87
- const details = "_details_190ig_167";
88
- const nodeIcon$5 = "_nodeIcon_190ig_173";
89
- const name$1 = "_name_190ig_178";
90
- const description$1 = "_description_190ig_184";
91
- const aiIcon = "_aiIcon_190ig_192";
92
- const triggerIcon$1 = "_triggerIcon_190ig_196";
93
- const style0$l = {
94
- creatorNode,
95
- hasAction,
96
- panelIcon,
97
- tag,
98
- tooltipIcon: tooltipIcon$1,
99
- details,
100
- nodeIcon: nodeIcon$5,
101
- name: name$1,
102
- description: description$1,
103
- aiIcon,
104
- triggerIcon: triggerIcon$1
105
- };
106
- const cssModules$l = {
107
- "$style": style0$l
108
- };
109
- const NodeCreatorNode = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__cssModules", cssModules$l], ["__scopeId", "data-v-878aee66"]]);
110
- const _hoisted_1$a = ["placeholder", "value"];
111
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
1
+ import { d as defineComponent, d6 as reactive, o as onMounted, bp as useExternalHooks, W as onBeforeUnmount, c1 as toRefs, h as createElementBlock, g as openBlock, n as normalizeClass, j as createBaseVNode, f as createCommentVNode, i as createVNode, N as N8nIcon, _ as _export_sfc, l as unref, i2 as REGULAR_NODE_CREATOR_VIEW, F as Fragment, X as renderSlot, i3 as useViewStacks, r as ref, ep as useCommunityNodesStore, ad as useNodeTypesStore, x as computed, u as useUsersStore, e as createBlock, p as N8nText, w as withCtx, k as createTextVNode, t as toDisplayString, i4 as _sfc_main$b, a9 as Tooltip, f0 as i18n, i5 as captureException, i6 as useKeyboardNavigation, hl as useActions, d8 as useNodeCreatorStore, bm as useCalloutHelpers, i7 as CUSTOM_API_CALL_KEY, i8 as TRIGGER_NODE_CREATOR_VIEW, i9 as isNodePreviewKey, ia as OPEN_AI_NODE_TYPE, ib as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, al as useTelemetry, ic as getActiveViewCallouts, cc as resolveDirective, id as ItemsRenderer, br as createSlots, ie as withMemo, ig as CategorizedItemsRenderer, c as useI18n, z as N8nCallout, b2 as withDirectives, cQ as InfoTip, B as withModifiers, ih as CommunityNodeFooter, ii as HTTP_REQUEST_NODE_TYPE, fu as createStaticVNode, C as N8nLink, ij as REQUEST_NODE_FORM_URL, ik as filterAndSearchNodes, il as getRootSearchCallouts, hJ as WEBHOOK_NODE_TYPE, im as PRE_BUILT_AGENTS_COLLECTION, io as camelCase, ip as shouldShowCommunityNodeDetails, fk as isCommunityPackageName, iq as prepareCommunityNodeDetailsViewStack, hQ as getNodeIconSource, ir as transformNodeType, is as AINodesView, it as AIView, iu as RegularView, iv as TriggerView, iw as flattenCreateElements, ix as HITL_SUBCATEGORY, iy as getHumanInTheLoopActions, iz as AI_OTHERS_NODE_CREATOR_VIEW, iA as AI_NODE_CREATOR_VIEW, a as useToast, bX as NodeIcon, iB as OfficialIcon, q as N8nButton, d9 as useCredentialsStore, iC as removePreviewToken, P as useDebounce, c7 as onUnmounted, a7 as watch, e7 as N8nNotice, c2 as normalizeProps, K as mergeProps, hL as Transition, iD as AI_EVALUATION, iE as AI_UNCATEGORIZED_CATEGORY, Q as useUIStore, fi as useAssistantStore, dc as useBuilderStore, bq as onClickOutside, aa as _sfc_main$c, ap as normalizeStyle, iF as SlideTransition, dH as DRAG_EVENT_DATA_KEY, iG as useActionsGenerator } from "./index--OJ5nhDf.js";
2
+ const _hoisted_1$5 = ["placeholder", "value"];
3
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
112
4
  __name: "SearchBar",
113
5
  props: {
114
6
  placeholder: { default: "" },
@@ -169,7 +61,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
169
61
  "data-test-id": "node-creator-search-bar",
170
62
  tabindex: "0",
171
63
  onInput
172
- }, null, 42, _hoisted_1$a)
64
+ }, null, 42, _hoisted_1$5)
173
65
  ], 2),
174
66
  _ctx.modelValue.length > 0 ? (openBlock(), createElementBlock("div", {
175
67
  key: 0,
@@ -187,1115 +79,24 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
187
79
  });
188
80
  const searchContainer = "_searchContainer_w19t7_123";
189
81
  const prefix = "_prefix_w19t7_139";
190
- const active$3 = "_active_w19t7_144";
82
+ const active$1 = "_active_w19t7_144";
191
83
  const text = "_text_w19t7_148";
192
84
  const suffix = "_suffix_w19t7_164";
193
85
  const clear = "_clear_w19t7_170";
194
86
  const clickable = "_clickable_w19t7_183";
195
- const style0$k = {
87
+ const style0$8 = {
196
88
  searchContainer,
197
89
  prefix,
198
- active: active$3,
90
+ active: active$1,
199
91
  text,
200
92
  suffix,
201
93
  clear,
202
94
  clickable
203
95
  };
204
- const cssModules$k = {
205
- "$style": style0$k
206
- };
207
- const SearchBar = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__cssModules", cssModules$k]]);
208
- const _hoisted_1$9 = {
209
- viewBox: "0 0 24 24",
210
- width: "1.2em",
211
- height: "1.2em"
212
- };
213
- function render$1(_ctx, _cache) {
214
- return openBlock(), createElementBlock("svg", _hoisted_1$9, _cache[0] || (_cache[0] = [
215
- createBaseVNode("path", {
216
- fill: "currentColor",
217
- d: "m23 12l-2.44-2.78l.34-3.68l-3.61-.82l-1.89-3.18L12 3L8.6 1.54L6.71 4.72l-3.61.81l.34 3.68L1 12l2.44 2.78l-.34 3.69l3.61.82l1.89 3.18L12 21l3.4 1.46l1.89-3.18l3.61-.82l-.34-3.68zm-13 5l-4-4l1.41-1.41L10 14.17l6.59-6.59L18 9z"
218
- }, null, -1)
219
- ]));
220
- }
221
- const OfficialIcon = { name: "mdi-verified", render: render$1 };
222
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
223
- __name: "NodeItem",
224
- props: {
225
- nodeType: {},
226
- subcategory: { default: void 0 },
227
- active: { type: Boolean, default: false }
228
- },
229
- setup(__props) {
230
- const props = __props;
231
- const i18n2 = useI18n$1();
232
- const telemetry = useTelemetry();
233
- const { actions } = useNodeCreatorStore();
234
- const { getAddedNodesAndConnections } = useActions();
235
- const { activeViewStack } = useViewStacks();
236
- const { isSubNodeType } = useNodeType({
237
- nodeType: props.nodeType
238
- });
239
- const nodeTypesStore = useNodeTypesStore();
240
- const dragging = ref(false);
241
- const draggablePosition = ref({ x: -100, y: -100 });
242
- const draggableDataTransfer2 = ref(null);
243
- const description2 = computed(() => {
244
- if (isCommunityNodePreview.value) {
245
- return props.nodeType.description;
246
- }
247
- if (isSendAndWaitCategory.value) {
248
- return "";
249
- }
250
- if (props.subcategory === DEFAULT_SUBCATEGORY && !props.nodeType.name.startsWith(CREDENTIAL_ONLY_NODE_PREFIX)) {
251
- return "";
252
- }
253
- return i18n2.headerText({
254
- key: `headers.${shortNodeType.value}.description`,
255
- fallback: props.nodeType.description
256
- });
257
- });
258
- const showActionArrow = computed(() => {
259
- if (shouldShowCommunityNodeDetails(isCommunityNode.value, activeViewStack)) {
260
- return true;
261
- }
262
- return hasActions.value && !isSendAndWaitCategory.value;
263
- });
264
- const isSendAndWaitCategory = computed(() => activeViewStack.subcategory === HITL_SUBCATEGORY);
265
- const dataTestId = computed(
266
- () => hasActions.value ? "node-creator-action-item" : "node-creator-node-item"
267
- );
268
- const hasActions = computed(() => {
269
- return nodeActions.value.length > 1 && !activeViewStack.hideActions;
270
- });
271
- const nodeActions = computed(() => {
272
- return actions[props.nodeType.name] || [];
273
- });
274
- const shortNodeType = computed(() => i18n2.shortNodeType(props.nodeType.name) || "");
275
- const draggableStyle = computed(() => ({
276
- top: `${draggablePosition.value.y}px`,
277
- left: `${draggablePosition.value.x}px`
278
- }));
279
- const isCommunityNode = computed(() => isCommunityPackageName(props.nodeType.name));
280
- const isCommunityNodePreview = computed(() => isNodePreviewKey(props.nodeType.name));
281
- const displayName = computed(() => {
282
- const trimmedDisplayName = props.nodeType.displayName.trimEnd();
283
- return i18n2.headerText({
284
- key: `headers.${shortNodeType.value}.displayName`,
285
- fallback: hasActions.value ? trimmedDisplayName.replace("Trigger", "") : trimmedDisplayName
286
- });
287
- });
288
- const isTrigger = computed(() => {
289
- return props.nodeType.group.includes("trigger") && !hasActions.value;
290
- });
291
- const communityNodeType = computed(() => {
292
- return nodeTypesStore.communityNodeType(removePreviewToken(props.nodeType.name));
293
- });
294
- const isOfficial = computed(() => {
295
- return communityNodeType.value?.isOfficialNode ?? false;
296
- });
297
- const author = computed(() => {
298
- return communityNodeType.value?.displayName ?? displayName.value;
299
- });
300
- const tag2 = computed(() => {
301
- if (props.nodeType.tag) {
302
- return { text: props.nodeType.tag };
303
- }
304
- if (description2.value.toLowerCase().includes("deprecated")) {
305
- return { text: i18n2.baseText("nodeCreator.nodeItem.deprecated"), type: "info" };
306
- }
307
- return void 0;
308
- });
309
- function onDragStart(event) {
310
- if (event.dataTransfer) {
311
- event.dataTransfer.effectAllowed = "copy";
312
- event.dataTransfer.dropEffect = "copy";
313
- event.dataTransfer.setDragImage(draggableDataTransfer2.value, 0, 0);
314
- event.dataTransfer.setData(
315
- DRAG_EVENT_DATA_KEY,
316
- JSON.stringify(getAddedNodesAndConnections([{ type: props.nodeType.name }]))
317
- );
318
- }
319
- dragging.value = true;
320
- }
321
- function onDragEnd() {
322
- dragging.value = false;
323
- setTimeout(() => {
324
- draggablePosition.value = { x: -100, y: -100 };
325
- }, 300);
326
- }
327
- function onCommunityNodeTooltipClick(event) {
328
- if (event.target.localName === "a") {
329
- telemetry.track("user clicked cnr docs link", { source: "nodes panel node" });
330
- }
331
- }
332
- return (_ctx, _cache) => {
333
- const _component_n8n_icon = N8nIcon;
334
- const _component_N8nNodeCreatorNode = NodeCreatorNode;
335
- const _directive_n8n_html = resolveDirective("n8n-html");
336
- return openBlock(), createBlock(_component_N8nNodeCreatorNode, {
337
- draggable: !showActionArrow.value,
338
- class: normalizeClass(_ctx.$style.nodeItem),
339
- description: description2.value,
340
- title: displayName.value,
341
- "show-action-arrow": showActionArrow.value,
342
- "is-trigger": isTrigger.value,
343
- "is-official": isOfficial.value,
344
- "data-test-id": dataTestId.value,
345
- tag: tag2.value,
346
- onDragstart: onDragStart,
347
- onDragend: onDragEnd
348
- }, createSlots({
349
- icon: withCtx(() => [
350
- unref(isSubNodeType) ? (openBlock(), createElementBlock("div", {
351
- key: 0,
352
- class: normalizeClass(_ctx.$style.subNodeBackground)
353
- }, null, 2)) : createCommentVNode("", true),
354
- createVNode(NodeIcon, {
355
- class: normalizeClass(_ctx.$style.nodeIcon),
356
- "node-type": _ctx.nodeType,
357
- "color-default": "var(--color-foreground-xdark)"
358
- }, null, 8, ["class", "node-type"])
359
- ]),
360
- dragContent: withCtx(() => [
361
- withDirectives(createBaseVNode("div", {
362
- ref_key: "draggableDataTransfer",
363
- ref: draggableDataTransfer2,
364
- class: normalizeClass(_ctx.$style.draggable),
365
- style: normalizeStyle(draggableStyle.value)
366
- }, [
367
- createVNode(NodeIcon, {
368
- "node-type": _ctx.nodeType,
369
- size: 40,
370
- shrink: false,
371
- onClickCapture: _cache[0] || (_cache[0] = withModifiers(() => {
372
- }, ["stop"])),
373
- "color-default": "var(--color-foreground-xdark)"
374
- }, null, 8, ["node-type"])
375
- ], 6), [
376
- [vShow, dragging.value]
377
- ])
378
- ]),
379
- _: 2
380
- }, [
381
- isOfficial.value ? {
382
- name: "extraDetails",
383
- fn: withCtx(() => [
384
- createVNode(unref(Tooltip), {
385
- placement: "top",
386
- "show-after": 500
387
- }, {
388
- content: withCtx(() => [
389
- createTextVNode(toDisplayString(unref(i18n2).baseText("generic.officialNode.tooltip", { interpolate: { author: author.value } })), 1)
390
- ]),
391
- default: withCtx(() => [
392
- createVNode(unref(OfficialIcon), {
393
- class: normalizeClass([_ctx.$style.icon, _ctx.$style.official])
394
- }, null, 8, ["class"])
395
- ]),
396
- _: 1
397
- })
398
- ]),
399
- key: "0"
400
- } : isCommunityNode.value && !isCommunityNodePreview.value && !unref(activeViewStack)?.communityNodeDetails ? {
401
- name: "extraDetails",
402
- fn: withCtx(() => [
403
- createVNode(unref(Tooltip), {
404
- placement: "top",
405
- "show-after": 500
406
- }, {
407
- content: withCtx(() => [
408
- withDirectives(createBaseVNode("p", {
409
- class: normalizeClass(_ctx.$style.communityNodeIcon),
410
- onClick: onCommunityNodeTooltipClick
411
- }, null, 2), [
412
- [
413
- _directive_n8n_html,
414
- unref(i18n2).baseText("generic.communityNode.tooltip", {
415
- interpolate: {
416
- packageName: _ctx.nodeType.name.split(".")[0],
417
- docURL: unref(COMMUNITY_NODES_INSTALLATION_DOCS_URL)
418
- }
419
- })
420
- ]
421
- ])
422
- ]),
423
- default: withCtx(() => [
424
- createVNode(_component_n8n_icon, {
425
- size: "small",
426
- class: normalizeClass(_ctx.$style.icon),
427
- icon: "box"
428
- }, null, 8, ["class"])
429
- ]),
430
- _: 1
431
- })
432
- ]),
433
- key: "1"
434
- } : void 0
435
- ]), 1032, ["draggable", "class", "description", "title", "show-action-arrow", "is-trigger", "is-official", "data-test-id", "tag"]);
436
- };
437
- }
438
- });
439
- const nodeItem = "_nodeItem_b8za2_123";
440
- const nodeIcon$4 = "_nodeIcon_b8za2_131";
441
- const subNodeBackground = "_subNodeBackground_b8za2_135";
442
- const communityNodeIcon = "_communityNodeIcon_b8za2_145";
443
- const draggable$1 = "_draggable_b8za2_149";
444
- const draggableDataTransfer$1 = "_draggableDataTransfer_b8za2_163";
445
- const icon$1 = "_icon_b8za2_168";
446
- const official = "_official_b8za2_173";
447
- const style0$j = {
448
- nodeItem,
449
- nodeIcon: nodeIcon$4,
450
- subNodeBackground,
451
- communityNodeIcon,
452
- draggable: draggable$1,
453
- draggableDataTransfer: draggableDataTransfer$1,
454
- icon: icon$1,
455
- official
456
- };
457
- const cssModules$j = {
458
- "$style": style0$j
459
- };
460
- const NodeItem = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__cssModules", cssModules$j]]);
461
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
462
- __name: "SubcategoryItem",
463
- props: {
464
- item: {}
465
- },
466
- setup(__props) {
467
- const props = __props;
468
- const i18n2 = useI18n$1();
469
- const subcategoryName = computed(() => camelCase(props.item.subcategory || props.item.title));
470
- return (_ctx, _cache) => {
471
- const _component_n8n_node_icon = N8nNodeIcon;
472
- const _component_n8n_node_creator_node = NodeCreatorNode;
473
- return openBlock(), createBlock(_component_n8n_node_creator_node, {
474
- class: normalizeClass(_ctx.$style.subCategory),
475
- title: unref(i18n2).baseText(`nodeCreator.subcategoryNames.${subcategoryName.value}`),
476
- "is-trigger": false,
477
- description: unref(i18n2).baseText(`nodeCreator.subcategoryDescriptions.${subcategoryName.value}`),
478
- "show-action-arrow": true
479
- }, {
480
- icon: withCtx(() => [
481
- createVNode(_component_n8n_node_icon, mergeProps({
482
- type: "icon",
483
- name: _ctx.item.icon,
484
- circle: false,
485
- "show-tooltip": false,
486
- "use-updated-icons": true
487
- }, _ctx.item.iconProps), null, 16, ["name"])
488
- ]),
489
- _: 1
490
- }, 8, ["class", "title", "description"]);
491
- };
492
- }
493
- });
494
- const subCategory = "_subCategory_1x5a1_123";
495
- const style0$i = {
496
- subCategory
497
- };
498
- const cssModules$i = {
499
- "$style": style0$i
500
- };
501
- const SubcategoryItem = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__cssModules", cssModules$i]]);
502
- const _hoisted_1$8 = ["textContent"];
503
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
504
- __name: "LabelItem",
505
- props: {
506
- item: {}
507
- },
508
- setup(__props) {
509
- return (_ctx, _cache) => {
510
- return openBlock(), createElementBlock("div", {
511
- class: normalizeClass(_ctx.$style.label)
512
- }, [
513
- createBaseVNode("span", {
514
- class: normalizeClass(_ctx.$style.name),
515
- textContent: toDisplayString(_ctx.item.key)
516
- }, null, 10, _hoisted_1$8)
517
- ], 2);
518
- };
519
- }
520
- });
521
- const label$1 = "_label_p81gr_123";
522
- const style0$h = {
523
- label: label$1
524
- };
525
- const cssModules$h = {
526
- "$style": style0$h
527
- };
528
- const LabelItem = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__cssModules", cssModules$h]]);
529
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
530
- __name: "ActionItem",
531
- props: {
532
- nodeType: {},
533
- action: {}
534
- },
535
- setup(__props) {
536
- const props = __props;
537
- const telemetry = useTelemetry();
538
- const { getActionData, getAddedNodesAndConnections, setAddedNodeActionParameters } = useActions();
539
- const { activeViewStack } = useViewStacks();
540
- const state = reactive({
541
- dragging: false,
542
- draggablePosition: {
543
- x: -100,
544
- y: -100
545
- },
546
- storeWatcher: null,
547
- draggableDataTransfer: null
548
- });
549
- const draggableStyle = computed(() => ({
550
- top: `${state.draggablePosition.y}px`,
551
- left: `${state.draggablePosition.x}px`
552
- }));
553
- const actionData = computed(() => getActionData(props.action));
554
- const isTriggerAction = (action2) => action2.name?.toLowerCase().includes("trigger") || action2.name === WEBHOOK_NODE_TYPE;
555
- function onDragStart(event) {
556
- document.body.addEventListener("dragover", onDragOver);
557
- const { pageX: x, pageY: y } = event;
558
- if (event.dataTransfer && actionData.value.key) {
559
- event.dataTransfer.effectAllowed = "copy";
560
- event.dataTransfer.dropEffect = "copy";
561
- event.dataTransfer.setDragImage(state.draggableDataTransfer, 0, 0);
562
- event.dataTransfer.setData(
563
- DRAG_EVENT_DATA_KEY,
564
- JSON.stringify(getAddedNodesAndConnections([{ type: actionData.value.key }]))
565
- );
566
- if (telemetry) {
567
- state.storeWatcher = setAddedNodeActionParameters(
568
- actionData.value,
569
- telemetry,
570
- activeViewStack.rootView
571
- );
572
- }
573
- document.body.addEventListener("dragend", onDragEnd);
574
- }
575
- state.dragging = true;
576
- state.draggablePosition = { x, y };
577
- }
578
- function onDragOver(event) {
579
- if (!state.dragging || event.pageX === 0 && event.pageY === 0) {
580
- return;
581
- }
582
- const [x, y] = getNewNodePosition(
583
- [],
584
- [event.pageX - DEFAULT_NODE_SIZE[0] / 2, event.pageY - DEFAULT_NODE_SIZE[1] / 2]
585
- );
586
- state.draggablePosition = { x, y };
587
- }
588
- function onDragEnd() {
589
- if (state.storeWatcher) state.storeWatcher();
590
- document.body.removeEventListener("dragend", onDragEnd);
591
- document.body.removeEventListener("dragover", onDragOver);
592
- state.dragging = false;
593
- setTimeout(() => {
594
- state.draggablePosition = { x: -100, y: -100 };
595
- }, 300);
596
- }
597
- const { draggableDataTransfer: draggableDataTransfer2, dragging } = toRefs(state);
598
- return (_ctx, _cache) => {
599
- const _component_n8n_node_creator_node = NodeCreatorNode;
600
- return openBlock(), createBlock(_component_n8n_node_creator_node, {
601
- draggable: "",
602
- class: normalizeClass(_ctx.$style.action),
603
- title: _ctx.action.displayName,
604
- "is-trigger": isTriggerAction(_ctx.action),
605
- "data-keyboard-nav": "true",
606
- onDragstart: onDragStart,
607
- onDragend: onDragEnd
608
- }, {
609
- dragContent: withCtx(() => [
610
- createBaseVNode("div", {
611
- ref_key: "draggableDataTransfer",
612
- ref: draggableDataTransfer2,
613
- class: normalizeClass(_ctx.$style.draggableDataTransfer)
614
- }, null, 2),
615
- withDirectives(createBaseVNode("div", {
616
- class: normalizeClass(_ctx.$style.draggable),
617
- style: normalizeStyle(draggableStyle.value)
618
- }, [
619
- createVNode(NodeIcon, {
620
- "node-type": _ctx.nodeType,
621
- size: 40,
622
- shrink: false,
623
- onClickCapture: _cache[0] || (_cache[0] = withModifiers(() => {
624
- }, ["stop"]))
625
- }, null, 8, ["node-type"])
626
- ], 6), [
627
- [vShow, unref(dragging)]
628
- ])
629
- ]),
630
- icon: withCtx(() => [
631
- createVNode(NodeIcon, { "node-type": _ctx.action }, null, 8, ["node-type"])
632
- ]),
633
- _: 1
634
- }, 8, ["class", "title", "is-trigger"]);
635
- };
636
- }
637
- });
638
- const action$1 = "_action_1owvg_123";
639
- const nodeIcon$3 = "_nodeIcon_1owvg_135";
640
- const draggable = "_draggable_1owvg_139";
641
- const draggableDataTransfer = "_draggableDataTransfer_1owvg_153";
642
- const style0$g = {
643
- action: action$1,
644
- nodeIcon: nodeIcon$3,
645
- draggable,
646
- draggableDataTransfer
647
- };
648
- const cssModules$g = {
649
- "$style": style0$g
650
- };
651
- const ActionItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__cssModules", cssModules$g]]);
652
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
653
- __name: "ViewItem",
654
- props: {
655
- view: {}
656
- },
657
- setup(__props) {
658
- return (_ctx, _cache) => {
659
- const _component_n8n_node_icon = N8nNodeIcon;
660
- const _component_n8n_node_creator_node = NodeCreatorNode;
661
- return openBlock(), createBlock(_component_n8n_node_creator_node, {
662
- class: normalizeClass(_ctx.$style.view),
663
- title: _ctx.view.title,
664
- tag: _ctx.view.tag,
665
- "is-trigger": false,
666
- description: _ctx.view.description,
667
- "show-action-arrow": true
668
- }, {
669
- icon: withCtx(() => [
670
- createVNode(_component_n8n_node_icon, {
671
- type: "icon",
672
- name: _ctx.view.icon,
673
- circle: false,
674
- "show-tooltip": false,
675
- "use-updated-icons": true
676
- }, null, 8, ["name"])
677
- ]),
678
- _: 1
679
- }, 8, ["class", "title", "tag", "description"]);
680
- };
681
- }
682
- });
683
- const view$1 = "_view_17lj9_123";
684
- const style0$f = {
685
- view: view$1
686
- };
687
- const cssModules$f = {
688
- "$style": style0$f
689
- };
690
- const ViewItem = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__cssModules", cssModules$f]]);
691
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
692
- __name: "LinkItem",
693
- props: {
694
- link: {}
695
- },
696
- setup(__props) {
697
- return (_ctx, _cache) => {
698
- const _component_n8n_node_icon = N8nNodeIcon;
699
- const _component_n8n_node_creator_node = NodeCreatorNode;
700
- return openBlock(), createBlock(_component_n8n_node_creator_node, {
701
- class: normalizeClass(_ctx.$style.creatorLink),
702
- title: _ctx.link.title,
703
- "is-trigger": false,
704
- description: _ctx.link.description,
705
- tag: _ctx.link.tag,
706
- "show-action-arrow": true
707
- }, {
708
- icon: withCtx(() => [
709
- createVNode(_component_n8n_node_icon, {
710
- type: "icon",
711
- name: _ctx.link.icon,
712
- circle: false,
713
- "show-tooltip": false,
714
- "use-updated-icons": true
715
- }, null, 8, ["name"])
716
- ]),
717
- _: 1
718
- }, 8, ["class", "title", "description", "tag"]);
719
- };
720
- }
721
- });
722
- const creatorLink = "_creatorLink_cptk0_123";
723
- const style0$e = {
724
- creatorLink
725
- };
726
- const cssModules$e = {
727
- "$style": style0$e
728
- };
729
- const LinkItem = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__cssModules", cssModules$e]]);
730
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
731
- __name: "CommunityNodeInstallHint",
732
- props: {
733
- hint: {}
734
- },
735
- setup(__props) {
736
- const isOwner = computed(() => useUsersStore().isInstanceOwner);
737
- return (_ctx, _cache) => {
738
- return isOwner.value ? (openBlock(), createElementBlock("div", {
739
- key: 0,
740
- class: normalizeClass(_ctx.$style.container)
741
- }, [
742
- createVNode(unref(N8nIcon), {
743
- color: "text-light",
744
- icon: "info",
745
- size: "large"
746
- }),
747
- createVNode(unref(N8nText), {
748
- color: "text-base",
749
- size: "medium"
750
- }, {
751
- default: withCtx(() => [
752
- createTextVNode(toDisplayString(_ctx.hint), 1)
753
- ]),
754
- _: 1
755
- })
756
- ], 2)) : createCommentVNode("", true);
757
- };
758
- }
759
- });
760
- const container$4 = "_container_1dwo3_123";
761
- const style0$d = {
762
- container: container$4
763
- };
764
- const cssModules$d = {
765
- "$style": style0$d
766
- };
767
- const CommunityNodeInstallHint = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__cssModules", cssModules$d]]);
768
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
769
- __name: "CommunityNodeItem",
770
- props: {
771
- isPreview: { type: Boolean }
772
- },
773
- setup(__props) {
774
- const i18n2 = useI18n$1();
775
- return (_ctx, _cache) => {
776
- return openBlock(), createElementBlock("div", null, [
777
- _ctx.isPreview ? (openBlock(), createBlock(CommunityNodeInstallHint, {
778
- key: 0,
779
- hint: unref(i18n2).baseText("communityNodeItem.node.hint")
780
- }, null, 8, ["hint"])) : (openBlock(), createElementBlock("div", {
781
- key: 1,
782
- class: normalizeClass(_ctx.$style.marginLeft)
783
- }, [
784
- createVNode(unref(N8nButton), {
785
- size: "medium",
786
- type: "secondary",
787
- icon: "plus",
788
- label: unref(i18n2).baseText("communityNodeItem.label"),
789
- outline: ""
790
- }, null, 8, ["label"])
791
- ], 2))
792
- ]);
793
- };
794
- }
795
- });
796
- const marginLeft = "_marginLeft_1vvtt_123";
797
- const style0$c = {
798
- marginLeft
799
- };
800
- const cssModules$c = {
801
- "$style": style0$c
802
- };
803
- const CommunityNodeItem = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__cssModules", cssModules$c]]);
804
- const _hoisted_1$7 = ["textContent"];
805
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
806
- __name: "CategoryItem",
807
- props: {
808
- expanded: { type: Boolean, default: true },
809
- active: { type: Boolean },
810
- count: {},
811
- name: {},
812
- isTrigger: { type: Boolean }
813
- },
814
- setup(__props) {
815
- const props = __props;
816
- const categoryName = computed(() => {
817
- const itemsCount = props.count || 0;
818
- return itemsCount > 0 ? `${props.name} (${itemsCount})` : props.name;
819
- });
820
- return (_ctx, _cache) => {
821
- const _component_n8n_icon = N8nIcon;
822
- return openBlock(), createElementBlock("div", mergeProps({
823
- class: _ctx.$style.categoryWrapper
824
- }, _ctx.$attrs, {
825
- "data-keyboard-nav": "true",
826
- "data-test-id": "node-creator-category-item"
827
- }), [
828
- createBaseVNode("div", {
829
- class: normalizeClass({ [_ctx.$style.category]: true, [_ctx.$style.active]: _ctx.active })
830
- }, [
831
- createBaseVNode("span", {
832
- class: normalizeClass(_ctx.$style.name)
833
- }, [
834
- createBaseVNode("span", {
835
- textContent: toDisplayString(categoryName.value)
836
- }, null, 8, _hoisted_1$7),
837
- _ctx.isTrigger ? (openBlock(), createBlock(_component_n8n_icon, {
838
- key: 0,
839
- icon: "bolt-filled",
840
- size: "xsmall",
841
- class: normalizeClass(_ctx.$style.triggerIcon)
842
- }, null, 8, ["class"])) : createCommentVNode("", true),
843
- renderSlot(_ctx.$slots, "default")
844
- ], 2),
845
- _ctx.expanded ? (openBlock(), createBlock(_component_n8n_icon, {
846
- key: 0,
847
- icon: "chevron-down",
848
- color: "text-light",
849
- size: "large"
850
- })) : (openBlock(), createBlock(_component_n8n_icon, {
851
- key: 1,
852
- icon: "chevron-up",
853
- color: "text-light",
854
- size: "large"
855
- }))
856
- ], 2)
857
- ], 16);
858
- };
859
- }
860
- });
861
- const triggerIcon = "_triggerIcon_1kyg0_123";
862
- const category$1 = "_category_1kyg0_128";
863
- const active$2 = "_active_1kyg0_149";
864
- const name = "_name_1kyg0_153";
865
- const style0$b = {
866
- triggerIcon,
867
- category: category$1,
868
- active: active$2,
869
- name
870
- };
871
- const cssModules$b = {
872
- "$style": style0$b
873
- };
874
- const CategoryItem = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__cssModules", cssModules$b]]);
875
- const _hoisted_1$6 = ["data-category-collapsed"];
876
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
877
- __name: "CategorizedItemsRenderer",
878
- props: {
879
- elements: { default: () => [] },
880
- category: {},
881
- disabled: { type: Boolean },
882
- activeIndex: {},
883
- isTriggerCategory: { type: Boolean },
884
- mouseOverTooltip: {},
885
- expanded: { type: Boolean }
886
- },
887
- setup(__props) {
888
- const props = __props;
889
- const { popViewStack, activeViewStack } = useViewStacks();
890
- const { registerKeyHook } = useKeyboardNavigation();
891
- const { workflowId } = useWorkflowsStore();
892
- const nodeCreatorStore = useNodeCreatorStore();
893
- const i18n2 = useI18n$1();
894
- const activeItemId = computed(() => useKeyboardNavigation()?.activeItemId);
895
- const actionCount = computed(() => props.elements.filter(({ type }) => type === "action").length);
896
- const expanded = ref(props.expanded ?? false);
897
- const isPreview = computed(
898
- () => activeViewStack.communityNodeDetails && !activeViewStack.communityNodeDetails.installed
899
- );
900
- function toggleExpanded() {
901
- setExpanded(!expanded.value);
902
- }
903
- function setExpanded(isExpanded) {
904
- const prev = expanded.value;
905
- expanded.value = isExpanded;
906
- if (expanded.value && !prev) {
907
- nodeCreatorStore.onCategoryExpanded({
908
- category_name: props.category,
909
- workflow_id: workflowId
910
- });
911
- }
912
- }
913
- function arrowRight() {
914
- if (expanded.value) return;
915
- setExpanded(true);
916
- }
917
- function arrowLeft() {
918
- if (!expanded.value) {
919
- popViewStack();
920
- return;
921
- }
922
- setExpanded(false);
923
- }
924
- watch(
925
- () => props.elements,
926
- () => {
927
- setExpanded(true);
928
- }
929
- );
930
- registerKeyHook(`CategoryRight_${props.category}`, {
931
- keyboardKeys: ["ArrowRight"],
932
- condition: (type, activeItemId2) => type === "category" && props.category === activeItemId2,
933
- handler: arrowRight
934
- });
935
- registerKeyHook(`CategoryToggle_${props.category}`, {
936
- keyboardKeys: ["Enter"],
937
- condition: (type, activeItemId2) => type === "category" && props.category === activeItemId2,
938
- handler: toggleExpanded
939
- });
940
- registerKeyHook(`CategoryLeft_${props.category}`, {
941
- keyboardKeys: ["ArrowLeft"],
942
- condition: (type, activeItemId2) => type === "category" && props.category === activeItemId2,
943
- handler: arrowLeft
944
- });
945
- return (_ctx, _cache) => {
946
- const _component_n8n_icon = N8nIcon;
947
- const _component_n8n_tooltip = Tooltip;
948
- const _directive_n8n_html = resolveDirective("n8n-html");
949
- return openBlock(), createElementBlock("div", {
950
- class: normalizeClass(_ctx.$style.categorizedItemsRenderer),
951
- "data-category-collapsed": !expanded.value
952
- }, [
953
- createVNode(CategoryItem, {
954
- class: normalizeClass(_ctx.$style.categoryItem),
955
- name: _ctx.category,
956
- disabled: _ctx.disabled,
957
- active: activeItemId.value === _ctx.category,
958
- count: actionCount.value,
959
- expanded: expanded.value,
960
- "is-trigger": _ctx.isTriggerCategory,
961
- "data-keyboard-nav-type": "category",
962
- "data-keyboard-nav-id": _ctx.category,
963
- onClick: toggleExpanded
964
- }, {
965
- default: withCtx(() => [
966
- _ctx.mouseOverTooltip ? (openBlock(), createElementBlock("span", {
967
- key: 0,
968
- class: normalizeClass(_ctx.$style.mouseOverTooltip)
969
- }, [
970
- createVNode(_component_n8n_tooltip, {
971
- placement: "top",
972
- "popper-class": _ctx.$style.tooltipPopper
973
- }, {
974
- content: withCtx(() => [
975
- withDirectives(createBaseVNode("div", null, null, 512), [
976
- [_directive_n8n_html, _ctx.mouseOverTooltip]
977
- ])
978
- ]),
979
- default: withCtx(() => [
980
- createVNode(_component_n8n_icon, {
981
- icon: "circle-help",
982
- size: "small"
983
- })
984
- ]),
985
- _: 1
986
- }, 8, ["popper-class"])
987
- ], 2)) : createCommentVNode("", true)
988
- ]),
989
- _: 1
990
- }, 8, ["class", "name", "disabled", "active", "count", "expanded", "is-trigger", "data-keyboard-nav-id"]),
991
- expanded.value && actionCount.value > 0 && _ctx.$slots.default ? (openBlock(), createElementBlock("div", {
992
- key: 0,
993
- class: normalizeClass(_ctx.$style.contentSlot)
994
- }, [
995
- renderSlot(_ctx.$slots, "default")
996
- ], 2)) : createCommentVNode("", true),
997
- isPreview.value && expanded.value ? (openBlock(), createBlock(CommunityNodeInstallHint, {
998
- key: 1,
999
- hint: unref(i18n2).baseText("communityNodeItem.actions.hint")
1000
- }, null, 8, ["hint"])) : createCommentVNode("", true),
1001
- expanded.value ? (openBlock(), createBlock(ItemsRenderer, mergeProps({ key: 2 }, _ctx.$attrs, {
1002
- elements: _ctx.elements,
1003
- "is-trigger": _ctx.isTriggerCategory,
1004
- class: [{ [_ctx.$style.preview]: isPreview.value }]
1005
- }), {
1006
- default: withCtx(() => _cache[0] || (_cache[0] = [])),
1007
- empty: withCtx(() => [
1008
- renderSlot(_ctx.$slots, "empty", normalizeProps(guardReactiveProps({ elements: _ctx.elements })))
1009
- ]),
1010
- _: 3
1011
- }, 16, ["elements", "is-trigger", "class"])) : createCommentVNode("", true)
1012
- ], 10, _hoisted_1$6);
1013
- };
1014
- }
1015
- });
1016
- const mouseOverTooltip = "_mouseOverTooltip_wk4vn_123";
1017
- const categorizedItemsRenderer = "_categorizedItemsRenderer_wk4vn_131";
1018
- const tooltipPopper = "_tooltipPopper_wk4vn_135";
1019
- const contentSlot = "_contentSlot_wk4vn_139";
1020
- const preview$1 = "_preview_wk4vn_148";
1021
- const style0$a = {
1022
- mouseOverTooltip,
1023
- categorizedItemsRenderer,
1024
- tooltipPopper,
1025
- contentSlot,
1026
- preview: preview$1
1027
- };
1028
- const cssModules$a = {
1029
- "$style": style0$a
1030
- };
1031
- const CategorizedItemsRenderer = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__cssModules", cssModules$a]]);
1032
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
1033
- __name: "OpenTemplateItem",
1034
- props: {
1035
- openTemplate: {}
1036
- },
1037
- setup(__props) {
1038
- return (_ctx, _cache) => {
1039
- const _component_n8n_node_icon = N8nNodeIcon;
1040
- const _component_NodeIcon = NodeIcon;
1041
- const _component_N8nNodeCreatorNode = NodeCreatorNode;
1042
- return openBlock(), createBlock(_component_N8nNodeCreatorNode, {
1043
- class: normalizeClass({ [_ctx.$style.creatorOpenTemplate]: true, [_ctx.$style.compact]: _ctx.openTemplate.compact }),
1044
- title: _ctx.openTemplate.title,
1045
- description: _ctx.openTemplate.description,
1046
- tag: _ctx.openTemplate.tag,
1047
- "show-action-arrow": true,
1048
- "is-trigger": false
1049
- }, createSlots({ _: 2 }, [
1050
- _ctx.openTemplate.icon ? {
1051
- name: "icon",
1052
- fn: withCtx(() => [
1053
- createVNode(_component_n8n_node_icon, {
1054
- type: "icon",
1055
- name: _ctx.openTemplate.icon,
1056
- circle: false,
1057
- "show-tooltip": false,
1058
- "use-updated-icons": true
1059
- }, null, 8, ["name"])
1060
- ]),
1061
- key: "0"
1062
- } : void 0,
1063
- _ctx.openTemplate.nodes ? {
1064
- name: "extraDetails",
1065
- fn: withCtx(() => [
1066
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.openTemplate.nodes, (node) => {
1067
- return openBlock(), createBlock(_component_NodeIcon, {
1068
- key: node.name,
1069
- "node-type": node,
1070
- size: 16,
1071
- "show-tooltip": true
1072
- }, null, 8, ["node-type"]);
1073
- }), 128))
1074
- ]),
1075
- key: "1"
1076
- } : void 0
1077
- ]), 1032, ["class", "title", "description", "tag"]);
1078
- };
1079
- }
1080
- });
1081
- const creatorOpenTemplate = "_creatorOpenTemplate_1lmxs_123";
1082
- const compact = "_compact_1lmxs_131";
1083
- const style0$9 = {
1084
- creatorOpenTemplate,
1085
- compact
1086
- };
1087
- const cssModules$9 = {
1088
- "$style": style0$9
1089
- };
1090
- const OpenTemplateItem = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__cssModules", cssModules$9]]);
1091
- const _hoisted_1$5 = { key: 0 };
1092
- const _hoisted_2$3 = ["data-keyboard-nav-type", "data-keyboard-nav-id", "onClick"];
1093
- const LAZY_LOAD_THRESHOLD = 20;
1094
- const LAZY_LOAD_ITEMS_PER_TICK = 5;
1095
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
1096
- __name: "ItemsRenderer",
1097
- props: {
1098
- elements: { default: () => [] },
1099
- activeIndex: {},
1100
- disabled: { type: Boolean },
1101
- lazyRender: { type: Boolean, default: true }
1102
- },
1103
- emits: ["selected", "dragstart", "dragend"],
1104
- setup(__props, { emit: __emit }) {
1105
- const props = __props;
1106
- const emit = __emit;
1107
- const renderedItems2 = ref([]);
1108
- const renderAnimationRequest = ref(0);
1109
- const { activeViewStack } = useViewStacks();
1110
- const activeItemId = computed(() => useKeyboardNavigation()?.activeItemId);
1111
- const communityNode = computed(() => activeViewStack.mode === "community-node");
1112
- const isPreview = computed(() => {
1113
- return communityNode.value && !activeViewStack.communityNodeDetails?.installed;
1114
- });
1115
- const highlightActiveItem = computed(() => {
1116
- if (activeViewStack.communityNodeDetails && !activeViewStack.communityNodeDetails.installed) {
1117
- return false;
1118
- }
1119
- return true;
1120
- });
1121
- function renderItems() {
1122
- if (props.elements.length <= LAZY_LOAD_THRESHOLD || !props.lazyRender) {
1123
- renderedItems2.value = props.elements;
1124
- return;
1125
- }
1126
- if (renderedItems2.value.length < props.elements.length) {
1127
- renderedItems2.value.push(
1128
- ...props.elements.slice(
1129
- renderedItems2.value.length,
1130
- renderedItems2.value.length + LAZY_LOAD_ITEMS_PER_TICK
1131
- )
1132
- );
1133
- renderAnimationRequest.value = window.requestAnimationFrame(renderItems);
1134
- }
1135
- }
1136
- function wrappedEmit(event, element, $e) {
1137
- if (props.disabled) return;
1138
- switch (event) {
1139
- case "dragstart":
1140
- case "dragend":
1141
- case "selected":
1142
- emit("selected", element, $e);
1143
- break;
1144
- default:
1145
- emit(event, element, $e);
1146
- }
1147
- }
1148
- function beforeEnter(el) {
1149
- el.style.height = "0";
1150
- }
1151
- function enter(el) {
1152
- el.style.height = `${el.scrollHeight}px`;
1153
- }
1154
- function beforeLeave(el) {
1155
- el.style.height = `${el.scrollHeight}px`;
1156
- }
1157
- function leave(el) {
1158
- el.style.height = "0";
1159
- }
1160
- onMounted(() => {
1161
- renderItems();
1162
- });
1163
- onUnmounted(() => {
1164
- window.cancelAnimationFrame(renderAnimationRequest.value);
1165
- renderedItems2.value = [];
1166
- });
1167
- watch(
1168
- () => props.elements,
1169
- () => {
1170
- window.cancelAnimationFrame(renderAnimationRequest.value);
1171
- renderedItems2.value = [];
1172
- renderItems();
1173
- }
1174
- );
1175
- return (_ctx, _cache) => {
1176
- const _component_n8n_loading = N8nLoading;
1177
- return _ctx.elements.length > 0 ? (openBlock(), createElementBlock("div", {
1178
- key: 0,
1179
- class: normalizeClass(_ctx.$style.itemsRenderer),
1180
- name: "accordion",
1181
- onBeforeEnter: beforeEnter,
1182
- onEnter: enter,
1183
- onBeforeLeave: beforeLeave,
1184
- onLeave: leave
1185
- }, [
1186
- renderSlot(_ctx.$slots, "default"),
1187
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.elements, (item) => {
1188
- return openBlock(), createElementBlock("div", {
1189
- key: item.uuid
1190
- }, [
1191
- renderedItems2.value.includes(item) ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
1192
- item.type === "section" ? (openBlock(), createBlock(CategorizedItemsRenderer, {
1193
- key: 0,
1194
- elements: item.children,
1195
- expanded: "",
1196
- category: item.title,
1197
- onSelected: _cache[0] || (_cache[0] = (child) => wrappedEmit("selected", child))
1198
- }, null, 8, ["elements", "category"])) : (openBlock(), createElementBlock("div", {
1199
- key: 1,
1200
- ref_for: true,
1201
- ref: "iteratorItems",
1202
- class: normalizeClass({
1203
- clickable: !_ctx.disabled,
1204
- [_ctx.$style.active]: activeItemId.value === item.uuid && highlightActiveItem.value,
1205
- [_ctx.$style.iteratorItem]: !communityNode.value,
1206
- [_ctx.$style[item.type]]: true,
1207
- [_ctx.$style.preview]: isPreview.value,
1208
- // Borderless is only applied to views
1209
- [_ctx.$style.borderless]: item.type === "view" && item.properties.borderless === true
1210
- }),
1211
- "data-test-id": "item-iterator-item",
1212
- "data-keyboard-nav-type": item.type !== "label" ? item.type : void 0,
1213
- "data-keyboard-nav-id": item.uuid,
1214
- onClick: ($event) => wrappedEmit("selected", item)
1215
- }, [
1216
- item.type === "label" ? (openBlock(), createBlock(LabelItem, {
1217
- key: 0,
1218
- item
1219
- }, null, 8, ["item"])) : createCommentVNode("", true),
1220
- item.type === "subcategory" ? (openBlock(), createBlock(SubcategoryItem, {
1221
- key: 1,
1222
- item: item.properties
1223
- }, null, 8, ["item"])) : createCommentVNode("", true),
1224
- communityNode.value ? (openBlock(), createBlock(CommunityNodeItem, {
1225
- key: 2,
1226
- "is-preview": isPreview.value
1227
- }, null, 8, ["is-preview"])) : createCommentVNode("", true),
1228
- item.type === "node" && !communityNode.value ? (openBlock(), createBlock(NodeItem, {
1229
- key: 3,
1230
- "node-type": item.properties,
1231
- active: true,
1232
- subcategory: item.subcategory
1233
- }, null, 8, ["node-type", "subcategory"])) : createCommentVNode("", true),
1234
- item.type === "action" ? (openBlock(), createBlock(ActionItem, {
1235
- key: 4,
1236
- "node-type": item.properties,
1237
- action: item.properties,
1238
- active: true
1239
- }, null, 8, ["node-type", "action"])) : item.type === "view" ? (openBlock(), createBlock(ViewItem, {
1240
- key: 5,
1241
- view: item.properties,
1242
- class: normalizeClass(_ctx.$style.viewItem)
1243
- }, null, 8, ["view", "class"])) : item.type === "link" ? (openBlock(), createBlock(LinkItem, {
1244
- key: 6,
1245
- link: item.properties,
1246
- class: normalizeClass(_ctx.$style.linkItem)
1247
- }, null, 8, ["link", "class"])) : item.type === "openTemplate" ? (openBlock(), createBlock(OpenTemplateItem, {
1248
- key: 7,
1249
- "open-template": item.properties,
1250
- class: normalizeClass(_ctx.$style.linkItem)
1251
- }, null, 8, ["open-template", "class"])) : createCommentVNode("", true)
1252
- ], 10, _hoisted_2$3))
1253
- ])) : (openBlock(), createBlock(_component_n8n_loading, {
1254
- key: 1,
1255
- loading: true,
1256
- rows: 1,
1257
- variant: "p",
1258
- class: normalizeClass(_ctx.$style.itemSkeleton)
1259
- }, null, 8, ["class"]))
1260
- ]);
1261
- }), 128))
1262
- ], 34)) : (openBlock(), createElementBlock("div", {
1263
- key: 1,
1264
- class: normalizeClass(_ctx.$style.empty)
1265
- }, [
1266
- renderSlot(_ctx.$slots, "empty")
1267
- ], 2));
1268
- };
1269
- }
1270
- });
1271
- const itemSkeleton = "_itemSkeleton_1y85u_123";
1272
- const iteratorItem = "_iteratorItem_1y85u_127";
1273
- const label = "_label_1y85u_139";
1274
- const category = "_category_1y85u_139";
1275
- const active$1 = "_active_1y85u_142";
1276
- const empty = "_empty_1y85u_146";
1277
- const itemsRenderer = "_itemsRenderer_1y85u_150";
1278
- const view = "_view_1y85u_159";
1279
- const link = "_link_1y85u_177";
1280
- const borderless = "_borderless_1y85u_195";
1281
- const preview = "_preview_1y85u_205";
1282
- const style0$8 = {
1283
- itemSkeleton,
1284
- iteratorItem,
1285
- label,
1286
- category,
1287
- active: active$1,
1288
- empty,
1289
- itemsRenderer,
1290
- view,
1291
- link,
1292
- borderless,
1293
- preview
1294
- };
1295
96
  const cssModules$8 = {
1296
97
  "$style": style0$8
1297
98
  };
1298
- const ItemsRenderer = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$8]]);
99
+ const SearchBar = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$8]]);
1299
100
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1300
101
  __name: "OrderSwitcher",
1301
102
  props: {
@@ -1340,7 +141,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1340
141
  const publisherName = ref(void 0);
1341
142
  const downloads = ref(null);
1342
143
  const verified = ref(false);
1343
- const official2 = ref(false);
144
+ const official = ref(false);
1344
145
  const installedPackage = ref(void 0);
1345
146
  const communityNodesStore = useCommunityNodesStore();
1346
147
  const nodeTypesStore = useNodeTypesStore();
@@ -1364,7 +165,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1364
165
  if (communityNodeAttributes) {
1365
166
  publisherName.value = communityNodeAttributes.companyName ?? communityNodeAttributes.authorName;
1366
167
  downloads.value = formatNumber(communityNodeAttributes.numberOfDownloads);
1367
- official2.value = communityNodeAttributes.isOfficialNode;
168
+ official.value = communityNodeAttributes.isOfficialNode;
1368
169
  if (!installedPackage.value) {
1369
170
  verified.value = true;
1370
171
  } else {
@@ -1406,7 +207,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1406
207
  }
1407
208
  });
1408
209
  return (_ctx, _cache) => {
1409
- const _component_CommunityNodeUpdateInfo = _sfc_main$o;
210
+ const _component_CommunityNodeUpdateInfo = _sfc_main$b;
1410
211
  return openBlock(), createElementBlock("div", {
1411
212
  class: normalizeClass(_ctx.$style.container)
1412
213
  }, [
@@ -1435,7 +236,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1435
236
  placement: "top"
1436
237
  }, {
1437
238
  content: withCtx(() => [
1438
- createTextVNode(toDisplayString(official2.value ? unref(i18n).baseText("communityNodeInfo.officialApproved") : unref(i18n).baseText("communityNodeInfo.approved")), 1)
239
+ createTextVNode(toDisplayString(official.value ? unref(i18n).baseText("communityNodeInfo.officialApproved") : unref(i18n).baseText("communityNodeInfo.approved")), 1)
1439
240
  ]),
1440
241
  default: withCtx(() => [
1441
242
  createBaseVNode("div", null, [
@@ -1576,7 +377,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1576
377
  setup(__props, { emit: __emit }) {
1577
378
  const emit = __emit;
1578
379
  const telemetry = useTelemetry();
1579
- const i18n2 = useI18n$1();
380
+ const i18n2 = useI18n();
1580
381
  const { userActivated, isInstanceOwner } = useUsersStore();
1581
382
  const { popViewStack, updateCurrentViewStack } = useViewStacks();
1582
383
  const { registerKeyHook } = useKeyboardNavigation();
@@ -1941,7 +742,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1941
742
  rootView: {}
1942
743
  },
1943
744
  setup(__props) {
1944
- const i18n2 = useI18n$1();
745
+ const i18n2 = useI18n();
1945
746
  return (_ctx, _cache) => {
1946
747
  const _component_n8n_link = N8nLink;
1947
748
  const _component_n8n_icon = N8nIcon;
@@ -2039,7 +840,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2039
840
  emits: ["nodeTypeSelected"],
2040
841
  setup(__props, { emit: __emit }) {
2041
842
  const emit = __emit;
2042
- const i18n2 = useI18n$1();
843
+ const i18n2 = useI18n();
2043
844
  const calloutHelpers = useCalloutHelpers();
2044
845
  const { mergedNodes, actions, onSubcategorySelected } = useNodeCreatorStore();
2045
846
  const { pushViewStack, popViewStack, isAiSubcategoryView } = useViewStacks();
@@ -2158,14 +959,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2158
959
  console.warn(`No view found for ${itemKey}`);
2159
960
  return;
2160
961
  }
2161
- const view2 = matchedView(mergedNodes);
962
+ const view = matchedView(mergedNodes);
2162
963
  pushViewStack({
2163
- title: view2.title,
2164
- subtitle: view2?.subtitle ?? "",
2165
- info: view2?.info ?? "",
2166
- items: view2.items,
964
+ title: view.title,
965
+ subtitle: view?.subtitle ?? "",
966
+ info: view?.info ?? "",
967
+ items: view.items,
2167
968
  hasSearch: true,
2168
- rootView: view2.value,
969
+ rootView: view.value,
2169
970
  mode: "nodes",
2170
971
  // Root search should include all nodes
2171
972
  searchItems: mergedNodes
@@ -2515,7 +1316,7 @@ const _hoisted_2 = ["textContent"];
2515
1316
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2516
1317
  __name: "NodesListPanel",
2517
1318
  setup(__props) {
2518
- const i18n2 = useI18n$1();
1319
+ const i18n2 = useI18n();
2519
1320
  const { callDebounced } = useDebounce();
2520
1321
  const { mergedNodes } = useNodeCreatorStore();
2521
1322
  const { pushViewStack, popViewStack, updateCurrentViewStack } = useViewStacks();
@@ -2600,12 +1401,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2600
1401
  console.warn(`No view found for ${itemKey}`);
2601
1402
  return;
2602
1403
  }
2603
- const view2 = matchedView(mergedNodes);
1404
+ const view = matchedView(mergedNodes);
2604
1405
  pushViewStack({
2605
- title: view2.title,
2606
- subtitle: view2?.subtitle ?? "",
2607
- items: view2.items,
2608
- info: view2.info,
1406
+ title: view.title,
1407
+ subtitle: view?.subtitle ?? "",
1408
+ items: view.items,
1409
+ info: view.info,
2609
1410
  hasSearch: true,
2610
1411
  mode: "nodes",
2611
1412
  rootView: selectedView,
@@ -2870,7 +1671,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2870
1671
  [_ctx.$style.active]: showScrim.value
2871
1672
  })
2872
1673
  }, null, 2),
2873
- _ctx.active ? (openBlock(), createBlock(_sfc_main$p, {
1674
+ _ctx.active ? (openBlock(), createBlock(_sfc_main$c, {
2874
1675
  key: 0,
2875
1676
  class: normalizeClass(_ctx.$style.close),
2876
1677
  type: "secondary",