n8n-editor-ui 1.109.1-exp.0 → 1.109.2

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 (118) hide show
  1. package/dist/assets/{AddDataStoreModal-CMmqKpuZ.js → AddDataStoreModal-uXL5uFdf.js} +2 -2
  2. package/dist/assets/{AnimatedSpinner-BQAVrRf4.js → AnimatedSpinner-Boagztc5.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-C-e8Hf86.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-Dwq22y10.js} +1 -1
  4. package/dist/assets/{AuthView-C-1QMeAi.js → AuthView-CQFbJe0h.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-CMm75HVn.js → ChangePasswordView-CBkVzb39.js} +3 -3
  6. package/dist/assets/CollectionParameter-BluoaZU_.js +4 -0
  7. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-nE_il7-e.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DfVZTSuh.js} +1 -1
  8. package/dist/assets/{CredentialsView-DEiS_bGa.js → CredentialsView-CCg2_s6G.js} +8 -9
  9. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-Uy8kEcSJ.js → DataStoreActions.vue_vue_type_script_setup_true_lang-DLTdZ7Ze.js} +2 -2
  10. package/dist/assets/{DataStoreDetailsView-1Yfp0U49.js → DataStoreDetailsView-BzaPADj6.js} +4 -4
  11. package/dist/assets/{DataStoreView-B0rFOKrx.js → DataStoreView-pwOfUlSA.js} +8 -9
  12. package/dist/assets/{DemoFooter-COCwOlSE.js → DemoFooter-BGbvJOnc.js} +6 -6
  13. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CsEyfmIK.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CHWBnByP.js} +1 -1
  14. package/dist/assets/{EntityNotFound-DpLmv3ME.js → EntityNotFound-usJAYj1D.js} +1 -1
  15. package/dist/assets/{EntityUnAuthorised-CR_6Y37T.js → EntityUnAuthorised-yPCryEik.js} +1 -1
  16. package/dist/assets/{ErrorView-CIKSp6id.js → ErrorView-C27mVZu1.js} +1 -1
  17. package/dist/assets/{EvaluationsRootView-U5uRCCja.js → EvaluationsRootView-BwLSDGVp.js} +1 -1
  18. package/dist/assets/{EvaluationsView-DW2Oipdw.js → EvaluationsView-Z8XLaPWl.js} +3 -3
  19. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DrLiE1HT.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ke2qqrxm.js} +2 -2
  20. package/dist/assets/{ExecutionsView-BYoQ6bA_.js → ExecutionsView-COI1S8Yf.js} +8 -8
  21. package/dist/assets/{FixedCollectionParameter-BP6Hp-qk.js → FixedCollectionParameter-B_SGODND.js} +1 -1
  22. package/dist/assets/{ForgotMyPasswordView-c1wnd6O3.js → ForgotMyPasswordView-DAd6lpBF.js} +3 -3
  23. package/dist/assets/{InfoAccordion-DovNmWsC.js → InfoAccordion-BHvbx6nt.js} +1 -1
  24. package/dist/assets/{InsightsChartAverageRuntime-BW517tv0.js → InsightsChartAverageRuntime-L1tp64l4.js} +4 -4
  25. package/dist/assets/{InsightsChartFailed-CpKGAn-q.js → InsightsChartFailed-DDz6H6Hb.js} +4 -4
  26. package/dist/assets/{InsightsChartFailureRate-D6ty7UwQ.js → InsightsChartFailureRate-CYIxGqMo.js} +4 -4
  27. package/dist/assets/{InsightsChartTimeSaved-BXLf4z0O.js → InsightsChartTimeSaved-BnXbon7j.js} +4 -4
  28. package/dist/assets/{InsightsChartTotal-BIjDUiy9.js → InsightsChartTotal-SpC19AWs.js} +4 -4
  29. package/dist/assets/{InsightsDashboard-NTagdefb.js → InsightsDashboard-BFYQJXlU.js} +10 -10
  30. package/dist/assets/{InsightsPaywall-CoFrKj_G.js → InsightsPaywall-D70_tWkc.js} +1 -1
  31. package/dist/assets/{InsightsSummary-BwAXblg3.js → InsightsSummary-Bypgyn1_.js} +1 -1
  32. package/dist/assets/{InsightsTableWorkflows-DX86KpbA.js → InsightsTableWorkflows-B8PrM_XF.js} +4 -4
  33. package/dist/assets/{Logo-CTdxpXL9.js → Logo-NH0xUQnC.js} +1 -1
  34. package/dist/assets/{LogsPanel-ClZ6L19W.js → LogsPanel-ICU1Y6Hy.js} +5 -5
  35. package/dist/assets/{MainHeader-BZ-UXtjK.js → MainHeader-BgYgvS2s.js} +10 -10
  36. package/dist/assets/{MainSidebar-DjxdwIl_.js → MainSidebar-8V8yR1hZ.js} +5 -15
  37. package/dist/assets/{NodeCreation-jcmpUiwP.js → NodeCreation-BOXv2AR2.js} +3 -3
  38. package/dist/assets/{NodeCreator-DPZTIfnb.js → NodeCreator-CbADkgNL.js} +1227 -28
  39. package/dist/assets/NodeCreator-vQ-Sfr_5.css +3568 -0
  40. package/dist/assets/{NodeDetailsView-CU60UMMm.js → NodeDetailsView-_1v8ors-.js} +13 -13
  41. package/dist/assets/{NodeDetailsViewV2-BfUlqsae.js → NodeDetailsViewV2-BCBKcayW.js} +13 -13
  42. package/dist/assets/{NodeView-g29_WXte.js → NodeView-75dKKlK2.js} +11 -11
  43. package/dist/assets/{ProjectBreadcrumb-CWq8ubCf.js → ProjectBreadcrumb-CcYMzyYS.js} +1 -1
  44. package/dist/assets/{ProjectHeader-RvcbYSCb.js → ProjectHeader-BGjOBBZs.js} +2 -2
  45. package/dist/assets/{ProjectSettings-COFuN2-R.js → ProjectSettings-D8_RWwH6.js} +3 -3
  46. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CO-M5R89.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CX6d3I0M.js} +1 -1
  47. package/dist/assets/{ResourcesListLayout-CVKyKkt9.css → ResourcesListLayout-C1JgyGhX.css} +140 -0
  48. package/dist/assets/{ResourcesListLayout-CL3ardp2.js → ResourcesListLayout-CHxMfd0o.js} +36 -14
  49. package/dist/assets/{RunDataJson-CiZmogYm.js → RunDataJson-C3t3ZjPB.js} +3 -3
  50. package/dist/assets/{RunDataJsonActions-xYBJCH8-.js → RunDataJsonActions-B7XqfLFu.js} +1 -1
  51. package/dist/assets/{RunDataParsedAiContent-BbwMZ2cf.js → RunDataParsedAiContent-C9jVQbY-.js} +2 -2
  52. package/dist/assets/{RunDataSearch-7nGkMeXI.js → RunDataSearch-BOte45cu.js} +1 -1
  53. package/dist/assets/{RunDataTable-b6xDbVuB.js → RunDataTable-hdfF2k3k.js} +1 -1
  54. package/dist/assets/{SamlOnboarding-TBQugaMs.js → SamlOnboarding-Ba_I74m9.js} +3 -3
  55. package/dist/assets/{SettingsApiView-CcUQJaIT.js → SettingsApiView-DkWdzJZU.js} +1 -1
  56. package/dist/assets/{SettingsCommunityNodesView-B315yNJi.js → SettingsCommunityNodesView-DHJIRIQE.js} +4 -4
  57. package/dist/assets/{SettingsExternalSecrets-SZcVtzZ_.js → SettingsExternalSecrets-L_l-1Oj-.js} +1 -1
  58. package/dist/assets/{SettingsLdapView-rNCQ7v3o.js → SettingsLdapView-BPUQw21m.js} +1 -1
  59. package/dist/assets/{SettingsLogStreamingView-RDx9A9tb.js → SettingsLogStreamingView-CXFUdTy7.js} +1 -1
  60. package/dist/assets/{SettingsPersonalView-9ndK4DTC.js → SettingsPersonalView-CkOwN5kp.js} +1 -1
  61. package/dist/assets/{SettingsSourceControl-BwfXpwbQ.js → SettingsSourceControl-Chxs8lyZ.js} +1 -1
  62. package/dist/assets/{SettingsSso-Dme0tqgI.js → SettingsSso-CzgNGbQk.js} +17 -10
  63. package/dist/assets/{SettingsUsageAndPlan-HFRQcbGO.js → SettingsUsageAndPlan-CpAkwOo_.js} +1 -1
  64. package/dist/assets/{SettingsUsersView-WQaWa1Xg.js → SettingsUsersView-C-W3bAek.js} +1 -1
  65. package/dist/assets/{SettingsView-BOFF8MIt.js → SettingsView-CN8rNrUi.js} +1 -1
  66. package/dist/assets/{SetupView-D4ma4QqQ.js → SetupView-DTCdkpy-.js} +3 -3
  67. package/dist/assets/{SetupWorkflowCredentialsButton-qBefMaeP.js → SetupWorkflowCredentialsButton-pgSHNct2.js} +1 -1
  68. package/dist/assets/{SetupWorkflowFromTemplateView-eThiBMJr.js → SetupWorkflowFromTemplateView-C5u6X-e-.js} +3 -3
  69. package/dist/assets/{SigninView-Dyy4AWIv.js → SigninView-XbODXHI6.js} +3 -3
  70. package/dist/assets/{SignoutView-4fiMBT_O.js → SignoutView-3SLJrRw6.js} +1 -1
  71. package/dist/assets/{SignupView-D8EgeExw.js → SignupView-B88aZsHB.js} +3 -3
  72. package/dist/assets/{TableBase-OkNFnxMN.js → TableBase-DmNxoh-V.js} +1 -1
  73. package/dist/assets/{Tag-DU_lYKFb.js → Tag-ZyDcgFEj.js} +1 -1
  74. package/dist/assets/{Tags-DwGsPbMq.js → Tags-DxSdhB5Q.js} +2 -2
  75. package/dist/assets/{TemplateDetails-ClayPQIC.js → TemplateDetails-CFhSg1pL.js} +2 -2
  76. package/dist/assets/{TemplateList-BmhAYtqD.js → TemplateList-DgekHTSl.js} +1 -1
  77. package/dist/assets/{TemplatesCollectionView-C_XvnuSE.js → TemplatesCollectionView-p1JacG9j.js} +7 -7
  78. package/dist/assets/{TemplatesSearchView-C45ew-79.js → TemplatesSearchView-DkEwSWgX.js} +3 -3
  79. package/dist/assets/{TemplatesView-BUhBCzDh.js → TemplatesView-kwADW1e_.js} +1 -1
  80. package/dist/assets/{TemplatesWorkflowView-Cqx0LH2x.js → TemplatesWorkflowView-BVzxbwUl.js} +7 -7
  81. package/dist/assets/{TriggerPanel-CPRAkoxG.js → TriggerPanel-DT2Pi3Ln.js} +5 -5
  82. package/dist/assets/{VariablesView-Dx2OtCEI.js → VariablesView-Ad8vS5nb.js} +5 -6
  83. package/dist/assets/{WorkerView-P8T10YwW.js → WorkerView-CbfVnz4y.js} +6 -6
  84. package/dist/assets/{WorkflowActivator-_e923o0y.js → WorkflowActivator-BxX80zGr.js} +3 -3
  85. package/dist/assets/{WorkflowExecutionsInfoAccordion-DJpH9yyI.js → WorkflowExecutionsInfoAccordion-BZHHQFcf.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsLandingPage-BYSAKviI.js → WorkflowExecutionsLandingPage-zeaUSp7T.js} +3 -3
  87. package/dist/assets/{WorkflowExecutionsPreview-CEsBtvmn.js → WorkflowExecutionsPreview-CPQUCKk6.js} +4 -4
  88. package/dist/assets/{WorkflowExecutionsView-B0a-jegq.js → WorkflowExecutionsView-B7x5IRu_.js} +7 -7
  89. package/dist/assets/{WorkflowHistory-BTMuD-Rw.js → WorkflowHistory-DoFfKRnt.js} +2 -2
  90. package/dist/assets/{WorkflowOnboardingView-yyOF5Tfj.js → WorkflowOnboardingView-D8gjC-Ng.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-FLb0vqTZ.js → WorkflowPreview-BZs8Di_n.js} +1 -1
  92. package/dist/assets/{WorkflowsView-E-TpCSK5.js → WorkflowsView-QnB5kP-h.js} +30 -113
  93. package/dist/assets/{canvas-DVwUwHyq.js → canvas-X-1icOh2.js} +1 -1
  94. package/dist/assets/{chartjs.utils-TbG5rKwD.js → chartjs.utils-DvIjPJm3.js} +2 -2
  95. package/dist/assets/{core-xJ_ye7-C.js → core-CZWe7osv.js} +1 -1
  96. package/dist/assets/{dataStore.store-_vnx0W6W.js → dataStore.store-XMarLJy8.js} +1 -1
  97. package/dist/assets/{en-Dky7DMCM.js → en-CLskxc5n.js} +2 -7
  98. package/dist/assets/{global-link-actions-B6KV3Sbr.js → global-link-actions-C5l8bN84.js} +1 -1
  99. package/dist/assets/{index-Ced82689.css → index-Am8RmnT4.css} +184 -2256
  100. package/dist/assets/{index-DVGGZEuK.js → index-CaZY86md.js} +1 -1
  101. package/dist/assets/{index-Cz15Tiv9.js → index-CeNA_ukL.js} +6169 -7624
  102. package/dist/assets/{pickBy-Bd6X8Hwr.js → pickBy-DpEqvEPR.js} +1 -1
  103. package/dist/assets/{readyToRunWorkflows.store-Cmgt_RuC.js → readyToRunWorkflows.store-DGBtTmGX.js} +1 -1
  104. package/dist/assets/{templateActions-C8pcWzAR.js → templateActions-D45UELiN.js} +1 -1
  105. package/dist/assets/{useBeforeUnload-BkXoGUBm.js → useBeforeUnload-DGets1eb.js} +1 -1
  106. package/dist/assets/{useExecutionDebugging-Frigwi9s.js → useExecutionDebugging-DDy8bilm.js} +1 -1
  107. package/dist/assets/{useImportCurlCommand-C8hZCPg6.js → useImportCurlCommand-Dl6INy3z.js} +1 -1
  108. package/dist/assets/{useProjectPages-atXZB4mX.js → useProjectPages-xv6Eq2Y5.js} +1 -1
  109. package/dist/assets/{usePushConnection-CdWJ1GHK.js → usePushConnection-Brn1MCOr.js} +3 -8
  110. package/dist/assets/{useWorkflowActivate-DUdD-y87.js → useWorkflowActivate-CuNKq-WZ.js} +1 -1
  111. package/dist/index.html +2 -2
  112. package/package.json +1 -1
  113. package/dist/assets/CollectionParameter-0KmNfK7e.js +0 -4
  114. package/dist/assets/NodeCreator-COTYfPaK.css +0 -1637
  115. package/dist/assets/PageViewLayout-CJlzbuVj.css +0 -141
  116. package/dist/assets/PageViewLayout-DfWGehvM.js +0 -27
  117. package/dist/assets/PrebuiltAgentTemplatesView-BOcmbn6B.js +0 -196
  118. package/dist/assets/PrebuiltAgentTemplatesView-COxu7Iih.css +0 -166
@@ -1,6 +1,114 @@
1
- import { d as defineComponent, d1 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, hU as REGULAR_NODE_CREATOR_VIEW, F as Fragment, X as renderSlot, hV as useViewStacks, r as ref, ej 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, hW as _sfc_main$b, a9 as Tooltip, eW as i18n, hX as captureException, hY as useKeyboardNavigation, hb as useActions, d3 as useNodeCreatorStore, bm as useCalloutHelpers, hZ as CUSTOM_API_CALL_KEY, h_ as TRIGGER_NODE_CREATOR_VIEW, h$ as isNodePreviewKey, i0 as OPEN_AI_NODE_TYPE, i1 as OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE, al as useTelemetry, i2 as getActiveViewCallouts, cc as resolveDirective, i3 as ItemsRenderer, br as createSlots, i4 as withMemo, i5 as CategorizedItemsRenderer, c as useI18n, z as N8nCallout, b2 as withDirectives, cL as InfoTip, B as withModifiers, i6 as CommunityNodeFooter, i7 as HTTP_REQUEST_NODE_TYPE, fo as createStaticVNode, C as N8nLink, i8 as REQUEST_NODE_FORM_URL, i9 as filterAndSearchNodes, ia as getRootSearchCallouts, hz as WEBHOOK_NODE_TYPE, ib as PRE_BUILT_AGENTS_COLLECTION, ic as camelCase, id as shouldShowCommunityNodeDetails, fe as isCommunityPackageName, ie as prepareCommunityNodeDetailsViewStack, hG as getNodeIconSource, ig as transformNodeType, ih as AINodesView, ii as AIView, ij as RegularView, ik as TriggerView, il as flattenCreateElements, im as HITL_SUBCATEGORY, io as getHumanInTheLoopActions, ip as AI_OTHERS_NODE_CREATOR_VIEW, iq as AI_NODE_CREATOR_VIEW, a as useToast, bX as NodeIcon, ir as OfficialIcon, q as N8nButton, d4 as useCredentialsStore, is as removePreviewToken, P as useDebounce, c7 as onUnmounted, a7 as watch, e1 as N8nNotice, c2 as normalizeProps, K as mergeProps, hB as Transition, it as AI_EVALUATION, iu as AI_UNCATEGORIZED_CATEGORY, Q as useUIStore, fc as useAssistantStore, d7 as useBuilderStore, bq as onClickOutside, aa as _sfc_main$c, ap as normalizeStyle, iv as SlideTransition, dB as DRAG_EVENT_DATA_KEY, iw as useActionsGenerator } from "./index-Cz15Tiv9.js";
2
- const _hoisted_1$5 = ["placeholder", "value"];
3
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
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({
4
112
  __name: "SearchBar",
5
113
  props: {
6
114
  placeholder: { default: "" },
@@ -61,7 +169,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
61
169
  "data-test-id": "node-creator-search-bar",
62
170
  tabindex: "0",
63
171
  onInput
64
- }, null, 42, _hoisted_1$5)
172
+ }, null, 42, _hoisted_1$a)
65
173
  ], 2),
66
174
  _ctx.modelValue.length > 0 ? (openBlock(), createElementBlock("div", {
67
175
  key: 0,
@@ -79,24 +187,1115 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
79
187
  });
80
188
  const searchContainer = "_searchContainer_w19t7_123";
81
189
  const prefix = "_prefix_w19t7_139";
82
- const active$1 = "_active_w19t7_144";
190
+ const active$3 = "_active_w19t7_144";
83
191
  const text = "_text_w19t7_148";
84
192
  const suffix = "_suffix_w19t7_164";
85
193
  const clear = "_clear_w19t7_170";
86
194
  const clickable = "_clickable_w19t7_183";
87
- const style0$8 = {
195
+ const style0$k = {
88
196
  searchContainer,
89
197
  prefix,
90
- active: active$1,
198
+ active: active$3,
91
199
  text,
92
200
  suffix,
93
201
  clear,
94
202
  clickable
95
203
  };
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
+ };
96
1295
  const cssModules$8 = {
97
1296
  "$style": style0$8
98
1297
  };
99
- const SearchBar = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$8]]);
1298
+ const ItemsRenderer = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$8]]);
100
1299
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101
1300
  __name: "OrderSwitcher",
102
1301
  props: {
@@ -141,7 +1340,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
141
1340
  const publisherName = ref(void 0);
142
1341
  const downloads = ref(null);
143
1342
  const verified = ref(false);
144
- const official = ref(false);
1343
+ const official2 = ref(false);
145
1344
  const installedPackage = ref(void 0);
146
1345
  const communityNodesStore = useCommunityNodesStore();
147
1346
  const nodeTypesStore = useNodeTypesStore();
@@ -165,7 +1364,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
165
1364
  if (communityNodeAttributes) {
166
1365
  publisherName.value = communityNodeAttributes.companyName ?? communityNodeAttributes.authorName;
167
1366
  downloads.value = formatNumber(communityNodeAttributes.numberOfDownloads);
168
- official.value = communityNodeAttributes.isOfficialNode;
1367
+ official2.value = communityNodeAttributes.isOfficialNode;
169
1368
  if (!installedPackage.value) {
170
1369
  verified.value = true;
171
1370
  } else {
@@ -207,7 +1406,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
207
1406
  }
208
1407
  });
209
1408
  return (_ctx, _cache) => {
210
- const _component_CommunityNodeUpdateInfo = _sfc_main$b;
1409
+ const _component_CommunityNodeUpdateInfo = _sfc_main$o;
211
1410
  return openBlock(), createElementBlock("div", {
212
1411
  class: normalizeClass(_ctx.$style.container)
213
1412
  }, [
@@ -236,7 +1435,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
236
1435
  placement: "top"
237
1436
  }, {
238
1437
  content: withCtx(() => [
239
- createTextVNode(toDisplayString(official.value ? unref(i18n).baseText("communityNodeInfo.officialApproved") : unref(i18n).baseText("communityNodeInfo.approved")), 1)
1438
+ createTextVNode(toDisplayString(official2.value ? unref(i18n).baseText("communityNodeInfo.officialApproved") : unref(i18n).baseText("communityNodeInfo.approved")), 1)
240
1439
  ]),
241
1440
  default: withCtx(() => [
242
1441
  createBaseVNode("div", null, [
@@ -377,7 +1576,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
377
1576
  setup(__props, { emit: __emit }) {
378
1577
  const emit = __emit;
379
1578
  const telemetry = useTelemetry();
380
- const i18n2 = useI18n();
1579
+ const i18n2 = useI18n$1();
381
1580
  const { userActivated, isInstanceOwner } = useUsersStore();
382
1581
  const { popViewStack, updateCurrentViewStack } = useViewStacks();
383
1582
  const { registerKeyHook } = useKeyboardNavigation();
@@ -742,7 +1941,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
742
1941
  rootView: {}
743
1942
  },
744
1943
  setup(__props) {
745
- const i18n2 = useI18n();
1944
+ const i18n2 = useI18n$1();
746
1945
  return (_ctx, _cache) => {
747
1946
  const _component_n8n_link = N8nLink;
748
1947
  const _component_n8n_icon = N8nIcon;
@@ -840,7 +2039,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
840
2039
  emits: ["nodeTypeSelected"],
841
2040
  setup(__props, { emit: __emit }) {
842
2041
  const emit = __emit;
843
- const i18n2 = useI18n();
2042
+ const i18n2 = useI18n$1();
844
2043
  const calloutHelpers = useCalloutHelpers();
845
2044
  const { mergedNodes, actions, onSubcategorySelected } = useNodeCreatorStore();
846
2045
  const { pushViewStack, popViewStack, isAiSubcategoryView } = useViewStacks();
@@ -959,14 +2158,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
959
2158
  console.warn(`No view found for ${itemKey}`);
960
2159
  return;
961
2160
  }
962
- const view = matchedView(mergedNodes);
2161
+ const view2 = matchedView(mergedNodes);
963
2162
  pushViewStack({
964
- title: view.title,
965
- subtitle: view?.subtitle ?? "",
966
- info: view?.info ?? "",
967
- items: view.items,
2163
+ title: view2.title,
2164
+ subtitle: view2?.subtitle ?? "",
2165
+ info: view2?.info ?? "",
2166
+ items: view2.items,
968
2167
  hasSearch: true,
969
- rootView: view.value,
2168
+ rootView: view2.value,
970
2169
  mode: "nodes",
971
2170
  // Root search should include all nodes
972
2171
  searchItems: mergedNodes
@@ -1316,7 +2515,7 @@ const _hoisted_2 = ["textContent"];
1316
2515
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1317
2516
  __name: "NodesListPanel",
1318
2517
  setup(__props) {
1319
- const i18n2 = useI18n();
2518
+ const i18n2 = useI18n$1();
1320
2519
  const { callDebounced } = useDebounce();
1321
2520
  const { mergedNodes } = useNodeCreatorStore();
1322
2521
  const { pushViewStack, popViewStack, updateCurrentViewStack } = useViewStacks();
@@ -1401,12 +2600,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1401
2600
  console.warn(`No view found for ${itemKey}`);
1402
2601
  return;
1403
2602
  }
1404
- const view = matchedView(mergedNodes);
2603
+ const view2 = matchedView(mergedNodes);
1405
2604
  pushViewStack({
1406
- title: view.title,
1407
- subtitle: view?.subtitle ?? "",
1408
- items: view.items,
1409
- info: view.info,
2605
+ title: view2.title,
2606
+ subtitle: view2?.subtitle ?? "",
2607
+ items: view2.items,
2608
+ info: view2.info,
1410
2609
  hasSearch: true,
1411
2610
  mode: "nodes",
1412
2611
  rootView: selectedView,
@@ -1671,7 +2870,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1671
2870
  [_ctx.$style.active]: showScrim.value
1672
2871
  })
1673
2872
  }, null, 2),
1674
- _ctx.active ? (openBlock(), createBlock(_sfc_main$c, {
2873
+ _ctx.active ? (openBlock(), createBlock(_sfc_main$p, {
1675
2874
  key: 0,
1676
2875
  class: normalizeClass(_ctx.$style.close),
1677
2876
  type: "secondary",