n8n-editor-ui 1.22.0 → 1.22.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 (126) hide show
  1. package/.turbo/turbo-build.log +62 -62
  2. package/dist/assets/{AuthView-_5lvIORY.js → AuthView--On8E3VP.js} +2 -2
  3. package/dist/assets/{AuthView-_5lvIORY.js.map → AuthView--On8E3VP.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-_S6dAUFr.js → CanvasControls-ebFBI-_5.js} +2 -2
  5. package/dist/assets/{CanvasControls-_S6dAUFr.js.map → CanvasControls-ebFBI-_5.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-Gto324pL.js → ChangePasswordView-gj93rkzc.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-Gto324pL.js.map → ChangePasswordView-gj93rkzc.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-ThiBAc6J.js → CollectionParameter-V1n0L6ao.js} +2 -2
  9. package/dist/assets/CollectionParameter-V1n0L6ao.js.map +1 -0
  10. package/dist/assets/{CredentialsView-WF2GuXwX.js → CredentialsView-9Nq2fOpi.js} +2 -2
  11. package/dist/assets/{CredentialsView-WF2GuXwX.js.map → CredentialsView-9Nq2fOpi.js.map} +1 -1
  12. package/dist/assets/{ExecutionFilter-6e5m1hky.js → ExecutionFilter-dfrYJ_Rf.js} +2 -2
  13. package/dist/assets/{ExecutionFilter-6e5m1hky.js.map → ExecutionFilter-dfrYJ_Rf.js.map} +1 -1
  14. package/dist/assets/{ExecutionPreview-qQdwo4nO.js → ExecutionPreview-yFW7oTRf.js} +2 -2
  15. package/dist/assets/{ExecutionPreview-qQdwo4nO.js.map → ExecutionPreview-yFW7oTRf.js.map} +1 -1
  16. package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js → ExecutionsInfoAccordion-EztI4QOE.js} +2 -2
  17. package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js.map → ExecutionsInfoAccordion-EztI4QOE.js.map} +1 -1
  18. package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js → ExecutionsLandingPage-ygQGHLu2.js} +2 -2
  19. package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js.map → ExecutionsLandingPage-ygQGHLu2.js.map} +1 -1
  20. package/dist/assets/{ExecutionsList-9Pc2Zrql.js → ExecutionsList-H9VKc4jb.js} +2 -2
  21. package/dist/assets/{ExecutionsList-9Pc2Zrql.js.map → ExecutionsList-H9VKc4jb.js.map} +1 -1
  22. package/dist/assets/{ExecutionsView-Li55aBU0.js → ExecutionsView-NdkXn6EA.js} +2 -2
  23. package/dist/assets/{ExecutionsView-Li55aBU0.js.map → ExecutionsView-NdkXn6EA.js.map} +1 -1
  24. package/dist/assets/{FixedCollectionParameter-d68rB1aT.js → FixedCollectionParameter-tJFyljoK.js} +3 -3
  25. package/dist/assets/{FixedCollectionParameter-d68rB1aT.js.map → FixedCollectionParameter-tJFyljoK.js.map} +1 -1
  26. package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js → ForgotMyPasswordView-VxAVQQgB.js} +2 -2
  27. package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js.map → ForgotMyPasswordView-VxAVQQgB.js.map} +1 -1
  28. package/dist/assets/{MainHeader-wtrPt4Uz.js → MainHeader-luMJdQn2.js} +2 -2
  29. package/dist/assets/{MainHeader-wtrPt4Uz.js.map → MainHeader-luMJdQn2.js.map} +1 -1
  30. package/dist/assets/{MainSidebar-dKXNC9E9.js → MainSidebar-nf-k1wHF.js} +2 -2
  31. package/dist/assets/{MainSidebar-dKXNC9E9.js.map → MainSidebar-nf-k1wHF.js.map} +1 -1
  32. package/dist/assets/{NodeCreation-lpcdOti7.js → NodeCreation-RvlbocPg.js} +3 -3
  33. package/dist/assets/{NodeCreation-lpcdOti7.js.map → NodeCreation-RvlbocPg.js.map} +1 -1
  34. package/dist/assets/{NodeCreator-YAF-VpA5.js → NodeCreator-zDLKC62A.js} +2 -2
  35. package/dist/assets/{NodeCreator-YAF-VpA5.js.map → NodeCreator-zDLKC62A.js.map} +1 -1
  36. package/dist/assets/{NodeList-8URsrxUQ.js → NodeList-U4qs88M0.js} +2 -2
  37. package/dist/assets/{NodeList-8URsrxUQ.js.map → NodeList-U4qs88M0.js.map} +1 -1
  38. package/dist/assets/{NodeView-caDno-kw.js → NodeView-fUdpq96X.js} +3 -3
  39. package/dist/assets/{NodeView-caDno-kw.js.map → NodeView-fUdpq96X.js.map} +1 -1
  40. package/dist/assets/{ResourcesListLayout-N4zg03Vf.js → ResourcesListLayout-y5FSwJeu.js} +2 -2
  41. package/dist/assets/{ResourcesListLayout-N4zg03Vf.js.map → ResourcesListLayout-y5FSwJeu.js.map} +1 -1
  42. package/dist/assets/{RunDataAi-EdxjRrVc.js → RunDataAi-dgEyN_Yl.js} +2 -2
  43. package/dist/assets/{RunDataAi-EdxjRrVc.js.map → RunDataAi-dgEyN_Yl.js.map} +1 -1
  44. package/dist/assets/{RunDataJson-wqxHrAY5.js → RunDataJson-RuNn5FTw.js} +3 -3
  45. package/dist/assets/{RunDataJson-wqxHrAY5.js.map → RunDataJson-RuNn5FTw.js.map} +1 -1
  46. package/dist/assets/{RunDataJsonActions-MfJV4quL.js → RunDataJsonActions-wMN8ObC3.js} +2 -2
  47. package/dist/assets/{RunDataJsonActions-MfJV4quL.js.map → RunDataJsonActions-wMN8ObC3.js.map} +1 -1
  48. package/dist/assets/{RunDataSchema-rxgd4Q_M.js → RunDataSchema-NrdiV0Bv.js} +2 -2
  49. package/dist/assets/{RunDataSchema-rxgd4Q_M.js.map → RunDataSchema-NrdiV0Bv.js.map} +1 -1
  50. package/dist/assets/{RunDataTable-2IMpD8oi.js → RunDataTable-vThTeakV.js} +2 -2
  51. package/dist/assets/{RunDataTable-2IMpD8oi.js.map → RunDataTable-vThTeakV.js.map} +1 -1
  52. package/dist/assets/{SamlOnboarding-RIlvbmgY.js → SamlOnboarding-7ZeWtOoT.js} +2 -2
  53. package/dist/assets/{SamlOnboarding-RIlvbmgY.js.map → SamlOnboarding-7ZeWtOoT.js.map} +1 -1
  54. package/dist/assets/SettingsApiView-d7znGVgB.js +2 -0
  55. package/dist/assets/SettingsApiView-d7znGVgB.js.map +1 -0
  56. package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js → SettingsCommunityNodesView-U2OqH5_g.js} +2 -2
  57. package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js.map → SettingsCommunityNodesView-U2OqH5_g.js.map} +1 -1
  58. package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js → SettingsExternalSecrets-OK2zcF3w.js} +2 -2
  59. package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js.map → SettingsExternalSecrets-OK2zcF3w.js.map} +1 -1
  60. package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js → SettingsFakeDoorView-wbngwN3n.js} +2 -2
  61. package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js.map → SettingsFakeDoorView-wbngwN3n.js.map} +1 -1
  62. package/dist/assets/{SettingsLdapView-aWCvc1gM.js → SettingsLdapView-rYSjSdpv.js} +2 -2
  63. package/dist/assets/{SettingsLdapView-aWCvc1gM.js.map → SettingsLdapView-rYSjSdpv.js.map} +1 -1
  64. package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js → SettingsLogStreamingView-r4yJe9rt.js} +2 -2
  65. package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js.map → SettingsLogStreamingView-r4yJe9rt.js.map} +1 -1
  66. package/dist/assets/{SettingsSourceControl-s8B2f1Et.js → SettingsSourceControl-2sJrfiQZ.js} +2 -2
  67. package/dist/assets/{SettingsSourceControl-s8B2f1Et.js.map → SettingsSourceControl-2sJrfiQZ.js.map} +1 -1
  68. package/dist/assets/{SettingsSso-xhUlnU8v.js → SettingsSso-F08fTaoT.js} +2 -2
  69. package/dist/assets/{SettingsSso-xhUlnU8v.js.map → SettingsSso-F08fTaoT.js.map} +1 -1
  70. package/dist/assets/{SettingsUsageAndPlan-qguburG-.js → SettingsUsageAndPlan-P3NemeAe.js} +2 -2
  71. package/dist/assets/{SettingsUsageAndPlan-qguburG-.js.map → SettingsUsageAndPlan-P3NemeAe.js.map} +1 -1
  72. package/dist/assets/{SettingsUsersView-mRes9Qkr.js → SettingsUsersView-qkwybUvB.js} +2 -2
  73. package/dist/assets/{SettingsUsersView-mRes9Qkr.js.map → SettingsUsersView-qkwybUvB.js.map} +1 -1
  74. package/dist/assets/{SettingsView-3Vqg8kdv.js → SettingsView-9Bw0MXcT.js} +2 -2
  75. package/dist/assets/{SettingsView-3Vqg8kdv.js.map → SettingsView-9Bw0MXcT.js.map} +1 -1
  76. package/dist/assets/{SetupView-RR2VulZH.js → SetupView-s0yzV7Gm.js} +2 -2
  77. package/dist/assets/{SetupView-RR2VulZH.js.map → SetupView-s0yzV7Gm.js.map} +1 -1
  78. package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js → SetupWorkflowFromTemplateView-6De7ws36.js} +2 -2
  79. package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js.map → SetupWorkflowFromTemplateView-6De7ws36.js.map} +1 -1
  80. package/dist/assets/{SigninView-hIeIEews.js → SigninView-QvYhHXWz.js} +2 -2
  81. package/dist/assets/{SigninView-hIeIEews.js.map → SigninView-QvYhHXWz.js.map} +1 -1
  82. package/dist/assets/{SignupView-iaO_BXyp.js → SignupView-ZLqXA-fI.js} +2 -2
  83. package/dist/assets/{SignupView-iaO_BXyp.js.map → SignupView-ZLqXA-fI.js.map} +1 -1
  84. package/dist/assets/{TemplateDetails-HasVFCUO.js → TemplateDetails-qWnefMYx.js} +2 -2
  85. package/dist/assets/{TemplateDetails-HasVFCUO.js.map → TemplateDetails-qWnefMYx.js.map} +1 -1
  86. package/dist/assets/{TemplateList-uT0I7BC-.js → TemplateList-Ek8NkQLd.js} +2 -2
  87. package/dist/assets/{TemplateList-uT0I7BC-.js.map → TemplateList-Ek8NkQLd.js.map} +1 -1
  88. package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js → TemplatesCollectionView-xoRz-QfG.js} +2 -2
  89. package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js.map → TemplatesCollectionView-xoRz-QfG.js.map} +1 -1
  90. package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js → TemplatesInfoCarousel-TKGxiVaR.js} +2 -2
  91. package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js.map → TemplatesInfoCarousel-TKGxiVaR.js.map} +1 -1
  92. package/dist/assets/{TemplatesSearchView-pwVBF7_m.js → TemplatesSearchView-gwbhQE6_.js} +2 -2
  93. package/dist/assets/{TemplatesSearchView-pwVBF7_m.js.map → TemplatesSearchView-gwbhQE6_.js.map} +1 -1
  94. package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js → TemplatesWorkflowView-VbJuwYVl.js} +2 -2
  95. package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js.map → TemplatesWorkflowView-VbJuwYVl.js.map} +1 -1
  96. package/dist/assets/{VariablesView-O1dh47w6.js → VariablesView-ZNxPDs_G.js} +2 -2
  97. package/dist/assets/{VariablesView-O1dh47w6.js.map → VariablesView-ZNxPDs_G.js.map} +1 -1
  98. package/dist/assets/{WorkerView-ehe17h1Q.js → WorkerView-Rzm_p5Pv.js} +2 -2
  99. package/dist/assets/{WorkerView-ehe17h1Q.js.map → WorkerView-Rzm_p5Pv.js.map} +1 -1
  100. package/dist/assets/{WorkflowActivator-EK3d11st.js → WorkflowActivator-H10vhdIV.js} +2 -2
  101. package/dist/assets/{WorkflowActivator-EK3d11st.js.map → WorkflowActivator-H10vhdIV.js.map} +1 -1
  102. package/dist/assets/{WorkflowHistory-mqWH3nQZ.js → WorkflowHistory-diO3ekal.js} +2 -2
  103. package/dist/assets/{WorkflowHistory-mqWH3nQZ.js.map → WorkflowHistory-diO3ekal.js.map} +1 -1
  104. package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js → WorkflowOnboardingView-gUVzVQsZ.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js.map → WorkflowOnboardingView-gUVzVQsZ.js.map} +1 -1
  106. package/dist/assets/{WorkflowsView-NL0wKv4C.js → WorkflowsView-Qqq1sZTo.js} +2 -2
  107. package/dist/assets/{WorkflowsView-NL0wKv4C.js.map → WorkflowsView-Qqq1sZTo.js.map} +1 -1
  108. package/dist/assets/{cloud-JhkwKZAE.js → cloud-g7GqwUFZ.js} +2 -2
  109. package/dist/assets/{cloud-JhkwKZAE.js.map → cloud-g7GqwUFZ.js.map} +1 -1
  110. package/dist/assets/{executionsHelpers-Gkj6bYJi.js → executionsHelpers-gnbzcx5j.js} +2 -2
  111. package/dist/assets/{executionsHelpers-Gkj6bYJi.js.map → executionsHelpers-gnbzcx5j.js.map} +1 -1
  112. package/dist/assets/{index--RuZ5wHr.js → index-RXjMHIPR.js} +11 -11
  113. package/dist/assets/{index--RuZ5wHr.js.map → index-RXjMHIPR.js.map} +1 -1
  114. package/dist/assets/{pushConnection-UpdxMjHa.js → pushConnection-HdjAqr4R.js} +2 -2
  115. package/dist/assets/{pushConnection-UpdxMjHa.js.map → pushConnection-HdjAqr4R.js.map} +1 -1
  116. package/dist/assets/{templateActions-CZfTXoBx.js → templateActions-y8msVyEB.js} +2 -2
  117. package/dist/assets/{templateActions-CZfTXoBx.js.map → templateActions-y8msVyEB.js.map} +1 -1
  118. package/dist/assets/{useExecutionDebugging-FPo5qMF0.js → useExecutionDebugging-Yog1CJXv.js} +2 -2
  119. package/dist/assets/{useExecutionDebugging-FPo5qMF0.js.map → useExecutionDebugging-Yog1CJXv.js.map} +1 -1
  120. package/dist/assets/{workflowActivate-FltKJaAB.js → workflowActivate-IRvCsxq5.js} +2 -2
  121. package/dist/assets/{workflowActivate-FltKJaAB.js.map → workflowActivate-IRvCsxq5.js.map} +1 -1
  122. package/dist/index.html +1 -1
  123. package/package.json +1 -1
  124. package/dist/assets/CollectionParameter-ThiBAc6J.js.map +0 -1
  125. package/dist/assets/SettingsApiView-_7qUJ2zm.js +0 -2
  126. package/dist/assets/SettingsApiView-_7qUJ2zm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SamlOnboarding-RIlvbmgY.js","sources":["../../src/views/SamlOnboarding.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { reactive, ref } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { ElNotification as Notification } from 'element-plus';\nimport type { IFormBoxConfig } from 'n8n-design-system';\nimport AuthView from '@/views/AuthView.vue';\nimport { i18n as locale } from '@/plugins/i18n';\nimport { useSSOStore } from '@/stores/sso.store';\nimport { VIEWS } from '@/constants';\n\nconst router = useRouter();\nconst ssoStore = useSSOStore();\n\nconst loading = ref(false);\nconst FORM_CONFIG: IFormBoxConfig = reactive({\n\ttitle: locale.baseText('auth.signup.setupYourAccount'),\n\tbuttonText: locale.baseText('auth.signup.finishAccountSetup'),\n\tinputs: [\n\t\t{\n\t\t\tname: 'firstName',\n\t\t\tinitialValue: ssoStore.userData?.firstName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.firstName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'given-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'lastName',\n\t\t\tinitialValue: ssoStore.userData?.lastName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.lastName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'family-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t],\n});\nconst onSubmit = async (values: { firstName: string; lastName: string }) => {\n\ttry {\n\t\tloading.value = true;\n\t\tawait ssoStore.updateUser(values);\n\t\tawait router.push({ name: VIEWS.HOMEPAGE });\n\t} catch (error) {\n\t\tloading.value = false;\n\t\tNotification.error({\n\t\t\ttitle: 'Error',\n\t\t\tmessage: error.message,\n\t\t\tposition: 'bottom-right',\n\t\t});\n\t}\n};\n</script>\n\n<template>\n\t<AuthView :form=\"FORM_CONFIG\" :formLoading=\"loading\" @submit=\"onSubmit\" />\n</template>\n"],"names":["router","useRouter","ssoStore","useSSOStore","loading","ref","FORM_CONFIG","reactive","locale","_a","_b","onSubmit","values","VIEWS","error","Notification"],"mappings":"2pCAUA,MAAMA,EAASC,IACTC,EAAWC,IAEXC,EAAUC,EAAI,EAAK,EACnBC,EAA8BC,EAAS,CAC5C,MAAOC,EAAO,SAAS,8BAA8B,EACrD,WAAYA,EAAO,SAAS,gCAAgC,EAC5D,OAAQ,CACP,CACC,KAAM,YACN,cAAcC,EAAAP,EAAS,WAAT,YAAAO,EAAmB,UACjC,WAAY,CACX,MAAOD,EAAO,SAAS,gBAAgB,EACvC,UAAW,GACX,SAAU,GACV,aAAc,aACd,WAAY,EACb,CACD,EACA,CACC,KAAM,WACN,cAAcE,EAAAR,EAAS,WAAT,YAAAQ,EAAmB,SACjC,WAAY,CACX,MAAOF,EAAO,SAAS,eAAe,EACtC,UAAW,GACX,SAAU,GACV,aAAc,cACd,WAAY,EACb,CACD,CACD,CAAA,CACA,EACKG,EAAW,MAAOC,GAAoD,CACvE,GAAA,CACHR,EAAQ,MAAQ,GACV,MAAAF,EAAS,WAAWU,CAAM,EAChC,MAAMZ,EAAO,KAAK,CAAE,KAAMa,EAAM,SAAU,QAClCC,EAAO,CACfV,EAAQ,MAAQ,GAChBW,EAAa,MAAM,CAClB,MAAO,QACP,QAASD,EAAM,QACf,SAAU,cAAA,CACV,CACF,CAAA"}
1
+ {"version":3,"file":"SamlOnboarding-7ZeWtOoT.js","sources":["../../src/views/SamlOnboarding.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { reactive, ref } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { ElNotification as Notification } from 'element-plus';\nimport type { IFormBoxConfig } from 'n8n-design-system';\nimport AuthView from '@/views/AuthView.vue';\nimport { i18n as locale } from '@/plugins/i18n';\nimport { useSSOStore } from '@/stores/sso.store';\nimport { VIEWS } from '@/constants';\n\nconst router = useRouter();\nconst ssoStore = useSSOStore();\n\nconst loading = ref(false);\nconst FORM_CONFIG: IFormBoxConfig = reactive({\n\ttitle: locale.baseText('auth.signup.setupYourAccount'),\n\tbuttonText: locale.baseText('auth.signup.finishAccountSetup'),\n\tinputs: [\n\t\t{\n\t\t\tname: 'firstName',\n\t\t\tinitialValue: ssoStore.userData?.firstName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.firstName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'given-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'lastName',\n\t\t\tinitialValue: ssoStore.userData?.lastName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.lastName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'family-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t],\n});\nconst onSubmit = async (values: { firstName: string; lastName: string }) => {\n\ttry {\n\t\tloading.value = true;\n\t\tawait ssoStore.updateUser(values);\n\t\tawait router.push({ name: VIEWS.HOMEPAGE });\n\t} catch (error) {\n\t\tloading.value = false;\n\t\tNotification.error({\n\t\t\ttitle: 'Error',\n\t\t\tmessage: error.message,\n\t\t\tposition: 'bottom-right',\n\t\t});\n\t}\n};\n</script>\n\n<template>\n\t<AuthView :form=\"FORM_CONFIG\" :formLoading=\"loading\" @submit=\"onSubmit\" />\n</template>\n"],"names":["router","useRouter","ssoStore","useSSOStore","loading","ref","FORM_CONFIG","reactive","locale","_a","_b","onSubmit","values","VIEWS","error","Notification"],"mappings":"2pCAUA,MAAMA,EAASC,IACTC,EAAWC,IAEXC,EAAUC,EAAI,EAAK,EACnBC,EAA8BC,EAAS,CAC5C,MAAOC,EAAO,SAAS,8BAA8B,EACrD,WAAYA,EAAO,SAAS,gCAAgC,EAC5D,OAAQ,CACP,CACC,KAAM,YACN,cAAcC,EAAAP,EAAS,WAAT,YAAAO,EAAmB,UACjC,WAAY,CACX,MAAOD,EAAO,SAAS,gBAAgB,EACvC,UAAW,GACX,SAAU,GACV,aAAc,aACd,WAAY,EACb,CACD,EACA,CACC,KAAM,WACN,cAAcE,EAAAR,EAAS,WAAT,YAAAQ,EAAmB,SACjC,WAAY,CACX,MAAOF,EAAO,SAAS,eAAe,EACtC,UAAW,GACX,SAAU,GACV,aAAc,cACd,WAAY,EACb,CACD,CACD,CAAA,CACA,EACKG,EAAW,MAAOC,GAAoD,CACvE,GAAA,CACHR,EAAQ,MAAQ,GACV,MAAAF,EAAS,WAAWU,CAAM,EAChC,MAAMZ,EAAO,KAAK,CAAE,KAAMa,EAAM,SAAU,QAClCC,EAAO,CACfV,EAAQ,MAAQ,GAChBW,EAAa,MAAM,CAClB,MAAO,QACP,QAASD,EAAM,QACf,SAAU,cAAA,CACV,CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{o as w,u as g,bi as k,l as C,p as S,t as A,v,ac as U,_ as P}from"./n8n-ZKR6bms9.js";import{O as I,a as K}from"./index-RXjMHIPR.js";import{m as x}from"./pinia-jX93eZRS.js";import{G as E,ag as t,l,m as h,p as s,T as i,O as a,I as n,S as r,R as o,M as m,Q as M,J as D}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const V=E({name:"SettingsApiView",components:{CopyInput:I},setup(){return{...w(),...K(),...g()}},data(){return{loading:!1,mounted:!1,apiKey:"",swaggerUIEnabled:!1,apiDocsURL:""}},mounted(){if(!this.isPublicApiEnabled)return;this.getApiKey();const e=this.rootStore.baseUrl,p=this.settingsStore.publicApiPath,c=this.settingsStore.publicApiLatestVersion;this.swaggerUIEnabled=this.settingsStore.isSwaggerUIEnabled,this.apiDocsURL=this.swaggerUIEnabled?`${e}${p}/v${c}/docs`:`https://${k}/api/api-reference/`},computed:{...x(v,A,S,C,g),currentUser(){return this.usersStore.currentUser},isTrialing(){return this.cloudPlanStore.userIsTrialing},isLoadingCloudPlans(){return this.cloudPlanStore.state.loadingPlan},isPublicApiEnabled(){return this.settingsStore.isPublicApiEnabled}},methods:{onUpgrade(){this.uiStore.goToUpgrade("settings-n8n-api","upgrade-api","redirect")},async showDeleteModal(){await this.confirm(this.$locale.baseText("settings.api.delete.description"),this.$locale.baseText("settings.api.delete.title"),{confirmButtonText:this.$locale.baseText("settings.api.delete.button"),cancelButtonText:this.$locale.baseText("generic.cancel")})===U&&await this.deleteApiKey()},async getApiKey(){try{this.apiKey=await this.settingsStore.getApiKey()||""}catch(e){this.showError(e,this.$locale.baseText("settings.api.view.error"))}finally{this.mounted=!0}},async createApiKey(){this.loading=!0;try{this.apiKey=await this.settingsStore.createApiKey()||""}catch(e){this.showError(e,this.$locale.baseText("settings.api.create.error"))}finally{this.loading=!1,this.$telemetry.track("User clicked create API key button")}},async deleteApiKey(){try{await this.settingsStore.deleteApiKey(),this.showMessage({title:this.$locale.baseText("settings.api.delete.toast"),type:"success"}),this.apiKey=""}catch(e){this.showError(e,this.$locale.baseText("settings.api.delete.error"))}finally{this.$telemetry.track("User clicked delete API key button")}},onCopy(){this.$telemetry.track("User clicked copy API key button")}}}),z="_container_1teme_5",L="_header_1teme_9",B="_card_1teme_18",N="_hint_1teme_29",O={container:z,header:L,card:B,delete:"_delete_1teme_22",hint:N},R={key:0},F={class:"mb-s"},G=["textContent"],J=["textContent"];function Q(e,p,c,j,q,H){const b=t("n8n-heading"),y=t("i18n-t"),$=t("n8n-info-tip"),d=t("n8n-link"),f=t("CopyInput"),T=t("n8n-card"),_=t("n8n-text"),u=t("n8n-action-box");return l(),h("div",{class:n(e.$style.container)},[s("div",{class:n(e.$style.header)},[i(b,{size:"2xlarge"},{default:a(()=>[r(o(e.$locale.baseText("settings.api"))+" ",1),s("span",{style:D({fontSize:"var(--font-size-s)",color:"var(--color-text-light)"})}," ("+o(e.$locale.baseText("beta"))+") ",5)]),_:1})],2),e.apiKey?(l(),h("div",R,[s("p",F,[i($,{bold:!1},{default:a(()=>[i(y,{keypath:"settings.api.view.info",tag:"span"},{apiAction:a(()=>[s("a",{href:"https://docs.n8n.io/api",target:"_blank",textContent:o(e.$locale.baseText("settings.api.view.info.api"))},null,8,G)]),webhookAction:a(()=>[s("a",{href:"https://docs.n8n.io/integrations/core-nodes/n8n-nodes-base.webhook/",target:"_blank",textContent:o(e.$locale.baseText("settings.api.view.info.webhook"))},null,8,J)]),_:1})]),_:1})]),i(T,{class:n(["mb-4xs",e.$style.card])},{default:a(()=>[s("span",{class:n(e.$style.delete)},[i(d,{onClick:e.showDeleteModal,bold:!0},{default:a(()=>[r(o(e.$locale.baseText("generic.delete")),1)]),_:1},8,["onClick"])],2),s("div",null,[i(f,{label:e.$locale.baseText("settings.api.view.myKey"),value:e.apiKey,"copy-button-text":e.$locale.baseText("generic.clickToCopy"),"toast-title":e.$locale.baseText("settings.api.view.copy.toast"),redactValue:!0,onCopy:e.onCopy},null,8,["label","value","copy-button-text","toast-title","onCopy"])])]),_:1},8,["class"]),s("div",{class:n(e.$style.hint)},[i(_,{size:"small"},{default:a(()=>[r(o(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"tryapi":"more-details"}`)),1)]),_:1}),r(" "+o(" ")+" "),i(d,{to:e.apiDocsURL,newWindow:!0,size:"small"},{default:a(()=>[r(o(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"apiPlayground":"external-docs"}`)),1)]),_:1},8,["to"])],2)])):!e.isPublicApiEnabled&&e.isTrialing?(l(),m(u,{key:1,"data-test-id":"public-api-upgrade-cta",heading:e.$locale.baseText("settings.api.trial.upgradePlan.title"),description:e.$locale.baseText("settings.api.trial.upgradePlan.description"),buttonText:e.$locale.baseText("settings.api.trial.upgradePlan.cta"),"onClick:button":e.onUpgrade},null,8,["heading","description","buttonText","onClick:button"])):e.mounted&&!e.isLoadingCloudPlans?(l(),m(u,{key:2,buttonText:e.$locale.baseText(e.loading?"settings.api.create.button.loading":"settings.api.create.button"),description:e.$locale.baseText("settings.api.create.description"),"onClick:button":e.createApiKey},null,8,["buttonText","description","onClick:button"])):M("",!0)],2)}const W={$style:O},Se=P(V,[["render",Q],["__cssModules",W]]);export{Se as default};
2
+ //# sourceMappingURL=SettingsApiView-d7znGVgB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsApiView-d7znGVgB.js","sources":["../../src/views/SettingsApiView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.header\">\n\t\t\t<n8n-heading size=\"2xlarge\">\n\t\t\t\t{{ $locale.baseText('settings.api') }}\n\t\t\t\t<span :style=\"{ fontSize: 'var(--font-size-s)', color: 'var(--color-text-light)' }\">\n\t\t\t\t\t({{ $locale.baseText('beta') }})\n\t\t\t\t</span>\n\t\t\t</n8n-heading>\n\t\t</div>\n\n\t\t<div v-if=\"apiKey\">\n\t\t\t<p class=\"mb-s\">\n\t\t\t\t<n8n-info-tip :bold=\"false\">\n\t\t\t\t\t<i18n-t keypath=\"settings.api.view.info\" tag=\"span\">\n\t\t\t\t\t\t<template #apiAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/api\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.api')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #webhookAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/integrations/core-nodes/n8n-nodes-base.webhook/\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.webhook')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</i18n-t>\n\t\t\t\t</n8n-info-tip>\n\t\t\t</p>\n\t\t\t<n8n-card class=\"mb-4xs\" :class=\"$style.card\">\n\t\t\t\t<span :class=\"$style.delete\">\n\t\t\t\t\t<n8n-link @click=\"showDeleteModal\" :bold=\"true\">\n\t\t\t\t\t\t{{ $locale.baseText('generic.delete') }}\n\t\t\t\t\t</n8n-link>\n\t\t\t\t</span>\n\t\t\t\t<div>\n\t\t\t\t\t<CopyInput\n\t\t\t\t\t\t:label=\"$locale.baseText('settings.api.view.myKey')\"\n\t\t\t\t\t\t:value=\"apiKey\"\n\t\t\t\t\t\t:copy-button-text=\"$locale.baseText('generic.clickToCopy')\"\n\t\t\t\t\t\t:toast-title=\"$locale.baseText('settings.api.view.copy.toast')\"\n\t\t\t\t\t\t:redactValue=\"true\"\n\t\t\t\t\t\t@copy=\"onCopy\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</n8n-card>\n\t\t\t<div :class=\"$style.hint\">\n\t\t\t\t<n8n-text size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(`settings.api.view.${swaggerUIEnabled ? 'tryapi' : 'more-details'}`)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-link :to=\"apiDocsURL\" :newWindow=\"true\" size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t`settings.api.view.${swaggerUIEnabled ? 'apiPlayground' : 'external-docs'}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-link>\n\t\t\t</div>\n\t\t</div>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"!isPublicApiEnabled && isTrialing\"\n\t\t\tdata-test-id=\"public-api-upgrade-cta\"\n\t\t\t:heading=\"$locale.baseText('settings.api.trial.upgradePlan.title')\"\n\t\t\t:description=\"$locale.baseText('settings.api.trial.upgradePlan.description')\"\n\t\t\t:buttonText=\"$locale.baseText('settings.api.trial.upgradePlan.cta')\"\n\t\t\t@click:button=\"onUpgrade\"\n\t\t/>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"mounted && !isLoadingCloudPlans\"\n\t\t\t:buttonText=\"\n\t\t\t\t$locale.baseText(\n\t\t\t\t\tloading ? 'settings.api.create.button.loading' : 'settings.api.create.button',\n\t\t\t\t)\n\t\t\t\"\n\t\t\t:description=\"$locale.baseText('settings.api.create.description')\"\n\t\t\t@click:button=\"createApiKey\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { IUser } from '@/Interface';\nimport { useToast } from '@/composables/useToast';\nimport { useMessage } from '@/composables/useMessage';\n\nimport CopyInput from '@/components/CopyInput.vue';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useCloudPlanStore } from '@/stores/cloudPlan.store';\nimport { DOCS_DOMAIN, MODAL_CONFIRM } from '@/constants';\n\nexport default defineComponent({\n\tname: 'SettingsApiView',\n\tcomponents: {\n\t\tCopyInput,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t\t...useUIStore(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tmounted: false,\n\t\t\tapiKey: '',\n\t\t\tswaggerUIEnabled: false,\n\t\t\tapiDocsURL: '',\n\t\t};\n\t},\n\tmounted() {\n\t\tif (!this.isPublicApiEnabled) return;\n\n\t\tvoid this.getApiKey();\n\t\tconst baseUrl = this.rootStore.baseUrl;\n\t\tconst apiPath = this.settingsStore.publicApiPath;\n\t\tconst latestVersion = this.settingsStore.publicApiLatestVersion;\n\t\tthis.swaggerUIEnabled = this.settingsStore.isSwaggerUIEnabled;\n\t\tthis.apiDocsURL = this.swaggerUIEnabled\n\t\t\t? `${baseUrl}${apiPath}/v${latestVersion}/docs`\n\t\t\t: `https://${DOCS_DOMAIN}/api/api-reference/`;\n\t},\n\tcomputed: {\n\t\t...mapStores(useRootStore, useSettingsStore, useUsersStore, useCloudPlanStore, useUIStore),\n\t\tcurrentUser(): IUser | null {\n\t\t\treturn this.usersStore.currentUser;\n\t\t},\n\t\tisTrialing(): boolean {\n\t\t\treturn this.cloudPlanStore.userIsTrialing;\n\t\t},\n\t\tisLoadingCloudPlans(): boolean {\n\t\t\treturn this.cloudPlanStore.state.loadingPlan;\n\t\t},\n\t\tisPublicApiEnabled(): boolean {\n\t\t\treturn this.settingsStore.isPublicApiEnabled;\n\t\t},\n\t},\n\tmethods: {\n\t\tonUpgrade() {\n\t\t\tvoid this.uiStore.goToUpgrade('settings-n8n-api', 'upgrade-api', 'redirect');\n\t\t},\n\t\tasync showDeleteModal() {\n\t\t\tconst confirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('settings.api.delete.description'),\n\t\t\t\tthis.$locale.baseText('settings.api.delete.title'),\n\t\t\t\t{\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText('settings.api.delete.button'),\n\t\t\t\t\tcancelButtonText: this.$locale.baseText('generic.cancel'),\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (confirmed === MODAL_CONFIRM) {\n\t\t\t\tawait this.deleteApiKey();\n\t\t\t}\n\t\t},\n\t\tasync getApiKey() {\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.getApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.view.error'));\n\t\t\t} finally {\n\t\t\t\tthis.mounted = true;\n\t\t\t}\n\t\t},\n\t\tasync createApiKey() {\n\t\t\tthis.loading = true;\n\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.createApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.create.error'));\n\t\t\t} finally {\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.$telemetry.track('User clicked create API key button');\n\t\t\t}\n\t\t},\n\t\tasync deleteApiKey() {\n\t\t\ttry {\n\t\t\t\tawait this.settingsStore.deleteApiKey();\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.$locale.baseText('settings.api.delete.toast'),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\t\t\t\tthis.apiKey = '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.delete.error'));\n\t\t\t} finally {\n\t\t\t\tthis.$telemetry.track('User clicked delete API key button');\n\t\t\t}\n\t\t},\n\t\tonCopy() {\n\t\t\tthis.$telemetry.track('User clicked copy API key button');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\t> * {\n\t\tmargin-bottom: var(--spacing-2xl);\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\twhite-space: nowrap;\n\n\t*:first-child {\n\t\tflex-grow: 1;\n\t}\n}\n\n.card {\n\tposition: relative;\n}\n\n.delete {\n\tposition: absolute;\n\tdisplay: inline-block;\n\ttop: var(--spacing-s);\n\tright: var(--spacing-s);\n}\n\n.hint {\n\tcolor: var(--color-text-light);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","CopyInput","useToast","useMessage","useUIStore","baseUrl","apiPath","latestVersion","DOCS_DOMAIN","mapStores","useRootStore","useSettingsStore","useUsersStore","useCloudPlanStore","MODAL_CONFIRM","error","_resolveComponent","_normalizeClass","_ctx","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode","_normalizeStyle","_openBlock","_hoisted_1","_hoisted_2","_createVNode","_component_n8n_info_tip","_component_i18n_t","_hoisted_3","_component_n8n_link","_component_CopyInput","_component_n8n_text","_component_n8n_action_box","_createBlock"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{aJ as N,u as v,eg as L,_ as A,o as D,t as w,aM as f,fw as O,fx as x,aK as V,ab as j}from"./n8n-ZKR6bms9.js";import{m as I}from"./pinia-jX93eZRS.js";import{G as P,ag as l,l as t,m as s,I as o,T as a,p as c,O as i,M as _,S as k,R as r,F as b,a7 as T,Q as M}from"./vendor-2CfOYFi2.js";import{p as $}from"./pushConnection-UpdxMjHa.js";import{aP as z}from"./index--RuZ5wHr.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./collaboration.store-ba_Vl3Ko.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const R=P({name:"CommunityPackageCard",props:{communityPackage:{type:Object},loading:{type:Boolean,default:!1}},data(){return{packageActions:[{label:this.$locale.baseText("settings.communityNodes.viewDocsAction.label"),value:N.VIEW_DOCS,type:"external-link"},{label:this.$locale.baseText("settings.communityNodes.uninstallAction.label"),value:N.UNINSTALL}]}},computed:{...I(v)},methods:{async onAction(e){switch(e){case N.VIEW_DOCS:this.$telemetry.track("user clicked to browse the cnr package documentation",{package_name:this.communityPackage.packageName,package_version:this.communityPackage.installedVersion}),window.open(`${L}${this.communityPackage.packageName}`,"_blank");break;case N.UNINSTALL:this.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);break}},onUpdateClick(){this.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName)}}}),G="_cardContainer_14eyd_5",H="_packageCard_14eyd_13",K="_cardSkeleton_14eyd_14",Y="_loader_14eyd_28",Q="_cardInfoContainer_14eyd_39",F="_cardTitle_14eyd_44",W="_cardSubtitle_14eyd_51",q="_cardControlsContainer_14eyd_56",J="_cardActions_14eyd_62",X={cardContainer:G,packageCard:H,cardSkeleton:K,loader:Y,cardInfoContainer:Q,cardTitle:F,cardSubtitle:W,cardControlsContainer:q,cardActions:J},Z={key:0};function ee(e,m,n,d,h,U){const C=l("n8n-loading"),u=l("n8n-text"),y=l("n8n-icon"),p=l("n8n-tooltip"),g=l("n8n-button"),E=l("n8n-action-toggle");return t(),s("div",{class:o(e.$style.cardContainer)},[e.loading?(t(),s("div",{key:0,class:o(e.$style.cardSkeleton)},[a(C,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"]),a(C,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"])],2)):(t(),s("div",{key:1,class:o(e.$style.packageCard)},[c("div",{class:o(e.$style.cardInfoContainer)},[c("div",{class:o(e.$style.cardTitle)},[a(u,{bold:!0,size:"large"},{default:i(()=>[k(r(e.communityPackage.packageName),1)]),_:1})],2),c("div",{class:o(e.$style.cardSubtitle)},[a(u,{bold:!0,size:"small",color:"text-light"},{default:i(()=>[k(r(e.$locale.baseText("settings.communityNodes.packageNodes.label",{adjustToNumber:e.communityPackage.installedNodes.length}))+":  ",1)]),_:1}),a(u,{size:"small",color:"text-light"},{default:i(()=>[(t(!0),s(b,null,T(e.communityPackage.installedNodes,(S,B)=>(t(),s("span",{key:S.name},[k(r(S.name),1),B!=e.communityPackage.installedNodes.length-1?(t(),s("span",Z,",")):M("",!0)]))),128))]),_:1})],2)],2),c("div",{class:o(e.$style.cardControlsContainer)},[a(u,{bold:!0,size:"large",color:"text-light"},{default:i(()=>[k(" v"+r(e.communityPackage.installedVersion),1)]),_:1}),e.communityPackage.failedLoading===!0?(t(),_(p,{key:0,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.failedToLoad.tooltip")),1)]),default:i(()=>[a(y,{icon:"exclamation-triangle",color:"danger",size:"large"})]),_:1})):e.communityPackage.updateAvailable?(t(),_(p,{key:1,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.updateAvailable.tooltip")),1)]),default:i(()=>[a(g,{type:"outline",label:"Update",onClick:e.onUpdateClick},null,8,["onClick"])]),_:1})):(t(),_(p,{key:2,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.upToDate.tooltip")),1)]),default:i(()=>[a(y,{icon:"check-circle",color:"text-light",size:"large"})]),_:1})),c("div",{class:o(e.$style.cardActions)},[a(E,{actions:e.packageActions,onAction:e.onAction},null,8,["actions","onAction"])],2)],2)],2))],2)}const te={$style:X},oe=A(R,[["render",ee],["__cssModules",te]]),ae=31,ne=P({name:"SettingsCommunityNodesView",mixins:[$],components:{CommunityPackageCard:oe},setup(e,m){var d,h;return{externalHooks:j(),...D(),...(h=(d=$).setup)==null?void 0:h.call(d,e,m)}},data(){return{loading:!1}},async mounted(){this.pushStore.pushConnect();try{this.loading=!0,await this.communityNodesStore.fetchInstalledPackages();const e=this.communityNodesStore.getInstalledPackages,m=e.filter(n=>n.updateAvailable);this.$telemetry.track("user viewed cnr settings page",{num_of_packages_installed:e.length,installed_packages:e.map(n=>({package_name:n.packageName,package_version:n.installedVersion,package_nodes:n.installedNodes.map(d=>`${d.name}-v${d.latestVersion}`),is_update_available:n.updateAvailable!==void 0})),packages_to_update:m.map(n=>({package_name:n.packageName,package_version_current:n.installedVersion,package_version_available:n.updateAvailable})),number_of_updates_available:m.length})}catch(e){this.showError(e,this.$locale.baseText("settings.communityNodes.fetchError.title"),this.$locale.baseText("settings.communityNodes.fetchError.message"))}finally{this.loading=!1}try{await this.communityNodesStore.fetchAvailableCommunityPackageCount()}finally{this.loading=!1}},beforeUnmount(){this.pushStore.pushDisconnect()},computed:{...I(z,w,v),getEmptyStateDescription(){const e=this.communityNodesStore.availablePackageCount;return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.description.desktop"):e<ae?this.$locale.baseText("settings.communityNodes.empty.description.no-packages",{interpolate:{docURL:f}}):this.$locale.baseText("settings.communityNodes.empty.description",{interpolate:{docURL:f,count:(Math.floor(e/10)*10).toString()}})},getEmptyStateButtonText(){return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.button.desktop"):this.shouldShowInstallButton?this.$locale.baseText("settings.communityNodes.empty.installPackageLabel"):""},shouldShowInstallButton(){return this.settingsStore.isDesktopDeployment||this.settingsStore.isNpmAvailable},actionBoxConfig(){return this.settingsStore.isNpmAvailable?this.settingsStore.isQueueModeEnabled?{calloutText:this.$locale.baseText("settings.communityNodes.queueMode.warning",{interpolate:{docURL:x}}),calloutTheme:"warning",hideButton:!0}:{calloutText:"",calloutTheme:"",hideButton:!1}:{calloutText:this.$locale.baseText("settings.communityNodes.npmUnavailable.warning",{interpolate:{npmUrl:O}}),calloutTheme:"warning",hideButton:!0}}},methods:{onClickEmptyStateButton(){if(this.settingsStore.isDesktopDeployment)return this.goToUpgrade();this.openInstallModal()},goToUpgrade(){this.uiStore.goToUpgrade("community-nodes","upgrade-community-nodes")},openInstallModal(){const e={is_empty_state:this.communityNodesStore.getInstalledPackages.length===0};this.$telemetry.track("user clicked cnr install button",e),this.externalHooks.run("settingsCommunityNodesView.openInstallModal",e),this.uiStore.openModal(V)}}}),se="_container_12ljj_5",ie="_headingContainer_12ljj_13",le="_loadingContainer_12ljj_18",ce="_actionBoxContainer_12ljj_23",re="_cardsContainer_12ljj_27",de={container:se,headingContainer:ie,loadingContainer:le,actionBoxContainer:ce,cardsContainer:re};function me(e,m,n,d,h,U){const C=l("n8n-heading"),u=l("n8n-button"),y=l("n8n-action-box"),p=l("community-package-card");return t(),s("div",{class:o(e.$style.container)},[c("div",{class:o(e.$style.headingContainer)},[a(C,{size:"2xlarge"},{default:i(()=>[k(r(e.$locale.baseText("settings.communityNodes")),1)]),_:1}),!e.settingsStore.isQueueModeEnabled&&e.communityNodesStore.getInstalledPackages.length>0&&!e.loading?(t(),_(u,{key:0,label:e.$locale.baseText("settings.communityNodes.installModal.installButton.label"),size:"large",onClick:e.openInstallModal},null,8,["label","onClick"])):M("",!0)],2),e.settingsStore.isQueueModeEnabled?(t(),s("div",{key:0,class:o(e.$style.actionBoxContainer)},[a(y,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,calloutText:e.actionBoxConfig.calloutText,calloutTheme:e.actionBoxConfig.calloutTheme},null,8,["heading","description","calloutText","calloutTheme"])],2)):e.loading?(t(),s("div",{key:1,class:o(e.$style.cardsContainer)},[(t(),s(b,null,T(2,g=>a(p,{key:"index-"+g,loading:!0})),64))],2)):e.communityNodesStore.getInstalledPackages.length===0?(t(),s("div",{key:2,class:o(e.$style.actionBoxContainer)},[a(y,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,buttonText:e.getEmptyStateButtonText,calloutText:e.actionBoxConfig.calloutText,calloutTheme:e.actionBoxConfig.calloutTheme,"onClick:button":e.onClickEmptyStateButton},null,8,["heading","description","buttonText","calloutText","calloutTheme","onClick:button"])],2)):(t(),s("div",{key:3,class:o(e.$style.cardsContainer)},[(t(!0),s(b,null,T(e.communityNodesStore.getInstalledPackages,g=>(t(),_(p,{key:g.packageName,communityPackage:g},null,8,["communityPackage"]))),128))],2))],2)}const ue={$style:de},Ge=A(ne,[["render",me],["__cssModules",ue]]);export{Ge as default};
2
- //# sourceMappingURL=SettingsCommunityNodesView-xqn73tJO.js.map
1
+ import{aJ as N,u as v,eg as L,_ as A,o as D,t as w,aM as f,fw as O,fx as x,aK as V,ab as j}from"./n8n-ZKR6bms9.js";import{m as I}from"./pinia-jX93eZRS.js";import{G as P,ag as l,l as t,m as s,I as o,T as a,p as c,O as i,M as _,S as k,R as r,F as b,a7 as T,Q as M}from"./vendor-2CfOYFi2.js";import{p as $}from"./pushConnection-HdjAqr4R.js";import{aP as z}from"./index-RXjMHIPR.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./collaboration.store-ba_Vl3Ko.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const R=P({name:"CommunityPackageCard",props:{communityPackage:{type:Object},loading:{type:Boolean,default:!1}},data(){return{packageActions:[{label:this.$locale.baseText("settings.communityNodes.viewDocsAction.label"),value:N.VIEW_DOCS,type:"external-link"},{label:this.$locale.baseText("settings.communityNodes.uninstallAction.label"),value:N.UNINSTALL}]}},computed:{...I(v)},methods:{async onAction(e){switch(e){case N.VIEW_DOCS:this.$telemetry.track("user clicked to browse the cnr package documentation",{package_name:this.communityPackage.packageName,package_version:this.communityPackage.installedVersion}),window.open(`${L}${this.communityPackage.packageName}`,"_blank");break;case N.UNINSTALL:this.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);break}},onUpdateClick(){this.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName)}}}),G="_cardContainer_14eyd_5",H="_packageCard_14eyd_13",K="_cardSkeleton_14eyd_14",Y="_loader_14eyd_28",Q="_cardInfoContainer_14eyd_39",F="_cardTitle_14eyd_44",W="_cardSubtitle_14eyd_51",q="_cardControlsContainer_14eyd_56",J="_cardActions_14eyd_62",X={cardContainer:G,packageCard:H,cardSkeleton:K,loader:Y,cardInfoContainer:Q,cardTitle:F,cardSubtitle:W,cardControlsContainer:q,cardActions:J},Z={key:0};function ee(e,m,n,d,h,U){const C=l("n8n-loading"),u=l("n8n-text"),y=l("n8n-icon"),p=l("n8n-tooltip"),g=l("n8n-button"),E=l("n8n-action-toggle");return t(),s("div",{class:o(e.$style.cardContainer)},[e.loading?(t(),s("div",{key:0,class:o(e.$style.cardSkeleton)},[a(C,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"]),a(C,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"])],2)):(t(),s("div",{key:1,class:o(e.$style.packageCard)},[c("div",{class:o(e.$style.cardInfoContainer)},[c("div",{class:o(e.$style.cardTitle)},[a(u,{bold:!0,size:"large"},{default:i(()=>[k(r(e.communityPackage.packageName),1)]),_:1})],2),c("div",{class:o(e.$style.cardSubtitle)},[a(u,{bold:!0,size:"small",color:"text-light"},{default:i(()=>[k(r(e.$locale.baseText("settings.communityNodes.packageNodes.label",{adjustToNumber:e.communityPackage.installedNodes.length}))+":  ",1)]),_:1}),a(u,{size:"small",color:"text-light"},{default:i(()=>[(t(!0),s(b,null,T(e.communityPackage.installedNodes,(S,B)=>(t(),s("span",{key:S.name},[k(r(S.name),1),B!=e.communityPackage.installedNodes.length-1?(t(),s("span",Z,",")):M("",!0)]))),128))]),_:1})],2)],2),c("div",{class:o(e.$style.cardControlsContainer)},[a(u,{bold:!0,size:"large",color:"text-light"},{default:i(()=>[k(" v"+r(e.communityPackage.installedVersion),1)]),_:1}),e.communityPackage.failedLoading===!0?(t(),_(p,{key:0,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.failedToLoad.tooltip")),1)]),default:i(()=>[a(y,{icon:"exclamation-triangle",color:"danger",size:"large"})]),_:1})):e.communityPackage.updateAvailable?(t(),_(p,{key:1,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.updateAvailable.tooltip")),1)]),default:i(()=>[a(g,{type:"outline",label:"Update",onClick:e.onUpdateClick},null,8,["onClick"])]),_:1})):(t(),_(p,{key:2,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.upToDate.tooltip")),1)]),default:i(()=>[a(y,{icon:"check-circle",color:"text-light",size:"large"})]),_:1})),c("div",{class:o(e.$style.cardActions)},[a(E,{actions:e.packageActions,onAction:e.onAction},null,8,["actions","onAction"])],2)],2)],2))],2)}const te={$style:X},oe=A(R,[["render",ee],["__cssModules",te]]),ae=31,ne=P({name:"SettingsCommunityNodesView",mixins:[$],components:{CommunityPackageCard:oe},setup(e,m){var d,h;return{externalHooks:j(),...D(),...(h=(d=$).setup)==null?void 0:h.call(d,e,m)}},data(){return{loading:!1}},async mounted(){this.pushStore.pushConnect();try{this.loading=!0,await this.communityNodesStore.fetchInstalledPackages();const e=this.communityNodesStore.getInstalledPackages,m=e.filter(n=>n.updateAvailable);this.$telemetry.track("user viewed cnr settings page",{num_of_packages_installed:e.length,installed_packages:e.map(n=>({package_name:n.packageName,package_version:n.installedVersion,package_nodes:n.installedNodes.map(d=>`${d.name}-v${d.latestVersion}`),is_update_available:n.updateAvailable!==void 0})),packages_to_update:m.map(n=>({package_name:n.packageName,package_version_current:n.installedVersion,package_version_available:n.updateAvailable})),number_of_updates_available:m.length})}catch(e){this.showError(e,this.$locale.baseText("settings.communityNodes.fetchError.title"),this.$locale.baseText("settings.communityNodes.fetchError.message"))}finally{this.loading=!1}try{await this.communityNodesStore.fetchAvailableCommunityPackageCount()}finally{this.loading=!1}},beforeUnmount(){this.pushStore.pushDisconnect()},computed:{...I(z,w,v),getEmptyStateDescription(){const e=this.communityNodesStore.availablePackageCount;return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.description.desktop"):e<ae?this.$locale.baseText("settings.communityNodes.empty.description.no-packages",{interpolate:{docURL:f}}):this.$locale.baseText("settings.communityNodes.empty.description",{interpolate:{docURL:f,count:(Math.floor(e/10)*10).toString()}})},getEmptyStateButtonText(){return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.button.desktop"):this.shouldShowInstallButton?this.$locale.baseText("settings.communityNodes.empty.installPackageLabel"):""},shouldShowInstallButton(){return this.settingsStore.isDesktopDeployment||this.settingsStore.isNpmAvailable},actionBoxConfig(){return this.settingsStore.isNpmAvailable?this.settingsStore.isQueueModeEnabled?{calloutText:this.$locale.baseText("settings.communityNodes.queueMode.warning",{interpolate:{docURL:x}}),calloutTheme:"warning",hideButton:!0}:{calloutText:"",calloutTheme:"",hideButton:!1}:{calloutText:this.$locale.baseText("settings.communityNodes.npmUnavailable.warning",{interpolate:{npmUrl:O}}),calloutTheme:"warning",hideButton:!0}}},methods:{onClickEmptyStateButton(){if(this.settingsStore.isDesktopDeployment)return this.goToUpgrade();this.openInstallModal()},goToUpgrade(){this.uiStore.goToUpgrade("community-nodes","upgrade-community-nodes")},openInstallModal(){const e={is_empty_state:this.communityNodesStore.getInstalledPackages.length===0};this.$telemetry.track("user clicked cnr install button",e),this.externalHooks.run("settingsCommunityNodesView.openInstallModal",e),this.uiStore.openModal(V)}}}),se="_container_12ljj_5",ie="_headingContainer_12ljj_13",le="_loadingContainer_12ljj_18",ce="_actionBoxContainer_12ljj_23",re="_cardsContainer_12ljj_27",de={container:se,headingContainer:ie,loadingContainer:le,actionBoxContainer:ce,cardsContainer:re};function me(e,m,n,d,h,U){const C=l("n8n-heading"),u=l("n8n-button"),y=l("n8n-action-box"),p=l("community-package-card");return t(),s("div",{class:o(e.$style.container)},[c("div",{class:o(e.$style.headingContainer)},[a(C,{size:"2xlarge"},{default:i(()=>[k(r(e.$locale.baseText("settings.communityNodes")),1)]),_:1}),!e.settingsStore.isQueueModeEnabled&&e.communityNodesStore.getInstalledPackages.length>0&&!e.loading?(t(),_(u,{key:0,label:e.$locale.baseText("settings.communityNodes.installModal.installButton.label"),size:"large",onClick:e.openInstallModal},null,8,["label","onClick"])):M("",!0)],2),e.settingsStore.isQueueModeEnabled?(t(),s("div",{key:0,class:o(e.$style.actionBoxContainer)},[a(y,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,calloutText:e.actionBoxConfig.calloutText,calloutTheme:e.actionBoxConfig.calloutTheme},null,8,["heading","description","calloutText","calloutTheme"])],2)):e.loading?(t(),s("div",{key:1,class:o(e.$style.cardsContainer)},[(t(),s(b,null,T(2,g=>a(p,{key:"index-"+g,loading:!0})),64))],2)):e.communityNodesStore.getInstalledPackages.length===0?(t(),s("div",{key:2,class:o(e.$style.actionBoxContainer)},[a(y,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,buttonText:e.getEmptyStateButtonText,calloutText:e.actionBoxConfig.calloutText,calloutTheme:e.actionBoxConfig.calloutTheme,"onClick:button":e.onClickEmptyStateButton},null,8,["heading","description","buttonText","calloutText","calloutTheme","onClick:button"])],2)):(t(),s("div",{key:3,class:o(e.$style.cardsContainer)},[(t(!0),s(b,null,T(e.communityNodesStore.getInstalledPackages,g=>(t(),_(p,{key:g.packageName,communityPackage:g},null,8,["communityPackage"]))),128))],2))],2)}const ue={$style:de},Ge=A(ne,[["render",me],["__cssModules",ue]]);export{Ge as default};
2
+ //# sourceMappingURL=SettingsCommunityNodesView-U2OqH5_g.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsCommunityNodesView-xqn73tJO.js","sources":["../../src/components/CommunityPackageCard.vue","../../src/views/SettingsCommunityNodesView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.cardContainer\">\n\t\t<div v-if=\"loading\" :class=\"$style.cardSkeleton\">\n\t\t\t<n8n-loading :class=\"$style.loader\" variant=\"p\" :rows=\"1\" />\n\t\t\t<n8n-loading :class=\"$style.loader\" variant=\"p\" :rows=\"1\" />\n\t\t</div>\n\t\t<div v-else :class=\"$style.packageCard\">\n\t\t\t<div :class=\"$style.cardInfoContainer\">\n\t\t\t\t<div :class=\"$style.cardTitle\">\n\t\t\t\t\t<n8n-text :bold=\"true\" size=\"large\">{{ communityPackage.packageName }}</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.cardSubtitle\">\n\t\t\t\t\t<n8n-text :bold=\"true\" size=\"small\" color=\"text-light\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText('settings.communityNodes.packageNodes.label', {\n\t\t\t\t\t\t\t\tadjustToNumber: communityPackage.installedNodes.length,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}:&nbsp;\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-text size=\"small\" color=\"text-light\">\n\t\t\t\t\t\t<span v-for=\"(node, index) in communityPackage.installedNodes\" :key=\"node.name\">\n\t\t\t\t\t\t\t{{ node.name\n\t\t\t\t\t\t\t}}<span v-if=\"index != communityPackage.installedNodes.length - 1\">,</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.cardControlsContainer\">\n\t\t\t\t<n8n-text :bold=\"true\" size=\"large\" color=\"text-light\">\n\t\t\t\t\tv{{ communityPackage.installedVersion }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-tooltip v-if=\"communityPackage.failedLoading === true\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.failedToLoad.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-icon icon=\"exclamation-triangle\" color=\"danger\" size=\"large\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<n8n-tooltip v-else-if=\"communityPackage.updateAvailable\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.updateAvailable.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-button type=\"outline\" label=\"Update\" @click=\"onUpdateClick\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<n8n-tooltip v-else placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.upToDate.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-icon icon=\"check-circle\" color=\"text-light\" size=\"large\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<div :class=\"$style.cardActions\">\n\t\t\t\t\t<n8n-action-toggle :actions=\"packageActions\" @action=\"onAction\"></n8n-action-toggle>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { useUIStore } from '@/stores/ui.store';\nimport type { PublicInstalledPackage } from 'n8n-workflow';\nimport { mapStores } from 'pinia';\nimport { defineComponent } from 'vue';\nimport { NPM_PACKAGE_DOCS_BASE_URL, COMMUNITY_PACKAGE_MANAGE_ACTIONS } from '@/constants';\n\nexport default defineComponent({\n\tname: 'CommunityPackageCard',\n\tprops: {\n\t\tcommunityPackage: {\n\t\t\ttype: Object as () => PublicInstalledPackage,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpackageActions: [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('settings.communityNodes.viewDocsAction.label'),\n\t\t\t\t\tvalue: COMMUNITY_PACKAGE_MANAGE_ACTIONS.VIEW_DOCS,\n\t\t\t\t\ttype: 'external-link',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('settings.communityNodes.uninstallAction.label'),\n\t\t\t\t\tvalue: COMMUNITY_PACKAGE_MANAGE_ACTIONS.UNINSTALL,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t},\n\tmethods: {\n\t\tasync onAction(value: string) {\n\t\t\tswitch (value) {\n\t\t\t\tcase COMMUNITY_PACKAGE_MANAGE_ACTIONS.VIEW_DOCS:\n\t\t\t\t\tthis.$telemetry.track('user clicked to browse the cnr package documentation', {\n\t\t\t\t\t\tpackage_name: this.communityPackage.packageName,\n\t\t\t\t\t\tpackage_version: this.communityPackage.installedVersion,\n\t\t\t\t\t});\n\t\t\t\t\twindow.open(`${NPM_PACKAGE_DOCS_BASE_URL}${this.communityPackage.packageName}`, '_blank');\n\t\t\t\t\tbreak;\n\t\t\t\tcase COMMUNITY_PACKAGE_MANAGE_ACTIONS.UNINSTALL:\n\t\t\t\t\tthis.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tonUpdateClick() {\n\t\t\tthis.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.cardContainer {\n\tdisplay: flex;\n\tpadding: var(--spacing-s);\n\tborder: var(--border-width-base) var(--border-style-base) var(--color-info-tint-1);\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-background-xlight);\n}\n\n.packageCard,\n.cardSkeleton {\n\tdisplay: flex;\n\tflex-basis: 100%;\n\tjustify-content: space-between;\n}\n\n.packageCard {\n\talign-items: center;\n}\n\n.cardSkeleton {\n\tflex-direction: column;\n}\n\n.loader {\n\twidth: 50%;\n\ttransform: scaleY(-1);\n\n\t&:last-child {\n\t\twidth: 70%;\n\n\t\tdiv {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n.cardInfoContainer {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.cardTitle {\n\tflex-basis: 100%;\n\n\tspan {\n\t\tline-height: 1;\n\t}\n}\n\n.cardSubtitle {\n\tmargin-top: 2px;\n\tpadding-right: var(--spacing-m);\n}\n\n.cardControlsContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-3xs);\n}\n\n.cardActions {\n\tpadding-left: var(--spacing-3xs);\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.headingContainer\">\n\t\t\t<n8n-heading size=\"2xlarge\">{{ $locale.baseText('settings.communityNodes') }}</n8n-heading>\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"\n\t\t\t\t\t!settingsStore.isQueueModeEnabled &&\n\t\t\t\t\tcommunityNodesStore.getInstalledPackages.length > 0 &&\n\t\t\t\t\t!loading\n\t\t\t\t\"\n\t\t\t\t:label=\"$locale.baseText('settings.communityNodes.installModal.installButton.label')\"\n\t\t\t\tsize=\"large\"\n\t\t\t\t@click=\"openInstallModal\"\n\t\t\t/>\n\t\t</div>\n\t\t<div v-if=\"settingsStore.isQueueModeEnabled\" :class=\"$style.actionBoxContainer\">\n\t\t\t<n8n-action-box\n\t\t\t\t:heading=\"$locale.baseText('settings.communityNodes.empty.title')\"\n\t\t\t\t:description=\"getEmptyStateDescription\"\n\t\t\t\t:calloutText=\"actionBoxConfig.calloutText\"\n\t\t\t\t:calloutTheme=\"actionBoxConfig.calloutTheme\"\n\t\t\t/>\n\t\t</div>\n\t\t<div :class=\"$style.cardsContainer\" v-else-if=\"loading\">\n\t\t\t<community-package-card\n\t\t\t\tv-for=\"n in 2\"\n\t\t\t\t:key=\"'index-' + n\"\n\t\t\t\t:loading=\"true\"\n\t\t\t></community-package-card>\n\t\t</div>\n\t\t<div\n\t\t\tv-else-if=\"communityNodesStore.getInstalledPackages.length === 0\"\n\t\t\t:class=\"$style.actionBoxContainer\"\n\t\t>\n\t\t\t<n8n-action-box\n\t\t\t\t:heading=\"$locale.baseText('settings.communityNodes.empty.title')\"\n\t\t\t\t:description=\"getEmptyStateDescription\"\n\t\t\t\t:buttonText=\"getEmptyStateButtonText\"\n\t\t\t\t:calloutText=\"actionBoxConfig.calloutText\"\n\t\t\t\t:calloutTheme=\"actionBoxConfig.calloutTheme\"\n\t\t\t\t@click:button=\"onClickEmptyStateButton\"\n\t\t\t/>\n\t\t</div>\n\t\t<div :class=\"$style.cardsContainer\" v-else>\n\t\t\t<community-package-card\n\t\t\t\tv-for=\"communityPackage in communityNodesStore.getInstalledPackages\"\n\t\t\t\t:key=\"communityPackage.packageName\"\n\t\t\t\t:communityPackage=\"communityPackage\"\n\t\t\t></community-package-card>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport {\n\tCOMMUNITY_PACKAGE_INSTALL_MODAL_KEY,\n\tCOMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\tCOMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL,\n\tCOMMUNITY_NODES_NPM_INSTALLATION_URL,\n} from '@/constants';\nimport CommunityPackageCard from '@/components/CommunityPackageCard.vue';\nimport { useToast } from '@/composables/useToast';\nimport { pushConnection } from '@/mixins/pushConnection';\nimport type { PublicInstalledPackage } from 'n8n-workflow';\n\nimport { useCommunityNodesStore } from '@/stores/communityNodes.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { defineComponent } from 'vue';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\n\nconst PACKAGE_COUNT_THRESHOLD = 31;\n\nexport default defineComponent({\n\tname: 'SettingsCommunityNodesView',\n\tmixins: [pushConnection],\n\tcomponents: {\n\t\tCommunityPackageCard,\n\t},\n\tsetup(props, ctx) {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t\t...useToast(),\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\t\t\t...pushConnection.setup?.(props, ctx),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t};\n\t},\n\tasync mounted() {\n\t\t// The push connection is needed here to receive `reloadNodeType` and `removeNodeType` events when community nodes are installed, updated, or removed.\n\t\tthis.pushStore.pushConnect();\n\n\t\ttry {\n\t\t\tthis.loading = true;\n\t\t\tawait this.communityNodesStore.fetchInstalledPackages();\n\n\t\t\tconst installedPackages: PublicInstalledPackage[] =\n\t\t\t\tthis.communityNodesStore.getInstalledPackages;\n\t\t\tconst packagesToUpdate: PublicInstalledPackage[] = installedPackages.filter(\n\t\t\t\t(p) => p.updateAvailable,\n\t\t\t);\n\t\t\tthis.$telemetry.track('user viewed cnr settings page', {\n\t\t\t\tnum_of_packages_installed: installedPackages.length,\n\t\t\t\tinstalled_packages: installedPackages.map((p) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackage_name: p.packageName,\n\t\t\t\t\t\tpackage_version: p.installedVersion,\n\t\t\t\t\t\tpackage_nodes: p.installedNodes.map((node) => `${node.name}-v${node.latestVersion}`),\n\t\t\t\t\t\tis_update_available: p.updateAvailable !== undefined,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\tpackages_to_update: packagesToUpdate.map((p) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackage_name: p.packageName,\n\t\t\t\t\t\tpackage_version_current: p.installedVersion,\n\t\t\t\t\t\tpackage_version_available: p.updateAvailable,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\tnumber_of_updates_available: packagesToUpdate.length,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.showError(\n\t\t\t\terror,\n\t\t\t\tthis.$locale.baseText('settings.communityNodes.fetchError.title'),\n\t\t\t\tthis.$locale.baseText('settings.communityNodes.fetchError.message'),\n\t\t\t);\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t\ttry {\n\t\t\tawait this.communityNodesStore.fetchAvailableCommunityPackageCount();\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t},\n\tbeforeUnmount() {\n\t\tthis.pushStore.pushDisconnect();\n\t},\n\tcomputed: {\n\t\t...mapStores(useCommunityNodesStore, useSettingsStore, useUIStore),\n\t\tgetEmptyStateDescription(): string {\n\t\t\tconst packageCount = this.communityNodesStore.availablePackageCount;\n\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.$locale.baseText('contextual.communityNodes.unavailable.description.desktop');\n\t\t\t}\n\n\t\t\treturn packageCount < PACKAGE_COUNT_THRESHOLD\n\t\t\t\t? this.$locale.baseText('settings.communityNodes.empty.description.no-packages', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tdocURL: COMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\t\t\t\t\t\t},\n\t\t\t\t })\n\t\t\t\t: this.$locale.baseText('settings.communityNodes.empty.description', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tdocURL: COMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\t\t\t\t\t\t\tcount: (Math.floor(packageCount / 10) * 10).toString(),\n\t\t\t\t\t\t},\n\t\t\t\t });\n\t\t},\n\t\tgetEmptyStateButtonText(): string {\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.$locale.baseText('contextual.communityNodes.unavailable.button.desktop');\n\t\t\t}\n\n\t\t\treturn this.shouldShowInstallButton\n\t\t\t\t? this.$locale.baseText('settings.communityNodes.empty.installPackageLabel')\n\t\t\t\t: '';\n\t\t},\n\t\tshouldShowInstallButton(): boolean {\n\t\t\treturn this.settingsStore.isDesktopDeployment || this.settingsStore.isNpmAvailable;\n\t\t},\n\t\tactionBoxConfig(): {\n\t\t\tcalloutText: string;\n\t\t\tcalloutTheme: 'warning' | string;\n\t\t\thideButton: boolean;\n\t\t} {\n\t\t\tif (!this.settingsStore.isNpmAvailable) {\n\t\t\t\treturn {\n\t\t\t\t\tcalloutText: this.$locale.baseText('settings.communityNodes.npmUnavailable.warning', {\n\t\t\t\t\t\tinterpolate: { npmUrl: COMMUNITY_NODES_NPM_INSTALLATION_URL },\n\t\t\t\t\t}),\n\t\t\t\t\tcalloutTheme: 'warning',\n\t\t\t\t\thideButton: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.settingsStore.isQueueModeEnabled) {\n\t\t\t\treturn {\n\t\t\t\t\tcalloutText: this.$locale.baseText('settings.communityNodes.queueMode.warning', {\n\t\t\t\t\t\tinterpolate: { docURL: COMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL },\n\t\t\t\t\t}),\n\t\t\t\t\tcalloutTheme: 'warning',\n\t\t\t\t\thideButton: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcalloutText: '',\n\t\t\t\tcalloutTheme: '',\n\t\t\t\thideButton: false,\n\t\t\t};\n\t\t},\n\t},\n\tmethods: {\n\t\tonClickEmptyStateButton(): void {\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.goToUpgrade();\n\t\t\t}\n\n\t\t\tthis.openInstallModal();\n\t\t},\n\t\tgoToUpgrade(): void {\n\t\t\tvoid this.uiStore.goToUpgrade('community-nodes', 'upgrade-community-nodes');\n\t\t},\n\t\topenInstallModal(): void {\n\t\t\tconst telemetryPayload = {\n\t\t\t\tis_empty_state: this.communityNodesStore.getInstalledPackages.length === 0,\n\t\t\t};\n\t\t\tthis.$telemetry.track('user clicked cnr install button', telemetryPayload);\n\n\t\t\tvoid this.externalHooks.run('settingsCommunityNodesView.openInstallModal', telemetryPayload);\n\t\t\tthis.uiStore.openModal(COMMUNITY_PACKAGE_INSTALL_MODAL_KEY);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\theight: 100%;\n\tpadding-right: var(--spacing-2xs);\n\t> * {\n\t\tmargin-bottom: var(--spacing-2xl);\n\t}\n}\n\n.headingContainer {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.loadingContainer {\n\tdisplay: flex;\n\tgap: var(--spacing-xs);\n}\n\n.actionBoxContainer {\n\ttext-align: center;\n}\n\n.cardsContainer {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","COMMUNITY_PACKAGE_MANAGE_ACTIONS","mapStores","useUIStore","value","NPM_PACKAGE_DOCS_BASE_URL","_resolveComponent","_normalizeClass","_ctx","_openBlock","_createElementBlock","_component_n8n_loading","_createVNode","_component_n8n_text","_createElementVNode","_withCtx","_createTextVNode","_toDisplayString","_Fragment","_renderList","node","index","_hoisted_1","_createCommentVNode","_createBlock","_component_n8n_tooltip","_component_n8n_icon","_component_n8n_button","_component_n8n_action_toggle","PACKAGE_COUNT_THRESHOLD","_sfc_main","pushConnection","CommunityPackageCard","props","ctx","useExternalHooks","useToast","_b","_a","installedPackages","packagesToUpdate","p","error","useCommunityNodesStore","useSettingsStore","packageCount","COMMUNITY_NODES_INSTALLATION_DOCS_URL","COMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL","COMMUNITY_NODES_NPM_INSTALLATION_URL","telemetryPayload","COMMUNITY_PACKAGE_INSTALL_MODAL_KEY","_component_community_package_card","_component_n8n_action_box","n","communityPackage"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsCommunityNodesView-U2OqH5_g.js","sources":["../../src/components/CommunityPackageCard.vue","../../src/views/SettingsCommunityNodesView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.cardContainer\">\n\t\t<div v-if=\"loading\" :class=\"$style.cardSkeleton\">\n\t\t\t<n8n-loading :class=\"$style.loader\" variant=\"p\" :rows=\"1\" />\n\t\t\t<n8n-loading :class=\"$style.loader\" variant=\"p\" :rows=\"1\" />\n\t\t</div>\n\t\t<div v-else :class=\"$style.packageCard\">\n\t\t\t<div :class=\"$style.cardInfoContainer\">\n\t\t\t\t<div :class=\"$style.cardTitle\">\n\t\t\t\t\t<n8n-text :bold=\"true\" size=\"large\">{{ communityPackage.packageName }}</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.cardSubtitle\">\n\t\t\t\t\t<n8n-text :bold=\"true\" size=\"small\" color=\"text-light\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText('settings.communityNodes.packageNodes.label', {\n\t\t\t\t\t\t\t\tadjustToNumber: communityPackage.installedNodes.length,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}:&nbsp;\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-text size=\"small\" color=\"text-light\">\n\t\t\t\t\t\t<span v-for=\"(node, index) in communityPackage.installedNodes\" :key=\"node.name\">\n\t\t\t\t\t\t\t{{ node.name\n\t\t\t\t\t\t\t}}<span v-if=\"index != communityPackage.installedNodes.length - 1\">,</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.cardControlsContainer\">\n\t\t\t\t<n8n-text :bold=\"true\" size=\"large\" color=\"text-light\">\n\t\t\t\t\tv{{ communityPackage.installedVersion }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-tooltip v-if=\"communityPackage.failedLoading === true\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.failedToLoad.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-icon icon=\"exclamation-triangle\" color=\"danger\" size=\"large\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<n8n-tooltip v-else-if=\"communityPackage.updateAvailable\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.updateAvailable.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-button type=\"outline\" label=\"Update\" @click=\"onUpdateClick\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<n8n-tooltip v-else placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{{ $locale.baseText('settings.communityNodes.upToDate.tooltip') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-icon icon=\"check-circle\" color=\"text-light\" size=\"large\" />\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<div :class=\"$style.cardActions\">\n\t\t\t\t\t<n8n-action-toggle :actions=\"packageActions\" @action=\"onAction\"></n8n-action-toggle>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { useUIStore } from '@/stores/ui.store';\nimport type { PublicInstalledPackage } from 'n8n-workflow';\nimport { mapStores } from 'pinia';\nimport { defineComponent } from 'vue';\nimport { NPM_PACKAGE_DOCS_BASE_URL, COMMUNITY_PACKAGE_MANAGE_ACTIONS } from '@/constants';\n\nexport default defineComponent({\n\tname: 'CommunityPackageCard',\n\tprops: {\n\t\tcommunityPackage: {\n\t\t\ttype: Object as () => PublicInstalledPackage,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpackageActions: [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('settings.communityNodes.viewDocsAction.label'),\n\t\t\t\t\tvalue: COMMUNITY_PACKAGE_MANAGE_ACTIONS.VIEW_DOCS,\n\t\t\t\t\ttype: 'external-link',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('settings.communityNodes.uninstallAction.label'),\n\t\t\t\t\tvalue: COMMUNITY_PACKAGE_MANAGE_ACTIONS.UNINSTALL,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t},\n\tmethods: {\n\t\tasync onAction(value: string) {\n\t\t\tswitch (value) {\n\t\t\t\tcase COMMUNITY_PACKAGE_MANAGE_ACTIONS.VIEW_DOCS:\n\t\t\t\t\tthis.$telemetry.track('user clicked to browse the cnr package documentation', {\n\t\t\t\t\t\tpackage_name: this.communityPackage.packageName,\n\t\t\t\t\t\tpackage_version: this.communityPackage.installedVersion,\n\t\t\t\t\t});\n\t\t\t\t\twindow.open(`${NPM_PACKAGE_DOCS_BASE_URL}${this.communityPackage.packageName}`, '_blank');\n\t\t\t\t\tbreak;\n\t\t\t\tcase COMMUNITY_PACKAGE_MANAGE_ACTIONS.UNINSTALL:\n\t\t\t\t\tthis.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tonUpdateClick() {\n\t\t\tthis.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.cardContainer {\n\tdisplay: flex;\n\tpadding: var(--spacing-s);\n\tborder: var(--border-width-base) var(--border-style-base) var(--color-info-tint-1);\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-background-xlight);\n}\n\n.packageCard,\n.cardSkeleton {\n\tdisplay: flex;\n\tflex-basis: 100%;\n\tjustify-content: space-between;\n}\n\n.packageCard {\n\talign-items: center;\n}\n\n.cardSkeleton {\n\tflex-direction: column;\n}\n\n.loader {\n\twidth: 50%;\n\ttransform: scaleY(-1);\n\n\t&:last-child {\n\t\twidth: 70%;\n\n\t\tdiv {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n.cardInfoContainer {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.cardTitle {\n\tflex-basis: 100%;\n\n\tspan {\n\t\tline-height: 1;\n\t}\n}\n\n.cardSubtitle {\n\tmargin-top: 2px;\n\tpadding-right: var(--spacing-m);\n}\n\n.cardControlsContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-3xs);\n}\n\n.cardActions {\n\tpadding-left: var(--spacing-3xs);\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.headingContainer\">\n\t\t\t<n8n-heading size=\"2xlarge\">{{ $locale.baseText('settings.communityNodes') }}</n8n-heading>\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"\n\t\t\t\t\t!settingsStore.isQueueModeEnabled &&\n\t\t\t\t\tcommunityNodesStore.getInstalledPackages.length > 0 &&\n\t\t\t\t\t!loading\n\t\t\t\t\"\n\t\t\t\t:label=\"$locale.baseText('settings.communityNodes.installModal.installButton.label')\"\n\t\t\t\tsize=\"large\"\n\t\t\t\t@click=\"openInstallModal\"\n\t\t\t/>\n\t\t</div>\n\t\t<div v-if=\"settingsStore.isQueueModeEnabled\" :class=\"$style.actionBoxContainer\">\n\t\t\t<n8n-action-box\n\t\t\t\t:heading=\"$locale.baseText('settings.communityNodes.empty.title')\"\n\t\t\t\t:description=\"getEmptyStateDescription\"\n\t\t\t\t:calloutText=\"actionBoxConfig.calloutText\"\n\t\t\t\t:calloutTheme=\"actionBoxConfig.calloutTheme\"\n\t\t\t/>\n\t\t</div>\n\t\t<div :class=\"$style.cardsContainer\" v-else-if=\"loading\">\n\t\t\t<community-package-card\n\t\t\t\tv-for=\"n in 2\"\n\t\t\t\t:key=\"'index-' + n\"\n\t\t\t\t:loading=\"true\"\n\t\t\t></community-package-card>\n\t\t</div>\n\t\t<div\n\t\t\tv-else-if=\"communityNodesStore.getInstalledPackages.length === 0\"\n\t\t\t:class=\"$style.actionBoxContainer\"\n\t\t>\n\t\t\t<n8n-action-box\n\t\t\t\t:heading=\"$locale.baseText('settings.communityNodes.empty.title')\"\n\t\t\t\t:description=\"getEmptyStateDescription\"\n\t\t\t\t:buttonText=\"getEmptyStateButtonText\"\n\t\t\t\t:calloutText=\"actionBoxConfig.calloutText\"\n\t\t\t\t:calloutTheme=\"actionBoxConfig.calloutTheme\"\n\t\t\t\t@click:button=\"onClickEmptyStateButton\"\n\t\t\t/>\n\t\t</div>\n\t\t<div :class=\"$style.cardsContainer\" v-else>\n\t\t\t<community-package-card\n\t\t\t\tv-for=\"communityPackage in communityNodesStore.getInstalledPackages\"\n\t\t\t\t:key=\"communityPackage.packageName\"\n\t\t\t\t:communityPackage=\"communityPackage\"\n\t\t\t></community-package-card>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport {\n\tCOMMUNITY_PACKAGE_INSTALL_MODAL_KEY,\n\tCOMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\tCOMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL,\n\tCOMMUNITY_NODES_NPM_INSTALLATION_URL,\n} from '@/constants';\nimport CommunityPackageCard from '@/components/CommunityPackageCard.vue';\nimport { useToast } from '@/composables/useToast';\nimport { pushConnection } from '@/mixins/pushConnection';\nimport type { PublicInstalledPackage } from 'n8n-workflow';\n\nimport { useCommunityNodesStore } from '@/stores/communityNodes.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { defineComponent } from 'vue';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\n\nconst PACKAGE_COUNT_THRESHOLD = 31;\n\nexport default defineComponent({\n\tname: 'SettingsCommunityNodesView',\n\tmixins: [pushConnection],\n\tcomponents: {\n\t\tCommunityPackageCard,\n\t},\n\tsetup(props, ctx) {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t\t...useToast(),\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\t\t\t...pushConnection.setup?.(props, ctx),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t};\n\t},\n\tasync mounted() {\n\t\t// The push connection is needed here to receive `reloadNodeType` and `removeNodeType` events when community nodes are installed, updated, or removed.\n\t\tthis.pushStore.pushConnect();\n\n\t\ttry {\n\t\t\tthis.loading = true;\n\t\t\tawait this.communityNodesStore.fetchInstalledPackages();\n\n\t\t\tconst installedPackages: PublicInstalledPackage[] =\n\t\t\t\tthis.communityNodesStore.getInstalledPackages;\n\t\t\tconst packagesToUpdate: PublicInstalledPackage[] = installedPackages.filter(\n\t\t\t\t(p) => p.updateAvailable,\n\t\t\t);\n\t\t\tthis.$telemetry.track('user viewed cnr settings page', {\n\t\t\t\tnum_of_packages_installed: installedPackages.length,\n\t\t\t\tinstalled_packages: installedPackages.map((p) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackage_name: p.packageName,\n\t\t\t\t\t\tpackage_version: p.installedVersion,\n\t\t\t\t\t\tpackage_nodes: p.installedNodes.map((node) => `${node.name}-v${node.latestVersion}`),\n\t\t\t\t\t\tis_update_available: p.updateAvailable !== undefined,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\tpackages_to_update: packagesToUpdate.map((p) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackage_name: p.packageName,\n\t\t\t\t\t\tpackage_version_current: p.installedVersion,\n\t\t\t\t\t\tpackage_version_available: p.updateAvailable,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t\tnumber_of_updates_available: packagesToUpdate.length,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.showError(\n\t\t\t\terror,\n\t\t\t\tthis.$locale.baseText('settings.communityNodes.fetchError.title'),\n\t\t\t\tthis.$locale.baseText('settings.communityNodes.fetchError.message'),\n\t\t\t);\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t\ttry {\n\t\t\tawait this.communityNodesStore.fetchAvailableCommunityPackageCount();\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t},\n\tbeforeUnmount() {\n\t\tthis.pushStore.pushDisconnect();\n\t},\n\tcomputed: {\n\t\t...mapStores(useCommunityNodesStore, useSettingsStore, useUIStore),\n\t\tgetEmptyStateDescription(): string {\n\t\t\tconst packageCount = this.communityNodesStore.availablePackageCount;\n\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.$locale.baseText('contextual.communityNodes.unavailable.description.desktop');\n\t\t\t}\n\n\t\t\treturn packageCount < PACKAGE_COUNT_THRESHOLD\n\t\t\t\t? this.$locale.baseText('settings.communityNodes.empty.description.no-packages', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tdocURL: COMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\t\t\t\t\t\t},\n\t\t\t\t })\n\t\t\t\t: this.$locale.baseText('settings.communityNodes.empty.description', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tdocURL: COMMUNITY_NODES_INSTALLATION_DOCS_URL,\n\t\t\t\t\t\t\tcount: (Math.floor(packageCount / 10) * 10).toString(),\n\t\t\t\t\t\t},\n\t\t\t\t });\n\t\t},\n\t\tgetEmptyStateButtonText(): string {\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.$locale.baseText('contextual.communityNodes.unavailable.button.desktop');\n\t\t\t}\n\n\t\t\treturn this.shouldShowInstallButton\n\t\t\t\t? this.$locale.baseText('settings.communityNodes.empty.installPackageLabel')\n\t\t\t\t: '';\n\t\t},\n\t\tshouldShowInstallButton(): boolean {\n\t\t\treturn this.settingsStore.isDesktopDeployment || this.settingsStore.isNpmAvailable;\n\t\t},\n\t\tactionBoxConfig(): {\n\t\t\tcalloutText: string;\n\t\t\tcalloutTheme: 'warning' | string;\n\t\t\thideButton: boolean;\n\t\t} {\n\t\t\tif (!this.settingsStore.isNpmAvailable) {\n\t\t\t\treturn {\n\t\t\t\t\tcalloutText: this.$locale.baseText('settings.communityNodes.npmUnavailable.warning', {\n\t\t\t\t\t\tinterpolate: { npmUrl: COMMUNITY_NODES_NPM_INSTALLATION_URL },\n\t\t\t\t\t}),\n\t\t\t\t\tcalloutTheme: 'warning',\n\t\t\t\t\thideButton: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.settingsStore.isQueueModeEnabled) {\n\t\t\t\treturn {\n\t\t\t\t\tcalloutText: this.$locale.baseText('settings.communityNodes.queueMode.warning', {\n\t\t\t\t\t\tinterpolate: { docURL: COMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL },\n\t\t\t\t\t}),\n\t\t\t\t\tcalloutTheme: 'warning',\n\t\t\t\t\thideButton: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcalloutText: '',\n\t\t\t\tcalloutTheme: '',\n\t\t\t\thideButton: false,\n\t\t\t};\n\t\t},\n\t},\n\tmethods: {\n\t\tonClickEmptyStateButton(): void {\n\t\t\tif (this.settingsStore.isDesktopDeployment) {\n\t\t\t\treturn this.goToUpgrade();\n\t\t\t}\n\n\t\t\tthis.openInstallModal();\n\t\t},\n\t\tgoToUpgrade(): void {\n\t\t\tvoid this.uiStore.goToUpgrade('community-nodes', 'upgrade-community-nodes');\n\t\t},\n\t\topenInstallModal(): void {\n\t\t\tconst telemetryPayload = {\n\t\t\t\tis_empty_state: this.communityNodesStore.getInstalledPackages.length === 0,\n\t\t\t};\n\t\t\tthis.$telemetry.track('user clicked cnr install button', telemetryPayload);\n\n\t\t\tvoid this.externalHooks.run('settingsCommunityNodesView.openInstallModal', telemetryPayload);\n\t\t\tthis.uiStore.openModal(COMMUNITY_PACKAGE_INSTALL_MODAL_KEY);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\theight: 100%;\n\tpadding-right: var(--spacing-2xs);\n\t> * {\n\t\tmargin-bottom: var(--spacing-2xl);\n\t}\n}\n\n.headingContainer {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.loadingContainer {\n\tdisplay: flex;\n\tgap: var(--spacing-xs);\n}\n\n.actionBoxContainer {\n\ttext-align: center;\n}\n\n.cardsContainer {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","COMMUNITY_PACKAGE_MANAGE_ACTIONS","mapStores","useUIStore","value","NPM_PACKAGE_DOCS_BASE_URL","_resolveComponent","_normalizeClass","_ctx","_openBlock","_createElementBlock","_component_n8n_loading","_createVNode","_component_n8n_text","_createElementVNode","_withCtx","_createTextVNode","_toDisplayString","_Fragment","_renderList","node","index","_hoisted_1","_createCommentVNode","_createBlock","_component_n8n_tooltip","_component_n8n_icon","_component_n8n_button","_component_n8n_action_toggle","PACKAGE_COUNT_THRESHOLD","_sfc_main","pushConnection","CommunityPackageCard","props","ctx","useExternalHooks","useToast","_b","_a","installedPackages","packagesToUpdate","p","error","useCommunityNodesStore","useSettingsStore","packageCount","COMMUNITY_NODES_INSTALLATION_DOCS_URL","COMMUNITY_NODES_MANUAL_INSTALLATION_DOCS_URL","COMMUNITY_NODES_NPM_INSTALLATION_URL","telemetryPayload","COMMUNITY_PACKAGE_INSTALL_MODAL_KEY","_component_community_package_card","_component_n8n_action_box","n","communityPackage"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{u as A,o as $,M as I,dB as q,_ as G}from"./n8n-ZKR6bms9.js";import{a5 as M,aU as K,aV as Q,aW as X}from"./index--RuZ5wHr.js";import{D as Y}from"./luxon-ZRIU05qF.js";import{G as N,_ as H,e as _,b as O,ag as i,l as s,M as x,O as a,p as d,T as l,I as u,u as t,S as v,R as c,Q as J,m as y,n as Z,F as ee,a7 as te}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const ne=N({__name:"ExternalSecretsProviderCard.ee",props:{provider:{type:Object,required:!0}},setup(C){const e=C,m=M(),n=I(),f=A(),b=$(),{provider:o}=H(e),p=_(()=>o.value.data),{connectionState:g,initialConnectionState:E,normalizedProviderData:w,testConnection:T,setConnectionState:k}=K(o,p),S=_(()=>[{value:"setup",label:n.baseText("settings.externalSecrets.card.actionDropdown.setup")},...e.provider.connected?[{value:"reload",label:n.baseText("settings.externalSecrets.card.actionDropdown.reload")}]:[]]),U=_(()=>e.provider.connected||Object.keys(e.provider.data).length>0),L=_(r=>Y.fromISO(e.provider.connectedAt).toFormat("dd LLL yyyy"));O(()=>{k(e.provider.state)});async function R(){return e.provider.connected?!0:(await m.getProvider(e.provider.name),await Z(),await T()!=="error")}function B(){f.openModalWithData({name:q,data:{name:e.provider.name}})}async function V(){try{await m.reloadProvider(e.provider.name),b.showMessage({title:n.baseText("settings.externalSecrets.card.reload.success.title"),message:n.baseText("settings.externalSecrets.card.reload.success.description",{interpolate:{provider:e.provider.displayName}}),type:"success"})}catch(r){b.showError(r,n.baseText("error"))}}async function z(r){switch(r){case"setup":B();break;case"reload":await V();break}}return(r,D)=>{const P=i("n8n-text"),F=i("n8n-action-toggle"),j=i("n8n-button"),W=i("n8n-card");return s(),x(W,{class:u(r.$style.card)},{default:a(()=>[d("div",{class:u(r.$style.cardBody)},[l(Q,{class:u(r.$style.cardImage),provider:t(o)},null,8,["class","provider"]),d("div",{class:u(r.$style.cardContent)},[l(P,{bold:""},{default:a(()=>[v(c(t(o).displayName),1)]),_:1}),t(o).connected?(s(),x(P,{key:0,color:"text-light",size:"small"},{default:a(()=>{var h;return[d("span",null,c(t(n).baseText("settings.externalSecrets.card.secretsCount",{interpolate:{count:`${(h=t(m).secrets[t(o).name])==null?void 0:h.length}`}})),1),v(" | "),d("span",null,c(t(n).baseText("settings.externalSecrets.card.connectedAt",{interpolate:{date:L.value}})),1)]}),_:1})):J("",!0)],2),U.value?(s(),y("div",{key:0,class:u(r.$style.cardActions)},[l(X,{provider:t(o),beforeUpdate:R,disabled:t(g)==="error"&&!t(o).connected},null,8,["provider","disabled"]),l(F,{class:"ml-s",theme:"dark",actions:S.value,onAction:z},null,8,["actions"])],2)):(s(),x(j,{key:1,type:"tertiary",onClick:D[0]||(D[0]=h=>B())},{default:a(()=>[v(c(t(n).baseText("settings.externalSecrets.card.setUp")),1)]),_:1}))],2)]),_:1},8,["class"])}}}),re="_card_63ubk_5",oe="_cardImage_63ubk_10",se="_cardBody_63ubk_15",ae="_cardContent_63ubk_21",ce="_cardActions_63ubk_28",ie={card:re,cardImage:oe,cardBody:se,cardContent:ae,cardActions:ce},de={$style:ie},le=G(ne,[["__cssModules",de]]),pe={class:"pb-3xl"},me={key:0,"data-test-id":"external-secrets-content-licensed"},ue=["href"],_e=["href"],je=N({__name:"SettingsExternalSecrets",setup(C){const e=I(),m=A(),n=M(),f=$(),b=_(()=>[...n.providers].sort((p,g)=>g.name.localeCompare(p.name)));O(()=>{try{n.fetchAllSecrets(),n.getProviders()}catch(p){f.showError(p,e.baseText("error"))}});function o(){m.goToUpgrade("external-secrets","upgrade-external-secrets")}return(p,g)=>{const E=i("n8n-heading"),w=i("n8n-callout"),T=i("i18n-t"),k=i("n8n-action-box");return s(),y("div",pe,[l(E,{size:"2xlarge"},{default:a(()=>[v(c(t(e).baseText("settings.externalSecrets.title")),1)]),_:1}),t(n).isEnterpriseExternalSecretsEnabled?(s(),y("div",me,[l(w,{theme:"secondary",class:"mt-2xl mb-l"},{default:a(()=>[v(c(t(e).baseText("settings.externalSecrets.info"))+" ",1),d("a",{href:t(e).baseText("settings.externalSecrets.docs"),target:"_blank"},c(t(e).baseText("settings.externalSecrets.info.link")),9,ue)]),_:1}),(s(!0),y(ee,null,te(b.value,S=>(s(),x(le,{key:S.name,provider:S},null,8,["provider"]))),128))])):(s(),x(k,{key:1,class:"mt-2xl mb-l","data-test-id":"external-secrets-content-unlicensed",buttonText:t(e).baseText("settings.externalSecrets.actionBox.buttonText"),onClick:o},{heading:a(()=>[d("span",null,c(t(e).baseText("settings.externalSecrets.actionBox.title")),1)]),description:a(()=>[l(T,{keypath:"settings.externalSecrets.actionBox.description"},{link:a(()=>[d("a",{href:t(e).baseText("settings.externalSecrets.docs"),target:"_blank"},c(t(e).baseText("settings.externalSecrets.actionBox.description.link")),9,_e)]),_:1})]),_:1},8,["buttonText"]))])}}});export{je as default};
2
- //# sourceMappingURL=SettingsExternalSecrets-yr_g8DWk.js.map
1
+ import{u as A,o as $,M as I,dB as q,_ as G}from"./n8n-ZKR6bms9.js";import{a5 as M,aU as K,aV as Q,aW as X}from"./index-RXjMHIPR.js";import{D as Y}from"./luxon-ZRIU05qF.js";import{G as N,_ as H,e as _,b as O,ag as i,l as s,M as x,O as a,p as d,T as l,I as u,u as t,S as v,R as c,Q as J,m as y,n as Z,F as ee,a7 as te}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const ne=N({__name:"ExternalSecretsProviderCard.ee",props:{provider:{type:Object,required:!0}},setup(C){const e=C,m=M(),n=I(),f=A(),b=$(),{provider:o}=H(e),p=_(()=>o.value.data),{connectionState:g,initialConnectionState:E,normalizedProviderData:w,testConnection:T,setConnectionState:k}=K(o,p),S=_(()=>[{value:"setup",label:n.baseText("settings.externalSecrets.card.actionDropdown.setup")},...e.provider.connected?[{value:"reload",label:n.baseText("settings.externalSecrets.card.actionDropdown.reload")}]:[]]),U=_(()=>e.provider.connected||Object.keys(e.provider.data).length>0),L=_(r=>Y.fromISO(e.provider.connectedAt).toFormat("dd LLL yyyy"));O(()=>{k(e.provider.state)});async function R(){return e.provider.connected?!0:(await m.getProvider(e.provider.name),await Z(),await T()!=="error")}function B(){f.openModalWithData({name:q,data:{name:e.provider.name}})}async function V(){try{await m.reloadProvider(e.provider.name),b.showMessage({title:n.baseText("settings.externalSecrets.card.reload.success.title"),message:n.baseText("settings.externalSecrets.card.reload.success.description",{interpolate:{provider:e.provider.displayName}}),type:"success"})}catch(r){b.showError(r,n.baseText("error"))}}async function z(r){switch(r){case"setup":B();break;case"reload":await V();break}}return(r,D)=>{const P=i("n8n-text"),F=i("n8n-action-toggle"),j=i("n8n-button"),W=i("n8n-card");return s(),x(W,{class:u(r.$style.card)},{default:a(()=>[d("div",{class:u(r.$style.cardBody)},[l(Q,{class:u(r.$style.cardImage),provider:t(o)},null,8,["class","provider"]),d("div",{class:u(r.$style.cardContent)},[l(P,{bold:""},{default:a(()=>[v(c(t(o).displayName),1)]),_:1}),t(o).connected?(s(),x(P,{key:0,color:"text-light",size:"small"},{default:a(()=>{var h;return[d("span",null,c(t(n).baseText("settings.externalSecrets.card.secretsCount",{interpolate:{count:`${(h=t(m).secrets[t(o).name])==null?void 0:h.length}`}})),1),v(" | "),d("span",null,c(t(n).baseText("settings.externalSecrets.card.connectedAt",{interpolate:{date:L.value}})),1)]}),_:1})):J("",!0)],2),U.value?(s(),y("div",{key:0,class:u(r.$style.cardActions)},[l(X,{provider:t(o),beforeUpdate:R,disabled:t(g)==="error"&&!t(o).connected},null,8,["provider","disabled"]),l(F,{class:"ml-s",theme:"dark",actions:S.value,onAction:z},null,8,["actions"])],2)):(s(),x(j,{key:1,type:"tertiary",onClick:D[0]||(D[0]=h=>B())},{default:a(()=>[v(c(t(n).baseText("settings.externalSecrets.card.setUp")),1)]),_:1}))],2)]),_:1},8,["class"])}}}),re="_card_63ubk_5",oe="_cardImage_63ubk_10",se="_cardBody_63ubk_15",ae="_cardContent_63ubk_21",ce="_cardActions_63ubk_28",ie={card:re,cardImage:oe,cardBody:se,cardContent:ae,cardActions:ce},de={$style:ie},le=G(ne,[["__cssModules",de]]),pe={class:"pb-3xl"},me={key:0,"data-test-id":"external-secrets-content-licensed"},ue=["href"],_e=["href"],je=N({__name:"SettingsExternalSecrets",setup(C){const e=I(),m=A(),n=M(),f=$(),b=_(()=>[...n.providers].sort((p,g)=>g.name.localeCompare(p.name)));O(()=>{try{n.fetchAllSecrets(),n.getProviders()}catch(p){f.showError(p,e.baseText("error"))}});function o(){m.goToUpgrade("external-secrets","upgrade-external-secrets")}return(p,g)=>{const E=i("n8n-heading"),w=i("n8n-callout"),T=i("i18n-t"),k=i("n8n-action-box");return s(),y("div",pe,[l(E,{size:"2xlarge"},{default:a(()=>[v(c(t(e).baseText("settings.externalSecrets.title")),1)]),_:1}),t(n).isEnterpriseExternalSecretsEnabled?(s(),y("div",me,[l(w,{theme:"secondary",class:"mt-2xl mb-l"},{default:a(()=>[v(c(t(e).baseText("settings.externalSecrets.info"))+" ",1),d("a",{href:t(e).baseText("settings.externalSecrets.docs"),target:"_blank"},c(t(e).baseText("settings.externalSecrets.info.link")),9,ue)]),_:1}),(s(!0),y(ee,null,te(b.value,S=>(s(),x(le,{key:S.name,provider:S},null,8,["provider"]))),128))])):(s(),x(k,{key:1,class:"mt-2xl mb-l","data-test-id":"external-secrets-content-unlicensed",buttonText:t(e).baseText("settings.externalSecrets.actionBox.buttonText"),onClick:o},{heading:a(()=>[d("span",null,c(t(e).baseText("settings.externalSecrets.actionBox.title")),1)]),description:a(()=>[l(T,{keypath:"settings.externalSecrets.actionBox.description"},{link:a(()=>[d("a",{href:t(e).baseText("settings.externalSecrets.docs"),target:"_blank"},c(t(e).baseText("settings.externalSecrets.actionBox.description.link")),9,_e)]),_:1})]),_:1},8,["buttonText"]))])}}});export{je as default};
2
+ //# sourceMappingURL=SettingsExternalSecrets-OK2zcF3w.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsExternalSecrets-yr_g8DWk.js","sources":["../../src/components/ExternalSecretsProviderCard.ee.vue","../../src/views/SettingsExternalSecrets.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PropType, Ref } from 'vue';\nimport type { ExternalSecretsProvider } from '@/Interface';\nimport ExternalSecretsProviderImage from '@/components/ExternalSecretsProviderImage.ee.vue';\nimport ExternalSecretsProviderConnectionSwitch from '@/components/ExternalSecretsProviderConnectionSwitch.ee.vue';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useToast } from '@/composables/useToast';\nimport { useI18n } from '@/composables/useI18n';\nimport { useExternalSecretsProvider } from '@/composables/useExternalSecretsProvider';\nimport { EXTERNAL_SECRETS_PROVIDER_MODAL_KEY } from '@/constants';\nimport { DateTime } from 'luxon';\nimport { computed, nextTick, onMounted, toRefs } from 'vue';\n\nconst props = defineProps({\n\tprovider: {\n\t\ttype: Object as PropType<ExternalSecretsProvider>,\n\t\trequired: true,\n\t},\n});\n\nconst externalSecretsStore = useExternalSecretsStore();\nconst i18n = useI18n();\nconst uiStore = useUIStore();\nconst toast = useToast();\n\nconst { provider } = toRefs(props) as Ref<ExternalSecretsProvider>;\nconst providerData = computed(() => provider.value.data);\nconst {\n\tconnectionState,\n\tinitialConnectionState,\n\tnormalizedProviderData,\n\ttestConnection,\n\tsetConnectionState,\n} = useExternalSecretsProvider(provider, providerData);\n\nconst actionDropdownOptions = computed(() => [\n\t{\n\t\tvalue: 'setup',\n\t\tlabel: i18n.baseText('settings.externalSecrets.card.actionDropdown.setup'),\n\t},\n\t...(props.provider.connected\n\t\t? [\n\t\t\t\t{\n\t\t\t\t\tvalue: 'reload',\n\t\t\t\t\tlabel: i18n.baseText('settings.externalSecrets.card.actionDropdown.reload'),\n\t\t\t\t},\n\t\t ]\n\t\t: []),\n]);\n\nconst canConnect = computed(() => {\n\treturn props.provider.connected || Object.keys(props.provider.data).length > 0;\n});\n\nconst formattedDate = computed((provider: ExternalSecretsProvider) => {\n\treturn DateTime.fromISO(props.provider.connectedAt).toFormat('dd LLL yyyy');\n});\n\nonMounted(() => {\n\tsetConnectionState(props.provider.state);\n});\n\nasync function onBeforeConnectionUpdate() {\n\tif (props.provider.connected) {\n\t\treturn true;\n\t}\n\n\tawait externalSecretsStore.getProvider(props.provider.name);\n\tawait nextTick();\n\tconst status = await testConnection();\n\n\treturn status !== 'error';\n}\n\nfunction openExternalSecretProvider() {\n\tuiStore.openModalWithData({\n\t\tname: EXTERNAL_SECRETS_PROVIDER_MODAL_KEY,\n\t\tdata: { name: props.provider.name },\n\t});\n}\n\nasync function reloadProvider() {\n\ttry {\n\t\tawait externalSecretsStore.reloadProvider(props.provider.name);\n\t\ttoast.showMessage({\n\t\t\ttitle: i18n.baseText('settings.externalSecrets.card.reload.success.title'),\n\t\t\tmessage: i18n.baseText('settings.externalSecrets.card.reload.success.description', {\n\t\t\t\tinterpolate: { provider: props.provider.displayName },\n\t\t\t}),\n\t\t\ttype: 'success',\n\t\t});\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('error'));\n\t}\n}\n\nasync function onActionDropdownClick(id: string) {\n\tswitch (id) {\n\t\tcase 'setup':\n\t\t\topenExternalSecretProvider();\n\t\t\tbreak;\n\t\tcase 'reload':\n\t\t\tawait reloadProvider();\n\t\t\tbreak;\n\t}\n}\n</script>\n\n<template>\n\t<n8n-card :class=\"$style.card\">\n\t\t<div :class=\"$style.cardBody\">\n\t\t\t<ExternalSecretsProviderImage :class=\"$style.cardImage\" :provider=\"provider\" />\n\t\t\t<div :class=\"$style.cardContent\">\n\t\t\t\t<n8n-text bold>{{ provider.displayName }}</n8n-text>\n\t\t\t\t<n8n-text color=\"text-light\" size=\"small\" v-if=\"provider.connected\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ti18n.baseText('settings.externalSecrets.card.secretsCount', {\n\t\t\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\t\t\tcount: `${externalSecretsStore.secrets[provider.name]?.length}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</span>\n\t\t\t\t\t|\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ti18n.baseText('settings.externalSecrets.card.connectedAt', {\n\t\t\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\t\t\tdate: formattedDate,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</span>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.cardActions\" v-if=\"canConnect\">\n\t\t\t\t<ExternalSecretsProviderConnectionSwitch\n\t\t\t\t\t:provider=\"provider\"\n\t\t\t\t\t:beforeUpdate=\"onBeforeConnectionUpdate\"\n\t\t\t\t\t:disabled=\"connectionState === 'error' && !provider.connected\"\n\t\t\t\t/>\n\t\t\t\t<n8n-action-toggle\n\t\t\t\t\tclass=\"ml-s\"\n\t\t\t\t\ttheme=\"dark\"\n\t\t\t\t\t:actions=\"actionDropdownOptions\"\n\t\t\t\t\t@action=\"onActionDropdownClick\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<n8n-button v-else type=\"tertiary\" @click=\"openExternalSecretProvider()\">\n\t\t\t\t{{ i18n.baseText('settings.externalSecrets.card.setUp') }}\n\t\t\t</n8n-button>\n\t\t</div>\n\t</n8n-card>\n</template>\n\n<style lang=\"scss\" module>\n.card {\n\tposition: relative;\n\tmargin-bottom: var(--spacing-2xs);\n}\n\n.cardImage {\n\twidth: 28px;\n\theight: 28px;\n}\n\n.cardBody {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n\n.cardContent {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: var(--spacing-s);\n}\n\n.cardActions {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-left: var(--spacing-s);\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useUIStore } from '@/stores/ui.store';\nimport { useI18n } from '@/composables/useI18n';\nimport { useToast } from '@/composables/useToast';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { computed, onMounted } from 'vue';\nimport ExternalSecretsProviderCard from '@/components/ExternalSecretsProviderCard.ee.vue';\nimport type { ExternalSecretsProvider } from '@/Interface';\n\nconst i18n = useI18n();\nconst uiStore = useUIStore();\nconst externalSecretsStore = useExternalSecretsStore();\nconst toast = useToast();\n\nconst sortedProviders = computed(() => {\n\treturn ([...externalSecretsStore.providers] as ExternalSecretsProvider[]).sort((a, b) => {\n\t\treturn b.name.localeCompare(a.name);\n\t});\n});\n\nonMounted(() => {\n\ttry {\n\t\tvoid externalSecretsStore.fetchAllSecrets();\n\t\tvoid externalSecretsStore.getProviders();\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('error'));\n\t}\n});\n\nfunction goToUpgrade() {\n\tvoid uiStore.goToUpgrade('external-secrets', 'upgrade-external-secrets');\n}\n</script>\n\n<template>\n\t<div class=\"pb-3xl\">\n\t\t<n8n-heading size=\"2xlarge\">{{ i18n.baseText('settings.externalSecrets.title') }}</n8n-heading>\n\t\t<div\n\t\t\tv-if=\"externalSecretsStore.isEnterpriseExternalSecretsEnabled\"\n\t\t\tdata-test-id=\"external-secrets-content-licensed\"\n\t\t>\n\t\t\t<n8n-callout theme=\"secondary\" class=\"mt-2xl mb-l\">\n\t\t\t\t{{ i18n.baseText('settings.externalSecrets.info') }}\n\t\t\t\t<a :href=\"i18n.baseText('settings.externalSecrets.docs')\" target=\"_blank\">\n\t\t\t\t\t{{ i18n.baseText('settings.externalSecrets.info.link') }}\n\t\t\t\t</a>\n\t\t\t</n8n-callout>\n\t\t\t<ExternalSecretsProviderCard\n\t\t\t\tv-for=\"provider in sortedProviders\"\n\t\t\t\t:key=\"provider.name\"\n\t\t\t\t:provider=\"provider\"\n\t\t\t/>\n\t\t</div>\n\t\t<n8n-action-box\n\t\t\tv-else\n\t\t\tclass=\"mt-2xl mb-l\"\n\t\t\tdata-test-id=\"external-secrets-content-unlicensed\"\n\t\t\t:buttonText=\"i18n.baseText('settings.externalSecrets.actionBox.buttonText')\"\n\t\t\t@click=\"goToUpgrade\"\n\t\t>\n\t\t\t<template #heading>\n\t\t\t\t<span>{{ i18n.baseText('settings.externalSecrets.actionBox.title') }}</span>\n\t\t\t</template>\n\t\t\t<template #description>\n\t\t\t\t<i18n-t keypath=\"settings.externalSecrets.actionBox.description\">\n\t\t\t\t\t<template #link>\n\t\t\t\t\t\t<a :href=\"i18n.baseText('settings.externalSecrets.docs')\" target=\"_blank\">\n\t\t\t\t\t\t\t{{ i18n.baseText('settings.externalSecrets.actionBox.description.link') }}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</template>\n\t\t\t\t</i18n-t>\n\t\t\t</template>\n\t\t</n8n-action-box>\n\t</div>\n</template>\n"],"names":["externalSecretsStore","useExternalSecretsStore","i18n","useI18n","uiStore","useUIStore","toast","useToast","provider","toRefs","props","providerData","computed","connectionState","initialConnectionState","normalizedProviderData","testConnection","setConnectionState","useExternalSecretsProvider","actionDropdownOptions","canConnect","formattedDate","DateTime","onMounted","onBeforeConnectionUpdate","nextTick","openExternalSecretProvider","EXTERNAL_SECRETS_PROVIDER_MODAL_KEY","reloadProvider","error","onActionDropdownClick","id","sortedProviders","a","b","goToUpgrade"],"mappings":"8zCAqBMA,EAAuBC,IACvBC,EAAOC,IACPC,EAAUC,IACVC,EAAQC,IAER,CAAE,SAAAC,CAAA,EAAaC,EAAOC,CAAK,EAC3BC,EAAeC,EAAS,IAAMJ,EAAS,MAAM,IAAI,EACjD,CACL,gBAAAK,EACA,uBAAAC,EACA,uBAAAC,EACA,eAAAC,EACA,mBAAAC,CAAA,EACGC,EAA2BV,EAAUG,CAAY,EAE/CQ,EAAwBP,EAAS,IAAM,CAC5C,CACC,MAAO,QACP,MAAOV,EAAK,SAAS,oDAAoD,CAC1E,EACA,GAAIQ,EAAM,SAAS,UAChB,CACA,CACC,MAAO,SACP,MAAOR,EAAK,SAAS,qDAAqD,CAC3E,CAAA,EAEA,CAAC,CAAA,CACJ,EAEKkB,EAAaR,EAAS,IACpBF,EAAM,SAAS,WAAa,OAAO,KAAKA,EAAM,SAAS,IAAI,EAAE,OAAS,CAC7E,EAEKW,EAAgBT,EAAUJ,GACxBc,EAAS,QAAQZ,EAAM,SAAS,WAAW,EAAE,SAAS,aAAa,CAC1E,EAEDa,EAAU,IAAM,CACIN,EAAAP,EAAM,SAAS,KAAK,CAAA,CACvC,EAED,eAAec,GAA2B,CACrC,OAAAd,EAAM,SAAS,UACX,IAGR,MAAMV,EAAqB,YAAYU,EAAM,SAAS,IAAI,EAC1D,MAAMe,EAAS,EACA,MAAMT,MAEH,QACnB,CAEA,SAASU,GAA6B,CACrCtB,EAAQ,kBAAkB,CACzB,KAAMuB,EACN,KAAM,CAAE,KAAMjB,EAAM,SAAS,IAAK,CAAA,CAClC,CACF,CAEA,eAAekB,GAAiB,CAC3B,GAAA,CACH,MAAM5B,EAAqB,eAAeU,EAAM,SAAS,IAAI,EAC7DJ,EAAM,YAAY,CACjB,MAAOJ,EAAK,SAAS,oDAAoD,EACzE,QAASA,EAAK,SAAS,2DAA4D,CAClF,YAAa,CAAE,SAAUQ,EAAM,SAAS,WAAY,CAAA,CACpD,EACD,KAAM,SAAA,CACN,QACOmB,EAAO,CACfvB,EAAM,UAAUuB,EAAO3B,EAAK,SAAS,OAAO,CAAC,CAC9C,CACD,CAEA,eAAe4B,EAAsBC,EAAY,CAChD,OAAQA,EAAI,CACX,IAAK,QACuBL,IAC3B,MACD,IAAK,SACJ,MAAME,EAAe,EACrB,KACF,CACD,0iDCjGA,MAAM1B,EAAOC,IACPC,EAAUC,IACVL,EAAuBC,IACvBK,EAAQC,IAERyB,EAAkBpB,EAAS,IACxB,CAAC,GAAGZ,EAAqB,SAAS,EAAgC,KAAK,CAACiC,EAAGC,IAC3EA,EAAE,KAAK,cAAcD,EAAE,IAAI,CAClC,CACD,EAEDV,EAAU,IAAM,CACX,GAAA,CACEvB,EAAqB,kBACrBA,EAAqB,qBAClB6B,EAAO,CACfvB,EAAM,UAAUuB,EAAO3B,EAAK,SAAS,OAAO,CAAC,CAC9C,CAAA,CACA,EAED,SAASiC,GAAc,CACjB/B,EAAQ,YAAY,mBAAoB,0BAA0B,CACxE"}
1
+ {"version":3,"file":"SettingsExternalSecrets-OK2zcF3w.js","sources":["../../src/components/ExternalSecretsProviderCard.ee.vue","../../src/views/SettingsExternalSecrets.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PropType, Ref } from 'vue';\nimport type { ExternalSecretsProvider } from '@/Interface';\nimport ExternalSecretsProviderImage from '@/components/ExternalSecretsProviderImage.ee.vue';\nimport ExternalSecretsProviderConnectionSwitch from '@/components/ExternalSecretsProviderConnectionSwitch.ee.vue';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useToast } from '@/composables/useToast';\nimport { useI18n } from '@/composables/useI18n';\nimport { useExternalSecretsProvider } from '@/composables/useExternalSecretsProvider';\nimport { EXTERNAL_SECRETS_PROVIDER_MODAL_KEY } from '@/constants';\nimport { DateTime } from 'luxon';\nimport { computed, nextTick, onMounted, toRefs } from 'vue';\n\nconst props = defineProps({\n\tprovider: {\n\t\ttype: Object as PropType<ExternalSecretsProvider>,\n\t\trequired: true,\n\t},\n});\n\nconst externalSecretsStore = useExternalSecretsStore();\nconst i18n = useI18n();\nconst uiStore = useUIStore();\nconst toast = useToast();\n\nconst { provider } = toRefs(props) as Ref<ExternalSecretsProvider>;\nconst providerData = computed(() => provider.value.data);\nconst {\n\tconnectionState,\n\tinitialConnectionState,\n\tnormalizedProviderData,\n\ttestConnection,\n\tsetConnectionState,\n} = useExternalSecretsProvider(provider, providerData);\n\nconst actionDropdownOptions = computed(() => [\n\t{\n\t\tvalue: 'setup',\n\t\tlabel: i18n.baseText('settings.externalSecrets.card.actionDropdown.setup'),\n\t},\n\t...(props.provider.connected\n\t\t? [\n\t\t\t\t{\n\t\t\t\t\tvalue: 'reload',\n\t\t\t\t\tlabel: i18n.baseText('settings.externalSecrets.card.actionDropdown.reload'),\n\t\t\t\t},\n\t\t ]\n\t\t: []),\n]);\n\nconst canConnect = computed(() => {\n\treturn props.provider.connected || Object.keys(props.provider.data).length > 0;\n});\n\nconst formattedDate = computed((provider: ExternalSecretsProvider) => {\n\treturn DateTime.fromISO(props.provider.connectedAt).toFormat('dd LLL yyyy');\n});\n\nonMounted(() => {\n\tsetConnectionState(props.provider.state);\n});\n\nasync function onBeforeConnectionUpdate() {\n\tif (props.provider.connected) {\n\t\treturn true;\n\t}\n\n\tawait externalSecretsStore.getProvider(props.provider.name);\n\tawait nextTick();\n\tconst status = await testConnection();\n\n\treturn status !== 'error';\n}\n\nfunction openExternalSecretProvider() {\n\tuiStore.openModalWithData({\n\t\tname: EXTERNAL_SECRETS_PROVIDER_MODAL_KEY,\n\t\tdata: { name: props.provider.name },\n\t});\n}\n\nasync function reloadProvider() {\n\ttry {\n\t\tawait externalSecretsStore.reloadProvider(props.provider.name);\n\t\ttoast.showMessage({\n\t\t\ttitle: i18n.baseText('settings.externalSecrets.card.reload.success.title'),\n\t\t\tmessage: i18n.baseText('settings.externalSecrets.card.reload.success.description', {\n\t\t\t\tinterpolate: { provider: props.provider.displayName },\n\t\t\t}),\n\t\t\ttype: 'success',\n\t\t});\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('error'));\n\t}\n}\n\nasync function onActionDropdownClick(id: string) {\n\tswitch (id) {\n\t\tcase 'setup':\n\t\t\topenExternalSecretProvider();\n\t\t\tbreak;\n\t\tcase 'reload':\n\t\t\tawait reloadProvider();\n\t\t\tbreak;\n\t}\n}\n</script>\n\n<template>\n\t<n8n-card :class=\"$style.card\">\n\t\t<div :class=\"$style.cardBody\">\n\t\t\t<ExternalSecretsProviderImage :class=\"$style.cardImage\" :provider=\"provider\" />\n\t\t\t<div :class=\"$style.cardContent\">\n\t\t\t\t<n8n-text bold>{{ provider.displayName }}</n8n-text>\n\t\t\t\t<n8n-text color=\"text-light\" size=\"small\" v-if=\"provider.connected\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ti18n.baseText('settings.externalSecrets.card.secretsCount', {\n\t\t\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\t\t\tcount: `${externalSecretsStore.secrets[provider.name]?.length}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</span>\n\t\t\t\t\t|\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ti18n.baseText('settings.externalSecrets.card.connectedAt', {\n\t\t\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\t\t\tdate: formattedDate,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</span>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.cardActions\" v-if=\"canConnect\">\n\t\t\t\t<ExternalSecretsProviderConnectionSwitch\n\t\t\t\t\t:provider=\"provider\"\n\t\t\t\t\t:beforeUpdate=\"onBeforeConnectionUpdate\"\n\t\t\t\t\t:disabled=\"connectionState === 'error' && !provider.connected\"\n\t\t\t\t/>\n\t\t\t\t<n8n-action-toggle\n\t\t\t\t\tclass=\"ml-s\"\n\t\t\t\t\ttheme=\"dark\"\n\t\t\t\t\t:actions=\"actionDropdownOptions\"\n\t\t\t\t\t@action=\"onActionDropdownClick\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<n8n-button v-else type=\"tertiary\" @click=\"openExternalSecretProvider()\">\n\t\t\t\t{{ i18n.baseText('settings.externalSecrets.card.setUp') }}\n\t\t\t</n8n-button>\n\t\t</div>\n\t</n8n-card>\n</template>\n\n<style lang=\"scss\" module>\n.card {\n\tposition: relative;\n\tmargin-bottom: var(--spacing-2xs);\n}\n\n.cardImage {\n\twidth: 28px;\n\theight: 28px;\n}\n\n.cardBody {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n\n.cardContent {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: var(--spacing-s);\n}\n\n.cardActions {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-left: var(--spacing-s);\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useUIStore } from '@/stores/ui.store';\nimport { useI18n } from '@/composables/useI18n';\nimport { useToast } from '@/composables/useToast';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { computed, onMounted } from 'vue';\nimport ExternalSecretsProviderCard from '@/components/ExternalSecretsProviderCard.ee.vue';\nimport type { ExternalSecretsProvider } from '@/Interface';\n\nconst i18n = useI18n();\nconst uiStore = useUIStore();\nconst externalSecretsStore = useExternalSecretsStore();\nconst toast = useToast();\n\nconst sortedProviders = computed(() => {\n\treturn ([...externalSecretsStore.providers] as ExternalSecretsProvider[]).sort((a, b) => {\n\t\treturn b.name.localeCompare(a.name);\n\t});\n});\n\nonMounted(() => {\n\ttry {\n\t\tvoid externalSecretsStore.fetchAllSecrets();\n\t\tvoid externalSecretsStore.getProviders();\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('error'));\n\t}\n});\n\nfunction goToUpgrade() {\n\tvoid uiStore.goToUpgrade('external-secrets', 'upgrade-external-secrets');\n}\n</script>\n\n<template>\n\t<div class=\"pb-3xl\">\n\t\t<n8n-heading size=\"2xlarge\">{{ i18n.baseText('settings.externalSecrets.title') }}</n8n-heading>\n\t\t<div\n\t\t\tv-if=\"externalSecretsStore.isEnterpriseExternalSecretsEnabled\"\n\t\t\tdata-test-id=\"external-secrets-content-licensed\"\n\t\t>\n\t\t\t<n8n-callout theme=\"secondary\" class=\"mt-2xl mb-l\">\n\t\t\t\t{{ i18n.baseText('settings.externalSecrets.info') }}\n\t\t\t\t<a :href=\"i18n.baseText('settings.externalSecrets.docs')\" target=\"_blank\">\n\t\t\t\t\t{{ i18n.baseText('settings.externalSecrets.info.link') }}\n\t\t\t\t</a>\n\t\t\t</n8n-callout>\n\t\t\t<ExternalSecretsProviderCard\n\t\t\t\tv-for=\"provider in sortedProviders\"\n\t\t\t\t:key=\"provider.name\"\n\t\t\t\t:provider=\"provider\"\n\t\t\t/>\n\t\t</div>\n\t\t<n8n-action-box\n\t\t\tv-else\n\t\t\tclass=\"mt-2xl mb-l\"\n\t\t\tdata-test-id=\"external-secrets-content-unlicensed\"\n\t\t\t:buttonText=\"i18n.baseText('settings.externalSecrets.actionBox.buttonText')\"\n\t\t\t@click=\"goToUpgrade\"\n\t\t>\n\t\t\t<template #heading>\n\t\t\t\t<span>{{ i18n.baseText('settings.externalSecrets.actionBox.title') }}</span>\n\t\t\t</template>\n\t\t\t<template #description>\n\t\t\t\t<i18n-t keypath=\"settings.externalSecrets.actionBox.description\">\n\t\t\t\t\t<template #link>\n\t\t\t\t\t\t<a :href=\"i18n.baseText('settings.externalSecrets.docs')\" target=\"_blank\">\n\t\t\t\t\t\t\t{{ i18n.baseText('settings.externalSecrets.actionBox.description.link') }}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</template>\n\t\t\t\t</i18n-t>\n\t\t\t</template>\n\t\t</n8n-action-box>\n\t</div>\n</template>\n"],"names":["externalSecretsStore","useExternalSecretsStore","i18n","useI18n","uiStore","useUIStore","toast","useToast","provider","toRefs","props","providerData","computed","connectionState","initialConnectionState","normalizedProviderData","testConnection","setConnectionState","useExternalSecretsProvider","actionDropdownOptions","canConnect","formattedDate","DateTime","onMounted","onBeforeConnectionUpdate","nextTick","openExternalSecretProvider","EXTERNAL_SECRETS_PROVIDER_MODAL_KEY","reloadProvider","error","onActionDropdownClick","id","sortedProviders","a","b","goToUpgrade"],"mappings":"8zCAqBMA,EAAuBC,IACvBC,EAAOC,IACPC,EAAUC,IACVC,EAAQC,IAER,CAAE,SAAAC,CAAA,EAAaC,EAAOC,CAAK,EAC3BC,EAAeC,EAAS,IAAMJ,EAAS,MAAM,IAAI,EACjD,CACL,gBAAAK,EACA,uBAAAC,EACA,uBAAAC,EACA,eAAAC,EACA,mBAAAC,CAAA,EACGC,EAA2BV,EAAUG,CAAY,EAE/CQ,EAAwBP,EAAS,IAAM,CAC5C,CACC,MAAO,QACP,MAAOV,EAAK,SAAS,oDAAoD,CAC1E,EACA,GAAIQ,EAAM,SAAS,UAChB,CACA,CACC,MAAO,SACP,MAAOR,EAAK,SAAS,qDAAqD,CAC3E,CAAA,EAEA,CAAC,CAAA,CACJ,EAEKkB,EAAaR,EAAS,IACpBF,EAAM,SAAS,WAAa,OAAO,KAAKA,EAAM,SAAS,IAAI,EAAE,OAAS,CAC7E,EAEKW,EAAgBT,EAAUJ,GACxBc,EAAS,QAAQZ,EAAM,SAAS,WAAW,EAAE,SAAS,aAAa,CAC1E,EAEDa,EAAU,IAAM,CACIN,EAAAP,EAAM,SAAS,KAAK,CAAA,CACvC,EAED,eAAec,GAA2B,CACrC,OAAAd,EAAM,SAAS,UACX,IAGR,MAAMV,EAAqB,YAAYU,EAAM,SAAS,IAAI,EAC1D,MAAMe,EAAS,EACA,MAAMT,MAEH,QACnB,CAEA,SAASU,GAA6B,CACrCtB,EAAQ,kBAAkB,CACzB,KAAMuB,EACN,KAAM,CAAE,KAAMjB,EAAM,SAAS,IAAK,CAAA,CAClC,CACF,CAEA,eAAekB,GAAiB,CAC3B,GAAA,CACH,MAAM5B,EAAqB,eAAeU,EAAM,SAAS,IAAI,EAC7DJ,EAAM,YAAY,CACjB,MAAOJ,EAAK,SAAS,oDAAoD,EACzE,QAASA,EAAK,SAAS,2DAA4D,CAClF,YAAa,CAAE,SAAUQ,EAAM,SAAS,WAAY,CAAA,CACpD,EACD,KAAM,SAAA,CACN,QACOmB,EAAO,CACfvB,EAAM,UAAUuB,EAAO3B,EAAK,SAAS,OAAO,CAAC,CAC9C,CACD,CAEA,eAAe4B,EAAsBC,EAAY,CAChD,OAAQA,EAAI,CACX,IAAK,QACuBL,IAC3B,MACD,IAAK,SACJ,MAAME,EAAe,EACrB,KACF,CACD,0iDCjGA,MAAM1B,EAAOC,IACPC,EAAUC,IACVL,EAAuBC,IACvBK,EAAQC,IAERyB,EAAkBpB,EAAS,IACxB,CAAC,GAAGZ,EAAqB,SAAS,EAAgC,KAAK,CAACiC,EAAGC,IAC3EA,EAAE,KAAK,cAAcD,EAAE,IAAI,CAClC,CACD,EAEDV,EAAU,IAAM,CACX,GAAA,CACEvB,EAAqB,kBACrBA,EAAqB,qBAClB6B,EAAO,CACfvB,EAAM,UAAUuB,EAAO3B,EAAK,SAAS,OAAO,CAAC,CAC9C,CAAA,CACA,EAED,SAASiC,GAAc,CACjB/B,EAAQ,YAAY,mBAAoB,0BAA0B,CACxE"}
@@ -1,2 +1,2 @@
1
- import{aR as t}from"./index--RuZ5wHr.js";import{m as r}from"./pinia-jX93eZRS.js";import{u as i,_ as m}from"./n8n-ZKR6bms9.js";import{G as p,ag as n,l as s,M as a}from"./vendor-2CfOYFi2.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./lodash-es-s_m9YyW7.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./esprima-next-ulPLCZ1Z.js";import"./@vueuse/core-viEZCtbZ.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";const u=p({name:"SettingsFakeDoorView",components:{FeatureComingSoon:t},props:{featureId:{type:String,required:!0}},computed:{...r(i),featureInfo(){return this.uiStore.getFakeDoorById(this.featureId)}},methods:{openLinkPage(){this.featureInfo&&window.open(this.featureInfo.linkURL,"_blank")}}}),f="_header_em75e_5",c={header:f};function d(o,l,h,I,g,k){const e=n("feature-coming-soon");return s(),a(e,{featureId:o.featureId,showTitle:""},null,8,["featureId"])}const _={$style:c},O=m(u,[["render",d],["__cssModules",_]]);export{O as default};
2
- //# sourceMappingURL=SettingsFakeDoorView-ogkrrHSL.js.map
1
+ import{aR as t}from"./index-RXjMHIPR.js";import{m as r}from"./pinia-jX93eZRS.js";import{u as i,_ as m}from"./n8n-ZKR6bms9.js";import{G as p,ag as n,l as s,M as a}from"./vendor-2CfOYFi2.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./lodash-es-s_m9YyW7.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./esprima-next-ulPLCZ1Z.js";import"./@vueuse/core-viEZCtbZ.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";const u=p({name:"SettingsFakeDoorView",components:{FeatureComingSoon:t},props:{featureId:{type:String,required:!0}},computed:{...r(i),featureInfo(){return this.uiStore.getFakeDoorById(this.featureId)}},methods:{openLinkPage(){this.featureInfo&&window.open(this.featureInfo.linkURL,"_blank")}}}),f="_header_em75e_5",c={header:f};function d(o,l,h,I,g,k){const e=n("feature-coming-soon");return s(),a(e,{featureId:o.featureId,showTitle:""},null,8,["featureId"])}const _={$style:c},O=m(u,[["render",d],["__cssModules",_]]);export{O as default};
2
+ //# sourceMappingURL=SettingsFakeDoorView-wbngwN3n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsFakeDoorView-ogkrrHSL.js","sources":["../../src/views/SettingsFakeDoorView.vue"],"sourcesContent":["<template>\n\t<feature-coming-soon :featureId=\"featureId\" showTitle />\n</template>\n\n<script lang=\"ts\">\nimport type { IFakeDoor } from '@/Interface';\nimport { defineComponent } from 'vue';\nimport FeatureComingSoon from '@/components/FeatureComingSoon.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tname: 'SettingsFakeDoorView',\n\tcomponents: {\n\t\tFeatureComingSoon,\n\t},\n\tprops: {\n\t\tfeatureId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t\tfeatureInfo(): IFakeDoor | undefined {\n\t\t\treturn this.uiStore.getFakeDoorById(this.featureId);\n\t\t},\n\t},\n\tmethods: {\n\t\topenLinkPage() {\n\t\t\tif (this.featureInfo) {\n\t\t\t\twindow.open(this.featureInfo.linkURL, '_blank');\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\twhite-space: nowrap;\n\n\t*:first-child {\n\t\tflex-grow: 1;\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","FeatureComingSoon","mapStores","useUIStore","_component_feature_coming_soon","_resolveComponent","_openBlock","_createBlock","_ctx"],"mappings":"kjCAWA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,uBACN,WAAY,CACX,kBAAAC,CACD,EACA,MAAO,CACN,UAAW,CACV,KAAM,OACN,SAAU,EACX,CACD,EACA,SAAU,CACT,GAAGC,EAAUC,CAAU,EACvB,aAAqC,CACpC,OAAO,KAAK,QAAQ,gBAAgB,KAAK,SAAS,CACnD,CACD,EACA,QAAS,CACR,cAAe,CACV,KAAK,aACR,OAAO,KAAK,KAAK,YAAY,QAAS,QAAQ,CAEhD,CACD,CACD,CAAC,2DAlCwD,MAAAC,EAAAC,EAAA,qBAAA,SAAZC,EAAS,EAAAC,EAAAH,EAAA,CAAA,UAAAI,EAAA"}
1
+ {"version":3,"file":"SettingsFakeDoorView-wbngwN3n.js","sources":["../../src/views/SettingsFakeDoorView.vue"],"sourcesContent":["<template>\n\t<feature-coming-soon :featureId=\"featureId\" showTitle />\n</template>\n\n<script lang=\"ts\">\nimport type { IFakeDoor } from '@/Interface';\nimport { defineComponent } from 'vue';\nimport FeatureComingSoon from '@/components/FeatureComingSoon.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tname: 'SettingsFakeDoorView',\n\tcomponents: {\n\t\tFeatureComingSoon,\n\t},\n\tprops: {\n\t\tfeatureId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t\tfeatureInfo(): IFakeDoor | undefined {\n\t\t\treturn this.uiStore.getFakeDoorById(this.featureId);\n\t\t},\n\t},\n\tmethods: {\n\t\topenLinkPage() {\n\t\t\tif (this.featureInfo) {\n\t\t\t\twindow.open(this.featureInfo.linkURL, '_blank');\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\twhite-space: nowrap;\n\n\t*:first-child {\n\t\tflex-grow: 1;\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","FeatureComingSoon","mapStores","useUIStore","_component_feature_coming_soon","_resolveComponent","_openBlock","_createBlock","_ctx"],"mappings":"kjCAWA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,uBACN,WAAY,CACX,kBAAAC,CACD,EACA,MAAO,CACN,UAAW,CACV,KAAM,OACN,SAAU,EACX,CACD,EACA,SAAU,CACT,GAAGC,EAAUC,CAAU,EACvB,aAAqC,CACpC,OAAO,KAAK,QAAQ,gBAAgB,KAAK,SAAS,CACnD,CACD,EACA,QAAS,CACR,cAAe,CACV,KAAK,aACR,OAAO,KAAK,KAAK,YAAY,QAAS,QAAQ,CAEhD,CACD,CACD,CAAC,2DAlCwD,MAAAC,EAAAC,EAAA,qBAAA,SAAZC,EAAS,EAAAC,EAAAH,EAAA,CAAA,UAAAI,EAAA"}
@@ -1,2 +1,2 @@
1
- import{fr as z,fs as D,o as E,s as A,u as w,t as L,p as I,ft as y,fu as V,ac as k,_ as F}from"./n8n-ZKR6bms9.js";import{a as _}from"./index--RuZ5wHr.js";import{h as M}from"./humanize-duration-YPpNZxWz.js";import{K as N}from"./v3-infinite-loading-lErK5XME.js";import{m as R}from"./pinia-jX93eZRS.js";import{G as U,ag as o,aq as B,l as r,m as g,p as l,T as s,O as n,I as d,M as m,Q as f,V as q,S as u,R as p}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const P=U({name:"SettingsLdapView",components:{InfiniteLoading:N,ElTable:z,ElTableColumn:D},setup(){return{...E(),..._()}},data(){return{dataTable:[],tableKey:0,adConfig:{},loadingTestConnection:!1,loadingDryRun:!1,loadingLiveRun:!1,loadingTable:!1,hasAnyChanges:!1,formInputs:null,formBus:A(),readyToSubmit:!1,page:0,loginEnabled:!1,syncEnabled:!1}},async mounted(){this.isLDAPFeatureEnabled&&await this.getLdapConfig()},computed:{...R(I,L,w),currentUser(){return this.usersStore.currentUser},isLDAPFeatureEnabled(){return this.settingsStore.settings.enterprise.ldap}},methods:{goToUpgrade(){this.uiStore.goToUpgrade("ldap","upgrade-ldap")},cellClassStyle({row:e,column:t}){if(t.property==="status"){if(e.status==="Success")return{color:"green"};if(e.status==="Error")return{color:"red"}}if(t.property==="runMode"){if(e.runMode==="Dry")return{color:"orange"};if(e.runMode==="Live")return{color:"blue"}}return{}},onInput(e){e.name==="loginEnabled"&&typeof e.value=="boolean"&&(this.loginEnabled=e.value),e.name==="synchronizationEnabled"&&typeof e.value=="boolean"&&(this.syncEnabled=e.value),this.hasAnyChanges=!0},onReadyToSubmit(e){this.readyToSubmit=e},syncDataMapper(e){const t=new Date(e.startedAt),i=new Date(e.endedAt),a=i.getTime()-t.getTime();return{runTime:M(a),runMode:y(e.runMode),status:y(e.status),endedAt:V(i.getTime()),details:this.$locale.baseText("settings.ldap.usersScanned",{interpolate:{scanned:e.scanned.toString()}})}},async onSubmit(){const e=this.$refs.ldapConfigForm;if(!this.hasAnyChanges||!e)return;const t={loginEnabled:e.values.loginEnabled,loginLabel:e.values.loginLabel,connectionUrl:e.values.serverAddress,allowUnauthorizedCerts:e.values.allowUnauthorizedCerts,connectionPort:+e.values.port,connectionSecurity:e.values.connectionSecurity,baseDn:e.values.baseDn,bindingAdminDn:e.values.bindingType==="admin"?e.values.adminDn:"",bindingAdminPassword:e.values.bindingType==="admin"?e.values.adminPassword:"",emailAttribute:e.values.email,firstNameAttribute:e.values.firstName,lastNameAttribute:e.values.lastName,loginIdAttribute:e.values.loginId,ldapIdAttribute:e.values.ldapId,userFilter:e.values.userFilter,synchronizationEnabled:e.values.synchronizationEnabled,synchronizationInterval:+e.values.synchronizationInterval,searchPageSize:+e.values.pageSize,searchTimeout:+e.values.searchTimeout};let i=!0;try{this.adConfig.loginEnabled&&!t.loginEnabled&&(i=await this.confirm(this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.message"),this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.headline"),{cancelButtonText:this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"),confirmButtonText:this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText")})===k),i||(this.hasAnyChanges=!0),this.adConfig=await this.settingsStore.updateLdapConfig(t),this.showToast({title:this.$locale.baseText("settings.ldap.updateConfiguration"),message:"",type:"success"})}catch(a){this.showError(a,this.$locale.baseText("settings.ldap.configurationError"))}finally{i&&(this.hasAnyChanges=!1)}},onSaveClick(){this.formBus.emit("submit")},async onTestConnectionClick(){this.loadingTestConnection=!0;try{await this.settingsStore.testLdapConnection(),this.showToast({title:this.$locale.baseText("settings.ldap.connectionTest"),message:this.$locale.baseText("settings.ldap.toast.connection.success"),type:"success"})}catch(e){this.showToast({title:this.$locale.baseText("settings.ldap.connectionTestError"),message:e.message,type:"error"})}finally{this.loadingTestConnection=!1}},async onDryRunClick(){this.loadingDryRun=!0;try{await this.settingsStore.runLdapSync({type:"dry"}),this.showToast({title:this.$locale.baseText("settings.ldap.runSync.title"),message:this.$locale.baseText("settings.ldap.toast.sync.success"),type:"success"})}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}finally{this.loadingDryRun=!1,await this.reloadLdapSynchronizations()}},async onLiveRunClick(){this.loadingLiveRun=!0;try{await this.settingsStore.runLdapSync({type:"live"}),this.showToast({title:this.$locale.baseText("settings.ldap.runSync.title"),message:this.$locale.baseText("settings.ldap.toast.sync.success"),type:"success"})}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}finally{this.loadingLiveRun=!1,await this.reloadLdapSynchronizations()}},async getLdapConfig(){try{this.adConfig=await this.settingsStore.getLdapConfig(),this.loginEnabled=this.adConfig.loginEnabled,this.syncEnabled=this.adConfig.synchronizationEnabled;const e=a=>a.loginEnabled===!0,t=a=>a.synchronizationEnabled===!0&&a.loginEnabled===!0,i=a=>a.bindingType==="admin"&&a.loginEnabled===!0;this.formInputs=[{name:"loginEnabled",initialValue:this.adConfig.loginEnabled,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.loginEnabled.label"),tooltipText:this.$locale.baseText("settings.ldap.form.loginEnabled.tooltip"),required:!0}},{name:"loginLabel",initialValue:this.adConfig.loginLabel,properties:{label:this.$locale.baseText("settings.ldap.form.loginLabel.label"),required:!0,placeholder:this.$locale.baseText("settings.ldap.form.loginLabel.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.loginLabel.infoText")},shouldDisplay:e},{name:"serverAddress",initialValue:this.adConfig.connectionUrl,properties:{label:this.$locale.baseText("settings.ldap.form.serverAddress.label"),required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.serverAddress.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.serverAddress.infoText")},shouldDisplay:e},{name:"port",initialValue:this.adConfig.connectionPort,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.port.label"),capitalize:!0,infoText:this.$locale.baseText("settings.ldap.form.port.infoText")},shouldDisplay:e},{name:"connectionSecurity",initialValue:this.adConfig.connectionSecurity,properties:{type:"select",label:this.$locale.baseText("settings.ldap.form.connectionSecurity.label"),infoText:this.$locale.baseText("settings.ldap.form.connectionSecurity.infoText"),options:[{label:"None",value:"none"},{label:"TLS",value:"tls"},{label:"STARTTLS",value:"startTls"}],required:!0,capitalize:!0},shouldDisplay:e},{name:"allowUnauthorizedCerts",initialValue:this.adConfig.allowUnauthorizedCerts,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.allowUnauthorizedCerts.label"),required:!1},shouldDisplay(a){return a.connectionSecurity!=="none"&&a.loginEnabled===!0}},{name:"baseDn",initialValue:this.adConfig.baseDn,properties:{label:this.$locale.baseText("settings.ldap.form.baseDn.label"),required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.baseDn.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.baseDn.infoText")},shouldDisplay:e},{name:"bindingType",initialValue:"admin",properties:{type:"select",label:this.$locale.baseText("settings.ldap.form.bindingType.label"),infoText:this.$locale.baseText("settings.ldap.form.bindingType.infoText"),options:[{value:"admin",label:"Admin"},{value:"anonymous",label:"Anonymous"}]},shouldDisplay:e},{name:"adminDn",initialValue:this.adConfig.bindingAdminDn,properties:{label:this.$locale.baseText("settings.ldap.form.adminDn.label"),placeholder:this.$locale.baseText("settings.ldap.form.adminDn.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.adminDn.infoText"),capitalize:!0},shouldDisplay:i},{name:"adminPassword",initialValue:this.adConfig.bindingAdminPassword,properties:{label:this.$locale.baseText("settings.ldap.form.adminPassword.label"),type:"password",capitalize:!0,infoText:this.$locale.baseText("settings.ldap.form.adminPassword.infoText")},shouldDisplay:i},{name:"userFilter",initialValue:this.adConfig.userFilter,properties:{label:this.$locale.baseText("settings.ldap.form.userFilter.label"),type:"text",required:!1,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.userFilter.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.userFilter.infoText")},shouldDisplay:e},{name:"attributeMappingInfo",properties:{label:this.$locale.baseText("settings.ldap.form.attributeMappingInfo.label"),type:"info",labelSize:"large",labelAlignment:"left"},shouldDisplay:e},{name:"ldapId",initialValue:this.adConfig.ldapIdAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.ldapId.label"),type:"text",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.ldapId.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.ldapId.infoText")},shouldDisplay:e},{name:"loginId",initialValue:this.adConfig.loginIdAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.loginId.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.loginId.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.loginId.infoText")},shouldDisplay:e},{name:"email",initialValue:this.adConfig.emailAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.email.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.email.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.email.infoText")},shouldDisplay:e},{name:"firstName",initialValue:this.adConfig.firstNameAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.firstName.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.firstName.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.firstName.infoText")},shouldDisplay:e},{name:"lastName",initialValue:this.adConfig.lastNameAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.lastName.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.lastName.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.lastName.infoText")},shouldDisplay:e},{name:"synchronizationEnabled",initialValue:this.adConfig.synchronizationEnabled,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.synchronizationEnabled.label"),tooltipText:this.$locale.baseText("settings.ldap.form.synchronizationEnabled.tooltip"),required:!0},shouldDisplay:e},{name:"synchronizationInterval",initialValue:this.adConfig.synchronizationInterval,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.synchronizationInterval.label"),infoText:this.$locale.baseText("settings.ldap.form.synchronizationInterval.infoText")},shouldDisplay:t},{name:"pageSize",initialValue:this.adConfig.searchPageSize,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.pageSize.label"),infoText:this.$locale.baseText("settings.ldap.form.pageSize.infoText")},shouldDisplay:t},{name:"searchTimeout",initialValue:this.adConfig.searchTimeout,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.searchTimeout.label"),infoText:this.$locale.baseText("settings.ldap.form.searchTimeout.infoText")},shouldDisplay:t}]}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.configurationError"))}},async getLdapSynchronizations(e){try{this.loadingTable=!0;const t=await this.settingsStore.getLdapSynchronizations({page:this.page});t.length!==0?(this.dataTable.push(...t.map(this.syncDataMapper)),this.page+=1,e.loaded()):e.complete(),this.loadingTable=!1}catch(t){this.showError(t,this.$locale.baseText("settings.ldap.synchronizationError"))}},async reloadLdapSynchronizations(){try{this.page=0,this.tableKey+=1,this.dataTable=[]}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}}}}),H="_container_f18ao_5",K="_syncTable_f18ao_9",O="_header_f18ao_13",G="_enableFeatureContainer_f18ao_22",Q="_sectionHeader_f18ao_36",j="_settingsForm_f18ao_40",J="_docsInfoTip_f18ao_44",W={container:H,syncTable:K,header:O,enableFeatureContainer:G,sectionHeader:Q,settingsForm:j,docsInfoTip:J},X={key:0},Y={key:1},Z=["innerHTML"],ee={key:0},te={class:"pb-3xl"};function ae(e,t,i,a,ie,le){const h=o("n8n-heading"),T=o("n8n-info-tip"),$=o("n8n-action-box"),x=o("n8n-form-inputs"),b=o("n8n-button"),c=o("el-table-column"),C=o("infinite-loading"),v=o("el-table"),S=B("loading");return e.isLDAPFeatureEnabled?(r(),g("div",Y,[l("div",{class:d(e.$style.container)},[l("div",{class:d(e.$style.header)},[s(h,{size:"2xlarge"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap")),1)]),_:1})],2),l("div",{class:d(e.$style.docsInfoTip)},[s(T,{theme:"info",type:"note"},{default:n(()=>[l("span",{innerHTML:e.$locale.baseText("settings.ldap.infoTip")},null,8,Z)]),_:1})],2),l("div",{class:d(e.$style.settingsForm)},[e.formInputs?(r(),m(x,{key:0,ref:"ldapConfigForm",inputs:e.formInputs,eventBus:e.formBus,columnView:!0,verticalSpacing:"l",onUpdate:e.onInput,onReady:e.onReadyToSubmit,onSubmit:e.onSubmit},null,8,["inputs","eventBus","onUpdate","onReady","onSubmit"])):f("",!0)],2),l("div",null,[e.loginEnabled?(r(),m(b,{key:0,label:e.loadingTestConnection?e.$locale.baseText("settings.ldap.testingConnection"):e.$locale.baseText("settings.ldap.testConnection"),size:"large",class:"mr-s",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingTestConnection,onClick:e.onTestConnectionClick},null,8,["label","disabled","loading","onClick"])):f("",!0),s(b,{label:e.$locale.baseText("settings.ldap.save"),size:"large",disabled:!e.hasAnyChanges||!e.readyToSubmit,onClick:e.onSaveClick},null,8,["label","disabled","onClick"])])],2),e.loginEnabled?(r(),g("div",ee,[s(h,{tag:"h1",class:"mb-xl mt-3xl",size:"medium"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap.section.synchronization.title")),1)]),_:1}),l("div",{class:d(e.$style.syncTable)},[q((r(),m(v,{border:!0,stripe:!0,data:e.dataTable,"cell-style":e.cellClassStyle,style:{width:"100%"},height:"250",key:e.tableKey},{empty:n(()=>[u(p(e.$locale.baseText("settings.ldap.synchronizationTable.empty.message")),1)]),append:n(()=>[s(C,{onInfinite:e.getLdapSynchronizations,"force-use-infinite-wrapper":".el-table__body-wrapper"},null,8,["onInfinite"])]),default:n(()=>[s(c,{prop:"status",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.status")},null,8,["label"]),s(c,{prop:"endedAt",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.endedAt")},null,8,["label"]),s(c,{prop:"runMode",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.runMode")},null,8,["label"]),s(c,{prop:"runTime",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.runTime")},null,8,["label"]),s(c,{prop:"details",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.details")},null,8,["label"])]),_:1},8,["data","cell-style"])),[[S,e.loadingTable]])],2),l("div",te,[s(b,{label:e.$locale.baseText("settings.ldap.dryRun"),type:"secondary",size:"large",class:"mr-s",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingDryRun,onClick:e.onDryRunClick},null,8,["label","disabled","loading","onClick"]),s(b,{label:e.$locale.baseText("settings.ldap.synchronizeNow"),size:"large",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingLiveRun,onClick:e.onLiveRunClick},null,8,["label","disabled","loading","onClick"])])])):f("",!0)])):(r(),g("div",X,[l("div",{class:d([e.$style.header,"mb-2xl"])},[s(h,{size:"2xlarge"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap")),1)]),_:1})],2),s(T,{type:"note",theme:"info",tooltipPlacement:"right",class:"mb-l"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap.note")),1)]),_:1}),s($,{description:e.$locale.baseText("settings.ldap.disabled.description"),buttonText:e.$locale.baseText("settings.ldap.disabled.buttonText"),"onClick:button":e.goToUpgrade},{heading:n(()=>[l("span",null,p(e.$locale.baseText("settings.ldap.disabled.title")),1)]),_:1},8,["description","buttonText","onClick:button"])]))}const se={$style:W},Me=F(P,[["render",ae],["__cssModules",se]]);export{Me as default};
2
- //# sourceMappingURL=SettingsLdapView-aWCvc1gM.js.map
1
+ import{fr as z,fs as D,o as E,s as A,u as w,t as L,p as I,ft as y,fu as V,ac as k,_ as F}from"./n8n-ZKR6bms9.js";import{a as _}from"./index-RXjMHIPR.js";import{h as M}from"./humanize-duration-YPpNZxWz.js";import{K as N}from"./v3-infinite-loading-lErK5XME.js";import{m as R}from"./pinia-jX93eZRS.js";import{G as U,ag as o,aq as B,l as r,m as g,p as l,T as s,O as n,I as d,M as m,Q as f,V as q,S as u,R as p}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const P=U({name:"SettingsLdapView",components:{InfiniteLoading:N,ElTable:z,ElTableColumn:D},setup(){return{...E(),..._()}},data(){return{dataTable:[],tableKey:0,adConfig:{},loadingTestConnection:!1,loadingDryRun:!1,loadingLiveRun:!1,loadingTable:!1,hasAnyChanges:!1,formInputs:null,formBus:A(),readyToSubmit:!1,page:0,loginEnabled:!1,syncEnabled:!1}},async mounted(){this.isLDAPFeatureEnabled&&await this.getLdapConfig()},computed:{...R(I,L,w),currentUser(){return this.usersStore.currentUser},isLDAPFeatureEnabled(){return this.settingsStore.settings.enterprise.ldap}},methods:{goToUpgrade(){this.uiStore.goToUpgrade("ldap","upgrade-ldap")},cellClassStyle({row:e,column:t}){if(t.property==="status"){if(e.status==="Success")return{color:"green"};if(e.status==="Error")return{color:"red"}}if(t.property==="runMode"){if(e.runMode==="Dry")return{color:"orange"};if(e.runMode==="Live")return{color:"blue"}}return{}},onInput(e){e.name==="loginEnabled"&&typeof e.value=="boolean"&&(this.loginEnabled=e.value),e.name==="synchronizationEnabled"&&typeof e.value=="boolean"&&(this.syncEnabled=e.value),this.hasAnyChanges=!0},onReadyToSubmit(e){this.readyToSubmit=e},syncDataMapper(e){const t=new Date(e.startedAt),i=new Date(e.endedAt),a=i.getTime()-t.getTime();return{runTime:M(a),runMode:y(e.runMode),status:y(e.status),endedAt:V(i.getTime()),details:this.$locale.baseText("settings.ldap.usersScanned",{interpolate:{scanned:e.scanned.toString()}})}},async onSubmit(){const e=this.$refs.ldapConfigForm;if(!this.hasAnyChanges||!e)return;const t={loginEnabled:e.values.loginEnabled,loginLabel:e.values.loginLabel,connectionUrl:e.values.serverAddress,allowUnauthorizedCerts:e.values.allowUnauthorizedCerts,connectionPort:+e.values.port,connectionSecurity:e.values.connectionSecurity,baseDn:e.values.baseDn,bindingAdminDn:e.values.bindingType==="admin"?e.values.adminDn:"",bindingAdminPassword:e.values.bindingType==="admin"?e.values.adminPassword:"",emailAttribute:e.values.email,firstNameAttribute:e.values.firstName,lastNameAttribute:e.values.lastName,loginIdAttribute:e.values.loginId,ldapIdAttribute:e.values.ldapId,userFilter:e.values.userFilter,synchronizationEnabled:e.values.synchronizationEnabled,synchronizationInterval:+e.values.synchronizationInterval,searchPageSize:+e.values.pageSize,searchTimeout:+e.values.searchTimeout};let i=!0;try{this.adConfig.loginEnabled&&!t.loginEnabled&&(i=await this.confirm(this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.message"),this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.headline"),{cancelButtonText:this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"),confirmButtonText:this.$locale.baseText("settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText")})===k),i||(this.hasAnyChanges=!0),this.adConfig=await this.settingsStore.updateLdapConfig(t),this.showToast({title:this.$locale.baseText("settings.ldap.updateConfiguration"),message:"",type:"success"})}catch(a){this.showError(a,this.$locale.baseText("settings.ldap.configurationError"))}finally{i&&(this.hasAnyChanges=!1)}},onSaveClick(){this.formBus.emit("submit")},async onTestConnectionClick(){this.loadingTestConnection=!0;try{await this.settingsStore.testLdapConnection(),this.showToast({title:this.$locale.baseText("settings.ldap.connectionTest"),message:this.$locale.baseText("settings.ldap.toast.connection.success"),type:"success"})}catch(e){this.showToast({title:this.$locale.baseText("settings.ldap.connectionTestError"),message:e.message,type:"error"})}finally{this.loadingTestConnection=!1}},async onDryRunClick(){this.loadingDryRun=!0;try{await this.settingsStore.runLdapSync({type:"dry"}),this.showToast({title:this.$locale.baseText("settings.ldap.runSync.title"),message:this.$locale.baseText("settings.ldap.toast.sync.success"),type:"success"})}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}finally{this.loadingDryRun=!1,await this.reloadLdapSynchronizations()}},async onLiveRunClick(){this.loadingLiveRun=!0;try{await this.settingsStore.runLdapSync({type:"live"}),this.showToast({title:this.$locale.baseText("settings.ldap.runSync.title"),message:this.$locale.baseText("settings.ldap.toast.sync.success"),type:"success"})}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}finally{this.loadingLiveRun=!1,await this.reloadLdapSynchronizations()}},async getLdapConfig(){try{this.adConfig=await this.settingsStore.getLdapConfig(),this.loginEnabled=this.adConfig.loginEnabled,this.syncEnabled=this.adConfig.synchronizationEnabled;const e=a=>a.loginEnabled===!0,t=a=>a.synchronizationEnabled===!0&&a.loginEnabled===!0,i=a=>a.bindingType==="admin"&&a.loginEnabled===!0;this.formInputs=[{name:"loginEnabled",initialValue:this.adConfig.loginEnabled,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.loginEnabled.label"),tooltipText:this.$locale.baseText("settings.ldap.form.loginEnabled.tooltip"),required:!0}},{name:"loginLabel",initialValue:this.adConfig.loginLabel,properties:{label:this.$locale.baseText("settings.ldap.form.loginLabel.label"),required:!0,placeholder:this.$locale.baseText("settings.ldap.form.loginLabel.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.loginLabel.infoText")},shouldDisplay:e},{name:"serverAddress",initialValue:this.adConfig.connectionUrl,properties:{label:this.$locale.baseText("settings.ldap.form.serverAddress.label"),required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.serverAddress.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.serverAddress.infoText")},shouldDisplay:e},{name:"port",initialValue:this.adConfig.connectionPort,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.port.label"),capitalize:!0,infoText:this.$locale.baseText("settings.ldap.form.port.infoText")},shouldDisplay:e},{name:"connectionSecurity",initialValue:this.adConfig.connectionSecurity,properties:{type:"select",label:this.$locale.baseText("settings.ldap.form.connectionSecurity.label"),infoText:this.$locale.baseText("settings.ldap.form.connectionSecurity.infoText"),options:[{label:"None",value:"none"},{label:"TLS",value:"tls"},{label:"STARTTLS",value:"startTls"}],required:!0,capitalize:!0},shouldDisplay:e},{name:"allowUnauthorizedCerts",initialValue:this.adConfig.allowUnauthorizedCerts,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.allowUnauthorizedCerts.label"),required:!1},shouldDisplay(a){return a.connectionSecurity!=="none"&&a.loginEnabled===!0}},{name:"baseDn",initialValue:this.adConfig.baseDn,properties:{label:this.$locale.baseText("settings.ldap.form.baseDn.label"),required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.baseDn.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.baseDn.infoText")},shouldDisplay:e},{name:"bindingType",initialValue:"admin",properties:{type:"select",label:this.$locale.baseText("settings.ldap.form.bindingType.label"),infoText:this.$locale.baseText("settings.ldap.form.bindingType.infoText"),options:[{value:"admin",label:"Admin"},{value:"anonymous",label:"Anonymous"}]},shouldDisplay:e},{name:"adminDn",initialValue:this.adConfig.bindingAdminDn,properties:{label:this.$locale.baseText("settings.ldap.form.adminDn.label"),placeholder:this.$locale.baseText("settings.ldap.form.adminDn.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.adminDn.infoText"),capitalize:!0},shouldDisplay:i},{name:"adminPassword",initialValue:this.adConfig.bindingAdminPassword,properties:{label:this.$locale.baseText("settings.ldap.form.adminPassword.label"),type:"password",capitalize:!0,infoText:this.$locale.baseText("settings.ldap.form.adminPassword.infoText")},shouldDisplay:i},{name:"userFilter",initialValue:this.adConfig.userFilter,properties:{label:this.$locale.baseText("settings.ldap.form.userFilter.label"),type:"text",required:!1,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.userFilter.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.userFilter.infoText")},shouldDisplay:e},{name:"attributeMappingInfo",properties:{label:this.$locale.baseText("settings.ldap.form.attributeMappingInfo.label"),type:"info",labelSize:"large",labelAlignment:"left"},shouldDisplay:e},{name:"ldapId",initialValue:this.adConfig.ldapIdAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.ldapId.label"),type:"text",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.ldapId.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.ldapId.infoText")},shouldDisplay:e},{name:"loginId",initialValue:this.adConfig.loginIdAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.loginId.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.loginId.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.loginId.infoText")},shouldDisplay:e},{name:"email",initialValue:this.adConfig.emailAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.email.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.email.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.email.infoText")},shouldDisplay:e},{name:"firstName",initialValue:this.adConfig.firstNameAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.firstName.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.firstName.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.firstName.infoText")},shouldDisplay:e},{name:"lastName",initialValue:this.adConfig.lastNameAttribute,properties:{label:this.$locale.baseText("settings.ldap.form.lastName.label"),type:"text",autocomplete:"email",required:!0,capitalize:!0,placeholder:this.$locale.baseText("settings.ldap.form.lastName.placeholder"),infoText:this.$locale.baseText("settings.ldap.form.lastName.infoText")},shouldDisplay:e},{name:"synchronizationEnabled",initialValue:this.adConfig.synchronizationEnabled,properties:{type:"toggle",label:this.$locale.baseText("settings.ldap.form.synchronizationEnabled.label"),tooltipText:this.$locale.baseText("settings.ldap.form.synchronizationEnabled.tooltip"),required:!0},shouldDisplay:e},{name:"synchronizationInterval",initialValue:this.adConfig.synchronizationInterval,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.synchronizationInterval.label"),infoText:this.$locale.baseText("settings.ldap.form.synchronizationInterval.infoText")},shouldDisplay:t},{name:"pageSize",initialValue:this.adConfig.searchPageSize,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.pageSize.label"),infoText:this.$locale.baseText("settings.ldap.form.pageSize.infoText")},shouldDisplay:t},{name:"searchTimeout",initialValue:this.adConfig.searchTimeout,properties:{type:"number",label:this.$locale.baseText("settings.ldap.form.searchTimeout.label"),infoText:this.$locale.baseText("settings.ldap.form.searchTimeout.infoText")},shouldDisplay:t}]}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.configurationError"))}},async getLdapSynchronizations(e){try{this.loadingTable=!0;const t=await this.settingsStore.getLdapSynchronizations({page:this.page});t.length!==0?(this.dataTable.push(...t.map(this.syncDataMapper)),this.page+=1,e.loaded()):e.complete(),this.loadingTable=!1}catch(t){this.showError(t,this.$locale.baseText("settings.ldap.synchronizationError"))}},async reloadLdapSynchronizations(){try{this.page=0,this.tableKey+=1,this.dataTable=[]}catch(e){this.showError(e,this.$locale.baseText("settings.ldap.synchronizationError"))}}}}),H="_container_f18ao_5",K="_syncTable_f18ao_9",O="_header_f18ao_13",G="_enableFeatureContainer_f18ao_22",Q="_sectionHeader_f18ao_36",j="_settingsForm_f18ao_40",J="_docsInfoTip_f18ao_44",W={container:H,syncTable:K,header:O,enableFeatureContainer:G,sectionHeader:Q,settingsForm:j,docsInfoTip:J},X={key:0},Y={key:1},Z=["innerHTML"],ee={key:0},te={class:"pb-3xl"};function ae(e,t,i,a,ie,le){const h=o("n8n-heading"),T=o("n8n-info-tip"),$=o("n8n-action-box"),x=o("n8n-form-inputs"),b=o("n8n-button"),c=o("el-table-column"),C=o("infinite-loading"),v=o("el-table"),S=B("loading");return e.isLDAPFeatureEnabled?(r(),g("div",Y,[l("div",{class:d(e.$style.container)},[l("div",{class:d(e.$style.header)},[s(h,{size:"2xlarge"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap")),1)]),_:1})],2),l("div",{class:d(e.$style.docsInfoTip)},[s(T,{theme:"info",type:"note"},{default:n(()=>[l("span",{innerHTML:e.$locale.baseText("settings.ldap.infoTip")},null,8,Z)]),_:1})],2),l("div",{class:d(e.$style.settingsForm)},[e.formInputs?(r(),m(x,{key:0,ref:"ldapConfigForm",inputs:e.formInputs,eventBus:e.formBus,columnView:!0,verticalSpacing:"l",onUpdate:e.onInput,onReady:e.onReadyToSubmit,onSubmit:e.onSubmit},null,8,["inputs","eventBus","onUpdate","onReady","onSubmit"])):f("",!0)],2),l("div",null,[e.loginEnabled?(r(),m(b,{key:0,label:e.loadingTestConnection?e.$locale.baseText("settings.ldap.testingConnection"):e.$locale.baseText("settings.ldap.testConnection"),size:"large",class:"mr-s",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingTestConnection,onClick:e.onTestConnectionClick},null,8,["label","disabled","loading","onClick"])):f("",!0),s(b,{label:e.$locale.baseText("settings.ldap.save"),size:"large",disabled:!e.hasAnyChanges||!e.readyToSubmit,onClick:e.onSaveClick},null,8,["label","disabled","onClick"])])],2),e.loginEnabled?(r(),g("div",ee,[s(h,{tag:"h1",class:"mb-xl mt-3xl",size:"medium"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap.section.synchronization.title")),1)]),_:1}),l("div",{class:d(e.$style.syncTable)},[q((r(),m(v,{border:!0,stripe:!0,data:e.dataTable,"cell-style":e.cellClassStyle,style:{width:"100%"},height:"250",key:e.tableKey},{empty:n(()=>[u(p(e.$locale.baseText("settings.ldap.synchronizationTable.empty.message")),1)]),append:n(()=>[s(C,{onInfinite:e.getLdapSynchronizations,"force-use-infinite-wrapper":".el-table__body-wrapper"},null,8,["onInfinite"])]),default:n(()=>[s(c,{prop:"status",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.status")},null,8,["label"]),s(c,{prop:"endedAt",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.endedAt")},null,8,["label"]),s(c,{prop:"runMode",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.runMode")},null,8,["label"]),s(c,{prop:"runTime",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.runTime")},null,8,["label"]),s(c,{prop:"details",label:e.$locale.baseText("settings.ldap.synchronizationTable.column.details")},null,8,["label"])]),_:1},8,["data","cell-style"])),[[S,e.loadingTable]])],2),l("div",te,[s(b,{label:e.$locale.baseText("settings.ldap.dryRun"),type:"secondary",size:"large",class:"mr-s",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingDryRun,onClick:e.onDryRunClick},null,8,["label","disabled","loading","onClick"]),s(b,{label:e.$locale.baseText("settings.ldap.synchronizeNow"),size:"large",disabled:e.hasAnyChanges||!e.readyToSubmit,loading:e.loadingLiveRun,onClick:e.onLiveRunClick},null,8,["label","disabled","loading","onClick"])])])):f("",!0)])):(r(),g("div",X,[l("div",{class:d([e.$style.header,"mb-2xl"])},[s(h,{size:"2xlarge"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap")),1)]),_:1})],2),s(T,{type:"note",theme:"info",tooltipPlacement:"right",class:"mb-l"},{default:n(()=>[u(p(e.$locale.baseText("settings.ldap.note")),1)]),_:1}),s($,{description:e.$locale.baseText("settings.ldap.disabled.description"),buttonText:e.$locale.baseText("settings.ldap.disabled.buttonText"),"onClick:button":e.goToUpgrade},{heading:n(()=>[l("span",null,p(e.$locale.baseText("settings.ldap.disabled.title")),1)]),_:1},8,["description","buttonText","onClick:button"])]))}const se={$style:W},Me=F(P,[["render",ae],["__cssModules",se]]);export{Me as default};
2
+ //# sourceMappingURL=SettingsLdapView-rYSjSdpv.js.map